comp314 is an advanced programming course, with two main topics:
  1. 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.
  2. 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.


Time and location:
Mechanical Engineering Building Tuesday and Thursday, 2:30–3:50 PM, NEWMechEng room 128 (new room effective Jan 26), [calendar file].
Completion of (comp212, comp202, or comp211) and (completion or co-registration of comp280). Instructor permission is also given for unusual cases.
Dan S. Wallach; more…
Coursework and class policies:
See the course syllabus and lecture schedule.
Technical resources:
Subversion source control,
Office hours:
IRC chat server, and time schedule [HTML]
Meet your classmates:
the comp314 facebook.
Not sure what's in SVN?
If you'd like to see the current state of the Subversion world, check out the SVN web interface.