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

Course Breakup of Object Oriented Programing

This document outlines a 20-week course on object-oriented programming in C++. Over the course, students will learn fundamental OOP concepts like classes, objects, encapsulation, inheritance and polymorphism. They will also learn how to use streams, handle exceptions, use templates and work with containers and algorithms. The course meets for 3 hours per week and covers topics like operator overloading, inheritance, polymorphism and memory management in depth. Recommended textbooks are provided.

Uploaded by

marjan gul
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
147 views

Course Breakup of Object Oriented Programing

This document outlines a 20-week course on object-oriented programming in C++. Over the course, students will learn fundamental OOP concepts like classes, objects, encapsulation, inheritance and polymorphism. They will also learn how to use streams, handle exceptions, use templates and work with containers and algorithms. The course meets for 3 hours per week and covers topics like operator overloading, inheritance, polymorphism and memory management in depth. Recommended textbooks are provided.

Uploaded by

marjan gul
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

BS-Computer Science

Course Outline/Week-wise breakup


Course Title: Object oriented programming Course Code: CS-121
Credit Hours: (3+1) Semester: 2nd

Object Oriented Programming


This course introduces the concepts of object-oriented programming to students with a background in
the procedural paradigm. The course begins with a brief review of control structures and data types with
emphasis on structured data types and array processing. It then moves on to introduce the object-
oriented programming paradigm, focusing on the definition and use of classes along with the
fundamentals of object-oriented design. Other topics include an overview of programming language
principles, simple analysis of algorithms, event-driven programming, memory management.

Course Content:
Introduction to object oriented design, history and advantages of object oriented design, introduction to
object oriented programming concepts, classes, objects, data encapsulation, constructors, destructors,
access modifiers, const vs. non-const functions, static data members & functions, function overloading,
operator overloading, identification of classes and their relationships, composition, aggregation,
inheritance, multiple inheritance, polymorphism, abstract classes and interfaces, generic programming
concepts, function & class templates, standard template library, object streams, data and object
serialization using object streams, exception handling.

WEEK # Duration Chapter & Strategies Topics


1 15/04/19  Revision:  Review of Fundamental programming Structures in C++
to Fundamental (Primitive Data Types, Variables & Constants,
21/04/19 Programming Assignments, Initializations, Operators, Strings, Control
Structures Flow, Code Examples & Exercises)
 Master the fundamental  Review of Structures in C++.
elements of OOP and related Background of Object Oriented Programming
C++ features  Object oriented design, history of object oriented
design, Procedural languages VS OOP languages

2 22/04/19  Intro to Classes and Introduction to classes and objects. A simple class
to Objects working with real world classes and their objects.
28/04/19  Understand the object- Switching to C++ object from physical object, declaring
oriented way of programming a class.
Inheritance, Encapsulation, Polymorphism,
Creating new data types/ user define data types
Reusability, Overloading, Information hiding

3 29/04/19 Characteristics of Using the class, member function, calling member


to OOP Languages function, c++ objects as data type, constructor,
05/05/19 examples of constructor, Destructors, uses of
destructor, when to use constructor and destructor.

4 06/05/19 Characteristics of Access modifiers/ specifiers, default specifiers, public


to OOP Languages specifiers, private specifiers, protected specifiers,
12/05/19 overloaded, constructor, objects as function arguments

5 13/05/19 Class scope, accessing class members separating from


to implementation, access functions and utility functions,
19/05/19 default member wise assignment.

6 20/05/19 Functions Const(constant) objects and const member function,


to friend function and friend classes, using (this) pointer
26/05/19
7 27/05/19 Information Hiding/ Dynamic memory management with operator (new)
to Encapsulation and (delet), static class members, Data abstraction and
02/06/19 information hiding: array abstract data type, string
abstract data type.

8 03/06/19 overloading Operator overloading, Restriction on operator


to overloading, operator functions as class members Vs.
09/06/19 Global functions. Overloading stream insertion and
stream extraction operators, overloading unary and
binary operator,
9 10/06/19 Eid-Ul-Fitr
to
16/06/19
10 17/06/19 Mid-Term
to
23/06/19
11 24/06/19 Strings Conversion between types, explicit constructor,
to overloading ++ and --, Standard library class string,
30/06/19
12 01/07/19 Containers Container Classes and iterator proxy classes, types of
to container classes: {Composition(value containers),
07/07/19 Aggregation(reference Containers)},
An array container class

13 08/07/19 Overriding Function overriding, advantages of function overriding,


to accessing overridden function in base class, function
14/07/19 overloading Vs. function overriding
14 15/07/19 Inheritance Inheritance, Base class and derived class, protected
to members, Relationship between base classes and
21/07/19 derived classes, Inheritance hierarchy, multiple
inheritance
15 22/07/19 Constructor and destructor in derived classes, public
to private and protected inheritance. Relationship
28/07/19 between classes in inheritance hierarchy.
16 29/07/19 Polymorphism Invoking base class function from derived class object,
to object oriented polymorphism, working with
04/08/19 polymorphism, Aiming derived class pointer at base
class object, Derived-class member function call Vs.
Base-class pointer, Virtual function
17 05/08/19 Template Abstract classes and pure virtual function. Template,
to Function Template, overloading function template,
11/08/19 class template, Non-type parameter and default types
for class template. Notes on: template and inheritance,
templates and friends, template and static members.
18 12/08/19 Eid-Ul-Azha
to
18/08/19
19 19/08/19 Streams Stream, classic stream Vs. Standard stream, iostream
to Dealing with serialized data library header files, stream hierarchy, stream
and objects
25/08/19 input/output classes and objects, straem manipulator,
serialization of objects using stream.
20 26/08/19 Exception Handling Exception handling overview, Example: Handling
to Writing robust, industrial- exception on attempt to divide by zero, when to use
strength C++s code
01/09/19 exception handling, re-throwing an exception,
exception specifications, processing unexpected
Exceptions.

A number of online resources are available to assist students in learning programming in C++. For those
students who would also like to have a text book, we would recommend the following:
1. 9e Global Edition, Walter Savitch, "Problem Solving with C++", ISBN-13:9781292018249,
Addison-Wesley, 2015.
2. Starting Out with C++ from Control Structures to Objects, 9th Edition, Tony Gaddis
3. C++ How to Program, 10th Edition, Deitel & Deitel.
4. Object Oriented Programming in C++, 3rd Edition by Robert Lafore
5. 8th Edition, Giourdas Publications, 2010 (in on, Harvey Deitel, Paul Deitel, «Java greek).
6. Wanda Dann, Stephen Cooper, and Randy Pausch, "Learning to program with Alice" 3rd editi
Pearson Education, 2012.
7. Michael Kölling, "Introduction to Programming with Greenfoot.
8. Object‐Oriented Programming in Java with Games and Simulations", Pearson Education, August
2009

You might also like