CSCE 245: Advanced Object Oriented Programming
Catalog Course Description:
245—Object-Oriented
Programming Techniques. (3) (Prereq: grade of C or better in CSCE 146) Advanced
object-oriented concepts and techniques; multiple inheritance; memory
management; operator overloading; polymorphism; performance issues.
Prerequisite(s) By Topic:
Logical operations
Textbook(s) and Other
Required Material:
Object-Oriented Programming in C++, 2nd
edition, Ira Pohl, Addison-Wesley, 1997.
UML and C++: A
Practical Guide to Object Oriented Development, 2nd edition, Richard Lee and William Tepfenhart,
Prentice-Hall, 2001.
Computing Platform: SUN/Solaris, Windows
Course Objectives: {Assessment Methods Shown in
Braces}
1.
Demonstrate mastery of object oriented programming concepts:
inheritance, polymorphism, and operator overloading. {tests}
2.
Demonstrate mastery of pointers, iterators, memory management
including object creation and destruction, and parameter passing in C++ and Java.
{tests}
3.
Develop C++ code in a Unix Environment utilizing the C
preprocessor, the debugger (gdb), make, source code revision systems
(sccs), utilities such as those for
transferring files to and from Unix and Windows. {programming assignments,
tests}
4.
Demonstrate mastery of template functions and classes; understand
underlying implementation of major containers in the STL. {tests}
5.
Develop object oriented models using UML {projects, tests}
Topics Covered:
1.
Unix
Programming Environment: Unix tools, C preprocessor, Make and revision control
systems, shells, I/O redirection, history mechanism (5)
2. Pointers: Pointer manipulation, functions and function pointers,
virtual functions (9)
3. Basic class management: constructors, destructors, the free store,
data hiding, container classes (4)
4. Memory management: object creation and destruction (5)
5. Advanced C++ features: operator overloading, iteration, special
containers, inheritance, code reuse, multiple inheritance, virtual functions,
polymorphism, templates, template libraries (9)
6.
Introduction to UML and object oriented modeling: use-case models, object
identification, specifying static behavior, activity diagrams, collaboration
diagrams and sequence diagrams, specifying relationships: generalization/specialization,
aggregation, associations including multiplicity and roles, dynamic behavior
using state diagrams. (10)
Syllabus Flexibility: Low. The Undergraduate Committee approves the choice of textbook and
syllabus.
Relationship of Course to
Program Outcomes:
The contribution of each course objective to meeting
the program outcomes is indicated with the scale:
3 = major contributor, 2 = moderate contributor, 1 = minor contributor. Blank if not related.
|
|
Program Outcomes |
||||||||||
|
1.
Logic & Math |
2.
Computing Fundamentals |
3.
Apply Computing Principles |
4.
Work on teams |
5.
Communicate Effectively |
6.
Liberal arts & Soc. Sciences |
7.
Basic Science and Lab Procedures |
8.
Learn New Tools & Processes |
9.
Employed upon Graduation |
10.
Application Area |
11.
Electronics and Digital Sys Design |
|
|
1. Demonstrate mastery of object oriented programming concepts |
|
|
3 |
|
|
|
|
|
2 |
|
|
|
2. Demonstrate mastery of pointers and memory management |
|
|
3 |
|
|
|
|
|
2 |
|
|
|
3. Develop C++ code in a Unix Environment |
|
|
3 |
|
|
|
|
3 |
3 |
|
|
|
4. Demonstrate mastery of template functions and the STL |
|
|
3 |
|
|
|
|
|
2 |
|
|
|
5. Develop Object Oriented Models using UML |
|
|
3 |
|
1 |
|
|
3 |
2 |
|
|
Estimated CSAB Category
Content:
Algorithms: 1
Data Structures: 0
Software Design: 1
Concepts of
Programming Languages 1
Organization and
Architecture 0
Oral and Written
Communication: none
Social and
Ethical Issues: none
Theoretical
Content: none
Analysis and
Design:
Programming and problem solving,
modeling with UML
Class/Laboratory Schedule:
Lecture: 3 periods of 50 minutes or 2
periods of 75 minutes per week
Modification and
Approval History
Initial description, November 2000