Schedule for CSC 2/454, Fall 2025

The following is my best guess as to the schedule for this semester.
I will do my best to keep it up to date if things change.
I encourage you to check back here on a regular basis. 

PLP refers to the textbook.  CS refers to the companion site

Click on the unit name to see my lecture notes.

Unit Topics Reading (to be completed
before class)
Assignments (handed out
or [where indicated] due)




Introduction
     Mon. Aug. 25 Introduction PLP 1.0–1.5 T0: administration;
A0: Unix tools
     Wed. Aug. 27 Structure of a compiler PLP 1.6–1.7 T0 due;
A1/T1: comparing languages;
Q1 and T1 due Friday evening
     (Mon. Sep. 1 Labor Day)




Syntax
     Wed. Sep. 3 Review of scanning and of CFGs PLP 2.0–2.2; CS 2.4.0–2.4.1
     Mon. Sep. 8 Top-down and bottom-up parsing; recursive descent PLP 2.3.0–2.3.2
     Wed. Sep. 10 Table-driven LL(1) parsing; error recovery PLP 2.3.3, 2.5; CS 2.3.5 (pp. 1–6) Q2 due




Names
     Mon. Sep. 15 Binding time, scope rules PLP 3.0–3.4 A1 due Tuesday evening
     Wed. Sep. 17 Binding rules, separate compilation PLP 3.5–3.9; CS 3.8 A2/T2: table-driven parsing and error recovery;
Q3 due;
T2 due Friday evening




Semantics
     Mon. Sep. 22 Syntax trees, action routines PLP 4.0–4.2
     Wed. Sep. 24 Formal semantics PLP 4.3–4.5 (skim), 4.7 Q4 due




Functional programming
     Mon. Sep. 29 Intro to OCaml
PLP 11.0–11.2, 7.4–7.5, 8.6, 11.4
     Wed. Oct. 1 Evaluation order, higher-order functions PLP 11.5–11.6, 11.8–11.9 Q5 due;
A2 due Sunday evening




Control flow
     Mon. Oct. 6 Expressions, sequencing, and selection PLP 6.0–6.4




     Wed. Oct. 8 Midterm Exam (in class)
 
     (Mon. Oct. 13 Fall Break)




     Wed. Oct. 15 Iteration and recursion PLP 6.5–6.8
A3/T3: interpretation;
Q6 due;
T3 due Friday evening




Type Systems
     Mon. Oct. 20 Type systems, type checking PLP 7.0–7.2
     Wed. Oct. 22 Polymorphism/Generics PLP 7.3, 7.6; CS 7.3.5 Q7 due




Subroutines
     Mon. Oct. 27 Stack management; parameter passing PLP 9.0–9.3
     Wed. Oct. 29 Exceptions, events, & asynchronous programming PLP 9.4, 9.6–9.8 Q8 due




Concurrency
     Mon. Nov. 3 Threads PLP 13.0–13.2.3, 9.5, 13.2.4
     Wed. Nov. 5 Synchronization PLP 13.3
     Mon. Nov. 10 Language mechanisms PLP 13.4, 13.6 Q9 due;
A3 due Tuesday evening




Composite Types
     Wed. Nov. 12 Records and arrays PLP 8.0–8.4 A4/T4: concurrency;
T4 due Sunday evening
     Mon. Nov. 17 Pointers, references, and dynamic storage management PLP 8.5, 8.8 Q10 due




Objects and Scripting
     Wed. Nov. 19 Scoping; constructors & destructors; virtual methods PLP 10.0–10.5, 10.8
     Mon. Nov. 24 Pattern matching; scripting objects PLP 14.0–14.1, 14.4–14.5 Q11 due
 
     (Wed. Nov. 26 Thanksgiving Break)




Code generation and run-time systems
     Mon. Dec. 1 Code generation, assembly PLP 15.0–15.3, 15.5
     Wed. Dec. 3 Linking; the JVM PLP 15.6, 16.0–16.1.1 Q12 due




     Mon. Dec. 8 Last day of class: questions, final exam prep.  A4 due Wednesday evening




     Sun. Dec. 14 Final exam, 12:30–3:30 pm
(the official time slot, in our usual room)


Back to the course home page

Last Change: 06 August 2025 / Michael Scott's email address