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.
|