0% found this document useful (0 votes)
13 views8 pages

OOP Courseoutline OBE Spring 2022 Draft v1.0

The document outlines the course details for Object Oriented Programming (CS2104) at Riphah International University, including prerequisites, credit hours, assessment methods, and learning objectives. It emphasizes the use of Java and C++ to teach fundamental OOP concepts such as classes, inheritance, and polymorphism. The course includes a mix of lectures, lab work, and projects to ensure practical understanding and application of OOP principles.

Uploaded by

kalilearner135
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views8 pages

OOP Courseoutline OBE Spring 2022 Draft v1.0

The document outlines the course details for Object Oriented Programming (CS2104) at Riphah International University, including prerequisites, credit hours, assessment methods, and learning objectives. It emphasizes the use of Java and C++ to teach fundamental OOP concepts such as classes, inheritance, and polymorphism. The course includes a mix of lectures, lab work, and projects to ensure practical understanding and application of OOP principles.

Uploaded by

kalilearner135
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Faculty of Computing Riphah International University

Object Oriented Programming

Course Description

Course Code CS2104


Course Title Object Oriented Programming
Credit Hours 04 (3 + 1)
Prerequisites Programming Fundamentals CS1024
Assessment Instruments with Weights Quizzes-------- 10
(homework, quizzes, midterms, final, Assignments-------- 10
programming assignments, lab work, etc.) Midterm Exam – 10
Lab -- 20
Class Participation --- 10
Project ------ 20
Final Exam ----- 20
*Tentative distribution and it can be changed
Course Coordinator/Instructor
URL (if any) vle.riphah.edu.pk
Course Description This course introduces Object Oriented Programming (OOP)
with Java as an illustration language. Objective of this
course is to ensure that students understand object-
oriented programming concepts and are able to create
object-oriented computer programs.
Textbook 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 Her-


bert Schildt (Recommended book)
● Beginning Java 2 by Ivor Horton (Alternate book)
● Java in a Nutt shell by David Flagan,O’Reilly (4th Edition)
Object Oriented Design:

● Designing Object Oriented Software by Rebecca Wirfs-


Brock, Brian Wilkerson, Lauren Wiener
Reference Material Lecture Slides, Lab Manuals
Course Goals/Objectives Goal:

This course introduces Object Oriented Programming (OOP)


with Java as an illustration language. Objective of this
course is to ensure that students understand object-
oriented programming concepts and are able to create
object-oriented computer programs.

1
Faculty of Computing Riphah International University
Object Oriented Programming

Learning Objectives:
a) Understand basic concepts of OOP like classes, ob-
jects, instances, encapsulation etc.
b) Implement OOP basic concepts with C++ and Java.
c) Write, test and debug computer programs with OOP
paradigm written in C++ and java
d) Understand the concept of polymorphism
e) Understand the concept of inheritance
f) Understand the concept of abstraction and be able to
apply it to solve problems.
g) Implement exception handling mechanisms in
user-defined classes
h) Stream data between objects and devices, files and
memory
i) Work with Java basic GUI components

Laboratory Projects/Experiments Done Please see details on labs work-sheet


in the Course
Programming Assignments Done in the Please see details on sheets attached
Course
Class Time Spent in (in credit hours) Theory Problem Solution Social and Ethical Issues
Analysis Design
1.25 0.5 1 0.25
Oral and Written Communication A project presentation will be taken at the end of the
semester.

Code Bloom’s Taxonomy Course Teaching Course


Assessment
# And Course Learning Outcomes Strategies %Weight
Methods

1.0 Remember

1.1

2.0 Understand

Explain fundamental OO paradigm principles Lectures, Class Quiz, Mid, Final 30


2.1
Activities

Identify objects and relationships from Lectures, Class Quiz, Mid, Final, 10
2.2 problem description Activities, Assignments,
Assignments Projects

3.0 Apply

2
Faculty of Computing Riphah International University
Object Oriented Programming

Implement, test, and debug a program using Lectures, Class Quiz, Mid, Final, 30
3.1 appropriate principles and programming Activities, Assignments,
constructs to achieve problem-solving Assignments Projects, Lab Tasks

