Catalog Description:
This class focuses on object-oriented programming using large class libraries and interactive programming environments. The course centers on good object-oriented design and implementation by addressing these issues with examples throughout the semester. Students will experience the development environment and extensively use the library of at least one object-oriented programming language. Topics include the proper use of inheritance and model/view/controller distinctions, various issues concerning multithreaded systems, I/O, exception handling, and distributed computing. CSCI 215.
Course Objectives:
The objectives are for the student to:
develop OO programming skills.
learn to communicate with other programmers regarding OO concepts.
develop an appreciation of the benefits of an OO approach to programming.
Course Outcomes:
Students shall:
understand the benefits of modularity and abstraction.
be able to distinguish data abstraction from parameterization and procedural abstraction.
be able to write class libraries and programs in at least one OO language.
be able to use class libraries in at least one OO language.
understand polymorphism and implementation inheritance.
be able to use both implementation inheritance and object composition, and understand the tradeoffs.
be aware of differences in the OOP features supported by different OO languages.
be able to recognize and apply some OO design patterns, and communicate in terms of them.
be able to reason about, and document, classes in terms of contracts, preconditions, postconditions, and invariants.
be able to interpret and produce UML class diagrams and object diagrams.
be able to improve the design of existing OO software via refactoring.
Accreditation Category Content:
This course embodies a significant portion of Solutions Design
Topic
Percentage
Hours
Software Design
50%
22.5
Concepts of Programming
50%
22.5
Relationship of Course to Program Objectives:
This course supports the achievement of the following program objectives:
All students will be able to analyze and solve computing problems, or problems in related areas, and to continually upgrade their knowledge and skills.
All students will be effective oral and written communicators and be able to function effectively as members of multi-disciplinary teams.
Those graduates who pursue careers as computing professionals will have the skills to use and design new and innovative systems that meet society's needs.
Those graduates who pursue advanced degrees will have the skills to succeed in graduate programs in computing and related fields.
College of Engineering, Computer
Science, & Construction Management
California State University, Chico
Chico, CA 95929-0003
530-898-5963 webmaster@ecst.csuchico.edu