3007: 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

9th Jan

Class Introduction

Lecture Notes:
Class Introduction

Coursework 1 Out:
Defusing a Binary Bomb

due 1:05 PM, 18th January 2018

11th Jan

x86-64 Assembly: Introduction

Reading: CS:APP/3e 3.0 - 3.5

Lecture Notes:
x86-64 Intro

16th Jan

x86-64 Assembly: Control

Reading: CS:APP/3e 3.6

Lecture Notes:
x86-64 Control

18th 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, 1st February 2018

23rd 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:
C Data Types, Pointers, Arithmetic; Undefined Behavior in C

25th Jan

Dynamic Memory Allocation in C

Reading: CS:APP/3e 9.9, 9.11

Lecture Notes:
Dynamic Memory Allocation in C

30th Jan

The Memory Hierarchy

Reading: CS:APP/3e 6.0 - 6.4

Lecture Notes:
Memory Hierarchy

1st Feb

CPU Caches

Lecture Notes:
CPU Caches

Coursework 2 Due, 1:05 PM

Coursework 3 Out:
Implementing a Bit-Level LZW Compressor

due 1:05 PM, 22nd February 2018

6th Feb

CPU Caches (cont'd)

Lempel-Ziv-Welch Compression

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

Lecture Notes:
LZW Compression

8th Feb

Midterm Rubric

Virtual Memory I

Reading: CS:APP/3e 9.0 - 9.7

Lecture Notes:
Midterm Prep
Virtual Memory Concepts

13th Feb

Reading week; no lecture today!

15th Feb

Reading week; no lecture today!

20th Feb

Virtual Memory II

Lecture Notes:
Virtual Memory Implementation

22nd Feb

Midterm Exam

Coursework 3 Due, 1:05 PM

Coursework 4 Out:
Implementing Virtual Memory

due 6:05 PM, 9th March 2018

27th Feb

Linking

Reading: CS:APP/3e 7 (whole chapter)

Lecture Notes:
Linking

1st Mar

Linking (cont'd)

6th Mar

Processes and Exceptions

Reading: CS:APP/3e 8.1 - 8.4

Lecture Notes:
Processes and Exceptions

8th Mar

Processes and Exceptions (cont'd)

Coursework 4 Due TOMORROW, 9th Mar, 6:05 PM

Coursework 5 Out:
Implementing a UNIX Shell

due 6:05 PM GMT, 23rd March 2018

13th Mar

Processes II: Pipes, Signals, Non-Local Jumps

Reading: CS:APP/3e 8.5 - 8.7

Lecture Notes:
Pipes and Signals

15th Mar

System-Level I/O

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

Lecture Notes:
System-Level I/O

20th 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

22nd Mar

Concurrency on x86-64; Threads Programming Tips

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

Coursework 5 Due TOMORROW, 23rd Mar, 6:05 PM GMT