Module 1: Introduction to Object-Orientation. | |
---|---|
17/1 (lecture) | Course Overview and Java Programming Review.
Learning Objectives:
Readings:
|
Lab 0: 17/1 | Review basic Java programming environments and tools.
Learning Objectives:
Readings:
|
20/1 (precept) | Lifecycle of a Java program.
Learning Objectives:
|
20/1 (lecture) | Introduction to Computational Thinking.
Learning Objectives:
Readings:
|
Lab 1: 20/1 | Design your first Java classes.
Learning Objectives:
Readings:
|
25/1 (lecture) | The Java Platform.
Learning Objectives: Understand and be able to explain and use:
Readings:
|
Lab 2: 24/1 | Review Java programming style and comments.
Learning Objectives:
Readings:
|
27/1 (precept) | Programming Style
Learning Objectives:
Readings:
|
27/1 (lecture) | Introduction to Object-Oriented Programming Abstractions.
Learning Objectives: Understand, identify and be able to employ key concepts
of abstraction, such as hierarchy and data abstraction. Understand how abstraction is used
to manage complexity. Understand the concepts of objects and classes. Understand the notions
of object properties (fields), object behaviors (methods), object id (handle).
Readings: Chapter 4.1 "Absolute Java", Walter Savitch.
|
Lab 3: 27/1 | Hands-on Examples of using Abstraction in Problem Solving.
Learning Objectives: Explore the use of abstraction in problem solving.
|
Module 2: Class Design and Memory Allocation (Σχεδιασμός Κλάσεων. Διαχείριση Μνήμης). | |
31/1 (lecture) | Class Design in Java.
Learning Objectives: Understand, identify and be able to:
|
Lab 4: 31/1 | Class design in Java.
Learning Objectives: Explore examples of class definition in Java.
|
3/2 (precept) | Class design examples
Learning Objectives:
Review the design of Java classes using information hiding and encapsulation.
|
3/2 (lecture) | OOP Abstraction. Initializers and Constructors.
Learning Objectives:
Readings:
|
Lab 5: 3/2 | Exploring Memory Management in Java.
Learning objectives: Explore the memory allocation and garbage collection
mechanisms of Java programs.
|
Lab 6: 7/2 | JUnit Tests.
Learning Objectives: Explore the JUnit testing platform.
|
7/2, 10/2 (lecture) | Memory Management in Java.
Learning Objectives: Understand, explain and use the concepts of:
Readings:
|
10/2 (precept) | Memory management examples
Learning Objectives:
Review the operation of the stack and the heap during the execution of a Java program.
|
Lab 7: 10/2 | Garbage collector in Java.
Learning Objectives
Learning Objectives: Explore the memory allocation and garbage collection
mechanisms of Java programs.
|
14/2 (lecture) | Wrapper Classes.
Learning Objectives:
Be able to understand, explain and use the concepts of:
Readings:
|
14/2, 17/2 (lect.) | Invariants.
Learning Objectives:
Readings: Chapter 5. "Absolute Java", Walter Savitch.
|
Quiz 1: 14/2 | Quiz 1. |
17/2 (precept) | Practice with Invariants
Learning Objectives:
Readings:
|
Lab 8: 17/2 | Classes and Objects exercises.
Learning Objectives
Learning Objectives: Java Practice Questions On Classes And Objects.
|
Module 3: Inheritance (Κληρονομικότητα). | |
21/2, 24/2 (lect.) | Inheritance.
Learning objectives:
Readings: Chapter 7. Absolute Java Walter Savitch.
|
Lab 9: 21/2 | UML class diagrams.
Learning Objectives:
|
24/2 (precept) | Code reuse in Java.
Learning Objectives:
Readings: Chapter 5.4 Absolute Java Walter Savitch.
|
Lab 10 24/02 | Inheritance in Java.
Learning Objectives: Introducing inheritance in Java.
|
28/2 (lecture) | Inheritance and Object Construction.
Learning Objectives:
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Lab 10.1 28/2 | Finish previous lab.
Learning outcome: Solve different problems using inheritance in Java.
|
3/3 (precept) | Programming Techniques and Inheritance.
Learning outcome:
Readings:
|
3/3 (lecture) | Upcasting.
Learning objectives:
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Lab 11 3/3 | Inheritance in Java - continued.
Learning outcome: Solve different problems using inheritance in Java.
|
Module 4: Polymorphism, Αbstract Classes, Interfaces and Inner Classes (Πολυμορφισμός, Αφαιρετικές Κλάσεις, Διαπροσωπείες κ. Εσωτερικές Κλάσεις). | |
7/3 (lecture) | Introduction to Polymorphism.
Learning objectives:
Readings: Chapter 8. Absolute Java Walter Savitch.
|
Lab 12 7/3 | Polymorphism.
Learning Objectives:
|
10/3 (precept) | UML Class Diagrams and Associations. Problem Solving.
Learning outcome:
Readings:
|
10/3 (lecture) | Polymorphism - continued.
Learning Objectives:
Readings: Chapter 8. Absolute Java, Walter Savitch.
|
Lab 13 10/3 | Exercises on Polymorphism in Java.
Learning Objectives:
|
14/3 (lecture) | Polymorphism - continued.
Learning Objectives:
Readings: Chapter 8. Absolute Java, Walter Savitch.
|
Midterm: 17/3 | Labs B121, B123, 9-10:10:20 (1A, 1B), 10:30-11:50 (1Γ, 1Δ). Topics: Chapters 1, 2, 3, 4, 5, 6, 7, 8, 11, 12 of Absolute Java Walter Savitch, and Class Notes. |
Lab 14 14/3 | Exercises on Polymorphism in Java.
Learning outcome:
|
21/3 (lecture) | Abstract Classes and Interfaces Introduction
Learning Objectives:
Readings:
|
Lab 15 24/3 | Introduction to Interfaces.
Learning outcome: Using interfaces in Java.
|
24/3 (precept) | Using Interfaces.
Learning Objectives:
Readings:
|
24/3 (lecture) | Multiple Inheritance, Default Methods. Introduction to Inner Classes.
Learning objectives:
Readings:
|
Lab 16 28/3 | Exercises Interfaces - continued.
Learning outcome: Using interfaces in Java.
|
28/3 (lecture) | Elements of Inner Classes.
Learning Objectives:
Readings: Chapter 13.2, 13.3 Absolute Java Walter Savitch.
|
31/3 (precept) | Anonymous Inner Classes and Application Frameworks.
Learning Objectives:
Readings: Chapter 13.2, 13.3 Absolute Java Walter Savitch.
|
Lab 17 31/3 | Inner Classes & SOLID design principles.
Learning outcome:
|
Module 5: Exception Handling and File I/O (Διαχείριση Εξαιρέσεων και Είσοδος/'Εξοδος σε Αρχεία). | |
4/4 (lecture) | Exception Handling and I/O.
Learning outcome:
Readings: Chapter 9. Absolute Java Walter Savitch.
|
Quiz 2: 4/4 | Quiz 2. |
Lab 18 7/4 | Exceptions in Java.
Learning outcome: Using exceptions, make your own exception classes.
|
7/4 (lect. and precept) | Input/Output in Java.
Learning outcome:
Readings: Chapter 10. Absolute Java Walter Savitch.
|
Lab 19 Take Home Lab | Exercises on File I/O.
Learning outcome: Using streams in Java. Byte Streams, Character Streams.
|
Module 6: Generics and Collections (Γενόσημοι Τύποι, Κιβώτια και Συλλογές). | |
25/4 (lecture) | ArrayList and Generics.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch, and class-notes.
|
28/4 (precept) | Generic Programming Examples.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch.
|
Lab 20 25/4 | Exercises on Generics.
Learning outcome: Implement generic classes in Java.
|
28/4 (lecture) | Generics and Collections.
Learning Objectives:
Readings: Chapter 14, 15 Absolute Java Walter Savitch, and class-notes.
|
Lab 21 28/4 | Exercises on Collections.
Learning outcome: Using collections in Java.
|
End of Class | Τέλος και τω Θεώ η Δόξα. |