Home Page
Comp 314 is an advanced programming course, with two main topics:
- Programming large and sophisticated applications using object-oriented design and implementation. A special emphasis in the class will be the problems of working in teams. Through the projects, you will experience some of the problems that arise in the design and construction of large programs. In class, we will explore techniques intended to address these problems. These include specification, discussion of various designs for a single problem, and selected design patterns. To successfully complete the assignments, you will need to spend significant amounts of time outside of class. All projects will be implemented in Java.
- Advanced data structures and algorithms and algorithmic approaches. The courses will emphasize how to choose appropriate algorithms and data structures to solve a given problem, and will emphasize the design of the interface to an algorithm as much as the algorithm itself.
Announcements
Please register for the course. You still need to register with the university, of course.
Come to the Java Swing tutorial, Symonds II at 7 pm, Monday, April 3rd! You'll need it for Project 3, so swing on by if you're rusty.
Staff and Resources
Lecturer:
- Dan Wallach
Office Hours: Wed 3-4PM in DH 3004 and by appointment
UPDATEDOffice Hours and Other Staff
Course newsgroup: rice.owlnews.comp314 [Atom feed]
Source control information: Subversion tutorial; Turning projects in with SVN
Chat/IM service: IRC info
Seth Nielson's TA Blog: link
Class photos: The comp314 facebook, spring 2006 edition
Assignments
NEW Project 3
Course Information
Course Meetings: TuTh 02:30PM-03:50PM, DH 1064
Course syllabus, general grading policies, project grading policies, project grading sheet
Pre-requisites: Comp 212 and Comp 280, or equivalent. In particular, knowledge of object-oriented programming at the level of Comp 212 is assumed. The Comp 212 prerequisite will be strictly enforced. Experience has shown that students who have taken additional programming courses (e.g. Comp320 or Comp311) have an easier time in Comp314 - programming is a skill learned over years, not months!
Other resources
- The JUnit-Eclipse Tutorial can be found online here
- Java 2 API Specifications- very important stuff! Bookmark this!
- Javadoc homepage
- Creating a GUI with Swing- read here for more information about the Swing library
- Sun's Java Coding Conventions
- Javasoft- Official Java homepage
- Java World- contains interesting articles on Java
Textbooks
![]() |
Introduction to Algorithms (Second Edition) [Required] |
![]() |
The Pragmatic Programmer [Required] |
If you have trouble getting CLRS locally, you can always try buying it at Amazon.com, Bookpool, or any other reseller you might like. Similarly, H&T is widely available.
Accomodations
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 Disabled Student Services in the Ley Student Center.