Chris Pollett > Old Classes > CS151 ( Print View ) Your Grade: Course Info:
|
Fall 2001 CS 151 Sec. 3 Home Page/SyllabusObject-Oriented Design
PrerequisitesTo 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
TopicsThis 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:
Grade Breakdown / Grading PolicyHomeworks 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 InfoGeneral InfoLinks 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 AssignmentsTo 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: Grades/RegradesIf 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 FormattingSince 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. ExamsAs 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 HonestyYou 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. |