OOP Course Outline
OOP Course Outline
2021
Course Description
Course Code CS2104
Course Title Object Oriented Programming
Credit Hours 04 (3 + 1)
Prerequisites Programming Fundamentals CS1024
Offering Semester 2nd
Assessment Instruments Marks
with Weights (homework,
Assignments 15
quizzes, midterms, final,
programming assignments, Quizzes 15
lab work, etc.) Gr. LAB Tasks 10
Project 20
Midterm Exam 20
Final Term – (Written
+ Practical) 20
Total 100
Course Course Instructor:
Coordinator/Instructor Anam Aleem
Lab Instructor:
Amna Bibi
URL (if any) https://moellim.riphah.edu.pk/
Current Catalog
Description
Textbooks For C++:
Object Oriented Programming in C+
+by Robert Lafore (4th edition)
C++ How to ProgrambyDeitel and Deitel
(Alternate book)
For Java:
The Complete Reference: Java J2SE 5
Edition by Herbert Schildt
(Recommended book)
Beginning Java 2 by Ivor Horton
(Alternate book)
Java in a Nutt shell by David
Flagan,O’Reilly (4th Edition)
For OOP:
Designing Object Oriented Software
by Rebecca Wirfs-Brock, Brian
Wilkerson, Lauren Wiener
Faculty of Computing – Fall Riphah International University
2021
1.0 Remember
2.0 Understand
5.0 Evaluate
6.0 Create
Written Exams,
Build small-scale OO solution through Lectures, Labs, Class
6.1 Assignments, 20%
usage of appropriate existing libraries Activities
Project
Faculty of Computing – Fall Riphah International University
2021
LAB 01:
Structures, Data and Functions.
Member functions
Calling functions in main
Structure arrays
2. 1, 2 and 3 1. Introduction to OOP 2.1
2. Basic OOP Principles 2.2
3. Identifying Objects and Methods
4. Access Modifiers (Public, protected, private,
default)
5. Constructors/ Destructors
6. Importance of constructor/destructor
7. Data members, Member functions, Accessor
Functions
8. This Keyword
9. Encapsulation1
LAB 02:
Simple Class and object creation in C++
Data members, Member functions
Access Modifiers (Public, protected, private,
default)
Constructors/ Destructors
3. 1, 2 and 3 1. Introduction to Java 3.1
2. Development Environment
3. Advantages of java
3.1. Portability
3.2. Memory Management (Garbage Collector)
3.2.1. No pointers in java
4. Java classes and basic programming constructs
3.1. Data Types, Iteration and Selection in java
3.2. Java Arrays
3.2.1. Enhanced For loops
3.3.Object Instantiation and Method calling in
Main
LAB 03:
Basic Java program
o Basic Class and object Creation
Java Language constructs
o Java Arrays
Faculty of Computing – Fall Riphah International University
2021
o Data types
o Conditional statements
o Loops(While, Do-While, For,
Enhanced for loop)
4. 1, 2 and 3 1. Simplistic Introduction to IO Streams in Java 3.2
1.1. java.util package 6.1
1.1.1. Basic I/O through Scanner
2. String Class and String methods
LAB 04:
Simple Console IO in Java
String processing
5. 1, 2 and 3 1. Relationships in OOP 2.2
1.1. Associations
1.1.1. Compositions Vs. Aggregation
1.1.2. UML representations of Composition
1.1.3. Instance Visibility
1.1.4. Composition Practice Problems
LAB 05:
Associations
o Object Interactions
o Compositions
6. 1, 2 and 3 1. Relationhips in OOP (Continue) 3.2
1.1. Introduction to Collection API 6.1
1.2. java.util.ArrayList collection
1.3. Aggregation through ArrayList
1.4. Practice Problems
Lab 06
1. Aggregation of Objects
2. Manipulation of collections
7. 1, 2 and 3 1. Inheritance 2.1
1.1. Single level, Multilevel inheritance 2.2
1.2. Great grandparent java.lang.Object
1.2.1. Significance of Object class
1.3. Multiple inheritance, Diamond Problem
1.4. Access Modifiers behavior in Inheritance
1.5. UML representation of Inheritance
2. This and Super Keywords
LAB 07:
3. Inheritance
3.1. Single level inheritance
3.2. Multi-level inheritance
LAB 08:
Working in packages
Complete application involving multilevel
inheritance
This, Super and Final Keyword in practice
9. 1, 2 and 3 Project Proposals Discussion
Course Revision
MID Term
Paper Checking + Mid Term Solution Discussion
10. 1, 2 and 3 1. Polymorphism3 2.1
1.1. Compile-time (Static) Binding, Overloading 3.2
1.2. Runtime (Dynamic) Binding, Overriding 6.1
1.3. toString and equals Method overriding
Lab 09:
Method Overriding
Static vs. Runtime binding example
Polymorphism in action
Project Proposals Submissions and Discussion
11. 1, 2 and 3 1. Abstraction4 2.1
1.1. Abstract methods 3.1
1.2. Abstract classes
1.3. Pure Abstract classes
1.4. Interfaces
1.4.1. Uses of Interfaces
1.4.1.1. Multiple inheritance
1.4.1.2. Constant interfaces
1.4.1.3. Loose coupling
2. Practice Problems with Abstraction
Lab 10:
Abstraction
Using Interfaces
12. 1, 2 and 3 1. Introduction to Graphical User Interface (GUI) 3.2
1.1. Java Graphical User Interface 6.1
1.2. AWT vs Swing
1.3. Container, Frame, Panel and Dialog
1.4. GUI Components: i.e., Label, Button,
TextFeild, RadioButton, TextArea,
DropDown Menu
1.5. Event Handling
1.5.1. EventListerners and Adaptors
1.6. Hand-coding GUI and interaction
Lab 11:
Faculty of Computing – Fall Riphah International University
2021
Lab 12:
1. GUI Design using Drag and Drop
a. Working with lists and combo boxes
2. File IO (with separation of concerns)
LAB 14:
File IO with GUI and Exception handling
o CRUD Operations to file
o Using JTable Component for CRUD
operations
15. 1, 2 and 3 1. File I/O Revisited 3.1
1.1 Object Serialization 3.2
2.1 ObjectInputStream, 6.1
ObjectOutputStream
2. Exception Programming
2.1 Exception Handling
2.2 Exception Programming
2.3 Finally
2.4 Multiple exceptions
LAB 13
1. File I/O
1.1. File Dialog
2. Complete working application with file handling
(separate layers for GUI and business logic)
16. 1, 2 and 3 Project Demonstrations + Viva
Faculty of Computing – Fall Riphah International University
2021
Map course LOs with the program LOs. (Place course LO #s in the left column and program LO #s across
the top.)
BSCS
Course
Program Learning Outcomes
LOs #
PLO1 PLO2 PLO3 PLO4 PLO5 PLO6 PLO7 PLO8 PLO9 PLO10 PLO11
2.1 ✔
2.2 ✔ ✔
3.1 ✔ ✔
3.2 ✔
6.1 ✔ ✔ ✔
Map course LOs with the program LOs. (Place course LO #s in the left column and program LO #s across
the top.)
BSSE
Course
Program Learning Outcomes
LOs #
PLO1 PLO2 PLO3 PLO4 PLO5 PLO6 PLO7 PLO8 PLO9 PLO10 PLO11
2.1 ✔
2.2 ✔ ✔
3.1 ✔ ✔
3.2 ✔
Faculty of Computing – Fall Riphah International University
2021
6.1 ✔ ✔ ✔