Lectures
Topics, Slides, Recordings and Programs
Introduction
Unit | Week | Duration | Topic | Slides | Video | Resources |
I1 | 1 | 25 min | Course Overview etc | I1.pdf | Lecture Wed Week 1 (Wattle) | 2-page synopsis |
Java Fundamentals
Object-Oriented Programming
Unit | Week | Duration | Topic | Slides | Video | Resources |
O1 | 2 | 50 min | Objects and Classes, Creation | O1.pdf | Lecture Wed Week 2; Lecture Wed Week 3 (Wattle) | |
O2 | 2 | 50 min | Fields, Methods, Constructors, Modifiers | O2.pdf | Lecture Wed Week 3 (Wattle) | Java Tutorial: Classes and Objects |
O3 | 3 | 50 min | Extending, Overriding, super , this |
O3.pdf | Lecture Wed Week 4 (Wattle) | Java Tutorial: Inheritance |
O4 | 4 | 50 min | Types: (Abstract) Classes and Interfaces | O4.pdf | Lecture Wed Week 4 (Wattle) | Java Tutorial: Interfaces |
O4.2 | 4 | 25 min | Wrapper Classes, Autoboxing, Value Types | O4.2.pdf | ||
O5 | 5 | 30 min | Equal and cloned objects | O5.pdf | Lecture (part 1) Lecture (part 2) |
|
O6 | 5 | 45 min | Enumerated Types (with example) | O6.pdf | Lecture | |
O7 | 5 | 40 min | Deficiencies of OO Paradigm | O7.pdf | ||
O8 | 6 | 30 min | Parameterised (Generic) Types | O8.pdf | Lecture Fri Week 5 (Wattle) | Java Tutorial: Generics |
O8.2 | 6 | 30 min | Generic Methods and Wild Cards | O8.2.pdf | ||
O9 | 5 | 30 min | Reflections and Method Handles | O9.pdf |
Functional Programming
Unit | Week | Duration | Topic | Slides | Video | Resources |
F1 | 5 | 50 min | Treating Code as Data | F1.pdf | Lecture Wed Week 5 (Wattle) Lecture Wed Week 6 (Wattle) |
Java Tutorial: Lambda Expressions Maurice Naftalin’s Lambda FAQ |
F2 | 6 | 50 min | lambdas, method references, default methods | F2.pdf | Lecture Fri Week 6 (Wattle) Lecture Fri Week 7 (Wattle) |
Java Tutorial: When to Use Nested Classes, Local Classes, Anonymous Classes and Lambda Expressions Java Tutorial: The List Interface Java Tutorial: Default Methods |
F3 | 7 | 50 min | Functional Programming Paradigm | F3.pdf | ||
F4 | 7 | 40 min | Stream data processing | F4.pdf | Lecture Wed Week 8 | Benjamin Winterberg: Java 8 Streams Tutorial |
F5 | 8 | 50 min | Intermediate and Terminal Ops | F5.pdf | Lecture Wed Week 8 | Java Tutorial: Aggregate Operations |
F6 | 8 | 60 min | Reactive Programming | F6.pdf | ||
F7 | 8 | 50 min | RxJava, Assignment 2 | F7.pdf | ||
F8 | 11 | 70 min | Elements of Functional Programming in Java | F8.pdf |
Praxis: Tools and Practices of Programming
Unit | Week | Duration | Topic | Slides | Video | Resources |
P1 | 1 | 35 min | Editors and IDEs | P1.pdf | Lecture | |
P2 | 1 | 20 min | Compiling, Executing, Disassembling | P2.pdf | Lecture Wed Week 2 | |
P3 | 3 | 35 min | Version Control with Git | P3.pdf | Lecture Fri Week 3 (Wattle) | Pro Git (book) Code School Try Git tutorial |
P4 | 4 | 30 min | Writing good code | P4.pdf | ||
P5 | 5 | 40 min | Safe code: Exceptions and Optional | P5.pdf | Lecture Fri Week 4 (Wattle) | Java Tutorial: Exceptions Java SE8 Optional |
P6 | 5 | 40 min | Program Design | P6.pdf | Lecture Fri Week 5 (Wattle) Lecture Wed Week 6 (Wattle) |
|
P7 | 6 | 40 min | Test Driven Development | P7.pdf | Lecture Fri Week 6 (Wattle) | JUnit User Guide JUnit FAQ Wikipedia: Test Driven Development |
P8 | 11 | 55 min | Software Development Models | P8.pdf |
Algorithms and Data Structures
Unit | Week | Duration | Topic | Slides | Video | Resources |
A1 | 6 | 35 min | Abstract Data Types: Lists and Iteration | A1.pdf | Lecture Wed Week 7 | Java Tutorial: The List Interface |
A2 | 7 | 40 min | Abstract Data Types: Queue, Set and Map | A2.pdf | Lecture Wed Week 7 | Java Tutorial: Collections |
A3 | 10 | 45 min | Algorithms, Correctness and Efficiency | A3.pdf | Lecture Wed Week 10 Lecture Fri Week 10 |
Java Tutorial: Algorithms |
A4 | 10 | 35 min | Recursive Algorithms: Divide and Conquer | A4.pdf | ||
A5 | 11 | 40 min | Sorting and Searching | A5.pdf | ||
A6 | 11 | 45 min | ADT: Implementation | A6.pdf | ||
A7 | 12 | 95 min | Set, Maps, Hashtables, Trees | A7.pdf |
Elements of Graphical User Interface (Rich Client) Programming
Unit | Week | Duration | Topic | Slides | Video | Resources |
R1 | 8 | 30 min | GUI and Event-Driven Programming | R1.pdf | Lecture Fri Week 8 | Java Tutorial: JavaFX |
R2 | 8 | 25 min | Declarative Programming of UI | R2.pdf | Lecture Wed Week 9 | |
R3 | 9 | 40 min | Events, Listeners, Callbacks | R3.pdf | Lecture Wed Week 9 | |
R4 | 9 | 40 min | Transforms, Animations | R4.pdf | Lecture Fri Week 9 | |
R5 | 10 | 40 min | Splotch and Rolling Circles | R5.pdf | Lecture Wed Week 10 |