Module 1: Introduction to Object-Orientation. | |
---|---|
Lecture 1: 19/1 | Course Overview and Java Programming Review.
Learning Objectives:
Readings:
|
Lab 0: 19/1 | Review basic Java programming environments and tools.
Learning Objectives:
Readings:
|
Precept: 20/1 | Object-Oriented Thinking in Simple Problems
Learning Objectives:
Readings:
|
Lecture 2: 22/1 | Introduction to Computational Thinking.
Learning Objectives:
Readings:
|
Lab 1: 22/1 | Design your first Java classes.
Learning Objectives:
Readings:
|
Lecture 3: 26/1 | The Java Platform.
Learning Objectives: Understand and be able to explain and use:
Readings:
|
Lab 2: 26/1 | Review Java programming style and comments.
Learning Objectives:
Readings:
|
Precept 2: 28/1 | Lifecycle of a Java program.
Learning Objectives:
|
Lecture 4: 29/1 | 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: 29/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 (Σχεδιασμός Κλάσεων. Διαχείριση Μνήμης). | |
Lecture 5: 2/2 | Class Design in Java.
Learning Objectives: Understand, identify and be able to:
|
Lab 4: 02/2 | Class design in Java.
Learning Objectives: Explore examples of class definition in Java.
|
Precept 3: 3/2 | Class design examples
Learning Objectives:
Review the design of Java classes using information hiding and encapsulation.
|
Lecture 6: 5/2 | OOP Abstraction. Initializers and Constructors.
Learning Objectives:
Readings:
|
Lab 5: 05/02 | Exploring Memory Management in Java.
Learning objectives: Explore the memory allocation and garbage collection
mechanisms of Java programs.
|
Lecture 7: 9/2 | Memory Management in Java.
Learning Objectives: Understand, explain and use the concepts of:
Readings:
|
Lab 6: 9/2 | JUnit Tests.
Learning Objectives: Explore the JUnit testing platform.
|
Precept 4: 10/2 | Object-oriented Design: Introduction
Learning Objectives:
Readings:
|
Lecture 8: 12/2 | Static variables and methods. Garbage collection.
Learning Objectives:
Be able to understand, explain and use the concepts of:
Readings:
|
Lab 7: 12/2 | Garbage collector in Java.
Learning Objectives
Learning Objectives: Explore the memory allocation and garbage collection
mechanisms of Java programs.
|
Lecture 9: 16/2 | Invariants.
Learning Objectives:
Readings: Chapter 5. "Absolute Java", Walter Savitch.
|
Precept 5: 17/2 | CRC Cards and Invariants
Learning Objectives:
Readings:
|
Quiz 1: 16/2 | Quiz 1. |
Lecture 10: 19/2 | Code reuse in Java.
Learning Objectives:
Readings: Chapter 5.4 Absolute Java Walter Savitch.
|
Module 3: Inheritance (Κληρονομικότητα). | |
Lecture 11: 23/2 | Inheritance.
Learning objectives:
Readings: Chapter 7. Absolute Java Walter Savitch.
|
Lab 10: 23/2 | Inheritance in Java.
Learning Objectives: Introducing inheritance in Java.
|
Midterm I: 26/1 | Topics: Chapters 1, 2, 3, 4, 5. of Absolute Java Walter Savitch, and Class Notes. |
Lecture 12: 2/3 | Inheritance continued.
Learning Objectives:
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Precept 6: 3/3 | Example of O.O. Design with CRC Cards.
Learning outcome:
Review of example with CRCs.
Readings: Chapter 2. Object-Oriented Design and Patterns. Cay Horstmann, Wiley, 2006.
|
Lab : 2/3 | Finish previous lab.
Learning outcome: Solve different problems using inheritance in Java.
|
Lecture 13: 5/3 | Inheritance and Object Construction.
Learning Objectives:
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Lab 11: 5/3 | Inheritance in Java - continued.
Learning outcome: Solve different problems using inheritance in Java.
|
Lecture 14: 9/3 | Upcasting.
Learning objectives: Understand, recognize and apply of upcasting and its implications.
Review of examples with inheritance and upcasting. The "Object" class.
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Lab 12: 9/3 | Polymorphism.
Learning Objectives:
|
Precept 7: 25/2 | Review of inheritance and upcasting.
Learning outcome:
Review of examples with inheritance. Understand the concept of Software patterns. Recognize and
apply Code re-use through composition and delegation as an alternative to inheritance.
Readings:
|
Module 4: Polymorphism, Αbstract Classes, Interfaces and Inner Classes (Πολυμορφισμός, Αφαιρετικές Κλάσεις, Διαπροσωπείες κ. Εσωτερικές Κλάσεις). | |
Lecture 15: 12/3 | Introduction to Polymorphism.
Learning objectives:
Readings: Chapter 8. Absolute Java Walter Savitch.
|
Lab 13: 12/3 | Exercises on Polymorphism in Java.
Learning Objectives:
|
Lecture 16: 16/3 | Polymorphism - continued.
Learning Objectives:
Readings: Chapter 8. Absolute Java, Walter Savitch.
|
Lab 14: 16/3 | Exercises on Polymorphism in Java.
Learning outcome:
|
Precept 8: 17/3 | Polymorphism practice.
Learning outcome:
Understand and explain binding of static methods. Explore examples of polymorphism, hiding vs. overriding.
Readings: Chapter 8.1, Absolute Java, Walter
Savitch.
|
Lecture 17: 18/3 | Polymorphism - continued.
Learning Objectives:
Readings: Chapter 8. Absolute Java, Walter Savitch.
|
Lecture 18: 23/3 | Abstract Classes and Interfaces Introduction
Learning Objectives:
Readings:
|
Lab 15: 23/3 | Introduction to Interfaces.
Learning outcome: Using interfaces in Java.
|
Precept 9: 24/3 | Using Interfaces.
Learning Objectives:
Readings:
|
Lecture 19: 26/3 | Multiple Inheritance and Default Methods.
Learning objectives:
Readings: Chapter 13.1, Absolute Java
Walter Savitch.
|
Lab 16: 26/3 | Exercises Interfaces - continued.
Learning outcome: Using interfaces in Java.
|
Midterm II: 30/3 | Topics: Chapters 1, 2, 3, 4, 5, 6, 7, 8, 13.1 of Absolute Java Walter Savitch, and Class Notes. |
Precept 10: 31/3 | Introduction to Inner Classes.
Learning Objectives:
Readings: Chapter 13.2, 13.3 Absolute Java Walter Savitch.
|
Lecture 20: 2/4 | Elements of Inner Classes.
Learning Objectives:
Readings: Chapter 13.2, 13.3 Absolute Java Walter Savitch.
|
Lab 17: 2/4 | Inner Classes & SOLID design principles.
Learning outcome:
|
Lecture 21: 6/4 | Anonymous Inner Classes, Closures and Callbacks.
Learning Objectives:
Readings: Chapter 13.3 Absolute Java Walter Savitch, and
class-notes.
|
Lab 18: 6/4 | Exceptions in Java.
Learning outcome: Using exceptions, make your own exception classes.
|
Precept 11: 7/4 | Application Frameworks.
Learning Objectives:
Readings: Chapter 13.2, 13.3 Absolute Java Walter Savitch.
|
Quiz 2: 9/4 | Quiz 2. |
Module 5: Exception Handling and File I/O (Διαχείριση Εξαιρέσεων και Είσοδος/'Εξοδος σε Αρχεία). | |
Lecture 22 | Exception Handling.
Learning outcome:
Readings: Chapter 9. Absolute Java Walter Savitch.
|
Lecture 23 | Input/Output in Java.
Learning outcome:
Readings: Chapter 10. Absolute Java Walter Savitch.
|
Lab 19: 13/4 | Exercises on File I/O.
Learning outcome: Using streams in Java. Byte Streams, Character Streams.
|
Module 6: Generics and Collections (Γενόσημοι Τύποι, Κιβώτια και Συλλογές). | |
Lecture 24: 10/4 | ArrayList.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch, and class-notes.
|
Lecture 25: 13/4 | Generics.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch, and class-notes.
|
Precept 12: 14/4 | Generic Programming Examples.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch.
|
Lecture 26: 16/4 | Generics and Collections.
Learning Objectives:
Readings: Chapter 14, 15 Absolute Java Walter Savitch, and class-notes.
|
Lab 20: 16/4 | Exercises on Generics.
Learning outcome: Implement generic classes in Java.
|
Lab 21: 16/4 | Exercises on Collections.
Learning outcome: Using collections in Java.
|