Paul Bodily About Courses Research Outreach Tips for Communicating Teaching Philosophy Vitae

Schedule

Aside from hyperlinked material, reading assignments refer to sections in the CS: APP3e 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 Canvas. Note that all section and problem numbers listed are specific to the hardcopy version of the book with the ISBN number as listed in the syllabus. An errata for the textbook cataloging known errors in the current version can be found here.

DateClass Period & Lecture TopicReadingAssignment
Aug 25 Syllabus, policies, business, goals, intro Join Class Discord Server
Complete get-to-know-you survey
Aug 27 Command line basics
Sep 01 C: variables, literals, loops, makefiles C tutorial (through Arrays)(online, not in book)
Sep 03 C: strings, I/O, functions, gdb C tutorial (through Command Line Arguments) Lab 1: Remote Linux Server Tutorial
Terminate your EC2 (if necessary)
Sep 08 C: arrays, structs, headers, Lab 2 Specification Lab 2 Specification
Makefiles
Get started on Lab 2
Sep 10 C: pointers, argument passing Using gdb to debug C
Sep 15 Bits and Bytes 2.0.0-2.1.3
Sep 17 Strings, Code, and Booleans 2.1.4-2.1.9 Hwk 1
Lab 2: C Calculator
Sep 22 Integer Representations 2.2.0-2.2.4 Hwk 2
Get started on Lab 3
Sep 24 More on Integer Representations, Lab 3 Specification 2.2.5-2.2.8
Lab 3 Specification
Hwk 3
Sep 29 Integer Addition and Negation 2.3.0-2.3.3 Hwk 4
Oct 01 Integer Multiplication and Division 2.3.4-2.3.8 Hwk 5
Oct 06 Floating Point 2.4.0-2.4.6 Hwk 6
Lab 3: C Bit Calculator
Oct 08 Program Encodings 3.0.0-3.1.0 (optional)
3.2.0-3.2.3
Hwk 7
Oct 13 Data Formats, Access, and Movement 3.3.0-3.4.4
Oct 15 Midterm Exam (on Canvas, closes midnight) Study guide
Oct 20 Arithmetic and Logical Operations 3.5.0-3.5.5
gdb cheat sheet
Hwk 8
Oct 22 Control Flow 3.6.0-3.6.5 Hwk 9
Oct 27 Loops and Switches3.6.6-3.6.8
note error on p. 234 (see errata)
Hwk 10
Oct 29 Bomb LabLab 4 Specification
Nov 03 Procedures3.7.0-3.7.6Hwk 11
Nov 05 Array Allocation and Access3.8.0-3.8.5 Bomb Lab Phases 1&2
(expect an email soon about setting up VPN)
Nov 10 Heterogenous Data Structures3.9.0-3.9.3 Bomb Lab Phases 3&4
Nov 12 Bomb Lab Q&A Lab 4: Bomb Lab
Nov 17 Combining Control and Data3.10.0-3.10.5
Nov 19 Attack Lab Lab 5 Specification
Complete Section 2 "Getting setup" in Lab 5
Nov 24 Fall Break
Nov 26 Fall Break
Dec 01 Attack Lab Q&A Attack Lab Phases 1
Dec 03 Locality and The Memory Hierarchy 6.2.0-6.3.2 Attack Lab Phases 2&3
Dec 08 Cache Memory 6.4.0-6.4.7 Lab 5: Attack Lab
Dec 10 Final ReviewStudy guide
Dec 17 Final (on Canvas, 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.