CIT 594 Programming Languages & Techniques II
Spring 2002, David Matuszek
Class times: TR 4:30-6:00, Moore 23
Review sessions: W 2:00-3:00, Towne 321

This page will be under continuous development as the semester progresses.

Contact information:
     David Matuszek,

Office hours:
     Dave Matuszek:
          2:00-3:00 MF, Moore 207
          2:00-3:00 TuTh, Pender 134
          2:00-3:00 W, Towne 321
     Yuewei (Joanna) Zhou:
          10:00-11:00 Tu, Moore 314
          2:00-3:00 F, Moore 207
     Jinying Chen:
          2:00-3:00 M, Moore 207
          3:00-4:00 Tu, Moore 314

Most important links:
     Dr. Dave's Schedule
     Textbooks for CIT 594
     Collections Framework Tutorial
     Java API online
     Java API download

April 30, 2002 Final grades have been posted on Blackboard.
April 23, 2002

With only a couple exceptions, all assignments have been graded and the grades now shown on Blackboard are your probable final grades for the course.

Please review all your quiz and assignment grades and let me know as soon as possible about any errors that you find.

Have a good summer!

     --Dr. Dave

April 18, 2002

Blackboard should now have all your scores except the final assignment (Huffman encoding), the extra credit program (Binary tree editor), and a few late submissions to the Forté FAQ. I will post a notice here when those are ready. If you believe you see an error (missing or incorrect grade), please send me e-mail with Subject: Grade as soon as possible.

The "Preliminary Grade" field in Blackboard has not been updated yet.

Earlier Previous Announcements


Lectures and lecture materials
PowerPoint lectures
Suggested reading

Tuesday, January 8

Intro to CIT 594 (18 slides)
Lisp I (31 slides)

What this course is about
A Concise Introduction to Lisp
Thursday, January 10 Continuation of Lisp I lecture LISP.TUT (in your XLisp directory)
Tuesday, January 15 Recursion
Writing Lisp Functions
All About Recursion (C Version)
Thursday, January 16

Lisp Internals
Pragmatic Programmer I

Preface and Chapter 1 of The Pragmatic Programmer
Tuesday, January 22 First Lisp program due
*print-length* and *print-level*
Analysis of Algorithms
Textbook Chapters 1 and 2, up to 3.4 (Searching).
Thursday, January 24 First quiz (mainly Lisp) and answers
Second Lisp program due
Textbook, Sections 3.4 and 3.5..
Tuesday, January 29 Sorting Textbook, rest of Chapter 3.
Thursday, January 31 Backtracking
Linked lists
Textbook, Chapter 4.
Tuesday, February 5 Second quiz and answers
Abstract Data Types

Chapter 5, through 5.4.
Thursday, February 7 Abstract Data Types II
A Glimpse of Collections
Remainder of Chapter 5.
Tuesday, February 12 Stacks
Backtracking assignment due
Chapter 6.
Thursday, February 14 Static Poisoning
Don't Repeat Yourself (DRY)
Program Design

Pragmatic Programmer, Chapter 2(7).
Tuesday, February 19 Third quiz and answers
Stacks, Queues and Deques
Textbook, Chapter 7
Thursday, February 21 Lists in Java
Expression assignment due
Textbook, Chapter 8
Sun's Collections tutorial
Sun's List tutorial
Tuesday, February 26 Sets and Maps in Java Textbook, Chapters 9 and 11
Thursday, February 28 No class  
Tuesday, March 5 Fourth quiz and answers
Binary trees
Thursday, March 7 Designing the Animals Game  
Tuesday, March 12
Thursday, March 14
Spring break  
Tuesday, March 19 Binary Tree ADT
Textbook, Chapter 10
Textbook, Chapter 12
Thursday, March 21 Using Maps Textbook, Chapter 11
Tuesday, March 26 Continuation of Using Maps
Huffman Encoding
Thursday, March 28 Heapsort
Comparable and Comparator
Tuesday, April 2

Fifth quiz
Priority queues

Thursday, April 4 Trees
Tree Searching
Textbook, Chapter 14
Tuesday, April 9 Graphs Textbook, Chapter 15
Thursday, April 11 Spanning Trees
Alpha-Beta Search
Textbook, Chapter 13
Textbook, Section 14.6
Tuesday, April 16 Sixth quiz
Threads II
Thursday, April 18 Animation
Closing comments
Animation Examples


Pretest for First Lisp Assignment
First Lisp Assignment (Finger Exercises)
Second Lisp Assignment (Random sentences)
Third Assignment (Fibonacci)
Fourth Assignment (Backtracking)
Fifth Assignment (ExpressionEvaluator)
Sixth Assignment (Maze Running)
Seventh Assignment (Animals!)
Notes on the Animals Assignment
Additional Help with Animals
Eighth Assignment (Animals! Revisited)
Ninth Assignment (Huffman encoding/decoding)
Notes on Huffman Encoding

The Forté FAQ
Forté Tutorial #1 (with pictures or text only) -- Applets
Addendum to the Forté Tutorial -- This explains how to set up a folder on the E: drive that you can use for your project.
Forté Tutorial #2 -- Creating an Application
Forté Tutorial #3 -- Using the Debugger

Additional Material from Dr. Dave
CIT 591 course materials
Using XLisp and Liquid Common Lisp
.jar files
All About Recursion (C Version)

Other Links
The Java API online and as a download
 Collections Framework Tutorial
XLisp for Windows can be downloaded from BURKS
The Macintosh version of XLisp can be found at CMU. Another Lisp implementation, which I have not tried myself, can be gotten from

What this course is about
CIT 594 Newsgroup (not used much): news://