CSCI 344 Course Schedule and Homework
WEEK 1: 1/21 - 1/25
Tuesday, January 22nd is the first day of class.Chapter 1: Introduction to Programming Languages. Types of languages. Compilation vs. Interpretation. Overview of Compilation.
Homework: Read pp. 1-35. Exercises 1.1, 1.6, 1.7, 1.8, 1.12, 2.1.
WEEK 2: 1/28 - 2/1
Last day to drop without a "W": Friday, February 1stChapter 2: Tokenizing. Regular Expressions.
Homework: Read pp. 44-61.
WEEK 3: 2/4 - 2/8
Chapter 2: Context-Free Grammars. Various parsing algorithms. Chomsky Hierarchy.Homework: Exercises 2.2, 2.3, 2.4, 2.6.
WEEK 4: 2/11 - 2/15
Details on CYK, Earley, LL(k), LR(k), LALR, etc.Homework: Read pp. 63-96.
WEEK 5: 2/18 - 2/22
Tuesday, February 19th is the last day to choose Audit or "P vs. NP" options.Chapter 3: Binding Time. Storage Management. Scoping. Subroutines.
Homework: Read pp. 103-151. Exercises 2.8, 2.9, 2.13, 2.14.
WEEK 6: 2/25 - 2/29
More on Chapter 3.Homework: Exercises 3.1, 3.4, 3.6, 3.16, 3.17, 3.26.
WEEK 7: 3/3 - 3/7
Chapter 4: Semantic Analysis. Attribute Grammars. Action Routines. Decorated Syntax Trees.Homework: Read Ch. 4, pp. 161-194. Skim Chapter 5 on Architecture, more or less carefully depending on how strong your background is in Architecture or Compilers.
WEEK 8: 3/10 - 3/14
Midterm exam is Tuesday, March 11th.Chapter 6: Control Flow. Evaluation. Structured vs. unstructured. Selection. Iteration. Recursion.
WEEK 9: 3/24 - 3/28
Class cancelled Thursday, March 27th.Chapter 10: Lambda calculus.
WEEK 10: 3/31 - 4/4
Withdrawal deadline is Friday, April 4thFunctional Programming Languages. Scheme. Material from "Structure and Interpretation of Computer Programs".
HW: (1) Show that the fixed point combinator given in class works. (2) Implement the "odd-fibs" program using the streams+accumulators approach.
WEEK 11: 4/7 - 4/11
More on Chapter 6.HW: Read pp. 233-295.
WEEK 12: 4/14 - 4/18
Chapter 11: Logic Programming. Prolog.HW: Problems 6.11, 6.18, 6.22.
WEEK 13: 4/21 - 4/25
Chapter 13: Scripting Languages. General characteristics, some history.HW: (due 4/29): Prolog family tree program.
WEEK 14: 4/28 - 5/2
Thursday, May 1st is the last day of class.The final exam is Thursday, May 8th from 2:00-3:50PM.
A few of my favorite things: bash, sed, and the existence of quines.