OOPCourse Outline Spring 2023

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

NATIONAL UNIVERSITY

of Computer & Emerging Sciences, Lahore

Department of Software Engineering


Object Oriented Programming Spring 2023

Instructor Name: Arooj Khalil


Email address: [email protected]
Office Hours: Monday, Wednesday and Friday -1:00pm-2:30 p.m.

Course Information
Program: BS (SE)
Credit Hours: 3 + 1 for Lab
Type: Core
Pre-requisites: Programming Fundamentals

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:

Demonstrate the basic concepts of OOP

Apply OOP concepts (Encapsulation, Inheritance, Polymorphism, Abstraction)


to computing problems for the related program

Model an algorithmic solution for a given problem using OOP

Apply good programming practices

Course Textbooks:
1. Object Oriented Programming by Robert Lafore
2. C++ Programming: Program Design Including Data Structures, by D. S. Malik (8th Edition)
3. C++: How to Program? by Deitle & Deitle (9th Edition)
Additional references and books related to the course:
4. Problem Solving with C++, by Walter Savitch
5. https://www.learncpp.com
Course Contents Weekly and Lecture-wise Breakdown
Wee Topic Lecture-1 Lecture-2
k
1 Pointers Pointers Introduction, Pointer Use of Constant with Pointers.
variables and Initialization, Address Difference between a Pointer
of Operator, Dereferencing Operator. and a Reference.
Pointer Passing pointers to functions by value
Operations (Relational, Arithmetic) and by reference.

2 Dynamic memory allocation using Dynamic 1- dimensional arrays,


pointers and accessing dynamic Create, Delete, Grow and Shrink.
memory. Dynamic Variables new and Example of programs using 1D
delete operators. dynamic allocation: e.g.,
mathematical sets union and
intersection.

3 Memory Leak and Dangling Pointers Indirection. Dynamic 2D,


Pointers, Dynamic 1- dimensional allocation, matrices, CStrings etc.
char arrays for strings, string
operations like search,
concatenation etc.

4 Object-orient Structured Programming vs Objects vs Class, state vs behavior,


ed basics Object oriented Programming, access specifiers (Public, Private),
Principles of modularization, Member functions (accessors, utilities,
abstraction and mutators etc)
encapsulation.

5 Constructors (default, Dynamic memory allocation and Object


overloaded), Function assignment, Parameter passing, Shallow
overloading. vs Deep copy,

6
Mid Term 1
7 Object-orient Copy constructor, Destructors, Cascaded function calls, static
ed basics this pointer, members, inline functions and other
miscellaneous issues

8 Operator Unary operators using member Binary operators using member functions
overloading functions

9 Binary operators using Unary operators, Pre and post


non-member functions, concept increment, subscript operator.
of friendship,

10 Object and Part-whole relationships, Composition


Class Association/Aggregation Implementation issues (constructor
relationships call sequence, initializer list, etc)
11 Inheritance basics, Type of Function Overriding and sub-typing
Inheritance, public, protected, details
private.

12
Mid Term 2
13 Object and Polymorphism introduction Static vs Polymorphism vs down casting,
Class dynamic binding details, virtual tables run-time type identification, dynamic
relationships and virtual pointers, cast

14 Pure-virtual functions, Abstract Multiple Inheritance and Diamond


classes, Interfaces (optional) Problem Multiplicity, Memory
Management Bi-directional
relationships, Forward-class declarations
issues

15 Generic Template functions Template classes


Programming Template Specializations,
&
16 Exception Exception Handling.
Handling.

(Tentative) Grading Criteria:


1. Assignments + Home works (10 %)
2. Quizzes (10 %)
3. Midterms (30 %)
4. Final Exam (40 %)
5. Project (10 %)

● Final exam weight can change up to 45%.


● 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 No retake of announced quizzes
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.

You might also like