NATIONAL UNIVERSITY
of Computer & Emerging Sciences, Lahore
Department of Computer Science
CS-217 – Object Oriented Programming
Spring 2021
Instructor Name: Abeeda Akram TA Name: Haris Ali
Email address: abeeda.akram@nu.edu.pk Email address: l181247@lhr.nu.edu.pk
Office Location: Exam Hall, old admin block
Office Hours: Tue-Thu -10:00-11:30 a.m.
Course Information
Program: BS (CS)
Credit Hours: 3 + (1 for Lab )
Type: Core
Class Venue: CS-10
Pre-requisites: Programming Fundamentals (CS-118)
Class Meeting Time: Section (BCS-2A) Mon-Wed 08:00 – 9:30 AM
Course Description/Objectives/Goals:
The core objectives of this course are to introduce,
• Object oriented programming with data abstraction and encapsulation.
• The classes, objects and relationship among different objects and classes in C++?
• Generic programming using templates, and template specializations.
Course Learning Outcomes (CLOs):
At the end of the course students will be able to: Domain BT*
Level
Understand dynamic memory management with pointers. C 2
Understand principles of object oriented program C 2
Identify the objects & their relationships to build object oriented C 3
solution
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
Course Textbooks:
1. C++ Programming: Program Design Including Data Structures, by D. S. Malik (8th Edition)
2. C++: How to Program? by Deitle & Deitle (9th Edition)
Additional references and books related to the course:
3. Problem Solving with C++, by Walter Savitch
4. https://www.learncpp.com
Course Contents Weekly and Lecture-wise Breakdown
Week Topic Lecture-1 Lecture-2
1 Pointers Introduction, Pointer variables and
Use of Constant with Pointers.
Initialization, Address of Operator, Difference between a Pointer and a
Dereferencing Operator. Pointer Reference.
Operations (Relational, Arithmetic) Passing pointers to functions by value and
by reference.
2 Dynamic memory allocation using pointers Dynamic 1- dimensional arrays, Create,
and accessing dynamic memory. Dynamic Delete, Grow and Shrink.
Pointers Variables new and delete operators. Example of programs using 1D dynamic
allocation: e.g., mathematical sets union and
intersection.
3 Memory Leak and Dangling Pointers, Pointers Indirection. Dynamic 2D,
Dynamic 1- dimensional char arrays for allocation, Matrices, CStrings etc.
cstrings, string operations like search,
concatenation etc.
4 Structured Programming vs Object- Objects vs Class, state vs behavior, access
oriented Programming, Principles of specifiers (Public, Private), Member
Object-oriented modularization, abstraction and functions (accessors, utilities, mutators etc)
basics encapsulation.
5 Constructors (default, overloaded), Dynamic memory allocation and Object
Function overloading. assignment, Parameter passing,
6
Mid Term 1
7 Cascaded function calls, static members,
Object-oriented Shallow vs Deep copy, Copy constructor,
inline functions and other miscellaneous
basics Destructors, this pointer,
issues.
8 Unary operators using member functions Binary operators using member functions
9
Operator
Binary operators using non-member Unary operators, Pre and post increment,
overloading
functions, concept of friendship, subscript operator.
10 Part-whole relationships, Composition
Object and Class Association/Aggregation Implementation issues (constructor call
relationships sequence, initializer list, etc)
11 Inheritance basics, Type of Inheritance, Function Overriding and sub-typing details
public, protected, private.
12
Mid Term 2
13 Polymorphism introduction Static vs Polymorphism vs down casting, run-time
dynamic binding details, virtual tables and type identification, dynamic cast
virtual pointers,
14 Object and Class Pure-virtual functions, Abstract classes, Multiple Inheritance and Diamond Problem
relationships Interfaces (optional) Multiplicity, Memory Management
Bi-directional relationships, Forward-class
declarations issues
15 Generic Template functions Template classes
Programming Template Specializations,
16 & Exception Handling. Introduction to STL, Iterators and
Exception Collections
Handling.
(Tentative) Grading Criteria:
1. Assignments + Home works + Project (20 %)
2. Quizzes (10 %)
3. Midterms (30 %)
4. Final Exam (40 %)
• Grading scheme for this course is Absolute under application of CS department's grading
policies.
• Minimum requirement to pass this course is to obtain at least 50% absolute marks
Course Policies:
o All assignments and homework must be done individually.
o Late Submissions of assignments will not be accepted.
o Plagiarism in any work (Quiz, Assignment, Midterms, Project and Final Exam) from any
source, Internet or a Student will result in deduction of absolute marks or F grade.
o Minimum 80% attendance is required for appearing in the Final exams.