CMPS 109: Advanced Programming - Winter 2005


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

Java

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

Instructor Information

Office: E2 349B
Hours: Monday 12:30-1:30pm, Wednesday 12:30-1:30pm, Thursday 3-4pm in Crown Computer Lab
E-mail: charlie@cs.ucsc.edu

Class notes for the book chapters

I recommend you print a copy of the notes and bring them to class. Here are some additional notes

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.

FAQ's (Frequently Asked Questions): See if your question is here!

This section contains questions pertaining to programming which students frequently ask.

Required Text:

Java by Dissection, by Ira Pohl and Charlie McDowell.
The textbook for this class will be available from Slug Books Co-op. Every student is required to have an "Interwrite PRS clicker" for use during class. These can be purchased from Slug Books and new copies of the textbook purchased at Slug Books contain a $20 mail-in rebate for the clickers. I believe the Baytree Bookstore also has the textbook, but without the mail-in rebate.
This is the first printing of this book, and sad to say, there are a few errors. A list of them can be found here.

Evaluation:

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 have the option of working together using pair-programming, or completing the programs individually. If you wish to 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 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: Turn in programmming projects using WebCT. It will not allow late work. Late work will not be accepted or graded. The program should be submitted in whatever form it is in - grading is done not only on working code. Programs are graded in terms of it being done in a good style, being correct, being concise, being readable, being robust, and being efficient.

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 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 Wednesday, beginning January 12, 2005.

Syllabus

Date Topic Reading
January 5 Basic Java Syntax Chapters 2-5
January 7 Arrays and Objects Chapters 5 and 6, JBD2 5.13-5.15
January 10, 12 Objects and Enums Chapters 6, JBD2 6.1-6.4
January 14, 19, 21 Inheritance, Auto-boxing Chapter 7, JBD2 7.11.2-7.11.3
January 24, 26, 28 GUI Chapters 8-9
Jan. 31, Feb. 2, 4 UML and OOD TBA
February 7, 9, 11 Reading and Writing Files Chapter 10
February 14, 16 Exceptions Chapter 11
February 18, 23, 25 Concurrent Programming Chapter 13
Feb. 28, March 2, 4 Templates in Java JBD2 xxx
March 7, 9, 11 TBD TBD


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

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