CSCI 344 Course Schedule and Homework


WEEK 1: 1/12 - 1/16

Monday, January 12th is the first day of class.

Introduction to Programming Languages. Types of languages. Compilation vs. Interpretation. Overview of Compilation.

WEEK 2: 1/19 - 1/23

No class Monday January 19th: MLK Day

Tokenizing. Regular Expressions.
First quiz: Friday January 23rd.

WEEK 3: 1/26 - 1/30

Regular languages and grammars. Chomsky Hierarchy.

WEEK 4: 2/2 - 2/6

Homework (do it before Wednesday 2/11): Exercises from regular expression worksheet.
NFA, DFA, various approaches to dealing with non-determinism in parsing.

WEEK 5: 2/9 - 2/13

Context-Free languages, pumping lemma.

WEEK 6: 2/16 - 2/20

Homework (do it before Monday 3/2): Exercises on NFA to DFA conversion, recognizing regular vs. non-regular, pumping lemma.
Details on CYK, Earley, LL(k), LR(k), LALR, etc.

WEEK 7: 2/23 - 2/27


WEEK 8: 3/2 - 3/6


WEEK 9: 3/16 - 3/20


WEEK 10: 3/23 - 3/27

Homework (LISP programs, before Wednesday April 1st.
Lambda calculus.

WEEK 11: 3/30 - 4/3

No class Friday, April 3rd (Good Friday)

Functional Programming Languages. Lisp. Material from "Structure and Interpretation of Computer Programs".

WEEK 12: 4/6 - 4/10

No class Monday, April 6th (Easter Monday)

Homework (lambda calculus exercises, before Monday, April 20th.
More functional programming. Haskell, etc.

WEEK 13: 4/13 - 4/17

Lambda calculus.

WEEK 14: 4/20 - 4/24

Logic Programming. Prolog.

WEEK 15: 4/27 - 5/1

Scripting Languages. General characteristics, some history.
A few of my favorite things: bash, sed, and the existence of quines.

WEEK 16: 5/4

Monday, May 4th is the last class meeting
The final exam is Monday, May 11th from 12:00-1:50PM.