CTP201 - Object Oriented Programming I
2012 - 2013 Fall

Department of Computer Technology and Programming
(Last updated: 10/02/2010)   (CWPS ver: 2.0.2)
Okyay Say
Instructors: Okyay Say
Assistant: Ceylan Köse
E-mail: okyay@ctp.bilkent.edu.tr
Lecture: MON 10:40-12:30 GZ-54, WED 10:40-12:30 GZ-54
Lab: TUE 13:40-15:30 Lab5, FRI 13:40-15:30 Lab5
Grading:    
    Midterm 1: 20%
    Lab Exam 1: 25%
    Lab Quiz: 10%
    Quiz 1: 10%
    Final: 25%
    Lab: 10%

Description of object-oriented program development. Introduction of object oriented programming concepts using C++ programming language. Objects, classes, encapsulation. Hierarchy between classes, inheritance and abstract classes. Function and operator overloading. Virtual functions, virtual base classes and polymorphism.
Credit : 5 credits
No Of Hours : 4 Lecture Hours + 4 Lab Hours

OBJECTIVES
1. To understand object-oriented program development concepts
2. To understand encapsulation
3. To learn single and multiple inheritance
4. To use operator ovearloading functions
5. To learn virtual functions and virtual base classes
6. To understand polymorphism
Textbooks and Other Materials:
  • Required: "C++ How to Program", Deitel & Deitel
  • Recommended: "An Introduction to Object-Oriented Programming,", Timothy Budd - Addison Wesley
    Detailed Weekly Course Outline:
    Week Date Lecture Topics Lab Topics
    1 13/09/2012
    17/09/2012
    Object Oriented Program Development
    Object Oriented Programming Concepts
    Testing C Knowledge
    Array Manipulation, Strings
    Structures,Files

     
    2 20/09/2012
    24/09/2012
    Classes, objects, visibility
    cin, cout, cerr
    How to define classes
    How to create and use objects
    Visibilities  
    3 27/09/2012
    01/10/2012
    Scope resoultion operator, reference variables
    Constant member functions, static data members, static member functions
    Scope Resolution Operator
    Reference Variables
    Constant Member functions Static data members Static member functions  
    4 04/10/2012
    08/10/2012
    Function overloading, constructors, default constructor constructor initializer
    Default arguments
    Constructor
    Function Overloading
    Default Arguments  
    5 11/10/2012
    15/10/2012
    Dynamic memory, destructor, memberwise copy Dynamic Memory Allocation
    Destructor  
    6 18/10/2012
    22/10/2012
    Copy constructor
    Friend functions, friend classes
    Array of objects
    Copy constructor
    Friend Classes,friend functions  
    7 25/10/2012
    29/10/2012
    Operator overloading, non-member operator overloads
    friend operator overloads, member operator overloads
    I/O of objects
    Operator Ovearloading
    Overloading Non-Class Member Operators
    Overloading Class Member Operators  
    8 01/11/2012
    05/11/2012
    MIDTERM WEEK MIDTERM WEEK
    NO LAB  
    9 08/11/2012
    12/11/2012
    The this pointer, prefix and postfix notations.
    Inheritance, single inheritance
    Input / Output of Objects
    This Pointer
    Prefix/Postfix  
    10 15/11/2012
    19/11/2012
    Layered classes
    Derived class constuctors, destructors
    Single inheritance
    Single inheritance  
    11 22/11/2012
    26/11/2012
    Visibilities
    Multiple inheritance
    Multiple Inheritance
    Multiple Inheritance  
    12 29/11/2012
    03/12/2012
    Ambiguity resolution, virtual base classes
    Inheritance hierarchy and pointers
    Dynamic Objects
    Array of Pointers
    Virtual Base Classes
    Base Class Pointer to Derived Classes  
    13 06/12/2012
    10/12/2012
    Runtime polymorphism, abstract base classes
    Virtual Functions, Polymorphism  
    14 13/12/2012
    17/12/2012
    Templates
    I/O headers files, file operations, testing the I/O state
    Abstact Class  
    15 20/12/2012
    24/12/2012
    Review File Operations
    Using command line  

  • Lab Guides  
  • Homeworks  
  • Lecture Notes  
  • Sample Programs           (Updated: 17/05/2005 12:18)
    End of CTP201 main page.