Course Syllabus

COURSE NAME Object Oriented Programming COURSE CODE COMP222/L CREDITS 3 CONTACT HOURS 4 (2 Lecture Hours + 2 Lab Hours) PREREQUISITES COMP151/L: Introduction to Algorithms and Programming LEARNING At the end of this course, students are able to: OUTCOMES 1. Explain advanced concepts in functions like function overloading, recursive functions, inline functions and template functions.

2. Explain how to program with pointers, strings and string manipulation function.

3. Analyze the difference between Structured Programming in terms of structures and OOP in terms of Classes.

4. Apply advanced concepts, such as friend functions, friend classes, passing object as a arguments and Dynamic memory allocation.

5. Simulate the concepts of inheritance in real world applications.

6. Implement polymorphism concepts in terms of functions overloading and operators overloading.

SYNOPSIS This course introduces object oriented programming (OOP) to the students. It starts by describing the difference between structured programming and object-oriented programming. It then presents the major components of object oriented programming, mainly classes, objects, and message passing between objects. It then goes to describing in details the properties of object oriented programming, namely data abstraction and encapsulation, inheritance, and polymorphism with emphasis on dynamic binding. At the end, class templates are discussed. All along, the course explains how these concepts are implemented using the C++ programming language.

CONTENTS LECTURES 1. Functions (6 hours) Recursion, Inline Functions, References and Reference Parameters, Default Arguments, Function Overloading, Function Templates

2. Pointers (6 hours) Introduction, Pointer Operators, Using Const Qualifier with Pointers, Pointer expressions and Pointer Arithmetic, Pointers and Arrays

3. Classes: basic concepts (10 hours) Implementing Abstract Data type with a Class, Class Scope and Accessing Class members, Controlling Access to Members, Access Functions and Utility Functions, Initializing Class Object: Constructors, Using Destructors, Using Data Member and Member Functions

4. Classes: Advanced concepts (10 hours) Const Object and Const Member Functions, Composition: Objects as Member of Classes, Friend Function and Friend Classes, Dynamic Memory Allocations with Operators new and delete, Static Class Members, Data Abstraction and Information Hiding

5. Operator Overloading (3 hours) The basic idea, operators that can and can not be overloaded, Overloading Unary Operators, selected examples

6. Inheritance (4 hours) The basic idea, Base Classes and Derived Classes, Protected Members, selected examples

7. Polymorphism (3 hours) The basic idea, selected examples

7. Review (3 hours) General review

Total ( 45 hours)

ASSESSMENTS Course Work Midterm Exam # 1 15% Midterm Exam # 2 15% Lab Exams 10% Quizzes 10% Projects 10% Final Exam 40%

REFERENCES 1- Object Oriented Programming Using C++, Joyce Text Book Farrell 2- C++ How to Program, Deitel & Deitel Additional Reference