Syllabus

This is a rough schedule of topics for each day and the release and due dates for each homework assignment.

Class topics and homework information may change over the course of the term. Please treat this schedule as a rough guide for seeing what we’ll be focusing on, and expect that there will be shifts as the term progresses. However, I will put all relevant links on this page, so consider this a quick reference for what we have seen so far (that is easier to search than Moodle). Many of the links for future content will be invalid until we get closer to that date.

Preparation should be completed before the class day that they are listed. Class is structured expecting that you have completed the preparation activities and responded to them on Moodle.

DIS refers to Dive Into Systems.

Date Homework/Preparation Due In Class Homework Out
Week 1   Bits of C  
9/15 Logistics Prep Slides, Bit Ops and C HW1: Bits and Bytes
9/17 Bits and C Prep Slides, Logistics and Debugging with GDB Lab  
9/19 Unicode Prep, HW1 Slides, UTF-8 HW2: Character Encodings
Week 2   More C  
9/22 Strings and Arrays Prep Slides, Arrays and Strings, String Rep Lab  
9/24 HW2; Structs Prep Slides, Structs and Files Lab HW3: String Things
9/26 Pointers Prep Slides, Memory and Pointers Lab  
Week 3   Numbers  
9/29 Study! Slides, Exam 1  
10/1 Dynamic Memory Prep Slides, Dynamic Memory Lab  
10/3 HW3; Signed Ints Prep Slides, Signed integers HW4: Queues in C
Week 4   Starting Assembly  
10/6 Integer Overflow Prep Slides, Overflow  
10/8 Floats Prep Slides, Fractions and floating point  
10/10 HW4; Assembly Basics Prep Slides, Assembly Basics HW5: asm-to-C puzzles
Week 5 More Assembly    
10/13 lea Prep Slides, mov and lea, Assembly Exploration Lab  
10/15   Slides, Exam 2  
10/17 HW5, Trusting Trust Prep Slides, Trusting Trust HW6: Escape from the Zoo
Week 6   Reverse Engineering  
10/20   Midterm break!  
10/22   Slides, Condition codes  
10/24   Slides, Stack and functions  
Week 7   Buffer Overflow  
10/27   Slides, Exam 3  
10/29 HW6; Buffer Overflow Prep Slides, Buffer Overflows HW7: Buffer Overflow
10/31 Unix Prep Slides, File systems and Unix  
Week 8   Processes, threads, and memory  
11/3 OS and Processes Prep Slides, Processes; Getting Started with Processes Lab  
11/5 HW7; Signals and Messages Prep Slides, Forks and Pipes HW8: Simple Command Shell
11/7 Caching Prep Memory Hierarchy Prep Slides, Caching  
Week 9   Caches  
11/10   Slides Exam 4  
11/12 HW8; Slides, Cache aware code  
11/14   Slides, Networking basics  
Week 10   Wrapping up  
11/17 How DNS Works Slides, IP and DNS  
11/19 Study; Submit checklist for SS exam Slides, Mini-exam, Review All revisions due 10pm
11/21   Reading days!  
Exam Period      
Self-scheduled