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] 11 Jan
Introductions, C vs C++, printf, scanf
13 Jan
Pointer basics, C strings and other arrays, Functions, pointers as out params
Lab 1 out
2 [no class] 18 Jan
More work with C
20 Jan
Heap allocation in C, Models and semantics, System architectures
Lab 1 due
Lab 2 out
3 23 Jan
Memory and the kernel
25 Jan
Files and directories in C (high-level), Kernel and system calls
27 Jan
Processes, fork
Lab 2 due
Lab 3 out
4 30 Jan
C function pointers
1 Feb
Events and signal handling
3 Feb
File descriptors, stdin, stdout
5 6 Feb
Direct file I/O, Overview of IPC
Lab 3 due
Proj 1 out
8 Feb
Pipes and FIFO, Processes and pointers, Memory-mapped files
10 Feb
mmap, cont'd
6 13 Feb
POSIX vs System V, Message passing
Proj 1 prep due
15 Feb
Project design
Proj 1 design due
17 Feb
Project design cont'd, C stack/heap allocation review
Hwk 1 out
7 20 Feb
Shared memory
22 Feb
Shared memory, cont'd
Hwk 1 due
24 Feb
Semaphores, take 1, Networking fundamentals, TCP/IP socket programming
8 27 Feb
Application layer protocols, sockets, cont'd
1 Mar
HTTP, DNS
Proj 1 due
3 Mar
Transport layer
Proj 2 out
Hwk 1 revision due
9 [no class] [no class] [no class]
10 13 Mar
Internet layer (IP), Datagrams and UDP
15 Mar
NAT vs IPv6
Proj 2 prep due 17 Mar
[no class]
11 20 Mar
Project design
Hwk 2 out
Proj 2 design due
22 Mar
Project design cont'd
24 Mar
Transport layer security
Hwk 2 due
12 27 Mar
Lower networking layers
29 Mar
Introduction to threads, Threads demo
31 Mar
Threads with arguments, Returning values from threads
Hwk 2 revision due
13 3 Apr
Threads in other languages
Proj 2 due
5 Apr
The problem of synchronisation
Proj 3 out
7 Apr
Peterson's solution, Synchronisation with locks, Semaphores, take 2
14 10 Apr
Other synchronisation abstractions, Deadlock
Proj 3 prep due
12 Apr
Classic sync problems
Hwk 3 out
14 Apr
Project design
Proj 3 design due
15 17 Apr

Hwk 3 due
[no class] 21 Apr
Thread sync design patterns
16 24 Apr
26 Apr
28 Apr

Proj 3 due
Exam out
Hwk 3 revision
Exam due 4 May