CIT 594 Programming Languages & Techniques II
Spring 2014, David Matuszek

When you send me email about this course, please:
  • For CIT 594, put 594 as part of the Subject: line.
    • If you forget to put 594 in the Subject: line, I will still see your email; it will just take longer.
  • For general email about the MCIT program, put MCIT as part of the Subject: line.
  • I prefer plain text email (not HTML or RTF).
  • Do not include any attachments.
  • Make sure your computer is virus-free.

Meeting times
Lecture TR 4:30-6:00 Towne 311
 Office hours (check Piazza for changes)

Whenever my door is open. Tuesday and Thursday afternoons (12-4) are the best times to find me. Levine 162
Dhyanam Vaidya Wednesday 4-5pm Moore 207
Yushu Cao Monday 4-5pm Moore 207
Emily Boggs Wednesday 11:30-1:00 Skirkanich 240
Questions and course support
This page Lectures and assignments will be posted here. Updated 1 or 2 times a week.
Piazza Use Piazza to ask and answer questions about the course. Announcements, scheduling updates, and assignment changes will be posted here. Available 24/7
Canvas Use Canvas to submit assignments and check on grades. Assignments posted weekly
Last year's CIT594 Eclipse FAQ and Eclipse Tips
Academic Integrity Policy Software SwingExamples.jar
Textbook Software Regular Expression Applet
Java version test applet Read Older exam questions
Java Syntax Pages (online)
or as a downloadable .zip file
Academic Resources
Dr. Dave's schedule Read Using Piazza and Canvas

The following schedule will be developed as the semester progresses.

Lectures and lecture materials
PowerPoint lectures
Reading and assignments
Thursday, January 16 PowerPoint Introduction
PowerPoint Analysis of algorithms I

Read Pages 1 to 20 in textbook
Assignment Recursive Drawings

Tuesday, January 21 University closed due to snow
Thursday, January 23 PowerPoint Searching (with logarithms)
PowerPoint Sorting (and loop invariants)
Read Pages 21 to 24 in textbook
Assignment Sorting
Tuesday, January 28 PowerPoint Pointers and references
PowerPoint Data structures bestiary
Read Pages 25 to 59 in textbook
Thursday, January 30 PowerPoint Linked Lists
PowerPoint Binary Trees
PowerPoint Trees
Assignment Tree ADT
Tuesday, February 4 PowerPoint Tree Searching
PowerPoint Stacks, Queues, and Deques
Thursday, February 6 Class cancelled due to winter storm  
Tuesday, February 11 PowerPoint Hashing Assignment Bucket Hash
Thursday, February 13 University closed due to snow


Tuesday, February 18 PowerPoint Stacks
PowerPoint State Machines
Thursday, February 20 PowerPoint Tokenizers
PowerPoint BNF
Assignment Tokenizer
More information Notes on the Tokenizer assignment
More information
Tuesday, February 25 PowerPoint Backtracking
PowerPoint Graphs
Thursday, February 27 PowerPoint Hypergraphs Assignment Graphs and Backtracking
Read Pages 71 to 89 in textbook
Tuesday, March 4 PowerPoint Git
Learning @ Scale, March 4 & 5
Thursday, March 6 Midterm Exam
SIGCSE Atlanta 2014, March 5-8
Tuesday, March 11 Spring break  
Thursday, March 13 Spring break  
Tuesday, March 18
PowerPoint Recognizers
PowerPoint Trigonometry
Assignment Recognizer
Thursday, March 20 PowerPoint Quicksort
PowerPoint Analysis II
Read Pages 49 to 59 in textbook
Tuesday, March 25 PowerPoint Recursive Descent Parsing

Assignment Parser
More information

Thursday, March 27 PowerPoint Heapsort
PowerPoint Priority queues
Read Pages 90 to 101 in textbook
Tuesday, April 1 PowerPoint Algorithm Types
PowerPoint Greedy Algorithms
PowerPoint Spanning Trees
Assignment Interpreter
Read GUI for Interpreter
Read The Big Picture
More information Example Logo Programs
Thursday, April 3 PowerPoint Huffman Encoding
PowerPoint Dynamic Programming
Read Pages 106 to 114 and 158 to 167 in textbook
Tuesday, April 8 PowerPoint Graph Algorithms
PowerPoint Dijkstra's Algorithm
PowerPoint Effective Programming
Read Pages 91 to 101 in textbook
Thursday, April 10 PowerPoint State-Space Searching
PowerPoint Alpha-Beta
PowerPoint Pruning
Read (optional) Tokenizer in Scala
Tuesday, April 15 PowerPoint Concurrency
PowerPoint Fork-Join
Assignment Counting Words with ForkJoin
Read Beginner's Introduction to Java's ForkJoin Framework
Thursday, April 17 PowerPoint MapReduce
PowerPoint Parallelism
Tuesday, April 22 PowerPoint Concurrent Algorithms
PowerPoint Randomized Algorithms
PowerPoint Preferences

Assignment Wator

Thursday, April 24 PowerPoint Abstract Data Types
PowerPoint Data Structure Design (BNF grammar)
Tuesday, April 29 PowerPoint Genetic Algorithms  
Tuesday, May 6 Final Exam 3:00pm to 5:00pm.
Read Older exam questions (primarily data structures, doesn't cover much on algorithms)

PowerPoint A PowerPoint document, usually one of my lectures Assignment An assignment Software Software that will be useful in this course
Tutorial A tutorial More information Additional information about the assignment or topic official spec Official specification (always external link offsite)
Read An article; external link indicates offsite Example Example Quiz Quiz or exam