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

This page is under constant revision during the semester, so please bookmark this site and check back frequently.

When you send me email about this course, please use 594 somewhere in the Subject: line. For general email about the MCIT program, please use MCIT in the Subject: line. It's easiest to use one of the links below.

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
MTW 12:30-1:30 Moore 176
Daniel Sheiner (TA): TW 6:30-8:00 Moore 207
Requirements and Resources Last year's CIT594
Textbooks Academic Integrity Policy
 SwingExamples.jar Blackboard
Rules for Assignments Instructions for Using Zip Files and Blackboard
MCIT schedule Exam questions
MCIT Hub Summer 2008 courses

Date Announcements
M May 12 The final exam is today, Monday, May 12, 6 p.m. to 8 p.m., in 402 Logan Hall (photo).
Older Previous announcements

Date Lectures Assignments, etc.
Th Jan 17 PowerPoint Introduction to CIT594
PowerPoint Javadoc
PowerPoint JUnit 4
Assignment Fractions
Reading The Principles of Extreme Programming
Reading The JUnit 4 API
Tu Jan 22 PowerPoint Arrays
PowerPoint Analysis of algorithms I
Th Jan 24 PowerPoint Simple sorting algorithms
PowerPoint Profiling in NetBeans
Assignment Sorting
Tu Jan 29 PowerPoint Generics Review
PowerPoint Introduction to Collections
Th Jan 31 PowerPoint Recursion
PowerPoint Binary Trees
PowerPoint Testing and Debugging
Assignment Recursion on Binary Trees
Example Examples
Tu Feb 5 PowerPoint Searching
PowerPoint Abstract Data Types
Th Feb 7

PowerPoint Comparisons
PowerPoint BNF

Assignment Animation GUI
More information Observations
Tu Feb 12 PowerPoint State Machines
PowerPoint Tokenizers
Th Feb 14 PowerPoint Recognizers Reading The Bugs Language
Assignment Recognizer for the Bugs language
Assignment The Bugs Grammar
More information Recognizer Addendum
More information Bugs Errata 1, 2, 3, 4, 5
Tu Feb 19 Example,,
PowerPoint Data Structure Design (SentenceGenerator)
Example BinaryTree documentation
Example SentenceGenerator and documentation
Example Example code for isIfStatement()
Th Feb 21 PowerPoint Stacks
PowerPoint Abstract Data Types II
Tu Feb 26 PowerPoint Linked Lists
PowerPoint Stacks, Queues, and Deques
Th Feb 28 PowerPoint Threads Assignment Coordinating Software Development
Example Thread examples
Tu Mar 4 PowerPoint Lists in Java  
Th Mar 6 PowerPoint Trees
PowerPoint Tree Searching
Assignment Simple Tree API & Expressions
More information Help writing the parser(String) method
Tu Mar 11 Spring break
Th Mar 13 Spring break
Tu Mar 18 PowerPoint JUnit for Output
PowerPoint Effective Programming
Th Mar 20 Exam Midterm exam Please read the first four chapters of The Pragmatic Programmer, as well as the relevant sections of the Exam Questions page.
Tu Mar 25 PowerPoint Parsing Assignment Parser for Bugs Language
More information Getting Started on the Parser
Th Mar 27 PowerPoint Hashing
PowerPoint Using Maps
More information Corrections to the Parser Assignment
Tu Apr 1 PowerPoint Heapsort More information Making up points on Tree.parse(String)
Th Apr 3 PowerPoint Priority Queues
PowerPoint Huffman Encoding
More information Parser Keywords, Bugs Example
More information Turning in the Parser Assignment
Tu Apr 8 PowerPoint Types of Algorithms
PowerPoint Backtracking
Assignment Bugs Interpreter, Part I
Th Apr 10 PowerPoint Quicksort More information Interpreter Notes
Tu Apr 15 PowerPoint Storage (Stacks and Heaps) Assignment Bugs Interpreter, Part II
Th Apr 17 PowerPoint Graphs  
Tu Apr 22 Discussion of the Bugs Interpreter assignment More information Writing the Bugs Interpreter
More information Example Bugs Programs
More information Drawing a Bug
Th Apr 24 PowerPoint Hypergraphs
PowerPoint Gender issues
Assignment Bugs Programs
Tu Apr 29 PowerPoint State Space Searches
PowerPoint Alpha-Beta Search
Final Exam Monday, May 12, 6 p.m. to 8 p.m.
402 Logan Hall
Please read the rest of The Pragmatic Programmer, as well as the relevant sections of the Exam Questions page.

Assignment An assignment Software Software that will be useful in this course Reading An article, usually offsite Tutorial A tutorial
Exam Exam PowerPoint A PowerPoint document, usually one of my lectures More information Additional information about the topic Example Example