CIT 594 Programming Languages & Techniques II
Spring 2006, David Matuszek
TR 4:30-6:00, Moore 212

This page is under constant revision during the semester (especially during the first few days!), so please bookmark this site and check back frequently.

To avoid my spam filters: When you send me email about this course, please use 594 in the Subject: line. For general email about the MCIT program, please use MCIT in the Subject: line.

Grading for this course: 50% assignments, 20% midterm, 30% final; normalized (converted to Z scores).

 Meeting times
Class TR 4:30-6:00 Moore 212
 Office hours
TR 12:30-1:30 Moore 176
F 3:00-4:00 Moore 207
Links
Requirements and Resources MCIT schedule
Textbooks Academic Integrity Policy
Getting Started with Eclipse Last year's CIT594
Eclipse FAQ Blackboard
SwingExamples.zip Instructions for Using Zip Files and Blackboard

Date Announcements
May 3, 2006 Someone left a pencil case in the CIT594 final exam. I have it.
Older Previous announcements

Date Lectures Assignments, etc.
Tu Jan 10 Introduction to CIT594
State Machines
Collections--A First Glimpse

Tokenizer
JUnit tests for Tokenizer assignment (zip file)
My code for Type.java, Token.java, and Tokenizer.java.
Enums (please study carefully and understand all the sample programs)

Th Jan 12 Recursion
Stacks
Recursion--Textbook, pp. 251-272
Stacks--Textbook, pp. 115-132
Tu Jan 17 Binary Trees
Trees
Tree ADT
My code for Tree.java and TreeTest.java
Trees and Binary Trees--Textbook, pp. 365-389
Java 5.0 Generics, etc.
Coping with Generics
Th Jan 19 More Binary Trees and Trees Abstract Data Types--Textbook, pp. 202-212
Tu Jan 24 Abstract Data Types (ADTs)
Exercises in Recursion
Style Rules
Th Jan 26 Arrays

Computer Science:Data Structures:Arrays

Tu Jan 31 BNF
Recognizers
Recognizer and Grammar for Logo2006
Recognizer.java, RecognizerTest.java, LogoException.java
Changes in Type and Tokenizer Classes
Th Feb 2 Analysis I Big O Notation--Textbook, pp. 70-72
Big O notation
Tu Feb 7 Linked Lists Linked Lists--Textbook, pp. 179-245. Try out the applets.
Th Feb 9 Hash Tables Hash Tables--Textbook, pp. 519-574. Another fine applet!
Hash Tables
HashTables.zip (starter code)
Tu Feb 14 Comparisons
Sun's Lists
 
Th Feb 16 Sun's Maps
Recursive Descent Parsing
Parser
Parser.java and ParserTest.java
RecognizerTest.java
Advice for Parser Authors
DavesParserTest.java
Tu Feb 21 Simple Sorting
Simple Sorting--Textbook, pp. 78-108.
Th Feb 23 Searching Textbook, pp. 52 (applet)-62.
Tu Feb 28 Stacks, Queues, and Deques Stacks and Queues--Textbook, pp. 115-143.
Th Mar 2 Midterm; Dave at SIGCSE Midterm exam
Answer key for midterm exam
Tu Mar 7 Spring break  
Th Mar 9 Spring break  
Tu Mar 14 Tree Searching LogoGui.java
TurtleCanvas.java
Th Mar 16 Trigonometry
Heapsort
Interpreter, Part I
Heaps--Textbook, pp. 579-610.
Tu Mar 21

Algorithm Types

 
Th Mar 23 Backtracking Interpreter, Part II
Threading suggestions
Tu Mar 28 Priority Queues First draft of InterpreterTest.java and TurtleTest.java.
Priority Queues--Textbook, pp. 143-149.
Th Mar 30 Huffman Encoding
Quicksort
 
Tu Apr 4 Graphs Graphs
Plex.java, PlexTest.java
API Hints
Th Apr 6 University Sun Day At Penn  
Tu Apr 11 State Spaces
Pruning
NFA
Sample input
Th Apr 13 Alpha-Beta Searching  
Tu Apr 18 Graph API
Analysis 2
 
Th Apr 20 Spanning Trees
Genetic Algorithms
Preferences
 
W May 3 Final exam, 9:00 - 11:00 Final exam
Answer key for final exam

Key
An assignment Software that will be useful in this course Something you should read A tutorial
Tests. A PowerPoint document, usually one of my lectures Additional information about the topic Example