This class is a first introduction to Computer Science.
Introduction, Boolean algebra (see notes, Wikipedia article on Boolean algebra)
Discussion of Exercise Sheet 1 - solutions; binary logic and logic gates (see notes)
No class due to conflicting admin meeting
Example for circuit simplification; flip-flop (see animation of RS flip-flop); Integer representations, two’s complement, positional number systems (see notes)
Discussion of Exercise Sheet 2 - solutions; positional number systems (ctd., see notes)
Floating point arithmetic (notes, see the floating-point converter for a nice illustration of the bit format; more background can be found in the Wikipedia article on floating point arithmetic and, far more advanced, the paper by Goldberg titled What Every Computer Scientist Should Know About Floating-Point Arithmetic)
Discussion of Exercise Sheet 3 - solutions; floating point arithmetic (ctd.)
Character strings; from ASCII to Unicode (for background reading, see Wikipedia article on Unicode, discussion of C vs. Pascal strings on Stack Overflow), short video on UTF-8
Discussion of Exercise Sheet 4 - solutions; character strings (ctd.)
Finite state machines (begin, see notes, slides from Uni Tübingen, introductory video)
Discussion of Exercise Sheet 5 - solutions; regular expressions; further background reading: Regular Expression Matching Can Be Simple And Fast); Conversion from non-deterministic to deterministic FSMs; conversion from regular expressions to FSMs and back
Beyond regular languages (notes; for background reading, see Chomsky hierarchy, Turing machine and a nice elementary discussion with a bit more details than covered in the book by Forouzan, Chapter 17.
Discussion of Exercise Sheet 6 - solutions; the halting problem
Computer architectures: Informal discussion of Moore’s law, Dennard scaling, and von Neumann architecture; also see this set of slides by S. Swanson et al. and this set of slides by C. Baun
No class due to conflicting admin meeting, please watch the video from the 2017 Turing award lecture and/or read the edited transcript
Discussion of Exercise Sheet 7 - solutions; Operating systems (begin): Memory management, process scheduling, concurrency (notes; Forouzan, Chapter 7)
Dining philosophers problem (see Wikipedia; for background reading, see the original Chandy/Misra paper, the Dijkstra/Tannenbaum solution - not covered in class - can be found in more readable pseudocode here)
File systems: mounting, soft links vs. hard links, network file systems (brief mention), RAID (see class notes)
Discussion of Exercise Sheet 8 - solutions; file systems (ctd.)
Error detection and correction: Parity, Checksums, Hamming codes (see class notes; also see this online Hamming code calculator; background video on cyclic checksums which explains the concept in more detail than covered in class)
Discussion of Exercise Sheet 9 - solutions; error detection and correction (ctd.)
Error detection and correction (ctd.); computer networks (For background reading, see Forouzan, Chapter 6 or this slide stack from FRA-UAS)
Discussion of Exercise Sheet 10 - solutions; Routing algorithms: link state routing (see class notes)
TBA
TBA
TBA
Mock Exam, in class
TBA
TBA
Final Exam, 12:00-14:00, HB-GH