Fall 2001 CS 151 Sec. 3 Home Page/Syllabus

Object-Oriented Design

Instructor: Chris Pollett
Office: MH 214
Phone Number: (408) 924-5145
Email: cpollett@yahoo.com
Office Hours: MW 12-2pm F 1-2pm

Class Meets:
     MW 2:30-3:45pm in MH 222

Prerequisites

To take this class you must have taken CS 46B and Math 42 with a grade of C- or better. You should be competent in programming, testing, and debugging Java applications. Also, you should know to implement simple data structures such as (linked lists, trees, hash-tables, etc.)

To verify that you meet the prerequisite the coding part of the first assignment will serve as a prerequisite quiz. If you haven't added yet, you must complete the prequisite quiz before you can add.

Texts and Links

Required Texts: Object-Oriented Software Development Using Java, by Xiaoping Jia
Online References
& Other Links:
Sun's Java site .
The Java 2 PlatForm Class Library .

Topics

This course will describe the principle ideas in object-oriented design and software development. We begin by introducing OOD methodology, CRC cards, and UML notation. We then give a rapid Java refresher. We will talk about exception handling, references and values, deep and shallow equality and copy, interfaces, polymorphism, and inheritance. Next we consider class design; in particular, cohesion and coupling, programming by contract, and interface and implementation invariants. Various OO design patterns will then be surveyed (Composite, Decorator, etc). Examples from the Java language will be considered as we explore Java GUI and event programming. Object serialization will be exemplified in terms of file I/O and graphics objects. Threads and synchronization will then be gone into. Finally, reflection will be discussed and its use in Java beans will be mentioned. As time permits RMI and TCP/IP in Java will also be covered.

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

Week 1: Aug. 27, 29 Read Jia Ch. 1.
Week 2: Sept. 3 (no class), 5 Read Jia Ch. 2.
Week 3: Sept. 10, 12 (HW1 due) The 14th is drop day. Read Jia Ch 3.
Week 4: Sept. 17, 19 Read Jia 4.1-4.3.
Week 5: Sept. 24, 26 (HW2 due) Finish Ch 4 in Jia.
Week 6: Oct. 1, 3 Read Jia Ch 5.1, 5.2.
Week 7: Oct. 8, 10 (HW3 due) Finish Ch 5 in Jia.
Week 8: Oct. 15, 17 (Midterm) Review for midterm.
Week 9: Oct. 22 , 24 Read Jia 6.1,6.2.
Week 10: Oct. 29, 31 (HW4 due) Finish Ch 6 in Jia.
Week 11: Nov. 5, 7 Read Jia 7.1-7.3.
Week 12: Nov. 12, 14 (HW5 due) Finish Ch 7 in Jia.
Week 13: Nov. 19, 21 Read Jia 8.1,8.2.
Week 14: Nov. 26 , 28 Read Jia 8.3, 9.1.
Week 15: Dec. 3, 5 (HW6 due) Finish Ch 9.
Week 16: Dec. 10 Review for final.
Final is in class Tuesday, Dec. 18 12:15 - 2:30pm.

Grade Breakdown / Grading Policy

top

Homeworks       40% 
Midterm         25%
Final           35%

When I assign grades the high score has an opportunity to receive an A+. I do curve grades and my curving will be in line with previous times this class has been taught.

Homework Info

General 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 links to its solution will be placed off the assignment page. Each homework will consist of a reading part and a programming part. Material from the reading part of an assignment may appear on midterms and finals. Late homeworks will not be accepted; however, your low homework score will be dropped.

Submitting Programming Assignments

To keep things simple the files you submit for a homework assignment will follow the naming convention cs151sec3hw+number+file+number+.extension. For example: cs151sec3hw1file1.java for the first file in HW1. To turn in your homework you simply e-mail me the file as an attachment to the address: cpollett@yahoo.com.

Make sure the title is in the format:
cs151sec3 hw+number lastname last_four_digits_of_student_id.
For example, if I were to submit hw1 I would have as title:
cs151sec3 hw1 pollett 1234
Notice this is all lower case.

Grades/Regrades

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 is returned.

Required Formatting

Since some of the grading process will be automated, it is important that your program follow the specifications in the assignment exactly. In particular, make sure submitted filenames are correct, you use the correct title in the mail message, and data items in your program are inputted and outputted in the proper sequence and format.

Your code should conform to the Departmental Java Coding Guidelines.

Exams

As shown above in the grade breakdown there will be both a midterm and final in this course. The midterm will be during class time on Oct. 17. The final will be Dec. 18 12:15-2:30pm in this classroom. Both of these are closed book, closed notes. 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 midterm. No make up midterms will be given. The final exam may be scaled to replace the midterm if the midterm 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.

Academic Honesty

You are both allowed and encouraged to discuss general algorithms and approaches to programming problems with your classmates. But these discussions must remain at a high level and not involve actual code being exchanged. In particular, the code you submit as a solution to an assignment must be your own. Outright plagiarism 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 http://info.sjsu.edu/web-dbgen/catnarr/policies/n30.html.