Abstract: The course studies the class-based program design and the design of abstractions that support the design of reusable software and libraries. It covers the principles of object oriented program design, the basic rules of program evaluation, and examines the relationship between algorithms and data structures, as well as basic techniques for analyzing algorithm complexity.
The course is suitable for both CS majors and non-majors. It assumes that student has been introduced to the basic principles of program design and computation.
Prerequisites: The course assumes a basic familiarity with the systematic design of programs and some mathematical maturity. It also demands curiosity and self-driven exploration.
Course Objectives: The goal is to help you understand the principles of class based program design using an object-oriented programming language(s) - not just Java. Java-like syntax is used so we can transition to standard Java later in the course and learn how the principles we learn are used in practical applications. Using a concrete language also gives us an opportunity to discuss the strengths and weaknesses of languages and language paradigms.
|Last updated on Wed Sep 15 16:25:43 EDT 2010||Created with DrRacket|