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   Starting with C  
3/25 Resources, Syllabus, Collaboration, Samples Slides, VSCode & mantis, starting C HW1: select-column
3/27 Getting Started with C Slides, More C  
3/29 HW1; Strings and Files Slides, Strings and IO HW2: minigrep
Week 2   More C  
4/1 HW2; Pointers Prep Slides, Memory HW3: readline
4/3 Binary Prep Slides, Binary and Debugging  
4/5 HW3; Structs Prep Slides, Types HW4: Queues in C
Week 3   Machine Languages  
4/8 Study! Slides, Quiz 1  
4/10 HW4; Bit Ops Prep Slides, Bit Ops HW5: Bit operations and UTF-8
4/12 Unicode Prep Slides, UTF-8, Data Rep Lab  
Week 4   Assembly  
4/15 Starting Assembly Prep; Study! Slides, Quiz 2; Compiler Explorer  
4/17 HW5; Assembly Basics Prep Slides, x86-64 assembly language HW6.1: asm-to-C puzzles
4/19 Assembly Flow Control Prep Slides, Flow Control in Assembly  
Week 5 More Assembly    
4/22 Assembly Bits and LEA Prep Slides, Quiz 3; LEA  
4/24 HW6.1; Assembly Functions Prep Slides, Functions in Assembly HW6.2: More puzzles!
4/26 Assembly Recursion Prep Slides, Recursion in Assembly  
Week 6   Reverse Engineering  
4/29   Midterm break!  
5/1 HW6.2, GDB and Arrays Prep Slides, Intro to gdb; Arrays in Assembly HW7: Escape from the Zoo
5/3 More GDB and Structs Prep Slides, GDB Assembly Lab  
Week 7   Buffer Overflow  
5/6 Study! Slides, Quiz 4  
5/8 HW7; Buffer Overflow Prep Slides, Buffer Overflows HW8: Buffer Overflow
5/10 Unix Prep Slides, Useful Unix  
Week 8   Processes, threads, and sockets  
5/13 OS and Processes Prep Slides, The OS; Getting Started with Processes Lab  
5/15 HW8; Signals and Messages Prep Slides, Intro to HW9 HW9: Command shell 1
5/17 No prep Slides, Catch up  
Week 9   Memory  
5/20 HW9 Slides, Quiz 5 HW10: Command shell 2
5/22 Memory Hierarchy Prep Slides, Locality and Memory  
5/24 HW10; Caching Prep Slides, Caching  
Week 10   Wrapping up  
5/27 Study! Slides, Quiz 6  
5/29 No prep; Submit checklist for SS exam Slides, Something fun :)  
5/31   Reading days!  
Exam Period      
Self-scheduled      
    All revisions due Monday 6/3, 9:30pm. Any request for an extension must go through the Dean of Students office as I am not otherwise permitted to consider work submitted after this time.