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

Schedule

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.

DateClass Period & Lecture TopicReadingAssignment
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 Switches3.6.6-3.6.8
note error on p. 234 (see errata)
Hwk 10
Oct 30 Bomb LabLab 4 Specification
Nov 04 Spring Break
Nov 06 Spring Break
Nov 11 Procedures3.7.0-3.7.6Hwk 11
Nov 13 Array Allocation and Access3.8.0-3.8.5 Bomb Lab Phases 1&2
(expect an email soon about setting up VPN)
Nov 18 Heterogenous Data Structures3.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 Data3.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 ReviewStudy 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.