COURSE DESCRIPTION

NAME OF INSTITUTION Lahore Garrison University
PROGRAM (S) TO BE EVALUATED Computer Science , Spring 2022
Course Description : This module will provide the students with a solid theoretical understanding of, as well as practical skills in, object-oriented programming. Practical skills will be learnt using the C++ programming language. The primary aim of the module is to enable the students to tackle complex programming problems, making good use of the object-oriented programming paradigm to simplify the design and implementation process. Laboratory sessions and tutorials will be provided to encourage acquisition of practical problem-solving skills.
Course Code CSC321
Course Title Object Oriented Programming
Credit Hours 3+1
Prerequisites by Course(s) and Topics Programming Fundamentals
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
Course Coordinator Dr. Mujtaba Asad
URL (if any) https://classroom.google.com/u/2/c/NDgwMjU4NTQwMDQz
Current Catalog Description
Textbook (or Laboratory Manual for Laboratory Courses) • C++ Programming from Problem Analysis to Program Design by D.S. Malik 5th Edition
Reference Material • Object Oriented Programming in C++ by Robert Lafore 4th edition • C++ How to Program by Deitel & Deitel,
Course Goals Introduction to object oriented design, history and advantages of object oriented design, Structures 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, file handling.
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to:DomainBT Level*
Understand principles of object oriented paradigm. C 2
Identify the objects & their relationships to build object oriented solution C 3
Model a solution for a given problem using object oriented principles C 3
Examine an object oriented solution. C 4
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures)
WeekLectureTopics Covered
Week 1 1 The Big Picture Beginning of programming Structured programming Why Do We Need Object-Oriented Programming? Object oriented programming
2 Characteristics of Object-Oriented Languages o Objects o Classes o Inheritance o Reusability o Data Abstraction o Data Encapsulation o Creating new data types o Polymorphism and overloading Software Engineering Case Study: introduction to Object Technology and the UML
Week 2 3 Structure Sturcutre basics Sturucture within structure Structures and classes Enumerations,
4 Structure Vs Arrays
Week 3 5 Objects and classes o Basics of class and objects with real world example o Basics of class and objects th programming example o Data member and member function o Access specifier
6 C++ objects as data types Constructors Destructors
Week 4 7 C++ objects as data types Constructors Destructors
8 The default copy constructor Returning objects from function Class, object and memory Static class data
Week 5 9 Const and classes Const member functions Const objects Software Engineering Case Study: identifying the classes in the ATM Requirements Document, Identifying the class Attributes Objects states and activates
10 Functions and functions overloading Functions Functions Basics Overloaded functions o Different numbers of arguments o Different kinds of arguments
Week 6 11 Inline functions Default arguments Variables and storage classes o Automatic variable o External variables o Static variables o Storage Const function arguments Software Engineering Case Study: class operation in the ATM system
12 Operator overloading Overloading unary operator Overloading binary operator Data conversion o Conversion between basic types o Conversion between objects and basic types o Conversion between objects of different classes o Conversion: when to use what.
Week 7 13 pitfall of operator overloading and conversion use similar meanings use similar syntax show restraint avoid ambiguity o not all operator can be overloaded
14 Implementation of the case study.
Week 8 1 hours Mid Term
Week 9 15 Inheritance: Inheritance basics in real world and programming Derived class and base class o public, private & protected, Abstract Classes o Specifying the derived class o Accessing base class members o The protected access specifier
16 Derived class constructors Overriding member functions Class hierarchies o Abstract base class o Constructor and member functions
Week 10 17 Scope resolution with overridden functions Public and private inheritance Access combinations o Access specifiers: when to use what Level of inheritance
18 Multiple inheritance Ambiguity in multiple inheritance Containership: classes within class o Composition and aggregation Inheritance and program development
Week 11 19 Pointers Pointer basics concepts Addresses and pointers The address of operator Pointer and arrays Pointers and functions Pointers and ctype string Memory management: new and delete o The new opearaotr o The delete operator o A string class using new
20 Pointer to objects Pointers to pointers
Week 12 21 Virtual functions Virtual functions o Normal member function accessed with pointer o Normal member function accessed without pointer o virtual member function accessed with pointer o Virtual member functions accesses without pointer o Late binding
22 o Abstract classes and pure virtual functions o Virtual destructors o Virtual base classes
Week 13 23 Friend functions
24 Friend classes Static functions
Week 14 25 Polymorphism, Type of Polymorphism – o Compile time and runtime, o Function Overloading, o Operator Overloading (Unary and Binary) Polymorphism by parameter,
26 o Pointer to objects, o this pointer, o Virtual Functions, o Pure virtual functions.
Week 15 27 Streams and files Stream classes o Advantages of streams o The stream class hierarchy o The ios class o The isteam class o The ostram class
28 Disk file I/O with streams File pointers
Week 16 29 Error handling in file I/O File I/O with member functions
30 Multifile programs Reason for multifile program, Creating a multifile program
Week 17 2 hours Final Term
Laboratory Projects/Experiments Done in the Course As per Lab Schedule
Programming Assignments Done in the Course As per Week Schedule
Instructor Name Dr. Mujtaba Asad
Instructor Signature
Date