0% found this document useful (0 votes)
19 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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 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
We take content rights seriously. If you suspect this is your content, claim it here.
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