Chris Pollett >Old Classes >

( Print View )

Student Corner:
  [Grades Sec5]

  [Submit Sec5]

  [Email List Sec5]

Lecture Notes]

Course Info:
  [Texts & Links]
  [HW Info]
  [Exam Info]
  [Additional Policies]

HW Assignments:
  [Hw1]  [Hw2]  [Hw3]
  [Hw4]  [Hw5]

Practice Exams:
  [Mid1]  [Mid2]  [Final]


CS151Fall 2005Sec5Home Page/Syllabus

Object Oriented Design

Instructor: Chris Pollett
Office: MH 214
Phone Number: (408) 924 5145
Office Hours:MW 4:20-6:55pm
Class Meets:
Sec5 MW 7:00pm-8:15pm in MH222


To take this class you must have taken: Math42 and CS46B with a grade of C- or better.

Texts and Links

Required Texts: Object-Oriented Software Development Using Java. by Xiaoping Jia.
Online References and Other Links: Java 2 API Specification.
Java 5 API Specification.
Departmental Java IDE Tutorial.
Free PDF Converter.

Topics and Outcomes

This course covers the basics of object oriented design, it continues the study of Java begun in CS46AB, and it introduces students to some aspects of GUI programming and network programming. With regards to object oriented design, by the completion of this course you should be able to create and manipulate UML class and sequence diagrams, develop use cases, and be able to create and understand CRC cards. In addition, you should be able to recognize and apply the following design patterns: Composite, Decorator, Factory, Iterator, Model View Controller, Proxy, Singleton, Strategy, and Template method. As for the Java Language, by the end of this class you should be able to create as well as build upon existing class hierarchies. You should be able to understand how to make efficient use of interfaces, inner classes, and anonymous classes. You should know how to implement the 'equals', 'hashCode', 'clone', and 'toString' methods common to many classes. You should be able to iteratively design, implement, test (with JUnit), and debug programs that involve at least 15 classes and interfaces. Finally, you should be able to use object serialization, deserialization, and reflection, exception handling and threads. With regards to GUI Programming, you should be able to create simple GUI interfaces consisting of frames, panels, menus, buttons, text components, and graphical components. You should be able to handle events generated by these components. In terms of network programming, you should have seen the basics of Corba/RMI programming and TCP/IP programming in Java.

Below is a tentative time table for when we'll do things this quarter:

Week 1: Aug 24 Read Jia Ch1
Week 2: Aug 29, Aug 31 Read Jia Ch2
Week 3: Sep 5 (Holiday), Sep 7 Read Jia Ch3
Week 4: Sep 12, Sep 14 Read Jia Ch4
Week 5: Sep 19, Sep 21 Read Jia Ch5
Week 6: Sep 26, Sep 28 Review for Midterm
Week 7: Oct 3, Oct 5 Read Jia Ch6
Week 8: Oct 10, Oct 12 Read Jia Ch7
Week 9: Oct 17, Oct 19 Read Jia Ch8
Week 10: Oct 24, Oct 26 Read Jia Ch9.1-9.4
Week 11: Oct 31, Nov 2 Read Jia Ch9.5-9.7
Week 12: Nov 7, Nov 9 Review for Midterm
Week 13: Nov 14, Nov 16 Read Ch10
Week 14: Nov 21, Nov 23 (Holiday) Read Jia Ch11
Week 15: Nov 28, Nov 30 Read Jia Ch12.1-12.2
Week 16: Dec 5Dec 7 Read Jia 12.3. Review for final
The final will be Monday, December 12 from 7:45pm to 10:00pm


Homeworks 40%
Midterm 1 15%
Midterm 2 15%
Final 30%

Grades will be calculated in the following manner: The person or persons with the highest aggregate score will receive an A+. The lowest scoring person with a score above 55 will be the cut-off for a C-. That is, that person will receive a C-, but no one below him will. The region between this high and low score will be divided into eight equal-sized regions. From the top region to the low region, a score falling within a region receives the grade: A, A-, B+, B, B-, C+, C, C-. If the boundary between an A and an A- is 85, then the score 85 counts as an A-. Scores below the lowest C- but above 50 receive the grade D. Those below 50 receive the grade F.

If you do better than an A- in this class and want me to write you a letter of recommendation, I will generally be willing provided you ask me within two years of taking my course. Be advised that I write better letters if I know you to some degree.

Homework Info

Links to the current list of assignments can be found on the left hand frame of the class homepage. After an assignment has been returned a link to its solution will be placed off the assignment page. Material from assignments may appear on midterms and finals. Homeworks for this class will be submitted and returned completely electronically. The written and programming parts of an assignment are submitted by clicking on the submit homework link for your section on the left hand side of the homepage and filling out the on-line form. Hardcopies or e-mail versions of your assignments will be rejected and not receive credit. Homeworks will always be due by the start of class on the day their due. Late homeworks will not be accepted; however, your low homework score will be dropped.

When doing the programming part of an assignment please make sure to adhere to the specification given as closely as possible. Names of files should be as given, etc. Failure to follow the specification may result in your homework not being graded and you receiving a zero for your work. In addition, you should make sure your code conforms with the Departmental Java Coding Guidelines. This will be worth one point on every assignment.


The midterms will be during class time on: Sep 28 and Nov 9.

The final will be: Monday, December 12 from 7:45pm to 10:00pm.

All exams are closed book, closed notes and in this classroom. You will be allowed only the test and your pen or pencil on your desk during these exams. Beeper or cell-phone interruptions will result in immediate excusal from the test. The final will cover material from the whole quarter although there will be an emphasis on material after the last midterm. No make ups will be given. The final exam may be scaled to replace a midterm grade if it was missed under provably legitimate circumstances. These exams will test whether or not you have mastered the material both presented in class or assigned as homework during the quarter. My exams usually consist of a series of essay style questions. I try to avoid making tricky problems. The week before each exam I will give out a list of problems representative of the level of difficulty of problems the student will be expected to answer on the exam. Any disputes concerning grades on exams should be directed to me, Professor Pollett.


If you believe an error was made in the grading of your program or exam, you may request in person a regrade from me, Professor Pollett, during my office hours. I do not accept e-mail requests for regrades. A request for a regrade must be made no more than a week after the homework or a midterm is returned. If you cannot find me before the end of the semester and you would like to request a regrade of your final, you may see me in person at the start of the immediately following semester.

Academic Honesty

Plagiarism on homework or cheating on tests will result in appropriate academic disciplinary action being taken. Information on the university policy governing academic dishonesty can be found at At a minimum a 0 on the assignment or test will be given. A student caught using resources like Rent-a-coder will receive an F for the course and be referred to University for disciplinary action.

Additional Policies and Procedures

The campus policy to ensure compliance with the Americans with Disabilities Act is:
"If you need course adaptations or accommodations because of a disability, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible, or see me during office hours. Presidential Directive 97-03 requires that students with disabilities register with DRC to establish a record of their disability."

More information about SJSU policies and procedures can be found at the following links: