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:

Introductory programming and data structures

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.










Course Objectives

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