CIT 591 Programming Languages & Techniques I
Fall 2003, David Matuszek
3:00-4:30 MW, Towne 311
Blackboard (requires login)

This page is under constant revision during the semester (especially during these first few days!), so please bookmark this site and check back frequently.

When you send me email about this course, please use 591 in the Subject: line. For general email about the MCIT program, please use MCIT in the Subject: line. I get so much email that things get lost pretty easily; I think this will be a big help. Thanks.

 Meeting times
 Regular class MW 3:00-4:30 Towne 311
 Help session F 3:00-4:30 Towne 311
 Lab sessions F 1:00-2:00 and 2:00-3:00 Moore 207
 Office hours
TR 3:00-4:30
R 6:00-7:00
Pender 176
W 12:00-1:00 Moore 207
W 5:00-6:00 Moore 207
  
Links
Last year's CIT591
Academic Integrity Policy
Textbooks
Lab assignments (with additions)
My schedule
Blackboard and
Instructions for Using Zip Files and Blackboard

Date Announcements
December 10, 2003
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 DAY STUDY BREAK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Please come and enjoy a snack before finals during the three Readings Days:

Tuesday, December 9
Wednesday, December 10
Thursday, December 11

TIME: 2-4pm
PLACE: 2nd floor Mezzanine of Levine


Fresh brewed Coffee and Decaf
Assorted Teas
Hot Chocolate
Hot Apple Cider
Assorted Biscotti, Brownies and Holiday Cookies


Sponsored by the Computer and Information Science Department

December 4, 2003 According to http://www.upenn.edu/registrar/pdf_main/fall03_TT_exam_schedule.pdf, the final exam is Monday, December 15, 11:00 - 1:00 in Moore 216.
Older Previous announcements

Date Lectures, Assignments, etc.
September 3, 2002 Welcome to MCIT
Labs, etc.
September 5, 2003 HorseRace.zip
September 8, 2003

Getting ready for Java
Overview of Java
Just enough Java

September 10, 2003

Introduction to Primitives
1-Day of the Week

September 15, 2003 Simple Control Structures
Fibonacci Numbers
September 17, 2003 Error Messages
Using Objects
Lunar Lander
Comments on Lunar Lander assignment
September 22, 2003 Starting Objects and Methods
Numbers
September 24, 2003 Arrays
Saddle Points
September 29, 2003 More Control Structures
Access
October 1, 2003 Methods
Lunar Lander
LunarLander.java, Game.java (original), LunarLanderGame.java (improved)
Mixed-Strategy Games
October 6, 2003 Polymorphism
All the Operators
October 8, 2003 Exceptions
The assert statement
October 15, 2003 Characters and Strings
Using the Java API
A First Applet
Traffic Jam
A class for your use in Traffic Jam
Traffic Jam Suggestions
October 20, 2003 Event Loops
GUI Building
Widgets (Components)
Layout Managers
October 22, 2003 Subclasses
Abstract Classes and Interfaces
October 27, 2003 Midterm Exam
Answer Key
October 29, 2003 Applets
Inner classes
Components
LunarLander Applet
GUI Starter Kit
November 3, 2003 Style
javadoc Style
November 5, 2003 Strings etc.
Input/Output
Memorization Helper
LineReader.java, LineWriter.java, and LineIoTester.java
November 10, 2003 Vectors
State Machines
November 12, 2003

Basic Object-Oriented Concepts
Wator
Changed requirements
Wator comments
Important Information for GUI Developers
Partners

November 17, 2003 Model-View-Controller
Access to Names
November 19, 2003 Threads
Simple Animation
animation.zip (Code from the SimpleAnimation lecture)
Using a debugger
November 24, 2003 Regular Expressions
November 26, 2003 Which is better?
Uncommon Syntax
December 1, 2003 Stacks
Recursion
December 3, 2003 Design Patterns and Refactoring
December 8, 2003 No lecture; question and answer session only.
December 18, 2003 Final Exam
Answer Key

Key
An assignment Software that will be useful in this course An article, usually offsite A tutorial
Official specification (always offsite) A PowerPoint document, usually one of my lectures Additional information about the topic Example