CENG 217 Object Oriented Programming



Fatih University, Computer Engineering Department
Fall Semester 2002
Tuesday 14:00 - 17:00, E303

Instructor: Halûk Gümüşkaya Teaching Assistant: Engin Tozal
Office: EA301 Office: EA 202
Office hours: Tue 13-14, Wed 14-15, Thur 15-16 Office hours:
Office phone: 0.212.889 0810-1036 Office phone: 1118
e-mail: haluk@fatih.edu.tr e-mail: engintozal@fatih.edu.tr
Mostly Static Information: Mostly Dynamic Information:
bulletCourse Description
bullet Lecture Announcements
bullet Prerequists

Homeworks, Lecture Notes

bullet Lecture Schedule

Project Page

bullet Textbooks


bullet Grading
bulletAcademic Integrity

Course Description

This course will introduce the essential aspects of software-engineering from an object-oriented point of view. In addition to programming, there will be considerable emphasis on analysis and design. The Unified Modeling Language (UML) is used for the analysis and design work.

Programming topics will emphasize the core concepts of encapsulation, inheritance, polymorphism, and dynamic binding. The realization of these concepts is examined in the Java programming language. Students are expected to complete and report assignments and a nontrivial project developed in Java using a UML desing tool.



CENG 102 Computer Programming II.

Lecture Schedule

This is the tentative schedule. Please check it once before the lecture.

1. Introduction to Object-Oriented (OO) Programming and Software Engineering

2. Object Oriented Thinking and Object Oriented Design
A way of viewing the world, computation as simulation, responsibility driven design (RDD), programming in the small and in the large, why begin with behavior?, a case study in RDD, CRC cards, components and behavior, software components, formalizing the interface, designing the representation, implementing components, integration of components,  maintenance and evolution.

Computer Aided Software Engineering (CASE) Tools
Practical introduction to CASE tools. OO software development using JBuilder and Togethersoft.

Unified Modeling Language (UML)
What is UML? Modeling structure and behaviour, History of the UML, UML diagrams, UML and software process, Rational Unified Process, Introduction to UML-Based Software Design with Togethersoft, Elevator-Simulation Case Study

Understanding Paradigms
Ball Worlds (Chapter 5), A Cannon Game (Chapter 6), Pinball Game Construction Kit (Chapter 7)

Understanding Inheritance
Chapter 8: Intuitive and practical meanings of inheritance, inheritance: extension and contraction, inheritance and substitutability, forms of inheritance: specialization, specification, extension, combination, construction, limitation, modifiers and inheritance, benefits of inheritance, cost of inheritance.
Chapter 9: Solitaire Game:
A good example of the use of inheritance and overriding, built out of classes for cards, card piles, and the game application.
Chapter 10:
The Is-a rule and the has-a (or part-of) a rule, two approaches to software reuse: inheritance and composition, novel forms of software reuse: dynamic composition, inheritance of inner classes, unnamed classes.
Chapter 11: Polymorphic variable, memory layout: stack and heap based memory allocation, assignment, equality test.

Understanding Polymorphism

Project Discussions and Software Engineering




Understanding Object-Oriented Programming with Java, Timothy Budd, 416 pages, Addison-Wesley, 2000.



Developing Applications with Java and UML, Paul R. Reed Jr., Addison-Wesley, 512 pages, 2002.


Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Bernd Bruegge and Allen H. Dutoit, Prentice-Hall, 2000, ISBN: 0-13-489725.



Advanced Java 2 Platform, How to Program, H. M. Deitel, S. E. Santry, P. J. Deitel, Prentice Hall, 2001.


Java How to Program, H. M. Deitel, P. J. Deitel, Prentice Hall, 4th Edition, 1546 pages, 2001.


One midterm, homework assignments, one project, one final exam. Dates and times will be announced on the web and in class. All exams will be open textbook only (no other books or notes.) There will be a single makeup exam that may be taken only by those who missed an exam due to documented medical reasons.

The grade for CENG 217 is calculated as  
20 % : Homework Assignments  
30 % : Project  
20 % : Midterm (near the middle of the course)
% : Final Exam (a comprehensive exam at the end of the course)