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

Expand your comfort zone!
Learn about Scala!

Date Announcements
April 23, 2012 I've added a section on Concurrency to the Exam questions page.
Older Previous announcements

Meeting times
Lecture TR 4:30-6:00 Towne 303
 Office hours (check Piazza for changes)
Piazza Always open, 24/7  

Whenever my door is open.
Specific office hours:
   1 pm to 4 pm Mondays
   6:30 pm to 8 pm Tuesdays
   2 pm to 4 pm Wednesdays
Moore 176
Wed 3-4, Thu 12-1 Moore 207
6:30 pm to 7:30 pm Mondays Moore 207

  
Links
Last year's CIT594 Eclipse FAQ and Eclipse Tips
Academic Integrity Policy Software SwingExamples.jar
Textbook Software Expression evaluator
Java version test page Software CountTokens.jar
Java Syntax Pages (online)
or as a downloadable .zip file
Software Regular Expression Applet
Piazza
Academic Resources Blackboard
Search Dr. Dave's courses Read Exam questions

The following schedule is tentative; topics may be inserted, deleted, or rearranged without advance notice. Minor and some major updates will be made to the slides as the semester progresses.
Date Lectures, Assignments, etc.
Jan 12 PowerPoint Introduction to CIT 594
PowerPoint Quick overview--Pointers and references, recursion, algorithms, analysis of algorithms
Jan 17 PowerPoint Linked Lists
PowerPoint Stacks, Queues, and Deques
Assignment Linked Lists (implementing Stacks, Queues, and Deques)
Example sequence-tests.zip
Jan 19 PowerPoint Generics
Read Coping With Generics (read if they are giving you trouble)
PowerPoint Storage
Read Style Rules
Jan 24 PowerPoint Style
PowerPoint Recursion
PowerPoint Binary Trees
Assignment Binary Trees
Example BinaryTreeTests.zip
Jan 26 PowerPoint Java Collections
PowerPoint Stacks
Read Expression Evaluation
PowerPoint Comparisons
Jan 31 PowerPoint Trees
PowerPoint Backtracking
Read Backtracking
Assignment Backtracking assignment
Example backtracking-tests.zip
PowerPoint Hashing
Feb 2 PowerPoint Using Maps
Feb 7 PowerPoint State Machines
PowerPoint Tokenizers
Assignment
Tokenizer
Example TokenizerTests.zip
Example OfficialTokenizerTest2.java
Read Warnings in Java
Software Regular Expression Applet
Feb 9 PowerPoint Regular Expressions in Java
PowerPoint Effective Programming
Feb 14 PowerPoint Logarithms
PowerPoint Analysis I
PowerPoint Simple Sorting
Assignment Sorting
Feb 16 PowerPoint Quicksort
Feb 21 PowerPoint BNF
PowerPoint Recognizers
PowerPoint Recognizers (minor revisions)
Example RecognizerTest.java
Assignment Recognizer for Robot Grammar
Feb 23 PowerPoint Java 7
PowerPoint Heapsort
PowerPoint Priority Queues
Feb 28 PowerPoint Huffman encoding
Review for exam
No assignment this week
Mar 1 Midterm Exam
Mar 6 Spring break
Mar 8 Spring break
Mar 13 Assignment Robot GUI
Mar 15 PowerPoint Tree searching
PowerPoint Graphs
Mar 20

PowerPoint Hypergraphs
PowerPoint Parsing
Assignment Parser
Example ParserTest.java

Mar 22 PowerPoint Spanning Trees
PowerPoint State-Space Searching
Mar 27 Threads
Concurrency
Mar 29

Grossman 1 -- Set of six lectures by Dr. Dan Grossman, University of Washington; used with permission.
Assignment Interpreter
Example Interpreter clarifications

Apr 3 Grossman 2
Apr 5 Special guest lecturer: Pat Palmer
PowerPoint Programming Without Coding
Apr 10 Grossman 3
PowerPoint ForkJoin
Assignment Concurrency assignment
Apr 12 Grossman 4
Apr 17 Grossman 5 & 6
Apr 19 Read git on SEAS (pdf file)
Assignment Git
Apr 24 PowerPoint Parallelism
Review
May 7 Final Exam, 3:00 p.m. - 5:00 p.m. in Moore 216

Key
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