Schedule for CSC 254, Fall 2008 (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 and when 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.
icons link to review questions, which should be completed before coming to class.
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 and Review Other Assignments (handed
out or [where indicated] due)




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




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




Functional programming
     Thur. Sept. 18 Intro to Scheme PLP 10.0–10.3   T2 due
     Tues. Sept. 23 Evaluation order, higher-order functions PLP 10.4–10.8  




Semantics
     Thur. Sept. 25 Attribute grammars, action routines PLP 4.0–4.5  
     Tues. Sept. 30 Decorating a syntax tree PLP 4.6–4.7, 14.0–14.3   A2 due last night;
A3: interpretation (written in Scheme)




Names
     Thur. Oct. 2 Binding time, scope rules PLP 3.0–3.4   T3 due
     (Mon. Oct. 6 Fall Break)
     Tues. Oct. 7 Binding rules, separate compilation PLP 3.5–3.8; CD 3.7  




Scripting languages
     Thur. Oct. 9 Overview, Perl, Emacs Lisp PLP 13.0–13.1, 13.2.4 (Perl), 13.2.5, 13.4.2, 13.4.3  
     Tues. Oct. 14 Web scripting PLP 13.3   A3 due last night




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




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




Types
     Tues. Oct. 28 Type systems, type checking PLP 7.0–7.2  
     Thur. Oct. 30 Records and arrays PLP 7.3–7.4  
     Tues. Nov. 4 pointers, references, and dynamic storage management
DON'T FORGET TO VOTE
PLP 7.7–7.8, 7.10–7.11  




Concurrency
     Thur. Nov. 6 Threads and busy-wait synchronization (guest lecture by Rongrong Zhong; Prof. Scott out of town) PLP 12.0–12.2.3, 12.3.0–12.3.1   A4 due last night;
A5: concurrency
     Tues. Nov. 11 Thread implementation, scheduler-based synchronization PLP 8.6, 12.2.4, 12.3.2–12.3.3   T5 due
     Thur. Nov. 13 Monitors, nonblocking synchronization PLP 12.3.4-12.3.6, 12.5  




Subroutines
     Tues. Nov. 18 Stack management PLP 8.0–8.2  
     Thurs. Nov. 20 Parameter passing, closures PLP 8.3  
     Tues. Nov. 25 exceptions, events PLP 8.5.4, 8.7
(no review questions)
A5 due noon Wed.




    (Thur. Nov. 27 Thanksgiving)




     Tues. Dec. 2 Polymorphism PLP 3.6.3 (review), 8.4, 9.4.4; CD 7.2.4, 8.4.4   A6: templates
Objects
     Thur. Dec. 4 Review and implementation
PLEASE be sure to fill out your
on-line course evaluation.
 
PLP Chapter 9  
     Tues. Dec. 9 Smalltalk; scripting objects CD 9.6.1; PLP 13.4.4  




     Thur. Dec. 11 End-term exam


Back to the course home page

Last Change: 10 December 2008 / Michael Scott's email address