Vous êtes sur la page 1sur 5

Kinnaird College for Women-Lahore

Course Outline Course Title: Object Oriented Programming


Course Code: Department will assign it Credit Hours: 4 (3+1) Pre-Requisite: Programming Fundamentals Instructor: Hafsah Qaiser Term: Fall 2011 Email: hafsah_qaiser@yahoo.com Course Description: This is the second course of programming category. Its focus is to convert an Object Oriented Design into a program using certain language, such as C++. Main topics in it includes Object Oriented Concepts, Terminology and Features, Class/ADT/UDT, Data Abstraction and Encapsulation, Special Methods, Constructor and Destructor; Modifier const; Array and Pointer of ADT, Composition; this Pointer, friend Function and Class, Modifier static, Operator Overloading, Class Templates, Inheritance, its types, and related Terminology, Overriding: static & dynamic/Polymorphism; Stream I/O, File Processing; Exception Handling. Course Learning Outcomes: Students will learn and practice features available in C++ to support Object Oriented paradigm, with special emphasis on syntax related issues. Text Book P J Deitel & H M Deitel, C++ How to Program, 3rd Ed., Prentice Hall, 2001. ISBN 0-13-089571-7 Robert Lafore, Object Oriented Programming using C++, 3rd Ed, SAMS, December 1998,

Reference Books Herbert Schildt, C/C++, The Complete Reference, 3rd Ed, Osborne McGrawHill, ISBN 0-07-882476-1 Bruce Eckel, Thinking in C++, 2nd Ed, Pearson Publication, ISBN 81-7808297-7 Bjarne Stroustrup, The C++ Programming Language 3rd Ed, Addison Wesley, ISBN 0-201-88954-4 0 www.deitel.com www.bruceeckel.com Page 1 of 4

Lectures per week Weight: Contact Hours Lectures: Duration Lab Sessions (if any) Weight: Contact Hours Labs Duration 1 Cr. Hrs 2 Hrs 1 2 Hrs 3 Cr.Hrs 3 Hrs 2 1.5 Hrs

Tentative Grade Distribution Students performance will be evaluated through the following criteria Quizzes/Tests Lab Exercises/Assignments Final Project Mid Term Final Examination Rules pertaining to the Course: 1. Quizzes may or may not be announced. There is no such thing as make-up quiz/test or make-up exam. 2. Late assignments will not be accepted at all. Students are encouraged to submit assignments before time. 3. Student name would be struck off the subject roll if her absence exceeds 6 hours, it is highly discouraged to be absent at all though. 15% 15% 15% 25% 30%

Page 2 of 4

Tentative Weekly Lecture Breakup

Week Session 01 1 02 03 2

Topics to be Covered
Introduction of the course; Overview of Structured Programming using C++ Object Oriented Concepts and Terminology; Real world examples Difference between class and struct; Access Specifiers: private and public only; First Member function; Data Abstraction through Encapsulation; Setter/Mutator and Getter/Accessor methods; Access Methods; Separating Interface from Implementation Revision of Function Overloading & Default Arguments; Two Special Method: Constructor & Destructor; Constructor with No argument (Default Constructor); Constructor with One argument (Type-cast Constructor); Constructor with Default arguments; Default Member-wise copy (during Assignment & Initialization) Importance of Destructor in Memory Allocation & De-allocation; Calling sequence of Constructor & Destructor for multiple objects; Problem of Member-wise copy & its solution: Copy Constructor Preventing changes in data members from a method: const method; Other uses of const: simple variable, pointer, data member, object Array of objects; Pointer to Object; Object as argument to function (call by value & call by reference); Revision of const and pointer Object as data member (Composition); Pointer this and its use for cascading Friend functions (efficient but shake the concept of encapsulation); Declaring a global function as friend of a class; Declaring member function of a class as friend of another class Friend class (an easy but more un-secure way); Revision of instance method/attribute vs class method/attribute; Using class methods & attributes, and their Restrictions & Facilities Operator Overloading; Binary Operator receiving Instance of class as 1st operand Binary Operator NOT receiving Instance of class as 1st operand Overloading Binary Operators for I/O stream Overloading Unary Operator: as member, as non-member Unusual Operators: ++, --, [ ] (set & get, both versions), type-cast

04

05 3 06 07 4 08 09 5 10

11 6 12 13 7 14 15

Page 3 of 4

Other unusual operators*: parentheses, comma, arrow etc.

8 16 17 9 18
Mid-Term Exam Inheritance; Base and Derived classes, protected Access Specifier; Implicit Typecasting between (Objects, References, and Pointers of) Base and Derived classes; public, protected, and private Inheritance; Overriding base-class members in derived class; Calling of Constructor and Destructor for Derived Class Objects; Explicit call to the constructor of Base class from Derived class; Multilevel Inheritance: Direct and Indirect Base Class Relationships in OOP (Containment):* Composition*, Container*, Iterator*, Proxy*, Association/Use* More Relationships in OOP:* Simple Inheritance, Multiple Level Inheritance*, Multiple Inheritance* Virtual inheritance* Polymorphism: Virtual functions and Dynamic binding; Concept of vPointer and vTable* Pure virtual functions and abstract class; Defining a pure virtual destructor C++ Streams, Members and Manipulators of Streams*; File Handling using Streams* Access Techniques*: Sequential, Direct, and Random Access Files; Input/Output of Object from/to File; Unformatted I/O with read and write Writing and Modifying Random Access File* Function Template; Overloading of Function Template; Specialized of Template Function Class Template; Specialized method of Template Class; Complete Specialized Template Class Friendship and Inheritance with Templates What is Exception? Error vs Exception; Evolution of Exception Handling: exit, abort, assert, new-keywords; try, catch, throw Unhandled Exception;* Propagation of Exception and its advantage* Mouse handling* 3-tier architecture*

19 10 20 21 11 22 23 12 13 24 25 26 14 27 28 29 15 30 31 16 32

Final-Term Exam

*if time permits

Page 4 of 4

Tentative Lab-Sessions Breakup

Week 1 2

Topics to be Covered

Arrays, 1D, 2D and multidimensional arrays Pointers, pointer and arrays, pointer and strings, classes and objects, access specifiers Constructor, destructor Copy constructor, this pointer Friend functions, Friend classes Friend functions, Friend classes (contd.) Operator overloading Operator overloading (contd.) Inheritance Multiple inheritance Polymorphism Virtual inheritance* Templates Exception handling File handling Mouse handling*

3 4 5 6 7 8 9 10 11 12 13 14 15 16

*If time permits

Page 5 of 4

Vous aimerez peut-être aussi