Object Oriented Programming C++ Syllabus

OBJECT ORIENTED PROGRAMMING 
CT 501 
Year  :  II 
Part  :    I  
Course Objective:
The objective of the course is to familiarize students with the C++ programming
language and use the language to develop pure object oriented programs.
1.Introduction to Object Oriented Programming

(3 hours)
1.1 Issues with Procedure Oriented Programming
1.2 Basic of Object Oriented Programming (OOP)
1.3 Procedure Oriented versus Object Oriented Programming
1.4 Concept of Object Oriented Programming
1.4.1 Object
1.4.2 Class
1.4.3 Abstraction
1.4.4 Encapsulation
1.4.5 Inheritance
1.4.6 Polymorphism
1.5 Example of Some Object Oriented Languages
1.6 Advantages and Disadvantages of OOP
 

2. Introduction to C++
2.1 The Need of C++
2.2 Features of C++
2.3 C++ Versus C
2.4 History of C++  (2 hours)
 
3. C++ Language Constructs
3.1 C++ Program Structure
3.2 Character Set and Tokens
3.2.1 Keywords
3.2.2 Identifiers
3.2.3 Literals
3.2.4 Operators and Punctuators
3.3 Variable Declaration and Expression
3.4 Statements
3.5 Data Type
3.6 Type Conversion and Promotion Rules  (6 hours)
 
4. Objects and Classes
(6 hours)

4.1 C++ Classes
4.2 Access Specifiers
4.3 Objects and the Member Access
4.4 Defining Member Function
4.5 Constructor
4.5.1 Default Constructor
4.5.2 Parameterized Constructor
4.5.3 Copy Constructor
4.6 Destructors
4.7 Object as Function Arguments and Return Type
4.8 Array of Objects
4.9 Pointer to Objects and Member Access
4.10 Dynamic Memory Allocation for Objects and Object Array
4.11 this Pointer
4.12 static Data Member and static Function
4.13 Constant Member Functions and Constant Objects
4.14 Friend Function and Friend Classes
5. Operator Overloading
5.1 Overloadable Operators
5.2 Syntax of Operator Overloading
5.3 Rules of Operator Overloading
5.4 Unary Operator Overloading
5.5 Binary Operator Overloading
(5 hours)
6. Inheritance
(5 hours)
6.1 Base and Derived Class
6.2 protected Access Specifier
6.3 Derived Class Declaration
6.4 Member Function Overriding
6.5 Forms of Inheritance: single, multiple, multilevel, hierarchical,
hybrid, multipath
6.6 Multipath Inheritance and Virtual Base Class
6.7 Constructor Invocation in Single and Multiple Inheritances
6.8 Destructor in Single and Multiple Inheritances
7. Polymorphism and Dynamic Binding
7.1 Need of Virtual Function
7.2 Pointer to Derived Class
7.3 Definition of Virtual Functions
7.4 Array of Pointers to Base Class
7.5 Pure Virtual functions and Abstract Class
7.6 Virtual Destructor
7.7 reinterpret_cast Operator
7.8 Run‐Time Type Information
7.8.1 dynamic_cast Operator
7.8.2 typeid Operator
8.(4 hours)Stream Computation for Console and File Input /Output
8.1 Stream Class Hierarchy for Console Input /Output
8.2 Testing Stream Errors
8.3 Unformatted Input /Output
8.4 Formatted Input /Output with ios Member functions and Flags
8.5 Formatting with Manipulators
8.6 Stream Operator Overloading
8.7 File Input/output with Streams
8.8 File Stream Class Hierarchy
8.9 Opening and Closing files
8.10 Read/Write from File
8.11 File Access Pointers and their Manipulators
8.12 Sequential and Random Access to File
8.13 Testing Errors during File Operations
9. Templates
9.1 Function Template
9.2 Overloading Function Template
9.2.1 Overloading with Functions
9.2.2 Overloading with other Template
9.3 Class Template
9.3.1 Function Definition of Class Template
9.3.2 Non‐Template Type Arguments
9.3.3 Default Arguments with Class Template
9.4 Derived Class Template
9.5 Introduction to Standard Template Library
9.5.1 Containers
9.5.2 Algorithms
9.5.3 Iterators  (5 hours)
10. Exception Handling
10.1  Error Handling
10.2  Exception Handling Constructs (try, catch, throw)
10.3  Advantage over Conventional Error Handling
10.4  Multiple Exception Handling
10.5  Rethrowing Exception
10.6  Catching All Exceptions
10.7  Exception with Arguments
10.8  Exceptions Specification for Function
10.9  Handling Uncaught and Unexpected Exceptions  (4 hours)

0 comments:

 

Project Blogging - the idea

"There is nothing mysterious about the effective, high- powered programming techniques used by expert programmers. In the day-to-day rush of grinding out the latest project, however, few experts take the time to share what they have learned. Consequently, programmers may have difficulty finding a good source of programming information" - from Code Complete, by Steven C. McConnell

This applies to "Project blogging" too and equally to every profession that exists on the globe. That's why the saying "Sharing is caring!"

Contributors

Project Initiation and support:
Bhupal Sapkota

Support in listing course details:
1. Samir Thapa
2. We would like to list your name here.
Let's complete this project.

Want to help us?

you can help us in following ways:
  • 1. Send us the remaining subject course details.
  • 2. Give feedbacks on post and articles.
  • 3. Create your own blog, it can be specific to subject of your interest or anything related computer technologies. Let us know in the comments, your web page could be reference for hundreds of "Project Bloggers". We'd list your web page here under "Blogs" sections.

Supported by : Semicolon Developers, Shankhamul, Kathmandu
Project Blogging - a call for engineers from Nepal - 2011
Blogger Template - Community is Designed by Bie Blogger Template