Lectures, Class Assignment, Lab 10


Use appropriate programming environment
3.2 Activities, Tasks
to code and debug OO applications
Assignments

4.0 Analyze

5.0 Evaluate

6.0 Create

Lectures, Class Assignments, 20


6.1 Build small-scale OO solution through usage Activities, Projects, Lab Tasks
of appropriate existing libraries Assignments

Topics Covered in the Course, with Number of Lectures on Each Topic

Topics Hours

Programming Fundamentals Revision 3


Overview of Structured Programming 1.5

Introduction to Object Oriented Paradigm and Object-Oriented Programming 4.5


Principals, Object and Class, Encapsulation
Java as an Object-Oriented Language 6
Relationships 6
Inheritance 3
Polymorphism 3
Abstraction and Interfaces 6
Advance Topics in Object Oriented Programming: GUI Programming, Filing and 12
Exception Handling

Weekly Lecture Plan

Week Lecture Topic CLO#


1 1 1. Introduction to the Course, Course Policies and Rules

3
Faculty of Computing Riphah International University
Object Oriented Programming

2 2. Overview of Structured Programming using C++ 2.1


3. Arrays/structure/Functions revision
4. Functions (Call by value & call by reference)
a. Passing Arrays & Structure to functions
5. Structure Member Functions

LAB 01 1. Pointers 3.1


2. Structures, Data and Functions.
3. Member functions
4. Calling functions in main
5. Structure arrays
2 3 1. Introduction to OOP 2.1, 2.2
2. Basic OOP Principles
3. Identifying Objects and Methods
4 1. Access Modifiers (Public, protected, private, default) 2.1
2. Constructors/ Destructors
3. Importance of constructor/destructor
4. Data members, Member functions, Acces-
sor Functions
5. This Keyword
6. Encapsulation
LAB 02 1. Simple Class and object creation in C++ 2.2, 3.1, 3.2
2. Data members, Member functions
3. Access Modifiers (Public, protected, private,
default)
4. Constructors/ Destructors
3 5 1. Introduction to Java 3.1, 3.2
2. Development Environment
3. Advantages of java
a. Portability
b. Memory Management (Garbage Collector)
i. No pointers in java
4. Writing and executing program in Java
5. Java classes and basic programming constructs
a. Data Types, Iteration and Selection in java

6 1. Java classes and basic programming constructs 3.1, 3.2


a. Java Arrays
i. Enhanced For loops
b. Object Instantiation and Method calling in
Main

LAB 03 1. Basic Java program 3.1, 3.2


a. Basic Class and object Creation
2. Java Language constructs
3. Java Arrays

4
Faculty of Computing Riphah International University
Object Oriented Programming

4. Data types
5. Conditional statements
6. Loops(While, Do-While, For, Enhanced for loop)
4 7-8 1. Simplistic Introduction to IO Streams in Java 3.1, 3.2
a. java.util package
i. Basic I/O through Scanner
2. String Class and String methods
LAB 04 1. Simple Console IO in Java 3.1, 3.2
2. String processing
5 9 1. Relationships in OOP 2.1, 2.2
a. Associations
i. Compositions Vs. Aggregation
10 1. Introduction to UML Class Diagram 2.2, 3.1, 3.2
2. Relationships Representations in UML
3. Composition Practice Problems

LAB 05 1. Dependency 2.1, 3.1, 3.2


a. Object Interactions
2. Compositions
6 11 1. Relationhips in OOP (Continued) 2.1, 2.2, 3.1
a. Aggregation
b. Practice Problems

12 1. Relationhips in OOP (Continue) 2.2, 3.1, 6.1


a. Introduction to Collection API
b. java.util.ArrayList collection
c. Aggregation through ArrayList
d. Practice Problems

Lab 06 1. Aggregation of Objects 2.1, 3.1, 3.2


2. Manipulation of collections

7 13 1. Inheritance 2.1, 2.2, 3.1


a. Single level, Multilevel inheritance
b. Great grandparent java.lang.Object
i. Significance of Object class
c. Access Modifiers behavior in Inheritance
d. UML representation of Inheritance

