Reading assignments refer to sections in the How to Think Like a Computer Scientist: Interactive Edition book. Unless otherwise specified, reading quizzes and homework assignments are due by the time class starts on the day on which they are listed and labs are due by 11:00 pm on the day on which they are listed. All quizzes, assignments, and labs are administered via Moodle.
Date | Class Period & Lecture Topic | Reading | Assignment |
---|---|---|---|
Aug 26 | Syllabus, policies, business, goals, intro | Join Class Discord Server Complete availability survey Complete get-to-know-you survey |
|
Aug 28 | Command line basics | Finish through "Configuring a server" on Lab 1 | |
Sep 02 | C: variables, literals, loops, makefiles | C tutorial (through Arrays)(online, not in book) | |
Sep 04 | C: strings, I/O, functions, gdb | C tutorial (through Command Line Arguments) | Lab 1: EC2 Tutorial |
Sep 09 | C: arrays, structs, headers, Lab 2 Specification | Lab 2 Specification Makefiles |
Get started on Lab 2 |
Sep 11 | C: pointers, argument passing | Using gdb to debug C | |
Sep 16 | Bits and Bytes | 2.0.0-2.1.3 | |
Sep 18 | Strings, Code, and Booleans | 2.1.4-2.1.9 | Hwk 1 Lab 2: C Calculator |
Sep 23 | Integer Representations | 2.2.0-2.2.4 | Hwk 2 Get started on Lab 3 |
Sep 25 | More on Integer Representations, Lab 3 Specification | 2.2.5-2.2.8 Lab 3 Specification |
Hwk 3 |
Sep 30 | Integer Addition and Negation | 2.3.0-2.3.3 | Hwk 4 |
Oct 02 | Integer Multiplication and Division | 2.3.4-2.3.8 | Hwk 5 |
Oct 07 | Floating Point | 2.4.0-2.4.6 | Hwk 6 Lab 3: C Bit Calculator |
Oct 09 | Program Encodings | 3.0.0-3.1.0 (optional) 3.2.0-3.2.3 |
Hwk 7 |
Oct 14 | Data Formats, Access, and Movement | 3.3.0-3.4.4 | |
Oct 16 | Midterm Exam (on Moodle, closes midnight) | Study guide | |
Oct 21 | Arithmetic and Logical Operations | 3.5.0-3.5.5 gdb cheat sheet |
Hwk 8 |
Oct 23 | Control Flow | 3.6.0-3.6.5 | Hwk 9 |
Oct 28 | Loops and Switches | 3.6.6-3.6.8 note error on p. 234 (see errata) | Hwk 10 |
Oct 30 | Bomb Lab | Lab 4 Specification | |
Nov 04 | Spring Break | ||
Nov 06 | Spring Break | ||
Nov 11 | Procedures | 3.7.0-3.7.6 | Hwk 11 |
Nov 13 | Array Allocation and Access | 3.8.0-3.8.5 | Bomb Lab Phases 1&2 (expect an email soon about setting up VPN) |
Nov 18 | Heterogenous Data Structures | 3.9.0-3.9.3 | Bomb Lab Phases 3&4 |
Nov 20 | Bomb Lab Q&A | Lab 4: Bomb Lab | |
Nov 25 | Combining Control and Data | 3.10.0-3.10.5 | |
Nov 27 | Attack Lab | Lab 5 Specification Complete Section 2 "Getting setup" in Lab 5 |
|
Dec 02 | Attack Lab Q&A | Attack Lab Phases 1 | |
Dec 04 | Locality and The Memory Hierarchy | 6.2.0-6.3.2 | Attack Lab Phases 2&3 |
Dec 09 | Cache Memory | 6.4.0-6.4.7 | Lab 5: Attack Lab |
Dec 11 | Final Review | Study guide | |
Dec 16 | Final (on Moodle, closes midnight) | Study guide |
The schedule is subject to change.
For students interested in learning more, I highly recommend Chapter 5 from the textbook on "Optimizing Program Performance". It will pick up from where we have left off in this class and more specifically elaborate on how the information we have discussed is directly applicable as a programmer.