Syllabus calendar

Click on a day to see full information for that day, including topic list, suggested readings, questions, and other information. This page will be updated throughout the term.

Wk M W F
1 [no class] 13 Jan
Introductions, C vs C++, printf, scanf
15 Jan
Pointer basics, C strings and other arrays, Functions, pointers as out params
Lab 1 out
2 [no class] 20 Jan
More work with C
Lab 1 due
22 Jan
Models and semantics, System architectures
3 25 Jan
Heap allocation in C, Memory and the kernel
Lab 2 out
27 Jan
Files and directories in C (high-level), Kernel and system calls, Processes
29 Jan
C function pointers, Events and signal handling
Lab 2 due
Lab 3 out
4 1 Feb
Direct file I/O, File descriptors, stdin, stdout, Overview of IPC
3 Feb
Pipes and FIFO
5 Feb

Lab 3 due
5 8 Feb
Memory-mapped files
Proj 1 out
10 Feb
mmap, cont'd
12 Feb
POSIX vs System V, Message passing, Shared memory
Proj 1 prep due
6 15 Feb
Project design
Proj 1 design due
17 Feb
Project design cont'd
19 Feb
Semaphores, take 1, Networking fundamentals
7 22 Feb
Application layer protocols, HTTP
24 Feb
DNS
26 Feb
TCP/IP socket programming
8 [no class] 3 Mar
Transport layer
Proj 1 due
5 Mar
Internet layer (IP)
9 8 Mar
Transport layer security
Hwk 1 out
10 Mar
Datagrams and UDP, NAT vs IPv6
Proj 2 out
12 Mar
Lower networking layers
Hwk 1 due
10 15 Mar
Introduction to threads
Proj 2 prep due
17 Mar
Project design
Proj 2 design due
19 Mar
Project design cont'd, Threads demo
11 22 Mar
Threads with arguments
24 Mar
Returning values from threads
26 Mar
Threads in other languages
Proj 2 notes
12 29 Mar
The problem of synchronisation
31 Mar

Proj 2 due
[no class]
13 5 Apr
Synchronisation with locks, Semaphores, take 2
Proj 3 out
7 Apr
Other synchronisation abstractions, Deadlock
9 Apr
Classic sync problems
Proj 3 prep due
Hwk 2 out
14 12 Apr
Project design
Proj 3 design due
[no class] 16 Apr

Hwk 1 revision due
Hwk 2 due
15 19 Apr
21 Apr
23 Apr
16 26 Apr

Proj 3 due
Exam out
Exam due 6 May
[no class] [no class]