Course Overview

C, C++ is the object oriented superset of ANSI C. This course provides students with a comprehensive study of the C++ Programming Language. The course stresses the object paradigm including classes, inheritance, virtual functions, and templates in the development of C++ programs. Lab exercises reinforce the lectures Classroom lectures stress the strengths of C++, which provide programmers with the means of writing efficient, maintainable, and portable code. The lectures are supplemented with non-trivial lab exercises.

Course Prerequisite

No Specific requirements, Students should have taken the Software Development for Non-Programmers and Introduction to C courses or have equivalent knowledge. 

Course Outcome

Upon completion of this course, students will be able to: Explain how object-oriented software engineering enhances the software development process. Identify the major elements in an object-oriented programming language. Implement the concepts of data abstraction and encapsulation in the creation of abstract data types. Implement operator overloading. Use inheritance in C++. Select the proper class protection mechanism. Demonstrate the use of virtual functions to implement polymorphism. Write programs utilizing the I/O classes in C++. Understand some advanced features of C++ including templates, exceptions, and multiple inheritance. Compare the object vs the procedural approach to writing software. Use correct object oriented terminology. Define and use classes in a C++ program. Create and use abstract data types. Derive classes using inheritance in C++. Implement polymorphism by using virtual functions in a program.