Computer Systems

Course Plan

16 lectures, 2 hours each (schedule below is for 2026).

# Date Topic
1 Aug 25 Introduction
2 Aug 28 Computer Architecture — information processor, memory, embedded systems, peripherals (sensors and actuators); what distinguishes software/hardware, codes/programs/algorithms, chips/modules/boards/boxes
3 Sep 8 Information Processor — Von Neumann architecture, instructions, instruction pointer, RISC/CISC, CPU/GPU, CGRA/FPGA/ASIC, self-modifying programs/circuits, input/output, interrupts
4 Sep 11 Assembly Programs — registers, operation mnemonics, labels and jumps, time-sensitivity, faults and bitflips, errors such as overflow, error masking
5 Sep 15 Data Structures and Memory — arrays, linked lists, pointer structures; memory layout (order, alignment, padding); automatic/dynamic memory allocation (stacks, heaps)
6 Sep 23 Procedural Programming — stack operations, expressions, procedures, recursion, interrupt routines
7 Sep 30 Operating Systems — POST, BIOS/UEFI firmware, kernel drivers and privilege separation, virtual memory, file systems, event logs, users, authentication and authorisation, delegation
8 Oct 1 Layered Architecture in Cyber Operations — functions and local/global properties of layered computer architectures in the context of cyber operations
9 Oct 20 Concurrent and Distributed Systems — cooperative/preemptive multitasking, threads/warps, streaming multiprocessing, racing, conflict, synchronization, message passing
10 Oct 30 High- vs Low-Level Programming — assembly, compilation, interpretation processes (complex data structures, advanced control flow, fault tolerance, classes/objects/reflection/ontologies, passive/reactive/active objects, emergence/reification/invariance/Gestalt properties)
11 Nov 3 Advanced Concepts — deterministic networking, cache coherency, hypervisors, cluster computing, live migration
12 Nov 6 Supply Chain Risks — hardware/software asset management, security risks in hardware/software supply chains and deployment environments
13 Nov 10 Specification, Implementation, and Verification — the importance of separating these, and how small errors in computer systems can lead to catastrophic outcomes
14 Nov 17 ARM Practical — low-level programming and firmware flashing on an ARM processor
15 Nov 20 Presentation
16 Nov 24 Wrap-up and exam preparation
Module Definitions Abbreviations Lemmas Theorems Difficulty
ComputerArchitecture 0 0 0 0
InformationProcessor 0 0 0 0
ControlFlow 0 0 0 0
DataStructure 0 0 0 0
Procedure 0 0 0 0
OperatingSystem 0 0 0 0
CyberOps 0 0 0 0
Concurrency 0 0 0 0
Programming 0 0 0 0
Scaling 0 0 0 0
SupplyChain 0 0 0 0
Verification 0 0 0 0

Concept coverage