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

This page is under constant revision during the semester (especially during the first couple of weeks), so please bookmark this site and check back frequently.

Get past my spam filters. When you send me email about this course, please:

I post all class materials on the Web, including my lecture slides, as soon as they are ready. If you want to see them earlier, consider looking at last year's CIT591. Here's what you need to know about this older material:

 Meeting times
Lecture MW 3:00-4:30 Towne 315
Lab F 3:00-4:30 Moore 207
Help sessions Ended
 Office hours
TR 3:00-4:30, R 6:00-7:00 Moore 176
TA: W 4:30-6:00 Weiss Tech House
Tutor:

M 4:30-6:30, W 1:00-3:00, and by arrangement

Weiss Tech House
  
Links
Last year's CIT591
Academic Integrity Policy
Textbooks and Software
My schedule
Blackboard and
Instructions for Using Zip Files and Blackboard
Java version test page
Java syntax pages

Date Announcements
December 13, 2005 I've posted the midterm, both with answers and without answers.
December 8, 2005

Gemma will have her office hours Monday 4:30-6:30 and Tuesday 1:00-3:00 of next week in Weiss Tech House, and a review session Friday 3:00-5:00 in the lab.

I will not be keeping office hours after today.

Older Previous announcements

Date Lectures, Assignments, etc.  
Sept 7

Welcome
Labs, etc.

Computer safety
All I Really Need to Know about Pair Programming I Learned in Kindergarten
Chapters 1-3 in the Seefeld book
Sept 9 Introduction to Moore 207, Linux, and BlueJ
Introduction to BlueJ
Tutorials and MyDrawing program
Sept 12 Getting ready for Java
Just enough Java
 
Sept 14 Primitives
Simple control structures
Fibonacci example
Chapter 6 in the Seefeld book
Sept 16   Collatz's Problem
Notes on the Collatz Assignment
Sept 19 Classes and objects
Using objects
Chapter 13 in the Seefeld book
Sept 21 Introduction to classes and methods
Simple style rules
 
Sep 23   Pig
Notes on the Pig Assignment
Sept 26 Additional statement types
Error messages
askUser
Chapter 9 in the Seefeld book
Sept 28 JUnit
Arrays
JUnit Test Infected: Programmers Love Writing Tests
Chapter 10 in the Seefeld book
Sept 30   Numeric spell checker
Notes on the spell checker
Oct 3 Methods
The Java API
 
Oct 5 Numbers
Polymorphism
 
Oct 7   Sudoku
Oct 10 Exceptions  
Oct 12 Abstract classes and interfaces
Strings and StringBuilders
 
Oct 14   Language translation
Language translation notes
Oct 17 Fall term break  
Oct 19 Operators
 
Oct 21   Extended language translation
Oct 24 Event loops
AWT
 
Oct 26 Inner classes
Swing
Basic Style Rules
A commented program and a resultant Javadoc page
Oct 28   SwingExamples.jar -- download and double-click to run
The Drake Equation
Oct 31 Subclasses
 
Nov 2 Namespaces, Scope, and Access
Java I/O
 
Nov 4   Memorization
Nov 7 ArrayLists
Java 5 Features
 
Nov 9 Uncommon Syntax
O-O Review
 
Nov 11    
Nov 14   Midterm Exam
Midterm Exam, with answers
Nov 16 Model-View-Controller
Threads
 
Nov 18  
Lines of Action
About BoardGame
Testing for a win in Lines of Action
BoardGame.zip (flawed)
BoardGame2.zip (better)
BoardGame3.zip (best)
Nov 21 Style rules
Which is better?
 
Nov 23 No class.  
Nov 25 Thanksgiving break  
Nov 28 Javadoc comment style
Eclipse
 
Nov 30 Applets
Animation
Bouncing Ball Applet (.zip file)
Dec 2   Kaleidoscope
Dec 5 Producer-Consumer
Starting Eclipse
Recursion
 
Dec 7 O-O Review Same as Nov. 9 lecture, plus some Java 5 stuff.
Dec 9 No lab today.  
Dec 20 Final Exam 12:00-2:00
402 Logan Hall
249 So. 36th St.
photo: http://www.facilities.upenn.edu/mapsBldgs/view_bldg.php3?id=71
map: http://www.facilities.upenn.edu/mapsBldgs/view_map.php3?id=223

Key
An assignment Software that will be useful in this course A page you should read
A PowerPoint document, usually one of my lectures Additional information about the topic Example