CS3276 (CS5276) — Course Schedule

Fall 2023

While I make every effort to finalize the schedule at the beginning of the semester, there may be updates during the semester. I will communicate any changes to the schedule during lecture, on the Piazza, and on this schedule.
The readings are not required but are mainly suggestions. The textbook was more crucial in the past when Internet resources were less available. You do not need the textbook to complete this course.
Date Topic Due Readings
W 08/23/23 Course Introduction (None, first day)
M 08/28/23 Overview of Python and Cool Cool Reference Manual
W 08/30/23 Lexical Analysis PA1P (Python Implementation) Due Dragon Book Ch 3;
PL Pragmatics Ch 2.1 – 2.2
M 09/04/23 Lexical Analysis Foundations and Lexer Generators Flex Manual (especially in Python's ply package)
PL Pragmatics Ch 2.1-2.2
W 09/06/23 Parsing Basics (Grammars) PA1C (Cool implementation) Due Dragon Book Ch 4.1, 4.2;
PL Pragmatics Ch 2.3
M 09/11/23 LL Parsing (This will likely be covered by Daniel Balasubramanian. Kevin's brother is getting married.) Dragon Book Ch 4.3, 4.4;
PL Pragmatics 2.3.1-2.3.4
W 09/13/23 More Parsing (LR) PA2 Due Friday 9/15 PL Pragmatics Ch 4.8
M 09/18/23 Parser Generators, exam review Yacc or Bison Manual (especially Python's ply package)
W 09/20/23 Midterm 1
M 09/25/23 Types and Scoping Dragon Book Ch 1.6.1, 1.6.2, 1.6.5, 1.6.6, 1.6.7;
PL Pragmatics Ch 3.2.1-3.2.3, 3.6
W 09/27/23 Intro to PA4, Types, Scoping
Typchecking example code
M 10/02/23 Type Checking PA3 Due Dragon Book Ch 6.5, PL Pragmatics 4.2, 4.3, 4.6
W 10/04/23 Guest Lecture: National Security Administration GHIDRA team This lecture will be remote. The Zoom link will be posted on the Piazza. Attendance is required, either in class (I will project their presentation) or remote.
M 10/09/23 More Type Checking Dragon Book Ch 6, 6.5;
PL Pragmatics Ch 4.2, 4.3, 4.6
W 10/11/23 Program and Runtime Organization Dragon Book Ch 6.4, 6.6
M 10/16/23 Intermediate Representations Dragon Book Ch 6.9, 8.2, 8.6
PL Pragmatics Ch 5.2, 5.4, 5.6, 9.4, 9.5
W 10/18/23 Dataflow Analysis Dragon Book Ch 9.2, 9.3
M 10/23/23 Control Flow Graphs, Dataflow analysis Dragon Book Ch 9.2, 9.3
W 10/25/23 Exam 2 Review PA4 Due
M 10/30/23 Midterm 2
W 11/01/23 PA5 - Code Generation, Stack discipline, Object Layout Dragon Book Ch 7.1, 7.2, 7.4, 8.3, 8.4, 8.6;
PL Pragmatics 14.1.1, 14.2, 14.3.1
M 11/06/23 Object Layout, Stack Disciplines
W 11/08/23 Garbage Collection Dragon Book Ch. 7.5, 7.6
PL Pragmatics Ch 14.6, 14.7
M 11/13/23 Memory Hierarchy, Register Allocation PL Pragmatics Ch 15.3.2
W 11/15/23 Linking/Loading I recommend completing PA5 at this date, for a "hello, world." program.
M 11/20/23 Thanksgiving Break
W 11/22/23 Thanksgiving Break
M 11/27/23 Optimizations Wikipedia's article on Basic Blocks;
Wikipedia's article on Dataflow analysis
W 11/29/23 Optimizations (2)
M 12/04/23 Bonus lecture: career development and failure
W 12/06/23 Exam Review PA5 Due There are no extensions or late days for PA5
F 12/15/23 9AM-12PM Final Exam Absolutely all course material must be turned in.