CMPS 109: Advanced Programming - Winter 2006


[Homepage] | [General Lab Info] | [TA's & Tutors] | [Supplements] | [Homework] | [Exams]

Class Location CHANGE

Despite what it says in the class schedule beginning MONDAY January 9th, the class will meet in E2 room 180 (the Simularium). The first class meeting will be in Porter 144 as advertised.

Java

This course will teach objected-oriented programming and design, primarily using Java.

Instructor Information

Office: E2 349B
Hours: Monday 2-3, Thursday 3:30-4:30
E-mail: charlie@cs.ucsc.edu

Notes

The notes of any prepared slides used in class can be found here. I recommend you print a copy and bring them to class or bring an electronic copy on your laptop in some form that you can mark them up as needed.

General Lab Information

This section contains general information about how to run the tools you will need for this class.

TA's and Tutors

This section contains information about the lab times and when the TA is available.

Lecture Supplements

This section contains additional information from the instructor to supplement the lectures. Materials will be added here as they become necessary.

Required Text:

Java by Dissection 2nd Edition, by Ira Pohl and Charlie McDowell.
The textbook for this class is a revisioni of "Java by Dissection" (first edition). The biggest change is additional material relevant only to the latest Java release (Java5 or 1.5). The second edition is not published but will instead be available as a "reader" from Slug Books Co-op.

The reader is NOT yet avaiable, however, you can download a copy from within WebCT for this class. You should be able to add yourself to the WebCT class if you are not already there.

I recommend you try and read chapters 5 and 6 before the first class meeting. These contain material I expect you to already be familiar with, except possibly for some of the features that were first introduced in Java5.

Evaluation:

OR whichever gives the highest total.

A minimum of 50% on all four aspects of the grade is necessary but not sufficient to pass this class. This means, if you receive less than 50% on any one of the four parts (hw, programs, quizzes, final), you will not pass, however, just because you score at least 50% on each part does not imply that you will necessarily pass. For example, someone that scored 51% on each of the three parts would almost certainly, NOT pass. The policy is intended primariliy to prevent students from "blowing off" the programs and homework because they only count for 20% and 10% of the grade. You cannot pass this class if you do not do the homework.

Working Together: It has been observed that in the "real world" programmers rarely work alone. In fact some recent studies suggest that the most productive work arrangment is for two programmers to work side-by-side, with one literally looking over the shoulder of the other at all times - this is called "pair-programming". Students in this class are STRONGLY ENCOURAGED to work together using pair-programming. You may, if you really cannot find a compatible programming partner, complete the programs individually. If you do use pair-programming (you are strongly encouraged to give it a try) please click here for details.

Either as an individual or as a pair, you should treat the programs as take home exams. You may freely give and receive help (from outside your pair) with the computer facilities, editors, UNIX, debugging techniques, the meaning and proper use of Java constructs, etc.. It is also perfectly permissible to discuss general approaches and algorithms with your classmates. However, viewing or copying any part of another person or team's program, or allowing your program to be copied or viewed is not permitted. A program, Moss, will be in use to detect copying. If you have any questions on this important point, please see one of the instructors.

Academic Dishonesty: Any confirmed academic dishonesty including but not limited to copying programs or cheating on exams, will constitute a failure of the computer ethics portion of this class may result in a no-pass or failing grade.

Programming Projects: BOTH partners in a pair should submit the program. This is required for two reasons. First, it avoids the "I thought my partner was going to submit it" problem. Second, it facilitates the online grading by letting WebCT know that each student has actually submitted a solution.

Programming assignments, grading policy, and due dates can be found on the class web page homework section.

Quizzes: There will be a quiz at the start of class every other Friday, beginning January 13, 2006.

Syllabus

Date Topic Reading
January 6 Arrays and Objects Chapters 5 and 6
January 9 Objects and Enums JBD2 6.1-6.4
January 11, 13 Inheritance, Auto-boxing Chapter 7
January 16 HOLIDAY
January 18, 20 GUI Chapter 8
January 23, 25, 27 GUI Chapter 9
Jan. 30, Feb. 1, 3 UML and OOD TBA
February 6, 8 Reading and Writing Files Chapter 10
February 10 Exceptions Chapter 11
February 13, 15, 17 Concurrent Programming Chapter 14
February 20 HOLIDAY
Feb. 22, 24, 27 Templates in Java JBD2 xxx
March 1, 3 Inheritance revisited Chapter 7
March 6, 8, 10 Generics (templates) TBD
March 13, 15 C++ versus Java TBD


[Homepage] | [General Lab Info] | [TA's & Tutors] | [Supplements] | [Homework] | [Exams]

This page maintained by Charlie McDowell. Email regarding this site.