Revised 8/2004
ITP 232 - C++ Programming II (4 CR.)
Course Description
ITP 232 - Presents in-depth instruction of advanced object-oriented techniques for data structures using C++. Lecture 4 hours per week.
Course Prerequisites/Corequisites
ITP 132
Course Objectives
Upon completion of this course, the student will be able to:
- Create applications demonstrating overloaded operators and functions.
- Create applications demonstrating inheritance.
- Create applications demonstrating dynamic memory allocation using data structures such as linked lists and trees.
Major Topics to Be Included
- Encapsulation Concepts
- Method and Operator Overloading
- Inheritance and Abstract Classes
- Polymorphism and Virtual Functions
- Stream Input and Output
- Pointers and Dynamic Allocation
- Data Structures
- Exception Handling
Student Learning Outcomes
Encapsulation Concepts
- Understand the object-oriented concept of encapsulation
- Understand and code the components of a Class
- Describe the various access-specifiers of a class
- Define the scope and visibility of the class components
- Describe the fundamentals of method overloading
- Explain how to code overloaded methods
- Understand the fundamentals of operator overloading
- Recognize the differences between operator methods as class members vs. as friend methods
- Correctly code overloaded stream-insertion and stream-extraction operators
- Software engineer overloaded unary and binary operators in C++
- Understand the object-oriented concept of inheritance
- Explain the differences between public, protected and private inheritance
- Explain the relationships between base and derived classes
- Explain the functionality of constructors and destructors in a derived class
- Software engineer inheritance applications in C++
- Explain the concept of abstract classes
- Understand the concept of polymorphism
- Explain and code virtual destructors
- Software engineer applications with polymorphism, virtual functions and dynamic binding
- Explain the concept of streams in C++
- Understand the difference between classic an standard streams
- Describe input and output classes and objects
- Discuss the various stream manipulators and format states
- Software engineer applications utilizing streams
- Understand pointer declarations and memory allocation
- Explain pointer operator manipulation
- Understand the differences between early and late binding
- Understand constant and non-constant pointer manipulation
- Software engineer dynamic memory allocation applications in C++
- Explain the similarities and differences between linked lists, trees, and vectors
- Software engineer examples of each data structure in C++
- Understand self-referential classes
- Understand queue and stack data structures
- Determine the proper implementation of each data structure type
- Understand concept of exception-handling
- Explain other error handling techniques
- Understand rethrowing an exception
- Describe exception-handling constructors and destructors
- Describe processing unexpected exceptions
- Software engineer examples utilizing exception-handling