Documente Academic
Documente Profesional
Documente Cultură
CS 221: PROGRAMMING-2
COURSE INTRODUCTION
Dr. Mustafa ElNainay
CS 221: Programming -2
Today’s Topics
Welcome
Course Information
Class and Course Policies
Brief Introduction to Object Oriented Paradigm
1
10/6/2009
Welcome
Instructor: Dr. Mustafa Y. ElNainay
Email: y.mustafa@gmail.com
Alexandria University Mail: TBD!
Office
Course Information
Object-oriented design; encapsulation and
information hiding; separation of behavior and
implementation: classes, subclasses and inheritance;
polymorphism, UML and requirement analysis.
2
10/6/2009
Course Breakdown
Introduction to Object Oriented Paradigm
Object Oriented Programming Principles
Object Oriented Modeling and Requirement
Analysis using UML
Object Oriented Design using UML
Design Patterns
Refactoring
Course Materials
Many Textbooks!
Objects, Abstraction, Data Structures and Design Using Java Version
5.0 by Elliot B. Koffman and Paul A. T. Wolfgang
The Essence of Object Oriented Programming with Java and UML by
Bruce E. Wampler
Object Oriented Programming with Java: Essentials and Applications by
Rajkumar Buyya, Thamarai Selvi Somasundaram, and Xingchen Chu
Design Patterns in Java by Steven John Mestker and William C. Wake
And More Online Materials
So What?!
3
10/6/2009
4
10/6/2009
5
10/6/2009
Programming Paradigms
Non-Procedural
Procedural
Structured
Object Oriented
Aspect Oriented
Non-Procedural
6
10/6/2009
Procedural Programming
Structured Programming
7
10/6/2009
Global Concerns
Tactical Concerns
8
10/6/2009
Fundamentals of OOP
Classes and Objects
Encapsulation
Abstraction
Inheritance
Multiple Inheritance
Polymorphism (Overriding and Overloading)
Advantages of OOP
simplicity: software objects model real world objects, so the
complexity is reduced and the program structure is very clear;
modularity: each object forms a separate entity whose internal
workings are decoupled from other parts of the system;
modifiability: it is easy to make minor changes in the data
representation or the procedures in an OO program. Changes inside
a class do not affect any other part of a program, since the only
public interface that the external world has to a class is through the
use of methods;
extensibility: adding new features or responding to changing
operating environments can be solved by introducing a few new
objects and modifying some existing ones;
maintainability: objects can be maintained separately, making
locating and fixing problems easier;
re-usability: objects can be reused in different programs.
9
10/6/2009
Homework 1
Review Java and Programming Concepts from
Programming-1 Course Materials
Follow C-Language Sections
10
10/6/2009
Summary
Course Contents
More than Java
More than Programming
What and Why OOP
Fundamentals of OOP
Advantages and Disadvantages of OOP
Questions/Discussions
Lecture Hours
Office Hours
Methods of Communications
Course Materials
Your Expectations
11