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.
M Sep 11
- [READ] Course information
- [READ] Advice
- [LAB 9/11] VS Code & mantis Do this by the end of the day. We won't spend class time on actually doing this lab, though I'll give you a little guidance and field questions about it Wednesday and Friday.
- [SAMPLES] hello.c, character_counter.c
- Class notes
W Sep 13
- [READ] Bryant & O'Halloran 1.1-1.4, 2.1
- [SAMPLES] output.c, strings.c, args.c, arrays2d.c
- Class notes
- Slides
F Sep 15
- [READ] Bryant & O'Halloran 2.2-2.3
- [READ] Pointer basics (Stanford)
- [VIDEO] (3:11) Binky Pointer Fun Video C (Nick Parlante)
- [SAMPLES] sizes.c, charstar.c, pointers.c
- [ASSIGNMENT 9/15] Starting C
- Class notes
M Sep 18
- [VIDEO] (21:48) The queues assignment
- [VIDEO] (16:30) C header files (how the compiler treats queue.h versus queue.c)
- [LAB] In class today. Debugging with VS Code
- Class notes
- Slides
W Sep 20
- [LAB] More debugging in VS Code
- [ASSIGNMENT 9/21] Queues in C
- Class notes
F Sep 22
- [LAB] In class today. Data representation, part 1: characters
- Class notes
- Slides
M Sep 25
- [READ] Review sections 2.1.6-2.1.9 of Bryant & O'Halloran on bitwise and logical operations in C
- [READ] An Introduction to Character Encodings (Ravi Suresh Mashru)
- [READ] After you read the previous article, see if you can make sense of the encoding chart on the Wikipedia page for UTF-8. This will be important for the current programming assignment.
- Class notes
- Slides
W Sep 27
- [ASSIGNMENT 9/28] Bits & character encodings
- [LAB] Give this a try before Friday. Data representation, part 2: integers
- Class notes
- Slides
F Sep 29
M Oct 2
- [Quiz 10/2 CANCELED; SEE SLACK FOR DETAILS] Quiz: C & data representation.
- Class notes (this includes a study guide for the exam)
- Slides
W Oct 4
F Oct 6
- In-class exam
M Oct 9
- [READ] Sections 3.1-3.4 of Bryant & O'Halloran. In general, all of Chapter 3 will be a good reference for concepts during the next few weeks, but you'll also use online reference materials for some of the day-to-day details. Don't read Chapter 3 for memorization—read it for ideas.
- [LAB] Try this Getting started mapping C to i86_64 assembly
- Class notes
- Slides
W Oct 11
F Oct 13
M Oct 16
- Midterm break. Have fun!
W Oct 18
- [ASSIGNMENT 10/18] asm to C puzzles
- Class notes
- Slides
F Oct 20
- [LAB] Intro to gdb
- A gdb quick reference targeted at the zoo project
M Oct 23
- [VIDEO] (29:04) The Zoo: Getting Started
W Oct 25
- [ASSIGNMENT 10/25] The Moose on the Loose: The Great Escape. (Your CS friends may have mentioned "the bomb assignment". This is that one, with a new story involving fewer explosions.)
- Class notes
- Slides
F Oct 27
M Oct 30
- [ASSIGNMENT 10/31] Exploiting buffer overflow
- [READ] Some advice for the buffer overflow assignment
- Class notes
- Slides
W Nov 1
F Nov 3
M Nov 6
- [VIDEO] (31:22) Implementing a command shell, part 1
- [VIDEO] (26:05) Implementing a command shell, part 2
- [ASSIGNMENT 11/7] Implementing a command shell, part 1
- Class notes
- Slides
W Nov 8
- [ASSIGNMENT 11/11] Implementing a command shell, part 2
- Class notes
F Nov 10
M Nov 13
W Nov 15
- [EXAM, 5:00PM Monday, 11/20] Final exam
- [SURVEY] Please fill out this 1-question survey about your C background before taking this class. The CS department is working on ways to improve students' introduction to C in both CS208 and CS251, and your answers to this question will help. Thanks!
- Class notes
- Slides
F Nov 17
- Reading day