0% found this document useful (0 votes)
8 views

Course Outline for Object Oriented Programming Using C++

The Object-Oriented Programming (OOP) course using C++ is a 4-credit undergraduate core course that covers fundamental OOP principles and advanced C++ features. Students will gain hands-on experience through lab sessions and projects, focusing on concepts like encapsulation, inheritance, polymorphism, and the Standard Template Library (STL). The course includes assessments such as assignments, quizzes, a midterm exam, lab work, and a final project to evaluate students' understanding and application of OOP principles.

Uploaded by

32safdar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Course Outline for Object Oriented Programming Using C++

The Object-Oriented Programming (OOP) course using C++ is a 4-credit undergraduate core course that covers fundamental OOP principles and advanced C++ features. Students will gain hands-on experience through lab sessions and projects, focusing on concepts like encapsulation, inheritance, polymorphism, and the Standard Template Library (STL). The course includes assessments such as assignments, quizzes, a midterm exam, lab work, and a final project to evaluate students' understanding and application of OOP principles.

Uploaded by

32safdar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Course Title: Object-Oriented Programming (OOP) using C++

Credit Hours: 4 (Theory: 3, Lab: 1)

Prerequisites:

 Introduction to Programming
 Basic knowledge of procedural programming (preferably in C or another language)

Course Level: Undergraduate (offered in the second semester)

Course Type: Core Course for Cyber Security, Computer Science, Software
Engineering, and Information Technology Programs

Course Description

This course introduces students to Object-Oriented Programming (OOP) using C++. It covers
core OOP principles, including encapsulation, inheritance, polymorphism, and abstraction, and
provides students with hands-on experience in implementing real-world problems using these
techniques. Students will also learn about advanced features of C++ like templates, exception
handling, and file handling, along with the Standard Template Library (STL).

Course Learning Objectives (CLOs)

By the end of the course, students should be able to:

1. Understand and apply object-oriented programming concepts like classes, objects,


inheritance, polymorphism, and encapsulation.
2. Implement software solutions using C++ that reflect real-world applications of OOP.
3. Analyze and design object-oriented programs using appropriate design patterns.
4. Utilize advanced features of C++ such as operator overloading, templates, exception
handling, and file I/O.
5. Employ the Standard Template Library (STL) to implement complex data structures.

Corse Learning Outcomes (Aligned with NCEAC/HEC Guidelines)

Upon successful completion of the course, students will be able to:

1. CLO1: Demonstrate understanding of the basic concepts of Object-Oriented


Programming.
2. CLO2: Design and implement solutions to moderately complex problems using OOP.
3. CLO3: Apply best practices for code organization, modularity, and reuse in object-
oriented programming.
4. CLO4: Work effectively in teams to develop small to medium-scale projects using C++.

Course Outline

Week 1: Introduction to Object-Oriented Programming (OOP) Concepts

 Introduction to Programming Paradigms (Procedural vs. Object-Oriented Programming)


 Key Concepts: Class, Object, Abstraction, Encapsulation, Inheritance, Polymorphism
 Overview of C++ and Basic Syntax
 Introduction to Integrated Development Environment (IDE) for C++

Week 2: Classes and Objects

 Defining Classes and Creating Objects


 Member Functions and Data Members
 Access Specifiers (public, private, protected)
 Constructors and Destructors

Week 3: Encapsulation and Data Hiding

 Importance of Encapsulation
 Getters and Setters
 Controlling Access to Class Members
 Practice on Data Hiding and Encapsulation

Week 4: Overloading and Friend Functions

 Function Overloading
 Operator Overloading (Unary and Binary Operators)
 Friend Functions and Friend Classes
 Assignment on Operator Overloading

Week 5: Inheritance

 Introduction to Inheritance (Single and Multiple Inheritance)


 Types of Inheritance (Public, Private, Protected)
 Constructors and Destructors in Inheritance
 Base and Derived Class Relationship
 Lab on Inheritance Implementation

