Daily Schedule

Unit 1: Bits and Bytes

Mar. 31: Lesson 1 - A Bit of an Operation
Apr. 02: Lesson 2 - It's Nice to C You
Apr. 04: Lesson 3 - Adding a Little Character
Apr. 07: Lesson 4 - It's Dangerous To Go Alone
Apr. 09: Lesson 5 - A Constructive Construction
Apr. 11: Lesson 6 - Some Helpful Pointers
Apr. 14: Lesson 7 - A Pointed Construction
Apr. 16: Lesson 8 - Where Oh Where Has My Little Byte Gone
Apr. 18: Lesson 9 - Complementary Counting
Apr. 21: Lesson 10 - What Goes Around Comes Around
Apr. 23: Lesson 11 - Levitation Station
Apr. 25: Lesson 12 - Once More, With Feeling
May. 21: Lesson 22 - Bytes, Assemble!
May. 23: Lesson 23 - What a Long, Strange Trip It's Been

Unit 2: Instruction Set Architecture / Security

Apr. 28: Lesson 13 - Register Here
Apr. 30: Lesson 14 - Getting to the Point
May. 07: Lesson 16 - Taking the Leap
May. 09: Lesson 17 - The Function of Functions
May. 21: Lesson 22 - Bytes, Assemble!
May. 23: Lesson 23 - What a Long, Strange Trip It's Been

Unit 3: Systems Sampling

May. 02: Lesson 15 - Trusting Trust
May. 12: Lesson 18 - The Best Defense is a Good Offense
May. 14: Lesson 19 - Socket Sets
May. 16: Lesson 20 - A Web of Trust
May. 19: Lesson 21 - This is not a Pipe
May. 21: Lesson 22 - Bytes, Assemble!
May. 23: Lesson 23 - What a Long, Strange Trip It's Been
May. 26: Lesson 24 - The Process of Multitasking
May. 28: Lesson 25 - Making Memories
May. 30: Lesson 26 - Remember Me
Jun. 02: Lesson 27 - A Shell of a Descriptor
Jun. 04: Lesson 28 - So Long, and Thanks for All the Fish


Labs

Lab 0: Using VS Code and mantis
Lab 1: Debugging C with GDB
Lab 2: C Strings and File I/O
Lab 3: A little data representation
Lab 4: Assembly exploration
Lab 5: Debugging x86-64 with GDB
Lab 6: Debugging the stack in x86-64 with GDB
Lab 7: Sending messages via sockets
Lab 8: Getting started with processes


Quizzes and Exams

In place of large, cumulative exams, you will have the opportunity to demonstrate your mastery of the course Learning Objectives through a series of several quizzes. Every four weeks, there will also be an “Exam Day” when you can take new versions of old quiz questions to demonstrate mastery of any missing Learning Objectives.

The final exam, which is scheduled according to the Carleton College final exam schedule, will be similar to Exam Days, except that it will contain every Quiz Learning Objective for which you have yet to demonstrate mastery.

  • Exam Day #1: Friday, April 25th (in class)
  • Exam Day #2: Friday, May 23rd (in class)
  • Final: Sunday, June 8th (3:30pm-6:00pm)