|     |  | 
      
        
          | 
          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)
   |