CIT 591 Programming Languages & Techniques I
Fall 2009, David Matuszek

When you send me email about this course, please:

  • For CIT 591, put 591 as part of the Subject: line.
  • For general email about the MCIT program, put MCIT as part of the Subject:line.
  • Send plain text only (not HTML or RTF).
  • Do not include any attachments.
  • Make sure your computer is virus-free.
Date Announcements
Older Previous announcements

Meeting times
Lecture MW 3:00-4:30 Towne 311
Lab F 3:00-4:30 Moore 207
Beginner's section Mondays 4:30-6:00 Jaffe B17
 Office hours
Whenever my door is open.
Specific office hours: 3:00-4:30 Tuesdays and Thursdays
Moore 176
Thursdays 6:00-7:00 Moore 207
Times TBD
Moore 100

Last year's CIT591
Academic Integrity Policy
Textbook and Resources
Errata for Python book
MCIT schedule
Blackboard and
Instructions for Using Zip Files and Blackboard
Java version test page
Java Syntax Pages (online)
or as a downloadable .zip file
Eclipse FAQ and Eclipse Tips
Software SwingExamples.jar
Tutorial Tutorials Point External site

Date Lectures Assignments, etc.
Sept. 9 Introduction. Python vs. Java. Active learning vs. spectator sports. Using IDLE. Data types, expressions, and assignments. Program constituents: Input, arithmetic, decision making, looping, and output. Naming conventions. Pages v-vii, 3-38 in Exploring Python.
Assignment 1 - Coke Machine
Example My
Sept. 14 Functions. Abstraction, information hiding, software reuse. Testing, code walkthroughs. Scope. Pages 38-54.
Read Style Rules 1
Sept. 16 Recursion, global names, exceptions, functions, None. Using the IDLE debugger. Pages 54-59.
Assignment 2 - Flash Cards
Example My
Sept. 21 Lists, and operations on sequences. Unit testing and Test Driven Design. Pages 62-70
Read How to Pair ProgramExternal link
Sept. 23 References, identity, equality. Pair programming. Eclipse. Read Unit testing and TDD handout.
Pages 70-72
Read Wiki page on TDDExternal link
Assignment 3 - Playfair Cipher
Example My
Example My
Read Programming suggestions
Sept. 28 Sorting. Tuples, strings, and sets (mostly strings). Deep and shallow copies. Pages 72-83.
Read Grading Criteria
Sept. 30 Dictionaries, from...import..., dynamic programming. Pages 88-99.
Assignment 4 - Readability Measures
More information Corrections
More information Sample files: TheBookofOneSyllable.txt, war-of-the-worlds.txt, constitution.txt, critique-of-practical-reason.txt.
Oct. 5 Shelves, file I/O, keyword arguments Pages 100-110.
Oct. 7 Classes. Pages 112-123.
Assignment 05 - Small Town Traffic
Example Addendum
Oct. 12 DRY. Doc comments. Functional programming. Quicksort. Pages 127-137.
Oct. 14 Object-oriented programming. Agile Programming and eXtreme Programming. Pages 141-152.
Assignment 06 - Balanced Ternary (due Oct. 27)
Oct. 19 FALL BREAK "Fall break" Saturday Oct. 17 through Monday Oct. 19
Oct. 21 Midterm Exam, Answer Key
Oct. 26 Python vs. Java--what to expect. Eclipse again. Basic language syntax. Scanner, print, println, printf.
PowerPoint Sudden Java
Read Python to Java
Pages 1-19 in Java book.
Read Java syntax (reference), especially
print statements, printf statements, and Scanner.
Oct. 28 Conditional and iterative statements, including the extended for statement. Scope of names.
PowerPoint Class Structure
PowerPoint Arrays
Pages 21-32.
Read Enhanced for loop.
Assignment 07 - Fractions
Read JUnit for Java
Nov. 2 Classes and objects. Autoboxing/unboxing.
PowerPoint Polymorphism
PowerPoint Strings
Pages 33-48, but skip sections 4.9 and 4.10.
Nov. 4 More about classes and objects. ArrayList, StringBuilder, and generics. Possibly enum. The Java API.
PowerPoint Error Messages
Sections 4.9 and 4.10.
Read enum
Assignment 08-Eliza
Example and
Nov. 9 Annotations. JUnit testing.
PowerPoint Bits and Pieces
Read Autoboxing/unboxing
Nov. 11 Subclasses, abstract classes, and interfaces. Inheritance.
PowerPoint Abstract Classes and Interfaces
Pages 49-60.
Example from today's class (as a zipped Eclipse project).
Assignment 09 - Three Musketeers
Nov. 16 Packages and access control. More about polymorphism. Overriding toString and equals. Exceptions and assertions.Input/output.
PowerPoint Inner Classes
PowerPoint Exceptions
PowerPoint I/O
Pages 60-105.
Nov. 18 Swing (up to but not including applets).
PowerPoint Swing
Pages 107-129.
Assignment 10 - Flash Cards II (due Dec. 3)
Nov. 23 Painting. Applets.
PowerPoint Applets and Painting
Nov. 25 No class this Wednesday. Thanksgiving is Nov. 26; No lab this week
Nov. 30 PowerPoint Comment Style
PowerPoint Model-View-Controller
Pages 157-166.
Dec. 2 PowerPoint Threads
PowerPoint Animation

Example Bouncing Ball Applet:,,; also (same thing, but as an application)
Example, original and improved
Assignment 11 - Frogger

Dec. 7

PowerPoint Collections
PowerPoint Which is better?

Pages 143-155.
Dec. 9 PowerPoint Summary of Java O-O Read Object-Oriented Concepts
Tuesday, Dec. 15 Final Exam (12:00 - 2:00)
DRLB (David Rittenhouse Labs) A8
Exam will cover Java and programming concepts, but not Python syntax.

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