COMP 504
|
Graduate Object-Oriented Programming and Design |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Object-oriented programming is the major software paradigm used in large systems today. This includes most desktop applications such a office productivity software, data management applications and even the main frameworks of many games. But object-oriented programming and design (OOP/D) absolutely rules in the enterprise-class arena, the globe-spanning, mission-critical systems that, via the Internet, tie together international corporations from one end of the Earth to the other. In Comp504, we will discover how to use state-of-the-art object-oriented programming and design techniques to create flexible and scalable software systems that can interact with eachother from anywhere in the world. We will learn about software design patterns and how they are used in multiple programming paradigms. Through a combination of theory and coding, the class will explore how highly decoupled systems with dynamically configurable behaviors are designed and implemented. The class will learn how to use design patterns as both a means of expressing fundamental computer science concepts as well as the building blocks in an abstract decomposition of a complex problem. In addition, the class will learn to use industry standard tools and technologies such as the Eclipse integrated development environment, Subversion source control and round-trip engineering design tools.
The course format will be that of lectures covering the theoretical, engineering and technological aspects of object-oriented programming and design that will be implemented in the project-like homework assignments. These homework projects will build upon each other as much as possible, culminating in a networked application.
Prerequisites: Comp201, Comp211, Comp212 or Comp215 or equivalent. Students should already be familiar with the full Java syntax and have experience writing procedural programs and algorithms in Java including the basic usage of classes, objects and inheritance as well as simple generics.
Primary target audience: Masters and Ph.D. CS students who are interested in object-oriented programming and design, large flexible systems, enterprise-class networked applications, dynamically configurable systems and software engineering. Students who plan on taking Comp410 in the future are strongly advised to take Comp504 beforehand. Taking Comp405 after Comp504 but before Comp410 is also strongly recommended. Graduate students may only take Comp504 (if they did not take Comp310 as an undergraduate). Graduate students may not take Comp310 which is only for undergraduates.
For more and the latest infomation, please see the Info page or contact Dr. Wong (swong at rice.edu)
CLASS TIMES: MWF 10:00 AM - 10:50 AM (DCH 1046)
LAB TIMES:
This schedule should only be considered as a guide. Expect that the schedule will change often!
General Programming Assignment
requirements and instructions on how to use
Subclipse/Subversion to turn-in your assignements.
General
Communications Assignment Instructions
Important Notice: While Comp504 shares many resources with Comp310, including lectures and assignment similarities, the requirements for Comp504 are NOT the same as for Comp310! The assignments and lectures for Comp504 are posted on this site only!
WARNING: The
Microsoft Edge and
Chrome
browsers cannot run the Java plug-in so you will need to
switch to Internet Explorer or Firefox to run the demos.
(Still having troubles? Check the
Java Tips and Traps
and post your issues to Piazza!)
© 2016 by Stephen Wong