14 1. Practice Problems for Inheritance 2.2, 3.1


2. This and Super Keywords
LAB 07 1. Inheritance 2.1, 3.1, 3.2
a. Single level inheritance
b. Multi-level inheritance
Project Proposals Announcement
8 15-16 1. Multiple inheritance, Diamond Problem 2.1, 2.2, 3.1, 6.1

5
Faculty of Computing Riphah International University
Object Oriented Programming

2. The final keyword


3. More Practice Problems
4. Project Proposals Discussion
LAB 08 1. Working in packages 3.1, 3.2
2. Complete application involving multilevel
inheritance
This, Super and Final Keyword in practice
9 1. MID Term
10 17-18 1. Mid Term Solution in Discussion 2.1, 2.2, 3.1
2. Polymorphism
a. Compile-time (Static) Binding, Overloading
b. Runtime (Dynamic) Binding, Overriding
c. toString and equals Method overriding

Lab 09 1. Method Overriding 3.1, 3.2


2. ● Static vs. Runtime binding example
3. ● Polymorphism in action
Project Proposals Submissions and Discussion
11 19 1. Abstraction 2.1, 2.2, 3.1
a. Abstract methods
b. Abstract classes
c. Pure Abstract classes
d. Practice Problems
20 1. Interfaces 2.1, 2.2, 3.1,6.1
a. Uses of Interfaces
i. Multiple inheritance
ii. Constant interfaces
iii. Loose coupling
2. Practice Problems with Abstraction
Lab 10 1. Abstraction 3.1, 3.2
2. Using Interfaces
12 21 1. Introduction to Graphical User Interface (GUI) 3.1, 3.2
a. Java Graphical User Interface
b. AWT vs Swing
c. Container, Frame, Panel and Dialog
d. GUI Components: i.e., Label, Button,
TextFeild, RadioButton, TextArea, Drop-
Down Menu

22 1. Event Handling 3.1, 3.2


a. EventListerners and Adaptors
2. Hand-coding GUI and interaction

Lab 11 1. Hand-coding GUI and interaction 3.1, 3.2


13 23 1. GUI design using Drag and Drop feature of IDE 3.1, 3.2
(Netbeans), An Example

6
Faculty of Computing Riphah International University
Object Oriented Programming

2. The Separation of Concerns Principle


a. User Interface and Business Logic layers
24 1. File IO 3.1, 3.2
a. Character Streams
i. FileReader, FileWriter
b. Byte Streams
i. FileInputStream, FileOutputStream
c. Character vs Byte Streams
d. Gentle introduction to Exception handling
Lab 12 1. GUI Design using Drag and Drop 3.1, 3.2
a. Working with lists and combo boxes
2. File IO (with separation of concerns)
14 25 1. File IO with GUI and Exception handling 3.1, 3.2
a. File Handling in Java with CRUD operations
b. Using JTable Component
26 1. Working with Java API Libraries 3.1, 3.2, 6.1
a. Math
b. Regular Expressions
2. Project Progress Discussion
LAB 14 1. File IO with GUI and Exception handling 3.1, 3.2
a. CRUD Operations to file
2. Using JTable Component for CRUD operations
15 27 1. File I/O Revisited 3.1, 3.2
a. Object Serialization
b. ObjectInputStream, ObjectOutputStream

28 1. Exception Programming 3.1, 3.2, 6.1


a. Exception Handling
b. Exception Programming
c. Finally
d. Multiple exceptions
LAB 13 1. File I/O 3.1, 3.2
a. File Dialog
2. Complete working application with file handling (separate
layers for GUI and business logic)

16 Project Demonstrations Presentations + Viva

7
Faculty of Computing Riphah International University
Object Oriented Programming

Map course LOs with the program LOs. (Place course LO #s in the left column and program LO #s across the top.)

Course Program Learning Outcomes

LOs #

PLO1 PLO2 PLO3 PLO4 PLO5 PLO6 PLO7 PLO8 PLO9

2.1 

2.2   

3.1    

3.2 

6.1     

You might also like