Below follows a day-by-day calendar for the class, including reading assignments, lecture topics, and courseworks. Lecture notes will be posted immediately after each lecture.
Class meetings consist largely of discussions of readings. They are designed under the assumption that students have already read the assigned readings. If you do not read the assigned material that appears on a day of the calendar before that day's lecture, you are likely to have difficulty following the lecture and discussion.
N.B. that all assigned readings and lecture contents are examinable (unless explicitly stated otherwise by the instructor).
Monday | Tuesday | Wednesday | Thursday | Friday |
8th Jan (Class not yet started) |
9th Jan (Class not yet started) |
10th Jan Class Introduction Lecture Notes: Unassessed Coursework 1 Out: |
11th Jan x86-64 Assembly: Introduction Reading: CS:APP/3e 3.0 - 3.5 Lecture Notes: |
12th Jan |
15th Jan |
16th Jan |
17th Jan x86-64 Assembly: Control Reading: CS:APP/3e 3.6 Lecture Notes: |
18th Jan x86-64 Assembly: Control (cont'd) Unassessed Coursework 1 Due, 4 PM Unassessed Coursework 2 Out: |
19th Jan |
22nd Jan |
23rd Jan |
24th Jan x86-64 Assembly: Procedures, Data Reading: CS:APP/3e 3.7 - 3.10 Lecture Notes: |
25th Jan C Data Types, Pointers, Arithmetic; Undefined Behavior in C Reading: CS:APP/3e 2.1.2 - 2.1.3, 2.1.9, 2.2 - 2.3 Lecture Notes: |
26th Jan |
29th Jan |
30th Jan |
31st Jan Undefined Behavior (cont'd); Dynamic Memory Allocation in C Reading: CS:APP/3e 9.9, 9.11 Lecture Notes: |
1st Feb Dynamic Memory Allocation in C (cont'd) Unassessed Coursework 2 Due, 4 PM Assessed Coursework 3 Out: |
2nd Feb |
5th Feb |
6th Feb |
7th Feb Lempel-Ziv-Welch Compression Reading: LZW (Welch, 1984); UCL IS login required The Memory Hierarchy Reading: CS:APP/3e 6.0 - 6.4 Lecture Notes: |
8th Feb The Memory Hierarchy (cont'd) |
9th Feb |
12th Feb |
13th Feb |
14th Feb Reading week; no lecture today! |
15th Feb Reading week; no lecture today! |
16th Feb |
19th Feb |
20th Feb |
21st Feb CPU Caches Virtual Memory I Reading: CS:APP/3e 9.0 - 9.7 Lecture Notes: Lecture Notes: |
22nd Feb Virtual Memory II Lecture Notes: Assessed Coursework 3 Due, 4 PM Assessed Coursework 4 Out: |
23rd Feb |
26th Feb |
27th Feb |
28th Feb Virtual Memory II (cont'd) |
29th Feb Processes and Exceptions Reading: CS:APP/3e 8.1 - 8.4 Lecture Notes: |
1st Mar |
4th Mar |
5th Mar |
6th Mar Processes and Exceptions (cont'd) Reading: CS:APP/3e 8.5 - 8.7 |
7th Mar Midterm Rubric Processes II: Pipes, Signals, Non-Local Jumps Lecture Notes: Lecture Notes Assessed Coursework 4 Due, 4 PM Assessed Coursework 5 Out: |
8th Mar |
11th Mar |
12th Mar |
13th Mar Processes II: signals (cont'd) Processes: Assessing fork() Reading: A fork() in the Road |
14th Mar Processes II: signals (cont'd) |
15th Mar |
18th Mar |
19th Mar |
20th Mar System-Level I/O
Reading: CS:APP/3e 10.1 - 10.4, 10.6 - 10.12 Lecture Notes: Concurrency and Locking in C Reading: CS:APP/3e 12.3 (except 12.3.8), 12.4, 12.5 (except 12.5.5), 12.7 Lecture Notes: |
21st Mar Concurrency on x86-64; Avoiding Bugs in Threaded Code Lecture Notes: |
22nd Mar Last Day of Term 2 |
25th Mar |
26th Mar |
27th Mar Assessed Coursework 5 Due, 4 PM |
28th Mar |
29th Mar No office hours; UK Bank Holiday
|