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 |
Mr. Muhammad Hamas |
URL (if any) |
|
Current Catalog Description |
Nil |
Textbook (or Laboratory Manual for Laboratory Courses) |
• C++ Programming from Problem Analysis to Program Design by D.S. Malik 5th Edition. |
Reference Material |
• Object Oriented Programming in C++ by Robert Lafore 4th edition • C++ How to Program by Deitel & Deitel |
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, inheritance, multiple inheritance, polymorphism, object streams, data and object serialization using object streams, file handling. |
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
Develop an understanding of object oriented design artifacts and their mapping to object oriented programming. |
C |
2 |
Analyze a real life problem statement/scenario to develop a solution. |
C |
4 |
Simulate UML diagrams to solve complex problems and identify the relationship between classes in inheritance. |
P |
3 |
Implementation of C++ programs for complex problems, making good use of the language such as structures, file handling, classes, inheritance and polymorphism. |
P |
3 |
* 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 |
Implementation of Loops and their conversion and Arrays |
|
2 |
Implementation of different types of Arrays |
Week 2 |
3 |
Review of Functions (Built in and User Defined) |
|
4 |
User Defined Functions |
Week 3 |
5 |
Structures , Structures Vs Arrays |
|
6 |
Nested Structures |
Week 4 |
7 |
Structures with Functions |
|
8 |
File Handling |
Week 5 |
9 |
Const vs non constant functions, static data members and functions |
|
10 |
Structures with file handling |
Week 6 |
11 |
Classes and Objects |
|
12 |
Class member functions and data members, Access specifiers |
Week 7 |
13 |
Access Specifiers , classes vs structures |
|
14 |
Classes with public, private and protected Access Specifiers |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
Constructors |
|
16 |
Types of Constructor (default and parameterized) |
Week 10 |
17 |
Implementation of Copy Constructor |
|
18 |
Implementation of Classes with Constructor |
Week 11 |
19 |
Implementation Destructor |
|
20 |
Friend Functions |
Week 12 |
21 |
Inheritance: Class inheritance |
|
22 |
Inheritance (Single level, multiple inheritance syntax and implementation) |
Week 13 |
23 |
Inheritance (Multilevel level, hierarchical inheritance syntax and implementation) |
|
24 |
Inheritance (hybrid inheritance syntax and implementation) |
Week 14 |
25 |
Function overloading (Simple) |
|
26 |
Polymorphism |
Week 15 |
27 |
Polymorphism (Compile time polymorphism, function overloading) |
|
28 |
Polymorphism (Compile time polymorphism, operator overloading) |
Week 16 |
29 |
Polymorphism (Run Time polymorphism, operator overriding) |
|
30 |
Polymorphism (Run Time polymorphism, operator overriding , Virtual Function) |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
|
Programming Assignments Done in the Course |
|