Faculty of Engineering & CS
Department of Software Engineering
Course Title: Object Oriented Programming
Credit Hours: 03 + 01
Program: BS Software Engineering
Semester: II
Course Instructor: Mr. Muhammad Awais Gondal
i. 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.
ii. Course objectives and learning outcomes.
a) Objectives
The main objective of this course is to construct a solid foundation for
understanding and application of principles, techniques and technologies utilized in
the development of good software systems by individual or teams.
b) Learning Outcomes
1. Understand principles of object oriented paradigm.
2. Identify the objects & their relationships to build object oriented solution
3. Model a solution for a given problem using object oriented principles.
4. Examine an object oriented solution.
ii. Weekly lecture logs
Week Topics Reference
No.
1 History of Java, Java programming environment, Installing JDK, Chapter 1,2,3
Introduction to Eclipse, Writing java program, Packages Simple java
program OOP principles (encapsulation, inheritance and
polymorphism), Fundamental programming structure in java, Lexical
issues (white spaces, identifiers, literals, comments, separators and
java keywords, Data types, Variables, Type conversion and casting
Operators (Arithmetic, relational, logical and bitwise operators),
2 Operators precedence, Control Structure(Selection, Iteration, and Chapter 5,6
Jump statements) Methods, Introducing methods, Method signatures,
Arguments and parameters
3 Method overloading, Static methods, Command line arguments, Chapter 6
Introduction to classes and its importance
4 Controlling access to members, Constructors, Constructor Chapter 6
overloading, Static class members
5 Polymorphism and Abstraction and Encapsulation Chapter 7
6 Inheritance ,Super classes and Subclasses, Relationship between Chapter 8
super classes and subclasses,
7 Use of super keyword, Method overriding, Using abstract classes, Chapter 8
Using final keyword with inheritance
8 Packages Defining package, Package access protection, Importing Chapter 9
packages,
9 Interfaces, Defining an interface, implementing and applying Chapter 9
interfaces, Variables in interfaces
10 Exception Handling Fundamentals, Types of Exceptions, Using Chapter 10
exception clauses (try, catch, throw, throws and finally)
11 Graphical User Interface Components, Applet Basics, Introduction to Chapter 24
AWT, AWT classes
12 Creating a window program, Working with graphics, Chapter 25
13 Layout managers and menus, Control fundamentals Chapter 26
14 Event Handling, The delegation event model (events, event sources Chapter 23
and event listeners)
15 Event Handling Practice Chapter 23
16 Database Connectivity+ Database Connectivity Query in depth Chapter 26
iv. Course material /Lecture notes
Video Lectures with Audio Explanation
Desktop recordings for code implementation
E Classroom recordings
v. Assessment and grading (may be modified according to University’s policy)
1. Quiz 8% marks
2. Assignments 8% marks
3. Class Participation 4% marks
4. Mid Term Examination 30% marks
3. End Term Examination 50% marks
4. Lab 25% marks (to be adjusted in total weightage of course)
vi. Assignments with submissions deadlines.
Uploaded on LMS with submission deadlines
vii. No. of video scripts/online lectures: Equivalent to 3 credit hours per week. Number
of video files may vary.
viii. Electronic resources
Zoom for online classes, NUML LMS for recordings and helping material, WhatsApp
group for each section.
ix. Database for Quiz, Assignments and End-term Questions with answers.
Will be maintained on LMS time-to-time
x. Recommended Text Book(s)
The Complete Reference by Herbert Schildt (Object Oriented Programming JAVA).
xi. Reference Book(s) if any.
1. Starting Out with C++ from Control Structures to Objects, 9th Edition, Tony Gaddis
2. C++ How to Program, 10th Edition, Deitel & Deitel.
3. Object Oriented Programming in C++, 3rd Edition by Robert Lafore
4. Java: How to Program, 9th Edition by Paul Deitel
5. Beginning Java 2, 7th Edition by Ivor Horton
6. An Introduction to Object Oriented Programming with Java, 5th Edition by C. Thomas
Wu