This class is a first introduction to Computer Science.
Introduction, Boolean algebra (see notes, Wikipedia article on Boolean algebra)
Binary logic and logic gates (see notes); example for circuit simplification; flip-flops and latches (see animation of RS latch)
Discussion of Exercise Sheet 1 - solutions
Integer representations, two’s complement, positional number systems (see notes)
Discussion of Exercise Sheet 2 - solutions; positional number systems (ctd.), floating point arithmetic (begin)
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 (finish); 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
Character encodings (finish); Finite state machines (begin, see notes, slides from Uni Tübingen, introductory video)
Discussion of Exercise Sheet 4 - solutions; finite state machines (ctd.)
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)
Discussion of Exercise Sheet 5 - solutions; Turing machines (video; Turing machines on Wikipedia; Forouzan, Chapter 17); 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; GPUs and TPUs (see video on matrix multiplication)
Discussion of Exercise Sheet 6 - solutions; instruction set architectures, RISC vs. CISC, introduction to RISC-V (see slides by Martin Berger, University of Sussex, RISC-V online simulator); additional background for viewing/reading: 2017 Turing award lecture with edited transcript
Operating systems (begin): Memory management, process scheduling, concurrency (notes; Forouzan, Chapter 7)
No class
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)
No class
Discussion of Exercise Sheet 7 - solutions; File systems: mounting, soft links vs. hard links, network file systems (brief mention), RAID (see class notes)
Discussion of RAID levels ctd.; Error detection and correction (Parity, mod 97 checksum, hashes)
Discussion of Exercise Sheet 8 - solutions; 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)
Mock Exam, in class
Final Exam, 10:00-12:00, HB-GH