The
Foundation Module Courses
Object
Oriented Programming
Course
Objectives
Students learn the concepts and the meaning of Object-Orientation.
They will be able to differentiate between Structured Abstract
Data Type and Classes data type. They acquire the knowledge
of the Encapsulation, Properties, Methods, and Polymorphism
and how to implement these concepts in the most common Object-Oriented
programming languages. Furthermore, they acquire the concept
of Embedded objects and the different between it and the concept
of Inheritance. The types of inheritance will be discussed in
details. Students will understand the need of Virtual functions
and Pure Virtual functions in case of inheritance, and so the
overriding concept. Abstract classes and Interfaces will be
covered in this course.
Prerequisites:
Data Structures & Algorithms
Course
Description
Lect 1:
- History of programming: Linear, Structured, and Object-Oriented.
- Object-Oriented Terminologies and Concepts
• Class
• Object
• Encapsulation
• Behavior and Properties
• Methods & Functions
• Message
• Public and Private Members
• Inheritance
Lect 2: ( Lab 1)
- Starting in Object-Oriented
• Classes, Objects, and Instances.
• Properties and its values
• How to call Methods?
- Encapsulations and Members’ Modifiers
• Public Members
• Private Members
Lect 3: (Lab 2)
- Polymorphism (function overloading)
• The meaning of Polymorphism
• The advantages of polymorphism
• The problems could be faced and its solutions
Lect 4: (Lab 3)
- Objects Creation & Deletion
• Constructors
• Constructor Overloading
• Destructors
Lect 5: (Lab 4 )
- Static and Instance Members
• The Meaning of static
• Compare the Static in Structured programming and Object-Oriented
programming
• Using of Static Members
• Static members and local Static members
Lect 6: (Lab 5)
- Operator overloading
• The main Functions of any operator
• The additional Functionality and how to add it
• The disadvantages of operator overloading
Lect 7: (Lab 6)
- Embedded objects
• How to use an object in another object
• Object as an input parameter in a Method
• Object as a return data type from a Method
• This pointer
• Copy Constructor
Lect 8,9: (Lab 7,8)
- Inheritance
• The meaning of inheritance
• Protected members
• Inheritance type
• The different between inheritance and embedded objects
• Pointer to Base class
Lect 10: (Lab 9, 10)
- Overriding
• The meaning of overriding
• Virtual Functions
• Pure Virtual Functions (Abstract Method)
• Abstract Class
Lect 11: (lab 11)
- Multi-Inheritance and Multiple Inheritance
• The needing of Multi-Inheritance
• The needing of Multiple Inheritance
• The problems with multiple inheritance
• Virtual classes
• Interfaces as a substitution of multiple inheritance
Lect 12: (Lab 12)
- Inner Classes
• Inner class inside a class
• Inner class inside a method
• The level of accessibility of inner classes
References
Available in the ITInc Library
Total Hours
Theoretical 36 hrs.
Practical 36 hrs.