Module 1: Course Overview and Introductory Concepts. | |
---|---|
Precept: 14/1 | EPL133 Contents and Requirements
Learning Objectives:
Readings:
|
Lecture 1: 14/1 | Introduction to Computational Thinking.
Learning Objectives:
Readings:
|
Lecture 2: 17/1 | The Java Platform.
Learning Objectives: Understand and be able to explain and use:
Readings:
|
Lab 1: 17/1 | Review basic Java programming environments and tools.
Learning Objectives:
Readings:
|
Precept 2: 21/1 | Lifecycle of a Java program.
Learning Objectives:
|
Lecture 3: 21/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 2: 21/1 | Review Java programming style and comments.
Learning Objectives:
Readings:
|
Module 2: Class Design and Memory Allocation (Σχεδιασμός Κλάσεων. Διαχείριση Μνήμης). | |
Lecture 4: 24/1 | Class Design in Java.
Learning Objectives: Understand, identify and be able to:
|
Lab 3: 24/1 | Hands-on Examples of using Abstraction in Problem Solving.
Learning Objectives: Explore the use of abstraction in problem solving.
|
Precept 3: 28/1 | Class design examples
Learning Objectives:
Review the design of Java classes using information hiding and encapsulation.
|
Lecture 5: 28/1 | Object-oriented Abstractions in Java: Information Hiding and Encapsulation.
Learning Objectives:
Readings:
|
Lab 4: 28/1 | Class design in Java.
Learning Objectives: Explore examples of class definition in Java.
|
Lecture 6: 31/1 | Memory Management.
Learning Objectives: Understand, explain and use the concepts of:
Readings:
|
Lecture 7: 31/1 | Memory Management in Java.
Learning Objectives:
Be able to understand, explain and use the concepts of:
|
Lab 5: 31/1 | Exploring Memory Management in Java.
Learning objectives: Explore the memory allocation and garbage collection
mechanisms of Java programs.
|
Precept 4: 4/2 | Memory Management review. Garbage collection.
Learning Objectives:
Readings:
|
Lecture 8: 4/2 | Invariants.
Learning Objectives:
Readings: Chapter 5. "Absolute Java", Walter Savitch.
|
Lab 6: 4/2 | Garbage collector in Java.
Learning Objectives
Learning Objectives: Explore the memory allocation and garbage collection
mechanisms of Java programs.
|
Lab 7: 7/2 | JUnit Tests.
Learning Objectives: Explore the JUnit testing platform.
|
Precept 5: 11/2 | Invariants in Practice
Learning Objectives:
|
Lecture 9: 11/2 | Code reuse in Java.
Learning Objectives:
Readings: Chapter 5.4 Absolute Java Walter Savitch.
|
Quiz 1: 11/2 | Quiz 1. |
Module 4: Inheritance (Κληρονομικότητα). | |
Lecture 10: 14/2 | Inheritance.
Learning objectives:
Readings: Chapter 7. Absolute Java Walter Savitch.
|
Lab 9: 14/2 | UML class diagrams.
Learning Objectives: Explore the JUnit testing platform.
|
Precept 6: 18/2 | Examples of inheritance.
Learning outcome:
Review of examples with inheritance.
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Lecture 11: 18/2 | Inheritance continued.
Learning Objectives:
Readings: Chapter 7. Absolute Java
Walter Savitch.
|
Lab 10: 18/2 | Inheritance in Java.
Learning Objectives: Introducing inheritance in Java.
|
Lecture 12: 21/2 | 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 11: 21/2 | Inheritance in Java - continued.
Learning outcome: Solve different problems using inheritance in Java.
|
Module 5: Polymorphism, Αbstract Classes and Interfaces (Πολυμορφισμός, Αφαιρετικές Κλάσεις και Διαπροσωπείες). | |
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: Chapter 7. Absolute Java
Walter Savitch.
|
Lecture 13: 25/2 | Introduction to Polymorphism.
Learning objectives: Understand and recognize the concept of Polymorphism.
Introduction to the concept of binding.
Readings: Chapter 8. Absolute Java Walter Savitch.
|
Lab 12: 25/2 | Polymorphism.
Learning Objectives:
|
Lecture 14: 28/2 | Polymorphism - continued.
Learning Objectives:
Readings: Chapter 8. Absolute Java, Walter Savitch.
|
Lab 13: 28/2 | Exercises on Polymorphism in Java.
Learning Objectives:
|
Precept 8: 3/3 | Downcasting
Learning outcome:
Explore examples of polymorphism, upcasting, and downcasting. The clone method and its use.
Readings: Chapter 8.1, Absolute Java, Walter
Savitch.
|
Lecture 15: 3/3 | Abstract Classes and Interfaces Introduction
Learning Objectives:
Readings:
|
Lab 14: 3/3 | Exercises on Polymorphism in Java.
Learning outcome:
|
Lecture 16: 6/3 | Interface inheritance. Using Interfaces.
Learning Objectives:
Readings:
|
Lab 15: 6/3 | Exercises on Interfaces.
Learning outcome: Using interfaces in Java.
|
Precept 9: 10/3 | Μultiple Inheritance and Default Methods.
Learning objectives:
Readings: Chapter 13.1, Absolute Java
Walter Savitch.
|
Lab 16: 10/3 | Exercises Interfaces - continued.
Learning outcome: Using interfaces in Java.
|
Module 6: Unified Modeling Language and Software Patterns (UML και Μοτίβα Λογισμικού). | |
Lecture 17: 10/3 | Unified Modeling Language.
Learning objectives:
Readings:
|
Lecture 18-dl: 13/3 | Design Patterns.
Learning objectives:
Readings:
|
Module 7: Exception Handling and File I/O (Διαχείριση Εξαιρέσεων και Είσοδος/'Εξοδος σε Αρχεία). | |
Lecture 19-dl: 17/3 | Exception Handling.
Learning outcome:
Understand the concept of exceptions and faults.
Introduction to exception handling in Java.
Readings: Chapter 9. Absolute Java Walter Savitch.
|
Precept 10-dl: 17/3 | Programming Exceptions
Learning outcome:
Readings: Chapter 9.2, 9.3 Absolute
Java Walter Savitch.
|
Lab 18-dl: 17/3 | Exceptions in Java.
Learning outcome: Using exceptions, make your own exception classes.
|
Lecture 20-dl: 20/3 | File I/O.
Learning outcome:
Readings: Chapter 10.1, 10.2 Absolute Java Walter Savitch.
|
Lab 19-dl: 20/3 | Exercises on File I/O.
Learning outcome: Using streams in Java. Byte Streams, Character Streams.
|
Lecture 21-dl and Precept 11: 24/3 | Java I/O Libraries.
Learning outcome: Understand, Explain and Apply:
Readings: Chapter 10.2, 10.3, 10.4, 10.5 Absolute Java Walter Savitch.
|
Lab 20-dl: 24/3 | Exercises on File I/O.
Learning outcome: Using streams in Java. Byte Streams, Character Streams.
|
Lecture 22-dl: 27/3 | File I/O.
Learning outcome: Understand, Explain and Apply:
Readings: Chapter 10.2, 10.3, 10.4, 10.5 Absolute Java Walter Savitch.
|
Lab 21-dl: 27/3 | Exercises on Binary files.
Learning outcome: Using streams in Java. Byte Streams, Character Streams.
|
Module 8: Inner Classes, Generics and Collections (Εσωτερικές Κλάσεις, Γενόσημοι Τύποι, Κιβώτια και Συλλογές). | |
Lecture 23-dl: 31/3 | Elements of Inner Classes.
Learning Objectives:
Readings: Chapter 13.2, 13.3 Absolute Java Walter Savitch.
|
Lab 22-dl: 31/3 | Exercises on Inner classes.
Learning outcome:
|
Lecture 24-dl: 3/4 | Anonymous Inner Classes.
Learning outcome:
Readings: Chapter 13.3 Absolute Java Walter Savitch, and
class-notes.
|
Lab 23-dl: 3/4 | SOLID design principles.
Learning outcome:
|
Lecture 25-dl & Precept: 7/4 | Closures, Callbacks and Application Frameworks.
Learning Objectives:
Readings: Chapter 13.3 Absolute Java Walter Savitch, and
class-notes.
|
Lab 24-dl: 6/4 | Git.
Learning outcome: How to use git and github.
|
Lecture 26-dl: 10/4 | Generics.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch, and class-notes.
|
Lab 25-dl: 10/4 | Exercises on Generics.
Learning outcome: Implement generic classes in Java.
|
Lecture 27-dl & Precept: 14/4 | Generics.
Learning Objectives:
Readings: Chapter 14 Absolute Java Walter Savitch, and class-notes.
|
Quiz 2: 14/4 | Quiz 2. |
Lab 26-dl: 24/4 | Exercises on Generics -continued.
Learning outcome: Implement generic classes in Java.
|
Mock distance exam 1: 28/4 | Use of blackboard for remote synchronous examination. |
Lecture 28-dl: 28/4 | Collections.
Learning Objectives:
Readings: Chapter 15.1, 15.3, 16 Absolute Java Walter Savitch, and class-notes.
|
Lab 27-dl: 28/4 | Linked Data structures.
Learning outcome: Exposure to Linked lists and link-list programming.
|
Mock distance exam 2: 5/5 | Use of Blackboard and Safe Exam Browser for remote synchronous examination and Zoom for remote proctoring. |
Lecture 29-dl: 5/5 | Collections and Java8 Overview.
Learning Objectives:
Readings: Chapter 16 Absolute Java Walter Savitch, and class-notes.
|
Lab 28-dl: 5/5 | Exercises on Collections.
Learning outcome: Using collections in Java.
|