Course Synopsis

CS *253 will provide students with a deep understanding of conceptual and practical aspects of designing, implementing, and debugging parallel software apps using patterns and frameworks related to Java and Android. Key topics covered in this course include: Design and implementation based on patterns and frameworks are central themes to enable the construction of reusable, extensible, efficient, and maintainable parallel software. In addition, abstraction based on patterns and functional programming techniques will be the central concepts and principles throughout the course. These concepts and principles will enable you to construct reusable, extensible, efficient, and maintainable parallel software.

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 and functional techniques will be taught so that you will learn by example how to build highly decentralized parallel software architectures that decouple inter-dependencies between components and map domain intent clearly onto computational elements. You are expected to be familiar with Java and basic Android.


Course Contents

The following is a representative sample of the course contents, which may change as the course progresses.


Back to CS *253 home page.