Course Code |
CSC321 |
Course Title |
Object Oriented Programming |
Credit Hours |
3+1 |
Prerequisites by Course(s) and Topics |
Programming Fundamentals |
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) |
SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
|
Course Coordinator |
Dr. Mujtaba Asad |
URL (if any) |
|
Current Catalog Description |
|
Textbook (or Laboratory Manual for Laboratory Courses) |
• C++ Programming from Problem Analysis to Program Design by D.S. Malik 5th Edition |
Reference Material |
|
Course Goals |
Introduction to object oriented design, history and advantages of object oriented design, Structures 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, file handling. |
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
Understand principles of object oriented paradigm. |
C |
2 |
Identify the objects & their relationships to build object oriented solution |
C |
3 |
Model a solution for a given problem using object oriented principles |
C |
3 |
Examine an object oriented solution. |
C |
3 |
Examine an object oriented solution. |
C |
4 |
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain |
|
|
|
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures) |
Week | Lecture | Topics Covered |
Week 1 |
1 |
Review of Functions I |
|
2 |
Review of Functions II |
Week 2 |
3 |
Programming Fundamentals concepts review : Background of Object Oriented Programming |
|
4 |
Structures in C++ |
Week 3 |
5 |
Arrays with Structures |
|
6 |
Structures and Functions, Nested structures |
Week 4 |
7 |
C++ File Handling |
|
8 |
Structs with File handling |
Week 5 |
9 |
Objects & Classes, Data Abstraction, Information Hiding, ADTs |
|
10 |
UML Diagrams, , Members of class, Functions and Classes Constructor Types |
Week 6 |
11 |
Function overloading, Destructors |
|
12 |
Inheritance: Class hierarchies: |
Week 7 |
13 |
Protected Member of class, types of inheritance, Scope resolution with overridden functions |
|
14 |
Public and private inheritance: |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
Mid terms |
|
16 |
Mid terms |
Week 10 |
17 |
Multiple inheritance and Multi-level inheritance |
|
18 |
Multiple inheritance and Multi-level inheritance |
Week 11 |
19 |
Composition/Aggregation |
|
20 |
Pointers, Pointer Data Type and Pointer Variables |
Week 12 |
21 |
Address of Operator (&) Dereferencing Operator (*) Classes, Structs, and Pointer Variables |
|
22 |
Operations on Pointer Variables Dynamic Arrays |
Week 13 |
23 |
Virtual functions |
|
24 |
Friend functions Friend classes Static functions |
Week 14 |
25 |
Polymorphism, |
|
26 |
Polymorphism-II, Different types of polymorphism |
Week 15 |
27 |
Operator Overloading -I |
|
28 |
Operator Overloading -II |
Week 16 |
29 |
Function Templates - A simple functions template - Functions templates with multiple arguments |
|
30 |
Class Templates |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
Student Oriented Project |
Programming Assignments Done in the Course |
Four Assignments |