CSCI 344 Course Schedule and Homework
WEEK 1: 1/12 - 1/16Monday, 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/23No class Monday January 19th: MLK Day
Tokenizing. Regular Expressions.
First quiz: Friday January 23rd.
WEEK 3: 1/26 - 1/30Regular languages and grammars. Chomsky Hierarchy.
WEEK 4: 2/2 - 2/6Homework (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/13Context-Free languages, pumping lemma.
WEEK 6: 2/16 - 2/20Homework (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/27Homework (LISP programs, before Wednesday April 1st.
WEEK 11: 3/30 - 4/3No class Friday, April 3rd (Good Friday)
Functional Programming Languages. Lisp. Material from "Structure and Interpretation of Computer Programs".
WEEK 12: 4/6 - 4/10No class Monday, April 6th (Easter Monday)
Homework (lambda calculus exercises, before Monday, April 20th.
More functional programming. Haskell, etc.
WEEK 13: 4/13 - 4/17Lambda calculus.
WEEK 14: 4/20 - 4/24Logic Programming. Prolog.
WEEK 15: 4/27 - 5/1Scripting Languages. General characteristics, some history.
A few of my favorite things: bash, sed, and the existence of quines.
WEEK 16: 5/4Monday, May 4th is the last class meeting
The final exam is Monday, May 11th from 12:00-1:50PM.