|
|
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: |
|
|
|
|
|
|
|
|
|
|
| Academic 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.
Prerequisites
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.
3. Computer Aided Software Engineering (CASE) Tools
Practical introduction to CASE tools. OO software
development using JBuilder and Togethersoft.
4. 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
5. Understanding Paradigms
Ball Worlds (Chapter 5), A Cannon Game (Chapter
6), Pinball Game Construction Kit (Chapter 7)
6. 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.
7. Understanding Polymorphism
8. Project Discussions and Software Engineering
Textbooks
Required
|
Understanding Object-Oriented Programming
with Java, Timothy Budd, 416 pages, Addison-Wesley, 2000.
|
Recommended
|
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. |
Supplementary
|
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.
|
Grading
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)
30 % : Final Exam (a
comprehensive exam at the end of the course)
|