Schedule for CSC 2/454, Fall 2012 (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.  CD refers to the accompanying compact disc.

Click on the unit name to see my lecture notes.

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




Introduction
     Thurs. Aug. 30 Introduction PLP 1.0–1.5 T0: administration (see Blackboard);
A0: Unix tools
     Tues. Sept. 4 Structure of a compiler PLP 1.6–1.7 T0 due;
A1: comparing languages




Syntax
     Thur. Sept. 6 Review of scanning and BNF (DFA construction) PLP 2.0–2.2; CD 2.4.0–2.4.1 T1 due
     Tues. Sept. 11 Top-down and bottom-up parsing, error recovery PLP 2.3.0–2.3.1; CD 2.3.4 (pp. 1–6)
     Thur. Sept. 13 Table-driven LL(1) parsing PLP 2.3.2; CD 2.3.4 (pp. 10–12) (for A2) A1 due tomorrow night;
A2: syntax error recovery




Semantics
     Tues. Sept. 18 Attribute grammars, action routines PLP 4.0–4.5 T2 due
     Thur. Sept. 20 Decorating a syntax tree PLP 4.6–4.7, 14.0–14.3




Functional programming
     Tues. Sept. 25 Intro to Haskell
Guest lecture by Ryan Yates (Prof. Scott out of town)
TBA
     Thur. Sept. 27 Evaluation order, higher-order functions
Guest lecture by Ryan Yates (Prof. Scott out of town)
TBA A2 due last night;
A3: interpretation (in Haskell)




Names
     Tues. Oct. 2 Binding time, scope rules PLP 3.0–3.4 T3 due
     Thur. Oct. 4 Binding rules, separate compilation PLP 3.5–3.9; CD 3.8




     (Mon.–Tues. Oct. 10–11 Fall Break)




Scripting languages
     Thur. Oct. 11 Overview, Perl PLP 13.0–13.1, 13.2.4 (Perl), 13.4.2, 13.4.3
     Tues. Oct. 16 Web scripting PLP 13.3 A3 due last night




     Thur. Oct. 18 Midterm Exam A4: cross-indexer




Control flow
     Tues. Oct. 23 Expressions, sequencing, and selection PLP 6.0–6.4 T4 due
     Thur. Oct. 25 Iteration and recursion PLP 6.5–6.8




Concurrency
     Tues. Oct. 30 Threads PLP 12.0–12.2.3, 8.6, 12.2.4
     Thur. Nov. 1 Synchronization PLP 12.3
     Tues. Nov. 6 Language mechanisms
DON'T FORGET TO VOTE
PLP 12.4–12.6




Types
     Thur. Nov. 8 Type systems, type checking PLP 7.0–7.2 A4 due last night;
A5: concurrency (in Java)
     Tues. Nov. 13 Records and arrays PLP 7.3–7.4 T5 due
     Thur. Nov. 15 Pointers, references, and dynamic storage management PLP 7.7–7.11
     Tues. Nov. 20 (catch up)




    (Thur. Nov. 22 Thanksgiving)




     Tues. Nov. 27 Polymorphism PLP 3.5.3 (review), 8.4, 9.4.4; CD 7.2.4, 8.4.4




Subroutines
     Thur. Nov. 29 Stack management, parameter passing PLP 8.0–8.3 A5 due last night; A6: templates
     Tues. Dec. 4 Exceptions, events PLP 8.5.3, 8.7 T6 due




Objects
     Thur. Dec. 6 Review and implementation
PLEASE be sure to fill out your
on-line course evaluation
PLP Chapter 9 (skim all of it; read 9.4 carefully)
     Tues. Dec. 11 Multiple inheritance; Smalltalk, scripting objects CD 9.6.1; PLP 13.4.4




     Fri. Dec. 14 A6 due at 5pm.
     Tues. Dec. 18 Final exam, 7:15–10:15pm


Back to the course home page

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