The second year is where the machine comes into focus. You meet the advanced algorithms and the first hints of complexity theory, the operating system and the concurrency it manages, the architecture underneath it, the databases and networks that connect real systems, the discipline of software engineering, and the formal theory of what can be computed at all.
Every module below is grouped by its lecture course. Some lessons are already written; the rest are shown as placeholders so you can see the shape of the whole year.