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).

Tuesday Thursday

8th Jan

Class Introduction

Lecture Notes:
Class Introduction

Coursework 1 Out:
Defusing a Binary Bomb

due 1:05 PM, 17th January 2019

10th Jan

x86-64 Assembly: Introduction

Reading: CS:APP/3e 3.0 - 3.5

Lecture Notes:
x86-64 Intro

15th Jan

x86-64 Assembly: Control

Reading: CS:APP/3e 3.6

Lecture Notes:
x86-64 Control

17th Jan

x86-64 Assembly: Procedures, Data

Reading: CS:APP/3e 3.7 - 3.10

Lecture Notes:
x86-64 Procedures, Data

Coursework 1 Due, 1:05 PM

Coursework 2 Out:
Implementing a Debugging malloc

due 1:05 PM, 31st January 2019

22nd 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:
Tips on Pointers and Casts in C
C Data Types, Pointers, Arithmetic; Undefined Behavior in C

24th Jan

Dynamic Memory Allocation in C

Reading: CS:APP/3e 9.9, 9.11

Lecture Notes:
Dynamic Memory Allocation in C

29th Jan

The Memory Hierarchy

Reading: CS:APP/3e 6.0 - 6.4

Lecture Notes:
Memory Hierarchy

31st Jan

The Memory Hierarchy (cont'd)

Coursework 2 Due, 1:05 PM

Coursework 3 Out:
Implementing a Bit-Level LZW Compressor

due 1:05 PM, 21st February 2019

5th Feb

Lempel-Ziv-Welch Compression

Reading: LZW (Welch, 1984); UCL IS login required

Lecture Notes:
LZW Compression

7th Feb

CPU Caches

Midterm Rubric

Lecture Notes:
CPU Caches
Midterm Prep

12th Feb

Reading week; no lecture today!

14th Feb

Reading week; no lecture today!

19th Feb

Virtual Memory I

Reading: CS:APP/3e 9.0 - 9.7

Lecture Notes:
Virtual Memory Concepts

21st Feb

Midterm Exam

Coursework 3 Due, 1:05 PM

Coursework 4 Out:
Implementing Virtual Memory

due 5:05 PM, 8th March 2019

26th Feb

Virtual Memory II

Lecture Notes:
Virtual Memory Implementation

28th Feb

Processes and Exceptions

Reading: CS:APP/3e 8.1 - 8.4

Lecture Notes:
Processes and Exceptions

5th Mar

Processes and Exceptions (cont'd)

7th Mar

Processes II: Pipes, Signals, Non-Local Jumps

Reading: CS:APP/3e 8.5 - 8.7

Lecture Notes:
Pipes and Signals

Coursework 4 Due, 5:05 PM TOMORROW, 8th March 2019

Coursework 5 Out:
Implementing a UNIX Shell

due 5:05 PM, 22nd March 2019

12th Mar

System-Level I/O

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

Lecture Notes:
System-Level I/O

14th Mar

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:
Threads and Synchronization in C

19th Mar

Concurrency on x86-64; Threads Programming Tips

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

21st Mar

Concurrency on x86-64; Threads (cont'd)

Coursework 5 Due, 5:05 PM TOMORROW, 22nd March 2019