Week 6: Polymorphism and Virtual Functions

 Compile-Time Polymorphism (Method Overloading and Operator Overloading)


 Runtime Polymorphism (Virtual Functions and Abstract Classes)
 Pure Virtual Functions and Interfaces
 Assignment on Polymorphism

Week 7: Midterm Exam

 Review of Topics Covered


 Midterm Examination

Week 8: Templates and Generic Programming

 Introduction to Templates
 Function Templates
 Class Templates
 Generic Programming and its Benefits
 Lab on Template Functions and Classes

Week 9: Exception Handling in C++

 Introduction to Exceptions
 Try, Catch, and Throw Statements
 Handling Multiple Exceptions
 User-Defined Exceptions
 Lab on Exception Handling

Week 10: File Handling in C++

 Introduction to File I/O


 Reading and Writing Files
 File Streams (ifstream, ofstream)
 Binary and Text Files
 Practical Implementation of File Handling

Week 11: Standard Template Library (STL)

 Introduction to STL: Containers, Iterators, Algorithms


 Sequence Containers (Vector, List)
 Associative Containers (Map, Set)
 Algorithms (Sort, Find, etc.)
 Lab on STL Implementation

Week 12: Object-Oriented Design and UML

 Introduction to Object-Oriented Design


 Basic UML Diagrams (Class, Sequence, Use-Case Diagrams)
 Designing Classes Based on Real-World Problems
 Assignment on OOP Design Using UML

Week 13: Design Patterns in OOP

 Introduction to Design Patterns


 Creational, Structural, and Behavioral Patterns
 Practical Examples of Design Patterns in C++

Week 14: Introduction to Dynamic Memory and Pointers

 Pointers and Memory Management in C++


 Dynamic Memory Allocation and Deallocation (new, delete)
 Shallow vs. Deep Copy
 Lab on Dynamic Memory and Pointers

Week 15: Final Project Presentation

 Project Presentation by Student Groups


 Evaluation of OOP Principles and C++ Concepts Applied
 Final Review and Feedback

Week 16: Final Exam

 Comprehensive Review of the Course


 Final Examination

Laboratory Work (Hands-On)

 Weekly lab sessions complementing the theoretical lectures.


 Hands-on practice with real-life coding problems using C++.
 Assignments focused on:
o Implementation of classes, inheritance, and polymorphism.
o Operator overloading and template-based programming.
o File handling and use of STL containers.

Assessment and Evaluation

 Assignments (10%): Regular assignments focusing on programming tasks.


 Quizzes (10%): Short quizzes after every 2-3 weeks to assess conceptual clarity.
 Midterm Exam (30%): Evaluating understanding of basic OOP concepts and their
implementation in C++.
 Lab Work + Projects (50 Marks): Grading based on the practical implementation of
concepts in lab sessions.
 Practical Exam (50 marks): Group project involving the design and development of a
C++ application using OOP principles.

(NOTE: Practical Exam carries 100 marks however 50 marks for written and 50
marks for sessional exams of practical)

 Final Exam Theory(20%): Comprehensive exam covering all topics from the course.

Recommended Textbooks and Resources

 Primary Textbook:
o C++ Programming:An Object-Oriented Approach by Behrouz A. Forouzan and
Richard F. Gilberg
o "Object-Oriented Programming in C++" by Robert Lafore.
 Supplementary Resources:
o C How to Program 8th Edition by Paul Deitel and Harvey Deitel
o Online Resources:
 GeeksforGeeks: C++ Tutorials
 cppreference.com

Course Policies

 Attendance: Minimum 75% attendance required to be eligible for the final exam.
 Assignment Submission: Assignments must be submitted before the deadline; late
submissions will incur penalties.
 Plagiarism: Zero tolerance for plagiarism; any instance will result in disciplinary action.

Conclusion

This course is designed to provide a strong foundation in OOP using C++, enabling students to
design and develop efficient and scalable software applications. It emphasizes both theoretical
understanding and practical implementation, aligning with the HEC and NCEAC guidelines.

You might also like