Object-Oriented Programming with Java

Syllabus

  1. Lectures
  2. Demos (home work and class sessions)
  3. Project on choice:
Course grading
 
The final course grade will be composed of the following grades:
  1. Theory, 50%
  2. Practice, 50%
Optional work (extra 3 ECTS)
 
Extended project work to qualify for Laboratory Project Work (Parityö, 175215) for 3 extra ECTS credits (3 op / 2 ov) 

Lecture Plan (preliminary)

  1. Introduction to Java
    1. Java language essentials structures:
      • types, variables, operators, expressions, statements, control flow, arrays
    2. methods
  2. Object-oriented Programming (with Java)
    1. Encapsulation:
      • Classes, interface and implementations, control of visibility, instantiation and initialization (constructors), methods and message passing
    2. Inheritance:
      • Properties, forms of inheritance, benefits and costs of inheritance
    3. Mechanisms for software reuse:
      • Polymorphism, composition and inheritance (Is-A and Has-A relationships), object constructions, interfaces, limitations of polymorphism in Java
  3. Frameworks:
    1. Reuse of the concept principle:
      • Frameworks in Java, Java Input/Output framework, The Java Application Framework, Web development - The Applet API
    2. Principles of Java GUI:
      • Interactive components, event delegation model, inner classes and adapters, layout managers, painting on the screen, advanced GUI issues,
      • Standalone GUI applications

Final examination:

There will be two types of the questions for the exam:

(Dictionaries are permitted during exam. )


Topics for the exam (preliminary):

  1. OOP Fundamental Concepts
    1. Encapsulation (classes and objects, interface and implementation, data hiding)
    2. Inheritance (properties, types, benefits, costs)
    3. Polymorphism (substitutability, polymorphic functions, polymorphic variables)
  2. Essential constructions of the OOP language
    1. Classes and objects
    2. Call-by-value vs. call-by-reference
    3. Members: methods and fields
    4. Constructors
    5. Class members vs. instance members
    6. Method overloading and method overriding
    7. Abstract and inner classes
  3. Software Re-use Aspects
    1. OOP Frameworks
    2. Inheritance and Composition
    3. Is-A and Has-A relationships
    4. Abstract types and Interfaces
  4. OOP aspects of Java Language
    1. Fundamentals and purpose of Java
    2. Classes and interfaces
    3. Fields and methods
    4. Static, abstract and inner classes
    5. Information hiding: access types and "accessor" functions
    6. this and super
  5. Java Language
    1. Exceptions Handling
    2. Wrapper Classes
    3. Java Data Structures
    4. Input/Output Framework
    5. Mouse Events Handling
    6. Action Events Handling
    7. User Interface
    8. Graphics
    9. String Processing
    10. Web development - The Applet API