CMPS 109. Advanced Programming. W 2003 -
An introduction to object-oriented techniques of software development including data abstraction, inheritance, polymorphism, and object-oriented design.. Extensive practice using a computer to solve problems, including construction of graphical user interfaces and a multithreaded client/server applications. Prerequisite(s): course 101. I. Pohl, TA Mark Slater

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

Instructor Information

Office: BE 233
Hours: Tuesday 10-11pm, or by appointment
E-mail: pohl@soe.ucsc.edu

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.
Template powerpoint slides
STL powerpoint slides
Swing Lecture Slides and Sample Code

MIDTERM REVIEW Supplements

Midterm review notes
Final Exam Review notes

Required Text:

Java by Dissection,
by Ira Pohl and Charlie McDowell.
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 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 primarily 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.
Programming Homework: You should treat the graded programs as take home exams. You may freely give and receive help with the computer facilities, editors, OS, debugging techniques, the meaning and proper use of programming 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'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. Your worst graded homework assignment will be dropped from your score. It is important to check with the TA pages or the TA in the lab on questions on how the homework should look. He has extra suggestions on how to best write the assignments.
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.
Submitting 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. Syllabus Preliminary

Date

Topic

Reading

January 7, 9

Review of Java Syntax

Chapters 2-4

January 14, 16

Objects

Chapter 6

January 21, 23

Arrays-Vectors-Containers (C++)

Chapter 5

January 28, 30

Inheritance

Chapter 7

February 4, 6

GUIs

Chapter 8

February 11, 13

Midterm

Chapter 9

February 18, 20

Reading and Writing Files

Chapter 10

February 25, 27

Exceptions

Chapter 11

March 4, 6

Concurrent Programming

Chapter 13

March 11, 13

Topics: Java versus C# and C++

 

Final exam

 

 


How to submit your assignments

 

Program 1 -- Graph Generator (homework locker closed)

Program 2 -- Objects and Data Abstraction: MST Problem (homework locker closed)

Program 3 -- Reimplementing MST using STL (homework locker closed)

Program 4 -- A Drawing Program (homework locker closed)

Program 5 --FILE IO and Exceptions (homework locker closed)

Program 6 -- Sockets and Threads (homework locker closed)