Applied Science University Faculty: Information Technology Department : Computer Science ( Course Syllabus ) CourseTitle Credit Hours Course No. Prerequisite Year (semester) Lec./Lab. Credit Object Oriented Programming I 3 1301201 1301101 2009-2010 (1) Lecture: 2 Lab : 2 Coordinator Name Lecturer Dr. Eman Al-Maghary Room No. 1208 E-mail e_saleh@asu.edu.jo Office Hours Sun & Tue: 1-2 Mon: 12-1 Thur: 9-10 Course Objectives: The objective of this course is to teach the student object oriented programming concepts such as, encapsulation, inheritance and polymorphism, also this course will give an introduction to generic programming. By successfully completing this course, the student will be able to think and write programs using the object-oriented paradigm. Course Description: This course is intended as an introduction to object-oriented programming using C++ for students already familiar with the C language. Participants will learn the fundamental concepts of C++ including object oriented concepts, program structure, classes, reference types, C++ I/O, and overloading. Intended Learning Outcomes : Successful completion of this course should lead to the following learning outcomes : A- Knowledge and Understanding : A1) Understanding of the basic components of an object-oriented program including methods and attributes A2) The distinction between classes and instances A3) Apply the design process using basic object-oriented design notation B- Intellectual Skills : B1) Identify and design suitable classes and class hierarchies and code robust class implementations in C++; B2) Apply the principles of information hiding using C++ facilities for private and protected class attributes B3) Employ C++ facilities for dynamic storage B4) Employ C++ facilities such as operator overloading, templates, inheritance and dynamic binding to promote code re-use; B5) Program using the C++ Standard Template Library (STL) at an intermediate level C) Subject Specific Skills: C1) Handling software complexity C2) Object-Oriented programming C3) Encapsulation and information hiding C4) Object relationships C5) Class Inheritance C6) Dynamic binding D) Transferable Skills: D1) Model problems D2) plan your work and keep to deadlines D3) demonstrate a range of basic C&IT skills, including use of the Web to locate study materials 1 Course Contents : Week 1. 2 . 2. 3 . Topics Introduction Class ADT 3. Abstraction, Encapsolation, Header file 4. 4 Constructor and Destructors . 5. 5 Constructor and Destructors . 6. 6 Constant Members . 7. 7 Static and friend functions . 8. 8 this pointer . 9. 9 . Overloaded Functions & Operator Overloading 10. 1 0 . Operator Overloading 11. 1 Inheritance and 1 composition . 12. 1 2 Inheritance 13. 1 Polymorphism 2 14. 15. Standard Template Library Topic Details C++ Overview: simple program within function Introduction to structure Introduction to Classes and Objects Classes, Objects, Member Functions and Data Members Defining a Class with a Member Function Defining a Member Function with a Parameter Data abstraction ,information hiding as encapsolation. Placing a Class in a Separate File for Reusability Separating the Interface from the Implementation:source-code file known as a .cpp file, reusable source code, .h file known as header file, Initializing class object: Constructors Defining default & initial constructors Using default argument with constructor Providing default parameter value The constructor initialization list The copy constructor Using Destructors When constructor and destructors are called Reference (chapter) [1]Chp.6 Assessment [1]Chp.3 [2]Chp.6 HOME WORK 1 [1] Chp.3 HOME WORK2 [1]Chp.9 [1]Chp.13 ASS. 1 [1]Chp.9 HOME WORK3 FIRST EXAM 10/11/2009 Constant Objects and constant class members static Class Members Introduction to friend function The Implicit this pointer The copy function by this pointer Providing overloaded functions Introduction to operator overloading (Fundamentals and Restrictions) Overloading Unary Operators Overloading Binary Operators (Logical operator Operator as a friend function) [1]Chp.10 [1]Chp.11 HOME WORK 4 (Introduction to inheritance (type of inheritance) Base Classes and Derived Classes protected Members Relationship between Base Classes and Derived Classes) (Public in Inheritance Constructors and Destructors in Derived Classes) (Introduction to pointers Introduction to Polymorphism What is virtual function Applying polymorphism) (Introduction to the Standard Template Library (STL) Introduction to Containers (Vector & List) Introduction to Iterators Introduction to template classes) [1]Chp.12 HOME WORK 5 2 [1]Chp.10 ASS. 2 [1]Chp.22 [1]Chp.11 SECOND EXAM [1]Chp.13 [2]Chp.14 ASS. 3 [1]Chp.23 [2]Chp.15 HOME WORK 6 16. FINAL EXAM Final Exam Course quality improvement : From the market and new subjects in the field. From the monitoring of students feedback (Evaluation sheet). Grade Distribution : Assessment Grade - First Exam - Second Exam - Assignments ( Reports /Quizzes/ Seminars / Tutorials ….) - Final Examination Date 20% 20% 30% 30% * Make-up exams will be offered for valid reasons. It may be different from regular exams in content and format. Reading List: Text Book Other References [1] C++ programming: from Problem analysis to program design: , D. S. Malik, Thomson, 2007 [2] - C++ How to Program: Harvey & Paul Deitel, 5th ed., Prentice Hall, 2005. [3] Essential C Stanley B. Lippman, , Addison Wesley, 2000 Last updated on 30/09/2010 by : Dr. Eman Saleh Al-Maghary 3