ASSIGNMENT items are due by 11:59PM on the listed date. Read the READ items before class on the day where they appear. Homework submissions via Moodle.
W Jan 3
- [READ] Course information
- [READ] Advice
- [LAB] VS Code & mantis I recommend doing this before the first day of class if you have time.
- [SAMPLES] hello.c, args.c, character_counter.c
- Class notes
F Jan 5
- [READ] Dive Into Systems (DIS), Sections 1.1 Getting Started Programming in C, 1.2 Input/Output (printf/scanf), 1.5 Arrays and Strings, and 2.9.2 Command Line Arguments. Questions about other starter topics in C? Take a look at the rest of Chapter 1.
- [SAMPLES] output.c, strings.c,
- Class notes
Sat Jan 6
- [ASSIGNMENT] C assignment 1: select-column
M Jan 8
- [READ] 2.6 Strings and the String Library
- [READ] 2.8 Input / Output in C
- [SAMPLES] sizes.c, strings.c, charstar.c, pointers.c
- Class notes
- Slides
Tue Jan 9
- [ASSIGNMENT] C assignment 2: minigrep
W Jan 10
- [READ] 2.1 Parts of Program Memory and Scope
- [READ] 2.2 C Pointer Variables
- [READ] 2.4 Dynamic Memory Allocation
- [VIDEO] (3:11) Binky Pointer Fun Video C (Nick Parlante)
- Class notes
- Slides
Fri Jan 12
- [READ] 4.1 Number Bases and Unsigned Integers
- [READ] 4.2 Converting Between Bases
- [READ] 4.3 Signed Binary Integers
- [LAB] Debugging in VS Code
- Class notes
Sat Jan 13
- [ASSIGNMENT] C assignment 3: readline
M Jan 15
W Jan 17
Th Jan 18
- [ASSIGNMENT] Queues in C
- [VIDEO] (21:48)Notes on the queues assignment
F Jan 19
- [READ] 4.4 Binary Integer Arithmetic
- [READ] 4.6 Bitwise Operators
- [READ] 4.7 Integer Byte Order
- Class notes
- Slides
M Jan 22
- [READ] UTF-8
- Class notes
- Slides
T Jan 23
- [ASSIGNMENT] Bit operations and the UTF-8 character encoding
W Jan 24
Th Jan 25
- [QUIZ] Data representation. It's on Moodle, and you can take it as many times as you wish. You'll get your highest score out of 8.
F Jan 26
M Jan 29
- In-class exam
W Jan 31
- [LAB] Getting a feel for x86-64 assembly language. Play with this lab sometime.
- Class notes
- Slides
F Feb 2
M Feb 5
- Midterm break. Zzzzzzzzz...
W Feb 7
F Feb 9
- [VIDEO] (7:38) x86-64 array access
- [ASSIGNMENT, due 6:00PM] asm-to-C puzzles
- [LAB] Intro to gdb
- A gdb quick reference targeted at the upcoming zoo project
- Class notes
- Slides
M Feb 12
- [ASSIGNMENT, due 8:30AM on paper] Exam corrections
- [VIDEO] (29:04) The Zoo: Getting Started
- [READ] C Debugging Tools is the Dive Into Systems chapter about gdb. Take at least a quick look at it so you'll know what's in there in case you want to read more about gdb.
- Class notes
- Slides
W Feb 14
Th Feb 15
- [ASSIGNMENT] Escape from the Zoo: A Reverse Engineering Adventure
M Feb 19
W Feb 21
- [ASSIGNMENT] Exploiting Buffer Overflow
- Class notes
- Slides
F Feb 23
- [READ] 13.2. Processes
- Class notes
- Slides
M Feb 26
- [VIDEO] (31:22) Implementing a command shell, part 1
- [VIDEO] (26:05) Implementing a command shell, part 2
- Class notes
- Slides
T Feb 27
- [ASSIGNMENT] A simple command shell, part 1
W Feb 28
Sun Mar 3
- [ASSIGNMENT] A simple command shell, part 2
Mon Mar 4
Wed Mar 6
Fri Mar 8
Wed Mar 13
- [EXAM, 9:00PM] The final takehome exam