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

Unit Week Duration Topic Slides Video Resources
J1 1 30 min Java: Language, Platform, Tools J1.pdf Lecture Wed Week 1 (Wattle)  
J2 1 35 min Data Representation and Types J2.pdf Lecture Fri Week 1 (Wattle) What Every Computer Scientist Should Know About Floating-Point Arithmetic

Floating Point Demystified
J3 1 35 min Names, (Literal) Values, Variables J3.pdf Lecture Fri Week 1 (Wattle)  
J4 1 30 min Std Libs: I/O, String, Random J4.pdf Lecture Java Standard Edition 8 API Specification
J5 2 30 min Machine Arithmetic J5.pdf Lecture Java Tutorial: Bitwise and Bit Shift Operators
J6 2 40 min Operators, Expressions, Statements J6.pdf Lecture Fri Week 2 Java Tutorial: Expressions, Statements and Blocks
J7 2 40 min Conditionals, Loops, switch Operator J7.pdf Lecture Fri Week 2 Java Tutorial: Control Flow Statements
J8 3 40 min Units of code: methods J8.pdf Lecture Fri Week 3 (Wattle) Java Tutorial: Defining Methods
J8.2 3 20 min Recursive methods J8.2.pdf    
J9 3 25 min Diamonds, varargs, string formatting J9.pdf    
J10 3 50 min I/0, NIO and streams J10.pdf Lecture Fri Week 4 (Wattle); Lecture Wed Week 5 (Wattle) Java Tutorial: Basic I/O
J11 4 40 min Arrays and Collections J11.pdf    
J12 5 30 min Packages and (soon) modules J12.pdf    
J13 6 20 min Concurrent execution J13.pdf    

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  

Updated:  17 May 2017/ Responsible Officer:  Head of School/ Page Contact:  Alexei Khorev