Winter Semester 2022/2023

Summary

This class is a first introduction to Computer Science.

Supplementary Reading

Topics

Oct 18, 2022

Introduction, Boolean algebra (see notes, Wikipedia article on Boolean algebra)

Oct 25, 2022

Boolean algebra (ctd.), binary logic and logic gates (see notes)

Oct 26, 2022

Flip-flop; number representations (begin, see notes)

Nov 2, 2022

Discussion of Exercise Sheet 1, finish discussion of decimal to base-b conversion

Nov 8, 2022

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)

Nov 9, 2022

Discussion of Exercise Sheet 2, finish discussion of floating point arithmetic (see Python code demonstrating floating point error in derivative computations)

Nov 15, 2022

Character strings, ASCII and Unicode encodings (notes, Wikipedia article on Unicode, discussion of C vs. Pascal strings on Stack Overflow); Finite state machines and regular expressions (begin, see notes, slides from Uni Tübingen, Regular expressions and FSMs from Isaac Computer Science; further background reading: Regular Expression Matching Can Be Simple And Fast)

Nov 16, 2022

Discussion of Exercise Sheet 3; finite state machines (continued)

Nov 22, 2022

Regular expressions and finite state automata (continued)

Nov 23, 2022

Discussion of Exercise Sheet 4; examples for conversion from finite state machines to regular expressions, and vice versa

Nov 29, 2022

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. Quick overview on computer architectures, for background reading see Moore’s law, (breakdown of) Dennard scaling

Nov 30, 2022

No class, please watch the video from the 2017 Turing award lecture and/or read the edited transcript

Dec 6, 2022

Discussion of Exercise Sheet 5; instruction set architectures, RISC vs. CISC, introduction to RISC-V (see slides by Martin Berger, University of Sussex, RISC-V online simulator)

Dec 7, 2022

Discussion of Exercise Sheet 6; examples for RISC-V assembly

Dec 13, 2022

Operating systems (begin): Memory management, process scheduling, concurrency (notes; Forouzan, Chapter 7)

Dec 14, 2022

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)

Jan 10, 2023

File systems: mounting, soft links vs. hard links, network file systems (brief mention), RAID (see class notes)

Jan 11, 2023

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)

Jan 24, 2023

Mock Exam

Jan 25, 2023

Computer networks, IP stack

Jan 31, 2023

Routing algorithms (see class notes)

Feb 2, 2023

Discussion of Mock Exam

Feb 7, 2023

Routing algorithms (ctc.); Introduction to relational databases: motivation, relations, tuples, attributes, domains (see, e.g., Lecture 1 from this course)

Feb 8, 2023

Relational algebra (basics; see, e.g., Lecture 2 from this course); simple SQL SELECT queries, demonstration using Libreoffice Base