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 1st

Chapter 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 4th

Functional 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.