CIT 591 Programming Languages & Techniques I
Fall 2001, David Matuszek
MW 12-1:30 Towne 100 (Heilmeier Hall), F 12-1:30 Towne 142

This page will be under continuous development as the semester progresses.

Office hours:
     David Matuszek, WF 2:30-4:00,
     Yi Chen, M 5:00-6:30, Pender 122, yicn@seas.upenn.edu
     Yongdong Zhao, W 10:30-12, Pender 132, yongdong@seas.upenn.edu

Links:
     Dr. Dave's Schedule
     Previous Announcements
     Textbooks and Software
     Quiz Schedule
     Old Quizzes

Blackboard and Zip programs
BlueJ Notes
Doing Without BlueJ
Sample Programs (under construction)

Announcements
December 21, 2001 I've started work on a Home Page for CIT 594.
December 21, 2001 CGS students who were enrolled in CIT 591 last semester will be permitted to register for CIT 594 in Spring 2002 (as soon as a bit of paperwork goes through).
December 14, 2001 CGS (College of General Studies) students: For essentially bureaucratic reasons, you are no longer allowed to take CIS or CIT Masters level courses. I am working to resolve the situation, hopefully within the next week or two.
December 14, 2001

From the ACLU: What To Do If You're Stopped By The Police, The FBI, The INS or The Customs Service
ENGLISH: http://www.aclu.org/library/know_your_rights.pdf
SPANISH: http://www.aclu.org/library/know_your_rights_sp.pdf
ARABIC: http://www.aclu.org/library/know_your_rights_ar.pdf
Hindi, Farsi, and Punjabi versions can be obtained soon.

December 13, 2001 Textbooks for CIT 594
December 13, 2001 I have been misinformed! It turns out I can give plus and minus grades to some students--just not those in the School of Engineering (such as the MCIT students). That being the case, I will give plus grades as allowable and appropriate. In fairness to anyone who was counting on not getting a minus grade, I will not assign minus grades this semester.

Assignments

Here is your First Java Assignment (a Drawing applet).
Please turn in your code on a floppy, and your notes about the BlueJ tutorial on plain paper.

Here is your Second Java Assignment (Scott's Problem).
Here is your Third Java Assignment (21 Card Game).
Here is your Fourth Java Assignment (Calendar).
See also the Tips on using the Calendar class page.
Here is your Fifth Assignment (Caesar Cipher).
See also the Notes on Caesar Cipher page.

Here is your Sixth Assignment (Rabbit Hunt).
Here is the Zip file that goes with it.
Notes on Style Marks for Rabbit Hunt

Here is your Seventh Assignment (Calculator).
Here is the Java file that goes with it.

Here is your Eighth Assignment (Magic Squares).
Here is your Ninth Assignment (21 Card Game).

Here is your Tenth and Final Assignment (Syntax Coloring)
See also the Notes on Syntax Coloring

CIT 591 is a required course for students in the MCIT program and in Bioinformatics. In addition, CIT 591 is a service course for graduate students in other fields who have an interest in learning something about programming and computer science.

Your goal in this course should be to learn to program in Java. For those of you have had no prior programming experience, much of what you will learn is basic programming skills, applicable to any programming language. For all students, you will learn a great deal about the Java programming language. (Currently, ML is not scheduled to be taught in this course.)

If you are an MCIT student and are already an experienced Java programmer, an opportunity will be provided for you to test out of this course. This will allow you to take some other course; but you must still fulfil the ten-course requirement. All MCIT students will be required to take the follow-on course, CIT 594.

Lectures and lecture materials
Date
PowerPoint lectures
Suggested reading

Monday, September 10

Welcome (30 slides)
Getting Ready for Java (13 slides)

Chapter 1

Wednesday, September 12

A First Applet (34 slides)
Quick Tour of BlueJ (16 slides)

Sections 2.9 and 2.10
BlueJ Tutorial
Monday, September 17

Introduction to Primitives (26 slides)
Using Objects (20 slides)

Sections 2.3 and 2.4
Sections 2.1, 2.5, 2.6, 2.7
September 19, 2001

Simple Control Structures (21 slides)
Example Program (Fibonacci) (16 slides)
Style Rules I (15 slides)

Sections 3.1, 3.2, 3.4, 3.6
Section 3.9
Rules 1, 3, 5, 6, 8
September 24, 2001

Starting Classes and Methods (34 slides)
Access (18 slides)

Sections 4.1, 4.2, 4.3
Sections 4.2, 5.2
September 26, 2001 More Control Structures (26 slides) Sections 3.3, 3,7, 3.8, Rules 5 and 7
October 1, 2001 Basic Object-Oriented Concepts (37 slides)
Sections 4.1, 4.2, 7.1, 7.2, 7.3
October 3, 2001 Quiz 1 - Answers 1
Continuation of previous lecture
 
October 8, 2001 Methods (29 slides)
Section 4.3
October 10, 2001

Style Rules for Names (17 slides)
Access to Names (32 slides)

Rules 9-13, 18, 19, 22, 23, 25, 26, 28, 31
October 15, 2001

Characters and Strings (18 slides)
Numbers (16 slides)


Section 2.4
October 17, 2001 Quiz 2 - Answers 2
The Rabbit Hunt (30 slides)
 
October 22, 2001

All the Operators (20 slides)
Polymorphism (13 slides)

Section 3.5, Appendix E
Sections 5.4, 7.2, 7.4
October 24, 2001 Event loops (10 slides)
GUIs (32 slides)
Section 5.5
Section 7.8
October 29, 2001 Contracts (7 slides)
Using the API (12 slides)
Abstract classes and interfaces (17 slides)

Section 2.6, Rules 18 and 21
Sections 5.4, 7.7
October 31, 2001

Quiz 3 - Answers 3
Inner classes (10 slides)
Model-View-Controller (31 slides)


Section 5.3
BouncingBallApplet.zip
November 5, 2001

Buttons (19 slides)
javadoc Comment Style (27 slides)

Sections 9.3 and 9.4
Rules 32 to 58
November 7, 2001 Arrays (27 slides)
Sections 6.1, 6.2
November 12, 2001 Applets (25 slides)

Section 2.9, Appendix J
November 14, 2001 Quiz 4 - Answers 4
Components (29 slides)

Sections 7.8, 9.1, 9.2, 9.3
November 19, 2001 Internal comment style (15 slides)
Subclasses (29 slides)
Rules 59 to 66
November 21, 2001
(No lab this week)
Which is better?
Vectors

Section 6.5
November 26, 2001 Exceptions
File I/O (except Serialization)
Section 8.1
Sections 8.2-8.5
November 28, 2001 State Machines

December 3, 2001

Quiz 5 - Answers 5
Strings Etc.
Serialization (in File I/O)


Sections 2.5, 4.6
Section 8.5
Future lectures (subject to change)
December 5, 2001 Threads
Stacks
 
December 10, 2001 Concluding Remarks
Quiz 6
Makeup Quiz
I will start with a brief lecture.
Quiz 6 will cover from State Machines on.
The makeup quiz will be comprehensive.