CMPS 109: Advanced Programming - Winter 2002


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

Java

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

Instructor Information

Office: BE 239
Hours: Tuesday 1-2pm, Wednesday 1:30-2:30pm, Thursday 1-2pm
E-mail: charlie@cs.ucsc.edu

Class notes

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

Updated 3-21-02

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 both the Baytree Bookstore and Slug Books Co-op.
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.
The first three chapters of the textbook are available online.

Evaluation:

A minimum of 50% on all three 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 three parts (hw, 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 homework because it only counts 20% 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".

This class is part of an investigation of the use of pair-programming in the classroom supported by the Carnegie Foundation, and the National Science Foundation. You will be invited to participate in this study. If you agree to participate in the study you may be allowed to work with a partner using pair-programming (see xxx for details).

Some of those in the study, and everyone that does not participate in the study will be required to complete their programs individually.

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 me.

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.

Homework: Turn in homework by using the submit procedures. 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. Homework is graded in terms of it being done in a good style, being correct, being concise, being readable, and being efficient.

Quizzes: There will be a quiz every other Thursday, beginning January 10, 2002.

Syllabus

Date Topic Reading
January 3 Basic Java Syntax Chapters 2-4
January 8, 10 Objects Chapter 6
January 15, 17 Arrays Chapter 5
January 22, 24 Inheritance Chapter 7
January 29, 31 GUIs Part I Chapter 8
February 5, 7 GUIs Part II Chapter 9
February 12, 14 UML and OOD TBA
February 19, 21 Reading and Writing Files Chapter 10
February 26 Exceptions Chapter 11
February 28, March 5, 7 Concurrent Programming Chapter 13
March 12, 14 Packages/Design/Containers/More UML Chapter 12
March 16 Final: 7:30-10:30pm Chapters 1-13, UML/OOD Handouts :-)


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

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