Lecture #01: Introduction

Lecture #02: Java Basics

Lecture #03: Expressions

Lecture #04: Control Flow, Random Numbers

Lecture #05: Static Methods

Lecture #06: Arrays and ArrayLists

Lecture #07: Classes Introduction

Lecture #08: Classes and Composition

Lecture #09: Inheritance

Lecture #10: Polymorphism

Lecture #11: Binding

Lecture #12: Abstract Classes

Lecture #13: Interfaces

Lecture #14: Nested Classes

Lecture #15: Exceptions and IO

Lecture #16: Generics

Lecture #17: Simple GUI & Event

Lecture #18: Introduction to Part 2

Lecture #19/20: Object-Oriented Modelling with UML

Lecture #21: Design Objectives and SOLID Principles