Schedule for CSC 2/454, Fall 2016 (Tentative)

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
icons link to review questions, which are due each class day before the start of lecture.
They are adapted from the “Check Your Understanding” questions that appear every 10 pages or so in the text.

Click on the unit name to see my lecture notes.

Unit Topics Reading Assignments (handed
out or [where indicated] due)

     Wed. Aug. 31 Introduction PLP 1.0–1.5 T0: administration (see Blackboard);
A0: Unix tools
     (Mon. Sept. 5 Labor Day)
     Wed. Sept. 7 Structure of a compiler PLP 1.6–1.7   T0 due;
A1: comparing languages
T1 due Friday evening

     Mon. Sept. 12 Review of scanning and BNF (DFA construction) PLP 2.0–2.2; CS 2.4.0–2.4.1  
     Wed. Sept. 14 Top-down and bottom-up parsing (example) PLP 2.3.0–2.3.2; CS 2.3.5 (pp. 1–6)  
     Mon. Sept. 19 Error recovery, table-driven LL(1) parsing PLP 2.3.3; CS 2.3.5 (pp. 10–12) (for A2)   A1 due last night;
A2: syntax error recovery

     Wed. Sept. 21 Attribute grammars, action routines PLP 4.0–4.5   T2 due
     Mon. Sept. 26 Decorating a syntax tree (slides)
Guest lecture by Prof. Chen Ding (Prof. Scott out of town)
PLP 4.6–4.7, 15.0–15.3  

Functional programming
     Wed. Sept. 28 Intro to OCaml
Guest lecture by TA Ryan Yates (Prof. Scott out of town)
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   A2 due last night;
A3: interpretation (in OCaml)

     Wed. Oct. 5 Binding time, scope rules PLP 3.0–3.4   T3 due end of day tomorrow
     Mon. Oct. 10 Binding rules, separate compilation PLP 3.5–3.9; CS 3.8  

Scripting languages
     Wed. Oct. 12 Overview, Perl
PLP 14.0–14.1, 14.2.4 (Perl), 14.4.2, 14.4.3  
(Mon. Oct. 17 Fall Break)
     Wed. Oct. 19 Web scripting
Guest lecture by TA Ryan Yates (Prof. Scott out of town)
PLP 14.3   A3 due last night

     Mon. Oct. 24 Midterm Exam A4: cross-indexer

Control flow
     Wed. Oct. 26 Expressions, sequencing, and selection PLP 6.0–6.4   T4 due tonight
     Mon. Oct. 31 Iteration and recursion PLP 6.5–6.8  

Type Systems
     Wed. Nov. 2 Type systems, type checking PLP 7.0–7.2  
     Mon. Nov. 7 Polymorphism
PLP 7.3–7.5; CS 7.3.2  

Composite Types
     Wed. Nov. 9 Records and arrays PLP 8.0–8.4   (not due until Fri.) A4 due tonight;
A5: templates
     Mon. Nov. 14 Pointers, references, and dynamic storage management PLP 8.5  

     Wed. Nov. 16 Threads PLP 13.0–13.2.3, 9.5, 13.2.4   T5 due
     Mon. Nov. 21 Synchronization PLP 13.3  
     Wed. Nov. 23 Language mechanisms PLP 13.4   A5 due last night

     (Thur. Nov. 24 Thanksgiving)

     Mon. Nov. 28 Stack management, parameter passing PLP 9.0–9.3   A6: concurrency (in Java)
     Wed. Nov. 30 Exceptions, events PLP 9.4.3, 9.6   T6 due
     Mon. Dec. 5 Catch-up (finish Chap. 9, maybe start Chap. 10) (no reading or CYU questions)

     Wed. Dec. 7 Review and implementation
PLEASE be sure to fill out your
on-line course evaluation

Guest lecture by TA Ryan Yates (Prof. Scott out of town)
PLP Chapter 10 (skim all of it; read 10.4 carefully)  
     Mon. Dec. 12 Last day of class.  Final exam prep (if you bring questions).  Perhaps Smalltalk, or scripting objects, or virtual machines.
(no reading or CYU questions)

     Wed. Dec. 14 A6 due
     Mon. Dec. 19 Final exam, 12:30–3:30pm

Back to the course home page

Last Change: 11 December 2016 / Michael Scott's email address