CIT 590 Programming Languages & Techniques
Spring 2010, David Matuszek

When you send me email about this course, please:

  • For CIT 590, put 590 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
May 6, 2010 Final exam grades (average = 60.07):final exam
Older Previous announcements

Meeting times
Lecture TR 1:30-3:00 Towne 315
Lab F 1:30-3:00 Moore 207
 Office hours
Whenever my door is open.
Specific office hours: 3:00-4:00 MTWR
Moore 176
Tuesdays 4:00-7:00;
Wednesdays 5:00-8:00
Weiss Tech House
Mondays 4:30-6:30. Moore 100 (A, B, or C)

The following schedule is preliminary. All dates and topics are subject to change.

Last semester'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: Getting started, Settings (both recommended and required), Preferences, FAQ, Tips
Software SwingExamples.jar
Tutorial Tutorials Point External site

Date Lectures Readings, Assignments, etc.
Thu Jan 14 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.
Read How NOT to go about a programming assignment external link
Assignment Warm-up exercises
Assignment 01 - Lunar Lander
Tue Jan 19 Functions. Abstraction, information hiding, software reuse. Testing, code walkthroughs. Scope. Pages 38-54.
Thu Jan 21 Recursion, global names, exceptions, functions, None. Using the IDLE debugger. Pages 54-59.
Assignment 02 - Hammurabi
Tue Jan 26 Lists, and operations on sequences. Unit testing and Test Driven Design. Pages 62-70
Thu Jan 28 References, identity, equality.

Read Unit testing and TDD handout.
Pages 70-72
Read Wiki page on TDDExternal link
Read Programming suggestions
Assignment 03-Sudoku
More information Easy Sudoku Puzzles

Tue Feb 2 Sorting. Tuples, and strings. Deep and shallow copies. Dictionaries. Pages 72-83.
Read Grading Criteria
Thu Feb 4 Sets, dynamic programming. Pair programming. Pages 88-99.
Assignment 04-Cities
More information Pair Programming Video external link
Tue Feb 9 Shelves, file I/O, keyword arguments Pages 100-110.
Thu Feb 11 Class cancelled due to snowstorm.

Pages 112-123.
Assignment 05-Array Operations

Tue Feb 16 DRY. Doc comments. Functional programming. Quicksort. Pages 127-137.
Thu Feb 18 Object-oriented programming. Agile Programming and eXtreme Programming. Pages 141-152.
Example (Example from class)
Assignment 06-Library
Tue Feb 23 Comparison of Python and Java. Read Python to Java
Assignment 07-Hearts
Thu Feb 25 Using the debugger. Style. More Java/Python comparisons.  
Tue Mar 2  
Thu Mar 4 Midterm exam No lab Friday March 5.
Tue Mar 9 Spring break; no classes  
Thu Mar 11 Spring break; no classes  
Tue Mar 16 Discussion of exam
Little functions
Read JUnit for Java
Read Java syntax (reference), especially
print statements, printf statements, and Scanner.
Thu Mar 18 PowerPoint Sudden Java Assignment Library, in Java
Assignment Library Clarifications
More information books-2.txt
More information
More information
Tue Mar 23 PowerPoint Class Structure  
Thu Mar 25 David Nellans, Skirkanich Auditorium. Assignment Flash Cards
More information
Tue Mar 30 PowerPoint Swing .
Thu Apr 1 Swing, continued
PowerPoint Inner Classes
PowerPoint JUnit testing
Answers to makeup quiz
Assignment FractionCalculator
Tue Apr 6 PowerPoint Polymorphism  
Thu Apr 8

PowerPoint Abstract Classes
PowerPoint Exceptions

Assignment Flash Cards II

Tue Apr 13 PowerPoint Threads
PowerPoint Animation
Thu Apr 15 PowerPoint MVC
PowerPoint Comments
Assignment Snipe
Tue Apr 20 PowerPoint More About Classes Read Object-Oriented Concepts
Thu Apr 22 PowerPoint Java Bits and Pieces
PowerPoint Introduction to Collections
No lab this week. However, this would be a good time to work with your partner on the final assignment.
Tue Apr 27 PowerPoint Java O-O Summary
PowerPoint Style Summary
Wed May 5 Final Exam 9:00 a.m. -11:00 a.m.
Wu & Chen Auditorium
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