Schedule for CSC 2/454, Fall 2022

The following is my best guess as to the schedule for this fall.
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
     Wed. Aug. 31 Introduction PLP 1.0–1.5 T0: administration;
A0: Unix tools
     (Mon. Sep. 5 Labor Day)
 
     Wed. Sep. 7 Structure of a compiler PLP 1.6–1.7 T0 due; Q1 due;
A1: comparing languages;
T1 due Friday evening




Syntax
     Mon. Sep. 12 Review of scanning and BNF PLP 2.0–2.2; CS 2.4.0–2.4.1
     Wed. Sep. 14 Top-down and bottom-up parsing; recursive descent PLP 2.3.0–2.3.2; CS 2.3.5 (pp. 1–6)
     Mon. Sep. 19 Error recovery, table-driven LL(1) parsing PLP 2.3.3; CS 2.3.5 (except pp. 10–12) Q2 due




Semantics
     Wed. Sep. 21 Static analysis, action routines PLP 4.0–4.5 A1 due last night;
A2: syntax error recovery;
T2 due Friday evening
     Mon. Sep. 26 Decorating a syntax tree
PLP 4.6–4.7 Q3 due




Functional programming
     Wed. Sep. 28 Intro to OCaml
PLP 11.0–11.2, 7.2.4, 8.6, 11.4
     Mon. Oct. 3 Evaluation order, higher-order functions PLP 11.5–11.6, 11.8–11.9 Q4 due




Names
     Wed. Oct. 5 Binding time, scope rules PLP 3.0–3.4 A2 due Friday noon
      
(Mon. Oct. 10 Fall Break)
 
     Wed. Oct. 12 Binding rules, separate compilation PLP 3.5–3.9; CS 3.8 Q5 due;
A3: translation (in OCaml);
T3 due Friday evening




Control flow
     Mon. Oct. 17 Expressions, sequencing, and selection
PLP 6.0–6.4
     Wed. Oct. 19 Iteration and recursion
No class today.  (Prof. Scott out of town).  Please watch the two recorded lectures at right instead. 
PLP 6.5–6.8
Lecture on iteration
Lecture on iterators
Q6 due




Concurrency
     Mon. Oct. 24 Threads PLP 13.0–13.2.3, 9.5, 13.2.4
     Wed. Oct. 26 Synchronization PLP 13.3




     Mon. Oct. 31 Midterm review A3 due last night;
Q7 due
     Wed. Nov. 2 Midterm Exam (in class) A4: concurrency (in Java);
T4 due Friday evening




     Mon. Nov. 7 Language mechanisms
US citizens: Don't forget to vote tomorrow
PLP 13.4




Type Systems
     Wed. Nov. 9 Type systems, type checking PLP 7.0–7.2
     Mon. Nov. 14 Polymorphism/Generics PLP 7.3–7.5; CS 7.3.2 Q8 due




Composite Types
     Wed. Nov. 16 Records and arrays PLP 8.0–8.4
     Mon. Nov. 21 Pointers, references, and dynamic storage management PLP 8.5




Scripting languages
     Wed. Nov. 23 Overview, Perl PLP 14.0–14.1, 14.2.4 (Perl), 14.4.2, 14.4.3 A4 due at noon
Q9 due




     (Thur. Nov. 24 Thanksgiving)




Subroutines
     Mon. Nov. 28 Stack management, parameter passing PLP 9.0–9.3 A5: Disassembler
     Wed. Nov. 30 Exceptions, events PLP 9.4.3, 9.6 Q10 due;
T5 due




Code generation and run-time systems
     Mon. Dec. 5 Code generation, assembly
PLEASE be sure to fill out your on-line course evaluation. Visit Blackboard; click on “Student Access”; then click “Course Evaluations” in the side menu.  Surveys close on Dec. 16.
PLP 15.0–15.3, 15.5
     Wed. Dec. 7 Linking; the JVM PLP 15.6, 16.1.1 Q11 due




Objects
     Mon. Dec. 12 Review and implementation PLP 10.1–10.6.1 (skim all of it;
read 10.4 and 10.5 carefully)
     Wed. Dec. 14 Last day of class.  Final exam prep.  Perhaps an extra topic? (no reading assigned) A5 due Friday night




     Tue. Dec. 20 Final exam, 12:30–3:30pm


Back to the course home page

Last Change: 15 August 2023 / Michael Scott's email address