Syllabus
- Lectures
- Demos (home work and class sessions)
- Project on choice:
- Obligatory group project Work: implement Java applicatin or Java applet
- Optional advanced laboratory project in Java Contact instructor for details.
- Course grading
- The final course grade will be composed of the following grades:
- Theory, 50%
- Final test (theoretical aspects with illustrations in Java)
- Practice, 50%
- Project work (25%)
- Home work (25%)
- 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)
- Introduction to Java
- Java language essentials structures:
- types, variables, operators, expressions, statements, control flow,
arrays
- methods
Object-oriented Programming (with Java)
- Encapsulation:
- Classes, interface and implementations, control of visibility,
instantiation and initialization (constructors), methods and message
passing
- Inheritance:
- Properties, forms of inheritance, benefits and costs of
inheritance
- Mechanisms for software reuse:
- Polymorphism, composition and inheritance (Is-A and Has-A
relationships), object constructions,
interfaces, limitations of polymorphism in Java
Frameworks:
- Reuse of the concept principle:
- Frameworks in Java, Java Input/Output framework, The Java Application
Framework, Web development - The Applet API
- 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:
- Requires good understanding of fundamental principles and concepts of OOP
(Java or Diagrams can be used for illustrations)
- Requires knowledge of OOP aspects of Java language.
(Dictionaries are permitted during exam. )
Topics for the exam (preliminary):
- OOP Fundamental Concepts
- Encapsulation (classes and objects, interface and implementation, data
hiding)
- Inheritance (properties, types, benefits, costs)
- Polymorphism (substitutability, polymorphic functions, polymorphic
variables)
- Essential constructions of the OOP language
- Classes and objects
- Call-by-value vs. call-by-reference
- Members: methods and fields
- Constructors
- Class members vs. instance members
- Method overloading and method overriding
- Abstract and inner classes
- Software Re-use Aspects
- OOP Frameworks
- Inheritance and Composition
- Is-A and Has-A relationships
- Abstract types and Interfaces
- OOP aspects of Java Language
- Fundamentals and purpose of Java
- Classes and interfaces
- Fields and methods
- Static, abstract and inner classes
- Information hiding: access types and "accessor" functions
this and super
- Java Language
- Exceptions Handling
- Wrapper Classes
- Java Data Structures
- Input/Output Framework
- Mouse Events Handling
- Action Events Handling
- User Interface
- Graphics
- String Processing
- Web development - The Applet API