CIT 594 Programming Languages & Techniques II
Spring 2005, David Matuszek
TR 4:30-6:00, David Rittenhouse Labs A7

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

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. I get so much email that things get lost pretty easily; I think this will be a big help. Thanks.

 Meeting times
Class TR 4:30-6:00 Rittenhouse Labs A7
 Office hours
TR 2:00-3:00 Moore 176
Thursday 3:00-4:00 Moore 207
Links
Last year's CIT594
Academic Integrity Policy
Textbooks
My schedule
Blackboard and
Instructions for Using Zip Files and Blackboard
Eclipse FAQ
SwingExamples.zip

Date Announcements
May 9 Grades are posted on Blackboard. I have also posted a page about Final Exam Grades and Comments. Also, remember that Blackboard will be unavailable May 11 - May 14. If Blackboard isn't up, please don't ask me what your grade is; I only remember the grades of a couple of people.
May 5 Have a good summer!
Older Previous announcements

Date Lectures Assignments, etc.
January 11 Intro to CIT594
Recursion
Collections--A First Glimpse

Getting Java 5.0 and Eclipse 3.1M4
Flood fill
Starter code for Flood fill:
     • FloodFillApplet.java
     • ColorArrayComponent.java
Comments on the starter code
My FloodFillApplet.java
pp. 251-277 in textbook.

January 13 Stacks
SwingExamples.zip
January 18 Simple Recursion--Examples
Backtracking
Sorting into equal piles
EqualPiles.zip (problem generator)
January 20 Analysis of Algorithms I  
January 25 Comments on the "Three Piles" problem
Binary Trees
Binary Trees and Arithmetic Expressions
BinaryTreeSort
pp. 365-388 in textbook.
January 27 Abstract Data Types
Generics
pp. 202-212 in textbook (you can ignore the code); and read up on Generics and the enhanced for loop in Java 5.0.
February 1 More JUnit
Simple Sorting Algorithms
Sorting: pp. 77-109 in textbook.
February 4 Searching
Pointers and References
Searching and logs: pp. 54-74 in textbook, but ignore classDataArray.java.
Pointers: pp. 22-25 in textbook (up to "Overloaded Operators").
February 8 Sets and Maps
Javadoc and HTML
Evaluating Expressions
February 10 Hashing pp. 520-572 in textbook.
February 15 Abstract Data Types II Class discussion of next assignment.
Tree API
TreeTest.java
February 17 BNF
Recognizers
 
February 22 Using Maps Study guide for midterm
Recognizer for Robot Grammar
Corrections, Suggestions, and Starter Code
Recognizer.java (starter code only)
RecognizerTest.java (for starter code)
February 24 Midterm Exam
Answer key
(Dr. Dave at SIGCSE conference)
March 1 Stacks, queues, and deques  
March 3 Yes, we have class.
Comparisons
Recursive Descent Parsing
From http://www.upenn.edu/almanac/3yearcal.html: "Spring Break Begins at Close of Classes"--sorry about that.
March 8 & 10 Spring Break Assignment 7: Parser
March 15 Comments on Midterm
Trees
Tree Searching
 
March 17 Parser Hints  
March 22 Graphs  
March 24 Spanning Trees
Counting
Interpreter for Robot Language
Interpreter Notes
March 29 Heapsort  
March 31 Priority Queues
Quicksort
 
April 5 Greedy Algorithms
State-Space Searches
Robot, part 1
April 7 Pruning
Alpha-Beta Searches
Robot, part 2
RobotGui.java
BoardGame.zip
The BoardGame API
April 12 Threads Robot, part 3
ThreadExample.java and Clock.java
April 14 Corrections
Storage
 
April 19 Huffman Encoding
Randomized Algorithms
 
April 21 Genetic Algorithms  
May 5 Final Exam, 11:00-1:00, in DLRB A5
Final Exam
Answer Key
Study Guide for Final Exam

Key
An assignment Software that will be useful in this course Something you should read A tutorial
Official specification (always offsite) A PowerPoint document, usually one of my lectures Additional information about the topic Example