CS 251 Intermediate Programming

Last modified January 19, 2004

Spring 2004

Instructors

Barney Maccabe
maccabe <at> cs.unm.edu
(505) 277-6504
EECE 236B
Office Hours: 3:30-4:45 Tuesdays and Thursdays and by appointment

Wenbin Zhu
wenbin <at> cs.unm.edu
(505) 277-1350
FEC 301E
Office Hours: 12:00-1:50 Fridays and by appointment

Text

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

Class meetings

Lectures

NTHP, Room 122; 2:00-3:15 Tuesday and Thursday

Lab Sessions

Tapy 217; 3:00-3:50 Monday or Wednesday

Missed Classes

If you miss a lecture or a lab session, you are responsible for the material covered in lecture and for obtaining copies of any materials handed out during class.

Class mailing list

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

Tentative Schedule of class meetings

Week Dates Topic
Reading
1 1/19-1/23 Introduction Chapters 1through 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 Exam; 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 Exam; 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

Grading will be based on one of the following weightings:
Percentage of Grade
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.

Programming assignments will always be due at 5pm on a Friday afternoon. 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 at 5:01 on the due date consumes an entire "late day."

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.  No electronic submissions. Late assignments will not be accepted.

You should turn in your own work. You may discuss exercises with others; however, you must write your own solutions to the exercises.

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.

Grading

Grading will be based on one of the following weightings depending on whether you write a term paper
Without Term Paper  With Term Paper
Homework  15% 15%
Experiments 10% 10%
Term paper 0% 10%
Midterm Exam 30% 20%
Final Exam 45% 45%