0019: Calendar

Detailed Class Calendar

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

10th Jan

(Class not yet started)

11th Jan

Class Introduction

Lecture Notes:
Class Introduction

Lecture Recording (via Zoom; UCL email Zoom login required)

Unassessed Coursework 1 Out:
Defusing a Binary Bomb

due 4 PM, 20th January 2022

12th Jan

13th Jan

x86-64 Assembly: Introduction

Reading: CS:APP/3e 3.0 - 3.5

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
x86-64 Intro

14th Jan

17th Jan

18th Jan

x86-64 Assembly: Control

Reading: CS:APP/3e 3.6

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
x86-64 Control

19th Jan

20th Jan

x86-64 Assembly: Control (cont'd)

Lecture Recording (2 hours; via Zoom; UCL email Zoom login required)

Unassessed Coursework 1 Due, 4 PM

Unassessed Coursework 2 Out:
Implementing a Debugging malloc

due 4 PM, 3rd February 2022

21st Jan

24th Jan

25th Jan

x86-64 Assembly: Procedures, Data

Reading: CS:APP/3e 3.7 - 3.10

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
Tips on Pointers and Casts in C

x86-64 Procedures, Data

26th Jan

27th 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 Recording (2 hours; via Zoom; UCL email Zoom login required)

Lecture Notes:
C Data Types, Pointers, Arithmetic; Undefined Behavior in C

28th Jan

31st Jan

1st Feb

Undefined Behavior (cont'd); Dynamic Memory Allocation in C

Reading: CS:APP/3e 9.9, 9.11

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
Dynamic Memory Allocation in C

2nd Feb

3rd Feb

Dynamic Memory Allocation in C (cont'd)

Lecture Recording (via Zoom; UCL email Zoom login required)

Unassessed Coursework 2 Due, 4 PM

Assessed Coursework 3 Out:
Implementing a Bit-Level LZW Compressor

due 4 PM, 24th February 2022

4th Feb

7th Feb

8th 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 Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
LZW Compression

Memory Hierarchy

9th Feb

10th Feb

The Memory Hierarchy (cont'd)

Lecture Recording (via Zoom; UCL email Zoom login required)

11th Feb

14th Feb

15th Feb

Reading week; no lecture today!

16th Feb

17th Feb

Reading week; no lecture today!

18th Feb

21st Feb

22nd Feb

CPU Caches

Virtual Memory I

Reading: CS:APP/3e 9.0 - 9.7

Lecture Recording (2 hours; via Zoom; UCL email Zoom login required)

Lecture Notes:
CPU Caches

Lecture Notes:
Virtual Memory Concepts

23rd Feb

24th Feb

Virtual Memory II

Midterm Rubric
Midterm Exam (unmarked!)

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
Virtual Memory Implementation

Assessed Coursework 3 Due, 4 PM

Assessed Coursework 4 Out:
Implementing Virtual Memory

due 4 PM, 10th March 2022

25th Feb

28th Feb

1st Mar

Virtual Memory II (cont'd)

Lecture Recording (via Zoom; UCL email Zoom login required)

2nd Mar

3rd Mar

Virtual Memory II (cont'd)

Lecture Recording (via Zoom; UCL email Zoom login required)

4th Mar

7th Mar

8th Mar

Processes and Exceptions

Reading: CS:APP/3e 8.1 - 8.4

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
Processes and Exceptions

9th Mar

10th Mar

Processes and Exceptions (cont'd)

Processes II: Pipes, Signals, Non-Local Jumps

Reading: CS:APP/3e 8.5 - 8.7

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes
Pipes and Signals

Assessed Coursework 4 Due, 4 PM

Assessed Coursework 5 Out:
Implementing a UNIX Shell

due 4 PM, 5th April 2022

11th Mar

14th Mar

15th Mar

Processes: Assessing fork()

Processes II: signals (cont'd)

Reading: A fork() in the Road

Lecture Recording (via Zoom; UCL email Zoom login required)

16th Mar

17th Mar

Processes II: signals (cont'd)

Lecture Recording (via Zoom; UCL email Zoom login required)

18th Mar

21st Mar

22nd Mar

System-Level I/O

Reading: CS:APP/3e 10.1 - 10.4, 10.6 - 10.12

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 Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
System-Level I/O

Threads and Synchronization in C

23rd Mar

24th Mar

Concurrency and Locking in C (cont'd)

Lecture Recording (via Zoom; UCL email Zoom login required)

25th Mar

Last Day of Term 2

28th Mar

29th Mar

Concurrency on x86-64; Avoiding Bugs in Threaded Code

Lecture Recording (via Zoom; UCL email Zoom login required)

Lecture Notes:
Threads in C: x86-64 and Programming Tips

30th Mar

Online Office Hours (via Zoom; UCL email Zoom login required)

31st Mar

Online Office Hours (via Zoom; UCL email Zoom login required)

1st Apr

Online Office Hours (via Zoom; UCL email Zoom login required)

4th Apr

No office hours

5th Apr

No office hours

Assessed Coursework 5 Due, 4 PM

6th Apr

No office hours

7th Apr

No office hours

8th Apr

No office hours