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

Hwk 3 due
[no class] 22 Apr
Thread sync design patterns
16 25 Apr
27 Apr

Hwk 3 revision
29 Apr

Proj 3 due
Exam out
Exam due 5 May