CMPS 222 Object-Oriented Programming
Course Description

Computer Science Department
California State University, Bakersfield
V1, 5/6/2003

Catalog Description:

Builds on foundation provided by CMPS221 to introduce the concepts of  object-oriented programming. The course focuses on the definition and use  of classes and the fundamentals of object-oriented design. Other topics  include an overview of programming language principles, basic searching  and sorting techniques, and an introduction to software engineering issues.

Prerequisite:

CMPS 221

Units:

5

Coordinator:

Donna Meyers

Goals/Objectives:

  • To gain an in depth understanding of object-oriented programming and design concepts
  • To design and implement a software project involving multiple files and classes using formal software engineering strategies
  • To be introduced to searching and sorting algorithms and linked structures
  • To enhance the problem solving and debugging skills learned in 221

Current Text(s):

Deitel and Deitel. C++: How to Program (4th edition)

Topics:

  • (PF1) Review of basic syntax, semantics, data types, operations, control structures, functions, parameter passing, pointers
  • (PL1) Differences and trade-offs between procedural and object-oriented language paradigms (PF2) Problem-solving and debugging strategies for larger projects
  • (PL6) OO design; encapsulation and information-hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies; templates; STL; iostreams; exception handling
  • (PF3) Implement simple linked structures
  • (AL3) Implement simple searching and sorting algorithms: linear search, recursive binary search
  • (SE1) Design and implement a large project using software engineering strategies
  • (HC1) Design and implement a good user interface; implement usability testing

ACM Sub Areas or Units Covered:

(PF1) Fundamental programming constructs .20
(PL1) Overview of programming languages .10
(PF2) Algorithms and problem-solving .20
(PL6) Object-oriented programming 3.5
(PF3) Fundamental data structures .25
(AL3) Fundamental computing algorithms .25
(SE1) Software design .25
(HC1) Foundations of human-computer interface .25
PL: Programming Fundamentals    AL: Algorithms and Complexity    SE: Software Engineering    HC: Human-Computer Interaction
Laboratory:

The laboratory session will parallel the lectures, providing students with the opportunity to develop algorithms and problem-solving skills
Oral and Written Communication:
Assigned work requires written documentation.
Social and Ethical Issues:
Briefly covered, Plagiarism punished.
Problem Analysis:
Maximal (use case plus conceptual models).
Solution Design:
Strong emphasis on OO design using UML, Standard data structures and algorithms
Version & Date:
Version 1, 5/9/2003
Comments:
The first draft based on ACM curricula 2001 in the format of ABET sample course description.