COMP 405/505
|
Course Information |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Class will be held every Monday, Wednesday and Friday from 10:00 AM - 10:50 AM in Duncan Hall Room 1042
Dr. Stephen Wong -- See home page for contact and office hour information.
Teaching Assistants e-mail (at rice.edu) Office Hours & Location (Subject to change, so check often!) TBA All Comp405 staff are also available by appointment!
Entire class (including staff): comp405s16 at owlspace-ccm.rice.edu (replace the " at " with "@")
Please do not send e-mail directly to the instructor or any specific staff member, as doing so will only delay the response.
IMPORTANT: In order to send a message to the above address, the e-mail address in your Owlspace address MUST MATCH YOUR RETURN ADDRESS EXACTLY. Generally, this means that you must send from that same account but even that can fail if you use a different alias as the return address.
Just the staff: comp405 at rice.edu (replace the " at " with "@")
Please DO start your subject line with "Comp405: " so that your message can be easily identified as being class-related!
Though none of the existing text books truly meet our needs and requirements, we like the following book and highly recommend it for the course.
- Head First Design Patterns, First Edition, by Eric Freeman and Elizabeth Freeman, O'Reilly, 2004. ISBN 0-596-00712-4.
We also have a few other recommendations.
- The Java Programming Language, 4th edition, by Arnold, Gosling, and Holmes, Addison-Wesley,
James Gosling is the creator of Java. This is the definitive Java reference. However, this book does not cover all the topics of the course and will be used only as a reference for Java syntax and semantics.
- Design Patterns, Elements Of Reusable Object-Oriented Software, by Gamma, Helm, Johnson, and Vlissides, Addison-Wesley, 1995. ISBN 0201633612
This is the bible of the pattern community. It predates Java. The authors are affectionately referred to as the Gang of Four (GoF). All examples are written in C++ and/or Smalltalk. It can be hard to read if you are not familiar with these two languages, though the ideas are language independent. The "pattern language" used in this book also requires a lot of getting used to. We have learned so much from this book, and we are still reading it and learning from it. There is a version on CD-ROM which is cheaper (and perhaps, more versatile). We strongly recommend it, especially to any student considering further work in object-oriented programming.
- Thinking in Java, 4'th ed., by Bruce Eckel, Prentice Hall PTR.
Good OO treatment, with a little more detail on syntax than Gosling's book. Students often find it useful for "nuts-and-bolts" information on programming. The full text of earlier editions are available as a free download from www.bruceeckel.com. Also at the web site is his on-line only book: Thinking in Patterns with Java, which is recommended reading.
COMP 405 is a topics-driven exploration of cutting-edge object oriented design issues and concepts including mutable recursive data frameworks, design patterns for lazy evaluation, sorting, parsing and games, service-oriented architectures and cloud computing. Detailed knowledge and practice in abstract structure and behavioral representations, delegation model programming, design patterns and Java are required.
Please follow the navigation link to the Home page above to see the topical schedule for lectures and labs.
The turn-in mechanism for code will be the student's individual Comp405 Subversion repository on CLE@R, using the Subclipse version control plug-in in Eclipse. Other work will be turned in via postings on the course wiki. Please see
The course grade will be based on: TENTATIVE
- Homework Assignments - 50%
- Peer Reviews -- 15%
- Teaching - 15%
- Final Project -- 20%
Assignments’ due dates and rules will be clearly stated at the time they are given.
No make-up exams will be given unless there is a legitimate excuse such as proof of medical emergency. All permissions must be requested and approved in writing (hard copy or e-mail) BEFORE the due date!
We reserve the right to modify the above weightings at any time.
Principles of Object Oriented Programming courses:
Rice University has a student-run academic honor system. Each student has personal responsibility for honesty in their own academic conduct. Each student has the responsibility to report any suspected problems to the Honor Council in a timely fashion. During any Rice exam, the student is expected to write the honor pledge on the outside of the exam:
On my honor, I have neither given nor received aid on this examination.
The Computer Science Department takes the Rice Honor System very seriously and handles all violations accordingly. General rules of conduct concerning collaboration will be spelled out before assignments or exams are distributed (see for instance, above). When in doubt, contact an instructor before proceeding.
For this class, the following additional restrictions MUST be observed:
You may not look at solutions to assignments from past semesters or from other students. Furthermore, attempting to take credit for someone else’s work by turning it in as your own constitutes plagiarism, as defined by the Rice Honor Code.
You may not make your work in the class available to others in any form during or after the class. In particular, you may not place your code anywhere on the Internet that is viewable by others.
For example, posting one's code to a publicly viewable GitHub or other sort of repository or web page would be in violation of the above restrictions.
For more information concerning the Rice Honor System, see:
Any student with a documented disability needing academic adjustments or accommodations is requested to speak with us during the first two weeks of class. All discussions will remain confidential. Students with disabilities should also contact Disability Support Services in the Ley Student Center.
Previous Offerings of Comp405:
Staff SharePoint Site (Staff only! Login req'd)
© 2015 by Stephen Wong