CS 251 Intermediate Programming -- Spring 2004

Last modified April 28, 2004

Instructors

Barney Maccabe
EECE 236B; (505) 277-6504
Office Hours: 3:30-4:45 Tuesdays and Thursdays and by appointment

Wenbin Zhu
FEC 301E; (505) 277-9211
Office Hours: 12:00-1:50 Fridays and by appointment

Textbook

The Essence of Object-Oriented Programming with Java and UML, Wampler, Addison-Wesley, 2002.

Class meetings

Butler Lampson slides

Lecture
NTHP 122
2:00-3:15 Tuesdays and Thursdays
Lab Sessions
Tapy 217
3:00-3:50 Monday or Wednesday
If you miss a lecture or a lab session, you are responsible for the material covered and for obtaining copies of any handouts.

Tentative Schedule of class meetings

Week
Dates
Topic
Reading
1
1/19-1/23
Introduction Chapters 1 through 4
2
1/26-1/30
Exception handling, I/O and Streams  
3
2/2-2/6
UML Chapter 5
4
2/9-2/13
Swing  
5
2/16-2/20
Patterns Chapter 7
6
2/23-2/27
Invariants and Refactoring Chapter 8
7
3/1-3/5
First Midterm: review (3/2) & exam (3/4)
8
3/8-3/12
Tools: Ants, CVS, and Bitkeeper Chapter 10
9
3/15-3/19
Spring Break  
10
3/22-3/26
Extreme programming Chapter 9
11
3/29-4/2
Profiling & Debugging Chapter 10
12
4/5-4/9
Event driven programming and Threads  
13
4/12-4/16
Second Midterm: review (4/13) & exam (4/15)  
14
4/19-4/23
Studio Chapter 11
15
4/26-4/30
Studio
16
5/3-5/7
Review
17
Tuesday, 5/11
Final Exam 12:30-2:30

Course Goals

Catalog Description

An introduction to the methods underlying modern software development. Specific topics will include object-oriented design and the development of graphical user interfaces. Programming assignments will emphasize the use of objects implemented in standard libraries.

Specific goals

Grading

Programming Assignments  55%
Homework 10%
Quizzes 5%
Midterm Exams 15%
Final Exam 15%

Programming Assignments

There will be five or six programming assignments during the semester. Due dates for the programming assignments will be announced when the assignment is made.

Programs will be turned in using a process that will be described in the lab sessions.

You may have up to four late days on programming assignments throughout the semester. Once you have used up your allocation of "late days," late programming assignments will not be accepted. Late days are allocated in integral units: a programming assignment truned in one minute late on the due date consumes an entire "late day."

Programming Assignment
Due date
Counting strings 5pm on Friday,February 6th
Binary data 5pm on Wednesday, February 25th
Addding a GUI 5pm on Friday, March 26th
Client Server 5pm on Friday, April 16th

 

Homework Assignments

There will be four or five homework assignments during the semester.  Due dates for the homework will be announced when the assignment is made. Assignments are due at the start of class. Late assignments will not be accepted.

Quizzes

On occasion throughout the semester, the first 10 minutes of lecture will be used to administer a "pop quiz". These quizzes will require very short answers and will be designed to reward students who are keeping up with the assigned readings and material presented in lecture.

There will not be any "make up" quizzes and students who arrive late to class will not be able to turn in a quiz for that class.

Exams

There will be two midterm exams (3/4 and 4/15) and one final exam (5/11).  All exams will be cumulative.

Academic Honesty

You are welcome (and encouraged) to talk to your fellow students about the programming and homework assignments; however, everything that you turn in should reflect your own work unless the assignment calls for group work.

Class mailing list

All students must subscribe to the class mailing list.  The mailing list will be used for class announcements.