ASSIGNMENTs are due on the day in which they appear below. Due time is 5:00PM if the due date is a Friday, or 11:59PM otherwise. Do READING/VIDEO items by class time on the date where they appear. LABs will happen during class. You will submit homework via Moodle.
M Sep 15
- [READ] Course information
- [READ] Advice
- Join our class Slack workspace and introduce yourself in #general
- [LAB] JupyterHub & mantis Do this before the first day of class if you have time.
- [SAMPLES] Read through and experiment with these simple C programs: hello.c, output.c, and bitwise.c
- Class notes
W Sep 17
- [READ] Dive Into Systems (DIS), section 1.1 Getting Started Programming in C
- [READ] DIS 4.6 Bitwise Operators
- [READ] (or maybe [SKIM]) the DIS sections about print statements, if statements, functions, and arrays. Questions about other starter topics in C? Take a look at the rest of Chapter 1.
- Class notes
- Slides
Fri Sep 19
Sat Sep 20
- [ASSIGNMENT] bits and bytes in C
Mon Sep 22
Tue Sep 23
- Grace period: you may submit bits and bytes in C through the end of today
Wed Sep 24
- [READ] 4.3 Signed Binary Integers
- [READ] 2.8 I/O in C,
up through the section about
printf - [LAB] Debugging C programs with gdb. Try this before this day, when we'll discuss it in class.
- Class notes
- Slides
Fri Sep 26
- [READ] 2.6 Strings and the String Library
- [READ] UTF-8
- [SAMPLES] strings.c, printing-bytes.c, args.c
- Class notes
- Slides
Sun Sep 28
- [ASSIGNMENT] More bits and bytes: fun with character encodings
Mon Sep 29
- [SAMPLES] memory.c
- Class notes
- Slides
W Oct 1
- Grace period: you may submit More bits and bytes through the end of today
- [LAB] Playing with memory.c (about sample program memory.c).
- Class notes
- Slides
F Oct 3
M Oct 6
W Oct 8
- [QUIZ] Data representation. See Moodle. You may take this as many times as you like through the end of today.
- Class notes
- Slides
F Oct 10
- In-class closed-book exam. Have a good weekend!
M Oct 13
W Oct 15
F Oct 17
- [ASSIGNMENT] Assembly & C; three puzzles + one reverse-engineered puzzle
- Class notes
- Slides
M Oct 20
- Midterm break. Zzzzz....
W Oct 22
- [ASSIGNMENT, due 8:30AM on paper] (Optional) exam corrections
- [ASSIGNMENT] Assembly & C: six of seven puzzles plus two reverse-engineered puzzles
- Class notes
- Slides
F Oct 24
- [VIDEO] (29:04) The Zoo: Getting Started
- [READ] C Debugging Tools is the Dive Into Systems chapter about gdb. Skim through this section so you'll know what kind of help the textbook is offering you.
- [SAMPLE] minizoo.c (see compilation instructions in the comment at the top)
- Class notes
- Slides
M Oct 27
W Oct 29
F Oct 31 (boo!)
M Nov 3
T Nov 4
- [ASSIGNMENT] Exploiting buffer overflow
W Nov 5
- [LAB] Processes
- Class notes
F Nov 7
- [VIDEO] (31:21) Command shell, part 1 (fork, exec, argv/argc)
- [VIDEO] (26:05) Command shell, part 2 (redirection)
- [SAMPLES] Some programs relevant to the command shell assignment. forktest.c, exectest.c, argv.c, exectest_with_args.c, files.c, redirect.c, pipe.c, and shell208.c
- Class notes
M Nov 10
W Nov 12
- [ASSIGNMENT] A simple command shell
- Class notes
- Slides