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

Meeting times
Lecture TR 4:30-6:00 LRSM Auditorium (diagonally opposite Moore)
 Office hours (check Piazza for changes)

Tuesdays 1:00-3:00 and 6:00-8:00,
Thursdays 1:00-3:00, and
Any time my door is open.
Levine 162
Mondays 3:00 to 4:50 Moore 100C
Wednesday 4:30 to 6:30 Moore 207
Mondays 6:00 to 8:00 Moore 207
Fridays 2:00-4:00 Levine 3rd floor, bump space
Last year's CIT594 Software SwingExamples.jar
Textbook Software Regular Expression Applet
Dr. Dave's schedule Read Older exam questions
Canvas Academic Integrity Policy
Piazza Academic Resources
Search Dave's web sites:

A Concise
Lectures and other materials
PowerPoint lectures
Reading and assignments
Thursday, January 15 PowerPoint Introduction
PowerPoint Analysis of algorithms I
PowerPoint Searching (with logarithms)
Read Pages 1 to 20 in AU (Algorithms Unlocked)
Assignment 01 Collatz
Tuesday, January 20 PowerPoint Sorting (and loop invariants)
PowerPoint Comparisons
Read Pages 21 to 24 in AU
Thursday, January 22 PowerPoint Pointers and references
PowerPoint Data structures bestiary
Read Pages 25 to 59 in AU
Assignment 02 Squaresort
Read Proving Loop Correctness
Tuesday, January 27 PowerPoint Linked Lists
PowerPoint Binary Trees
PowerPoint BNF
Thursday, January 29 PowerPoint Data Structure Design
PowerPoint State Machines
PowerPoint Tokenizers
Assignment 03 Sentence Generation
Read A Concise Guide to Git
Tuesday, February 3 PowerPoint Trees
PowerPoint Tree Searching
PowerPoint Backtracking
Assignment 04 Backtracking
Read Backtracking (just on trees, not graphs)
Thursday, February 5 PowerPoint Stacks, Queues, and Deques
PowerPoint Stacks


Tuesday, February 10 PowerPoint Hashing
PowerPoint Abstract Data Types

Assignment 05 Tree API and Expression Evaluation
Read Parsing Trees

Thursday, February 12 PowerPoint Git Read A Concise Guide to Git
Tuesday, February 17 PowerPoint Recognizers
PowerPoint Analysis II

Assignment 06 Bugs Recognizer
Read The Bugs Language
Read Bugs Grammar
Read HTML for Java
Read Recursive Descent
Thursday, February 19 PowerPoint Quicksort
PowerPoint Persistence
PowerPoint Preferences

Read Pages 71 to 89 in AU
Tuesday, February 24 PowerPoint Recursive Descent Parsing
PowerPoint Types of Algorithms
Assignment 07 Bugs Parser
Read Bugs Grammar, v2
Thursday, February 26 PowerPoint Heapsort
PowerPoint Priority queues
Tuesday, March 3 Review
Read Pages 49 to 59 in AU
Thursday, March 5 SNOW DAY -- University closed
SIGCSE 2015, Kansas City, Missouri, March 4-7
Tuesday, March 10 Spring break  
Thursday, March 12 Spring break  
Tuesday, March 17
PowerPoint Huffman Encoding
PowerPoint Dynamic Programming

Assignment 08 Bugs Interpreter, part 1
Read Interpreter FAQ
Read Pages 158 to 167 in AU

Thursday, March 19 Midterm Exam  
Tuesday, March 24 Going over midterm Assignment 09 Bugs Interpreter, part 2
Read Writing the Bugs Interpreter
Read Drawing the Bug
More information Bug Patterns (tests for final interpreter)
Thursday, March 26 PowerPoint Threads  
Tuesday, March 31 PowerPoint Graphs
PowerPoint Hypergraphs
Assignment 10 MapReduce
Thursday, April 2 PowerPoint Concurrency
PowerPoint Fork-Join
PowerPoint MapReduce
PowerPoint Parallelism
Read Beginner's Introduction to Java's ForkJoin Framework
Tuesday, April 7 PowerPoint Scala 0 (Intro)

Assignment 11 Scala 1: Flash Card Merge
Read Notes on the Flash Card Merge program
Read A Concise Introduction to Scala

Thursday, April 9 PowerPoint Scala 1 (Lists)  
Tuesday, April 14 PowerPoint Alpha-Beta Assignment 12 Scala 2: Coin Grabber
Read Notes on Minimaxing
Thursday, April 16 PowerPoint State-Space Searching
PowerPoint Scala 2 (Patterns)


Tuesday, April 21 PowerPoint Randomized Algorithms
PowerPoint Scala 3 (Functions)
Assignment 13 Scala 3: Pair Programming
Thursday, April 23 PowerPoint Scala 4 (Classes and objects)
PowerPoint Scala 5 (More about Functions)
PowerPoint Algorithm Types
Tuesday, April 28 PowerPoint Genetic Algorithms  
Tuesday, May 12 Final Exam 3:00pm to 5:00pm in Skirkanich auditorium. 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