Course Title: Object Oriented Programming
Credit Hours: 3+1 Prerequisites: Programming Fundamentals
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to: Domain BT Level*
1. Explain fundamental database concepts. C 2
2. Design conceptual, logical and physical database schemas
C 5
using different data models.
3. Identify functional dependencies and resolve database
C 2
anomalies by normalizing database tables.
4. Use Structured Query Language (SQL) for database definition
C 4
and manipulation in any DBMS
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain
Course Content:
Overview of object-orientation
1st
Overview of quality of software systems
Week
Design and Implementation
Structure basics
Structure within structures
Structures in detail
2nd
Enumerations
Week
Beginning of programming
Structured programming
Object oriented programming
Concept of Object and Classes
OOP Model
Methods, Parameters
3rd Data Types, Fields
Week Object Type & Primitive Type
Understand Class definition
Constructors
Assignment Statements
Control Statements
Object Interaction
4th Creating Cooperating Objects (Object Interaction)
Week Modularization
Abstraction
Encapsulation
5th Grouping Objects.
Week Collections, Array Lists, Linked List
Array List, Random
Hash Map, Hash Set
Grouping Objects (Cont.)
For each Loop
Iterator Objects
Class Libraries
More sophisticated behavior
6th Interface and Implementation
Week Java Packages and Import
Tokenizing String
Writing Class documentation
Improving structure with inheritance.
Inheritance
Sub typing
7th
Sub Type Substitution
Week Polymorphic variables
Casting types
Wrapper classes and autoboxing
Shallow Copy & Deep Copy
8th
Mid Terms
Week
Static and Dynamic type
9th Method polymorphism
Week Overriding inherited methods
Dynamic method lookup
Protected access
Further Abstraction techniques.
10th Abstract Classes
Week Interfaces
Multiple Inheritance
Polymorphism with Interfaces
Threading
Threads and their importane
11th
Life cycle of a Thread
Week Threads Priorities
Creating threads by implementing Runnable Interface
Creating Thread by extending Thread class
Thread Method
12th Handling errors.
Week Exceptions handling and throwing
Try, Catch, Final Construct
Error reporting
13th Polymorphism
Week Type of polymorphism
Compile time and run time
Function overloading
Operator overloading
Multi File programs
Reasons for multi file programs
Creating a multi file program
Function overloading
Operator overloading
Header file
Directory
Projects
Polymorphism
14th Type of polymorphism
Week Compile time and run time
Function overloading
Operator overloading
Building Graphical User Interface.
GUI principle
15th
Components
Week
Event Handling
Inner and Anonymous Classes
Layout Manager
16th Presentation/Viva
Week
Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations
Course Assessment:
Sessional Exam, Home Assignments, Quizzes, Project, Presentations, Final Exam
Reference Materials:
1. C++ How to Program, 8/E (Harvey & Paul) Deitel and Deitel ISBN: 978-0132662369
Publisher: Prentice Hall.
2. Java How to Program, 9/E (Havey & Paul) Deitel & Deitel ISBN: 978-0132575669,
Publisher: Prentice Hall
3. Object First with Java – A Practical Introduction Using BlueJ 5/E (David J. Barnes &
Michael Kölling) ISBN: 978-013-249266-9 Publisher: Prentice Hall