Course Contents

CS 342 focuses on the practical aspects of software design and implementation. The concepts addressed in the course cover a broad set of topics important to developing and maintaining quality software:

Abstraction based on design patterns and object-oriented techniques (such as separation of interface from implementation) will be the central concepts and principles throughout the course. These concepts and principles will enable you to construct reusable, extensible, efficient, and maintainable software.

Design patterns will be taught so that you will have good role models for structuring their own designs, as well as to clearly articulate the tradeoffs of alternative methods for designing systems. Object-oriented techniques will be taught so that you will learn by example how to build highly decentralized software architectures that decouple inter-dependencies between components. The course will cover object-oriented techniques that address:

Several in-depth case studies will be used in class to illustrate the OO design and programming process.
Back to CS342 home page.