National University of Computer & Emerging Sciences, Karachi
Spring 2021 CS-Department
CS 217 – Object-oriented Programming
Course Learning Outcomes (CLOs):
CLO 1: Acquire knowledge of underlying concepts of object oriented paradigm like abstraction, encapsulation, polymorphism, inheritance etc. CLO 2: Interpret real world problems in terms of objects rather than procedure. CLO 3: Develop an understanding of Object-Oriented design artifacts and their mapping to Object- Oriented Programming using C++. CLO 4: Apply object-oriented programming principles to implement small and medium scale C++ / C# programs. CLO 5: Implement Generic Programming Concepts and exception handling.
Course Outline:
Week Topic Lab Topic Assessment
1 Introduction to OO paradigm Introduction to IDE, skeleton Announce Comparison from sequential & procedural paradigms of C++ program, pointers, project Data Abstraction array, basic I/O in C++ proposals in 2nd 2 Encapsulation C++ data types, functions, week and Introduction to Objects in real world struct revisited submissions in 3 Introduction to classes and objects Classes & Objects 3rd week Access Control Constructors & its types 4 Destructor Working with classes and At least 2 Implicit and explicit casting constructors Assignment Member initialization list & constants 5 Static data and member functions Working with access Inline functions modifiers, static and constant keywords, some examples to revise concepts of classes and objects, constructors & destructors (before Mid 1) Mid I Exam 6 Inheritance Working with Static Types of inheritance functions, constants, Data and code hiding constant function and member initialization list 7 Polymorphism in OOP Inheritance Function overloading Function overriding 8 Friend function Operator overloading Polymorphism, Function At least 2 overloading and overriding assignments 9 Multiple inheritance & its issues (Diamond Problem) Friend classes, Friend Virtual inheritance functions, operator Virtual functions overloading 10 Abstract classes & Interfaces Abstract Classes and virtual functions 11 Introduction to filing Multiple inheritance, virtual keyword, abstract class Mid II Exam 12 Generics Project Submission & Project Introduction to exception handling demo Project 13 Introduction to C# Filing and I/O stream Submission in Properties in C# Working with template 12th LAB GUI functions and template classes 14 Linking window forms & Exception handling in C# Final lab exam 15 Revision Finalized Sessional Marks for both Theory and Labs Final Exam Course Coordinator: Dr. Abdul Aziz Course Instructors: Mr. Syed Zain-ul-Hassan, Mr. Basit Jasani, Mr. Behraj Khan, Ms. Nida Munnawar, Mr. Qaiser Abbas Lab Instructors: Mr. Sohail Afzal, Mr. Qaiser Abbas, Mr. Ali Fatmi, Mr. M. Fahim, Ms. Romesha, Ms. Nida Munawwar, Ms. Abeer Gouhar Books: 1- "Problem Solving with C++", 9e Global Edition, Walter Savitch, ISBN- 13:9781292018249, Addison-Wesley, 2015. 2- C++ How to program By Deitel & Deitel. Reference Books: 1- The C++ Programming Language by Bjarne Stroustrup. 2- Object Oriented Software Engineering by Jacobson. 3- C# 4.0: The Complete Reference by Herbert Schildt Marks Distribution For Theory: Assignments 10% Course Project 10% Mid Exam 30% (15% each) Final Exam 50% Total 100 For Lab: Lab Activities 20% Lab Mid exam 20% Course Project 10% (including viva exam & report) Lab Final Exam 50% Total 100