CS117: Object-Oriented Programming

plumponionchipsSoftware and s/w Development

Nov 18, 2013 (4 years and 1 month ago)

99 views

1




Yarmouk University

Faculty of Information Technology & Computer Sciences

Department of Computer Sciences


CS
117
:
O
bject
-
Oriented Programming


Course Credits:

3 Cr. Hrs.


Perquisite
: CS 101A


Semester/Session:

Spring

20
12
/20
13

Class Section(s) Time & Lo
cation:




Section 1:
Sun, Tue,

Thr

13
:
00



14
:00,
khz

31
3





Section 3:
Sun, Tue,

Thr

16
:
00



17:00
,
ت
011




Section
6
:
Mon
,

Wed

11
:
00



1
2
:
3
0,
khz

3
17


Instructor:

Dr.

Faisal Alkhateeb

E
-
Mail address:
alkhateebf@yu.edu.jo

Office Hours:
Sun,
Tue, Thu
12:00



13
:00, Mon, Wed
12
:30


1
3
:
3
0

Office Location:

khz 203


Tel:
2464




















Course Description:

Th
e

objective of this
course is

to provide students with knowledge and needed skills in order
to design and develop object
-
oriented programs. Topics to be covered include: the object
-
oriented app
roach, classes, method, object inheritance, replacement and refinement, static
and dynamic binding, polymorphism, visibility and dependency, files and storage issues. The
course is supplemented by a lab component covered in CS118 concurrently.


Course Obje
ctives:


This course will cover
the main concepts of object oriented programming
. By the end of this

course, students should:



Understand how to define classes with its main components such as data members,
member functions, constructors and destructors.



Us
e classes in several examples.



Learn how to overload functions and defined operators.



Learn what is polymorphism, virtual functions, inheritance, etc.


Learning Outcomes:


After completing this course, the student should be able to:




Recognize the importan
ce of object oriented programming to solve complex
problems.


2




Use the main concepts of object oriented programming to analyze and design and
implement any case that need such knowledge.



Employ objects oriented concepts for programming algorithms and data st
ructures.



Teaching Methods:


A combination of the following teaching activities will be used in order to demonstrate the
concepts of the course and to achieve the expected learning outcomes of this course:




Lectures inside the class room with expositions

and examples written on the board.



Demonstrating real examples in front of students using a compiler and data
-
show.



Discussions for any question or point of view.



Lab sessions where students try to write some code their selves.


Evaluation Plan:


Students

will be evaluated using the following assessment methods:


First

e
xam
20
%

Second

e
xam
20
%

Assignment 1
0%

Final

exam 5
0%


Teaching Recourses:


Main Textbook


C++ How To Program,
8
th edition, Deitel & Deitel, Prentice
-
Hall, 20
11
.


Supplementary

Textbooks





Budd, Timothy. An introduction to object
-

oriented programming



Wiener, Richard S. /Pinson, Lewis J. An introduction to object
-
oriented programming
and C++


Course Plan:

Week no.

Topic

1
,2

Introduction to classes and objects (ch. 3)

-

Introduction

-

Clas
ses, Objects, Member functions and Data

Members

-

Defining a Class with a Member Function

-

Defining a Member Function with a Parameter

-

Data Members,
set
Functions and
get
Functions

3


-

Initializing Objects with Constructors

-

Placing a Class in a Separate

File for

Reusability

-

Separating Interface from Implementation

-

Validating Data with
set
Functions

2,

3

Classes: A deeper look, Part 1 (ch. 9)

-

Introduction

-

Time class case study

-

Class scope and accessing class members

-

Separating interface from
implementation

-

Access functions and Utility functions

-

Constructors with Default Arguments

-

Destructors

-

When Constructors and Destructors Are Called

-

Subtle trap: returning a reference to a private data

member

-

Default member wise assignment

-

Soft
ware reusability

4, 5
,

6

Classes : A deeper

look, Part 2

(ch. 10)

-

Constant objects and constant member functions

-

Composition

-

Friend functions and friend classes

-

Using the this Pointer

-

Dynamic memory management

-

Static class members

-

Data Abstr
action and Information Hiding

First exam

7, 8, 9

Operator Overloading Operator Overloading (ch. 11)

-

Fundamentals and restrictions of Operator

Overloading

-

Operator functions as class members vs. global

functions

-

Overloading >> and <<

-

Overloading u
nary operators and binary operators

-

Case study: Array class

-

Overloading ++ and
-

-

-

Case study: Date Class

-

explicit Constructors

10, 11

Inheritance (ch. 12)

-

Base class and derived class

-

protected Members

-

Relationship between base classes and
derived

classes

-

Constructors and Destructors in Derived Classes

-

public, protected and private Inheritance

11, 12, 13

Polymorphism (ch. 13)

-

Relationships among objects in an inheritance

hierarchy

-

Abstract Classes and Pure virtual Functions

-

Case S
tudy: Payroll System Using Polymorphism

4


-

Virtual destructors

Second exam

14

Templates (ch. 14)

-

Function templates

-

Overloading function templates

-

Class templates

-

Nontype Parameters and Default Types for Class

Templates

1
5

File processing (ch. 17
)

-

Data hierarchy

-

Files and streams

-

Sequential access file: creating, reading and

updating

-

Random access file: creating, writing and reading

-

Case study: A transaction
-
processing program

-

Input/Output of objects

Final exam