Object Oriented Programming
0%
Course Title: Object Oriented Programming
Course No: CSC166
Nature of the Course: Theory + Lab
Semester: 2
Full Marks: 60 + 20 + 20
Pass Marks: 24 + 8 + 8
Credit Hours: 3
Course Description
Course Objectives
Course Contents
1.1. Programming Approaches
- Overview of structured programming approach
- Object oriented programming approach
- Characteristics of object oriented languages
2.1. C++ Fundamentals
- C++ Program Structure
- Character Set and Tokens
- Data Type
- Type Conversion
- Preprocessor Directives
- Namespace
- Input/Output Streams and Manipulators
- Dynamic Memory Allocation with new and delete
- Control Statements
2.2. Functions
- Function Overloading
- Inline Functions
- Default Argument
- Pass by Reference
- Return by Reference
- Scope and Storage Class
2.3. Pointers
- Pointer variables declaration & initialization
- Operators in pointers
- Pointers and Arrays
- Pointer and Function
3. Classes & Objects
8 hrs
3.1. Class Basics
- A Simple Class and Object
- Accessing members of class
- Structures and Classes
- Memory allocation for Objects
- Static members
- Member functions defined outside the class
3.2. Initialization of class objects
- Constructor, Destructor
- Default Constructor
- Parameterized Constructor
- Copy Constructor
- The Default Copy Constructor
3.3. Objects and Functions
- Objects as Function Arguments
- Returning Objects from Functions
4.1. Operator Overloading Fundamentals
- Fundamental of operator overloading
- Restriction on operator overloading
- Operator functions as a class members
- Overloading unary and binary operator
4.2. Data Conversion
- basic to basic
- basic to user-defined
- user-defined to basic
- user-defined to user-defined
5. Inheritance
7 hrs
5.1. Inheritance Basics
- Introduction to inheritance
- Derived Class and Base Class
- Access Specifiers (private, protected, and public)
- Types of inheritance
5.2. Advanced Inheritance Concepts
- Public and Private Inheritance
- Constructor and Destructor in derived classes
- Aggregation
6.1. Virtual Functions and Polymorphism
- Concept of Virtual functions
- Late Binding
- Abstract class and pure virtual functions
- Virtual Destructors
- Virtual base class
- Polymorphism and its roles
6.2. Miscellaneous Features
- Friend function and Static function
- Assignment and copy initialization
- Copy constructor
- This pointer
- Concrete classes
7.1. Templates
- Function templates
- Function templates with multiple arguments
- Class templates
- templates and inheritance
7.2. Exception Handling
- Exceptional Handling (Try, throw and catch)
- Use of exceptional handling
8. File handling
6 hrs
8.1. Stream Input/Output
- Stream Class Hierarchy for Console Input /Output
- Unformatted Input /Output
- Formatted Input /Output with ios Member functions
- Formatting with Manipulators
- Stream Operator Overloading
8.2. File Operations
- File Input/output with Streams
- Opening and Closing files
- Read/Write from File
- File Access Pointers and their Manipulators
- Sequential and Random Access to File
- Testing Errors during File Operations
Laboratory Works
- 1.Implementing the concepts of Object Oriented Programming using C++ language
Text Books
- 1.Robert Lafore, Object Oriented Programming in C++, Fourth Edition, SAMS publications
- 2.Herbert Schildt, C++ The Complete Reference, Fourth Edition, Tata McGraw Hill Publication
Reference Books
- 1.Deitel and Deitel, C++ How to Program, Third Edition, Pearson Publication
- 2.Joyce Farrell, Object-oriented programming using C++, Fourth Edition, Cengage Learning