Schedule
All readings are from Computer Systems, a programmer’s perspective, by Randal E. Bryant and David R. O’Hallaron unless otherwise stated.
This semester, the intended flow of a week of class is this:
- Throughout the week: there will be assigned readings, video lectures, and discussion questions.
- Mondays: there is a synchronous, online, required lab session with a short activity and a Gradescope quiz based on that activity due on that day at 5pm. Check your schedule for the time of your lab session; the lab will take place via Blackboard Collaborate.
- Tuesdays: open Q&A office hours in MS Teams. Video lectures for the week premiere. I will keep them in this YouTube playlist.
- Thursdays: Content quizzes and discussion question responses are due at noon. I will go over discussion question answers in class. Discussion questions are loosely based on exam question style, structure, and content.
All assignment turnins are through the course gradescope page.
If I find or mention additional useful videos & web resources I’ll add them to this google doc (UIC login required). Anyone can edit it so feel free to add resources you feel are helpful.
-
EventDateDescriptionContentNotes
-
LabMonday
08/24/2020week 1 lab -
Weekly topicsWeek of Monday
08/24/2020MIT’s missing semester module goes into these topics in a lot more detail.
For git specifically, Dangit, git can be quite helpful. -
LabMonday
08/31/2020week 2 lab -
HomeworkMonday
08/31/2020homework 1 released -
Weekly topicsWeek of Monday
08/31/2020Linking & Symbol resolution- Book: 7.1 - 7.9
- intro to linking
- symbol resolution
- symbol relocation
-
Weekly topicsWeek of Monday
09/07/2020Loading executables, PIC- Book: 7.9-7.12
- Why dynamically link?
- Loading, using the GOT and PLT
Labor day week, no lab
-
DueFriday
09/11/2020 5:00 PMhomework 1 due -
HomeworkMonday
09/14/2020homework 2 released -
Weekly topicsWeek of Monday
09/14/2020Control flow- Book: 8.1-8.2
- Introduction
- Exceptions
- Processes
-
LabMonday
09/14/2020week 4 lab -
ExamTuesday
09/15/2020 6:00 PMChapter 7 exam**Does not** include content from the Tricks of the Trade Module -
Weekly topicsWeek of Monday
09/21/2020System Calls- Book: 8.3-8.4
- strace zine
- fork/exec/posix_spawn/clone
-
LabMonday
09/21/2020week 5 lab -
Weekly topicsWeek of Monday
09/28/2020Signals & Shells- Book: 8.5
- Signals
-
LabMonday
09/28/2020week 6 lab -
DueMonday
09/28/2020 11:59 PMhomework 2 due -
HomeworkFriday
10/02/2020homework 3 released -
Weekly topicsWeek of Monday
10/05/2020Files- Book: 10.1-10.8
- file descriptors
- interacting with files
-
LabMonday
10/05/2020week 7 lab -
LabMonday
10/12/2020week 8 lab -
Weekly topicsWeek of Monday
10/12/2020Virtual Addressing, paging, and caching- Book: 9.1-9.4
- virtual memory intro
- the magic of the page fault
-
ExamTuesday
10/13/2020 6:00 PMChapters 8 & 10 exam -
DueWednesday
10/14/2020 11:59 PMhomework 3 due -
Weekly topicsWeek of Monday
10/19/2020Memory management, address translation- Book: 9.5-9.6
- using page tables
- multi level page tables
-
HomeworkWednesday
10/21/2020homework 4 released -
LabMonday
10/26/2020week 10 lab -
Weekly topicsWeek of Monday
10/26/2020Dynamic Memory Allocation & Garbage collection -
LabMonday
11/02/2020week 11 lab -
Weekly topicsWeek of Monday
11/02/2020Memory mapping, review- Book: 9.7-9.8
- mmap
-
ExamThursday
11/05/2020 6:00 PMChapter 9 exam -
Weekly topicsWeek of Monday
11/09/2020The design behind the Internet -
DueMonday
11/09/2020 11:59 PMhomework 4 due -
HomeworkFriday
11/13/2020homework 5 released -
LabMonday
11/16/2020week 13 lab -
Weekly topicsWeek of Monday
11/16/2020Sockets, Connections, HTTP- Book: 11.4 - 11.5
- The Socket API
- The Basics of HTTP
-
ExamThursday
11/19/2020 6:00 PMChapter 11 exam -
Weekly topicsWeek of Monday
11/23/2020Concurrency concepts- Book: 12.0-12.3
-
DueMonday
11/23/2020 11:59 PMhomework 5 due -
HomeworkThursday
11/26/2020homework 6 released -
Weekly topicsWeek of Monday
11/30/2020Semaphores- Book: 12.4-12.5
-
ExamThursday
12/03/2020 6:00 PMChapter 12 exam -
DueFriday
12/04/2020 4:59 PMhomework 6 due