CS 0x15F Systems Programming (Fall 2022)

Instructor: Dr Nik Sultana, Department of Computer Science, Illinois Institute of Technology
TAs: Caitlin Davitt (cdavitt@hawk),  Gauri Kumari (gkumari@hawk),  Kirtan Shetty (kshetty11@hawk),  Alexander Wolosewicz (awolosewicz@hawk).
Lecture Time: TR 08:35-09:50 CT    Lecture Location: SB 104
Lab Time: M 09:00-09:50 CT    Lab Locations: SB 112{J/E/F} / SB 108
Office Hours:
    Nik: Mondays at 08:00-09:00 (: Away on 11/7 and 11/14)
    Caitlin: Tuesdays at 14:00-16:00
    Kirtan: Wednesdays at 08:00-10:00
    Alexander: Thursdays at 11:30-13:30
    Gauri: Fridays at 20:00-22:00

Announcements: On Blackboard.
Course content (slides, lab assignments) : This page.
Discussion and Q&A: At #cs351 on IIT's Discord server.
Grading: Labs (50%), Mid-term exam (25%), Final exam (25%).
Books and material:  Required: Computer Systems: A Programmer's Perspective (3rd Edition),  Recommended: (K&R) The C Programming Language,  Recommended: https://missing.csail.mit.edu/,  Recommended: other syllabus-related resources.
   Note that you can reserve the required textbook (CS:APP3e) and the recommended textbook (K&R) at the IIT library.
Policies: See the syllabus & policies page.
Cohort-scale feedback: exam.

Calendar

MondayTuesday WednesdayThursday Friday
Aug 22
Aug 23
LEC 1: Introduction
Preparation: Read CS:APP Chapter 1
Aug 24
Aug 25
LEC 2: C and x86_64 toolchains
Preparation: Read K&R Chapter 1,
and work through Ray Toal's NASM tutorial.

Aug 26
Aug 29
LAB
Aug 30
LEC 3: Bits, Bytes, and Ints: Part 1
Preparation: Read CS:APP 2.1
Assigned: Lab 1: Preliminaries
Aug 31
Sep 01
LEC 4: Bits, Bytes, and Ints: Part 2
Preparation: Read CS:APP 2.2-2.3
Sep 02
Sep 05
Labor Day
Sep 06
LEC 5: Floating Point
Preparation: Read CS:APP 2.4
Sep 07
Sep 08
LEC 6: Machine Prog: Basics
Preparation: Read CS:APP 3.1-3.5
Sep 09
Sep 12
LAB
DUE: Lab 1 (Preliminaries)
Sep 13
LEC 7: Machine Prog: Control
Preparation: Read CS:APP 3.6
Assigned: Lab 2: Datalab and Data Representations
Sep 14
Sep 15
LEC 8: Machine Prog: Procedures
Preparation: Read CS:APP 3.7
Sep 16
Sep 19
LAB
Sep 20
LEC 9: Machine Prog: Data
Preparation: Read CS:APP 3.8-3.9
Sep 21
Sep 22
LEC 10: Machine Prog: Advanced
Preparation: Read CS:APP 3.10
Sep 23
Sep 26
LAB

DUE: Lab 2 (Data lab)
Sep 27
LEC 11: C review
Preparation: Practice CS:APP and K&R exercises.
Come prepared with questions.

Sep 28
Sep 29
LEC 12: Linking
Preparation: Read CS:APP 7
Sep 30
Oct 03
LAB
Oct 04
LEC 13: The Memory Hierarchy
Preparation: Read CS:APP 6.1-6.3
Assigned: Lab 3: Cache lab
Oct 05
Oct 06
LEC 14: Cache Memories
Preparation: Read CS:APP 6.4-6.7
Oct 07
Oct 10
Fall Break Day
Oct 11
LEC 15: Exam review
Preparation: Revise CS:APP 1-3,6,7
Come prepared with questions.

Oct 12
Oct 13
Mid-term Exam
Scope: Lectures 1-15.
Oct 14
Oct 17
LAB
Oct 18
LEC 16: ECF: Exceptions & Processes
Preparation: Read CS:APP 8.1-8.4
Oct 19
Oct 20
LEC 17: ECF: Signals
Preparation: Read CS:APP 8.5-8.8
Oct 21
Oct 24
LAB
DUE: Lab 3 (Cache lab)
Oct 25
LEC 18: System Level I/O
Preparation: Read CS:APP 10
Assigned: Lab 4: Shell lab
Oct 26
Oct 27
LEC 19: Virtual Memory: Concepts
Preparation: Read CS:APP 9.1-9.6
Oct 28
Oct 31
LAB
Nov 01
LEC 20: Virtual Memory: Systems
Preparation: Read CS:APP 9.7-9.8
Nov 02
Nov 03
LEC 21: Storage Allocation: Basic
Preparation: Read CS:APP 9.9
Nov 04
Nov 07
LAB
DUE: Lab 4 (Shell lab)
Nov 08
LEC 22: Storage Allocation: Advanced
Preparation: Read CS:APP 9.9-9.11
Assigned: Lab 5: Malloc lab
Nov 09
Nov 10
LEC 23: Network Programming: Part 1
Preparation: Read CS:APP 11.1-11.4
Nov 11
Nov 14
LAB
Nov 15
LEC 24: Network Programming: Part 2
Preparation: Read CS:APP 11.5-11.6
Nov 16
Nov 17
LEC 25: Concurrent Programming
Preparation: Read CS:APP 12.1-12.3
Nov 18
Nov 21
LAB
Nov 22
LEC 26: Synchronization: Basic
Preparation: Read CS:APP 12.4, 12.5.1-3
Nov 23
Thanksgiving Break
Nov 24
Thanksgiving Break
Nov 25
Thanksgiving Break
Nov 28
LAB
DUE: Lab 5 (Malloc lab)
Nov 29
LEC 27: Synchronization: Advanced
Preparation: Read CS:APP 12.5.4-5, 12.7
Nov 30
Dec 01
LEC 28: Exam review
Preparation: Revise CS:APP 1-3,6-12
Come prepared with questions.

Dec 02