Skip navigation
The Australian National University


On this page I will provide copies of lecture slides and links to lecture recordings.

Lecture code

Soon after the first lecture, the code from the lectures will be available via GitLab. You can clone this by creating a new IntelliJ project from the splash screen, or via "File", "New Project from Version Control", "Git". There's a video showing how to do this.

Core Material

In this table you'll find the core material of the course, presented as slides in pdf. All of this material is prepared ahead of time. It is sparse, without embelishment and without worked examples. This is the 'bare bones' of the course, if you like. In the table above you'll find links indicating when this material is/will be covered. The lectures will enhance this material by answering questions and going through worked examples.




I1 1 0.4 Introduction Intro and course overview


J1 1 0.6 Intro Java 1 Imperative programming, standard library, types
J2 1 0.2 Intro Java 2 Types, objects, classes, inheritance, interfaces
J3 1 0.6 Intro Java 3 Naming, literals, primitives
J4 1 1.0 Intro Java 4 Arrays, operators, expressions, statements, blocks, Random
J5 2 0.3 Control Flow 1 if-then-else, switch
J6 2 0.3 Control Flow 2 while, do-while, for
J7 2 0.2 Methods parameters, return values
J8 2 0.2 Nested Classes Nested classes
J9 2 0.2 Lambda Expressions Lambda Expressions
J10 4 0.4 Number, Autoboxing Integer, etc, autoboxing, Math
J11 4 0.6 Character and String Character and String
J12 4 0.5 Generics Generics
J13 4 0.6 Collections Collections
J14 5 1.4 Collections and Sorting Collections and sorting
J15 6 0.6 Exceptions Java exceptions, catch or specify, Java synatax
J16 13 0.7 Threads Threads

Software Engineering

S1 1 0.2 Software Development Tools IDEs, revison control, Git, GitLab
S2 2 0.3 UML UML: The Unified Modelling Language
S3 2 0.3 Revision Control Git
S4 6 0.5 Test Driven Development TDD, JUnit
S5 12 0.3 Software Engineering What is SE, does it matter?
S6 12 0.3 Software Dev Models Software development models
S7 12 0.3 Software Engineering 3 Landmark publications

Object Oriented Programming

O1 2 0.2 Classes and Objs 1 Class declaration, object creation
O2 2 0.6 Classes and Objs 2 Initializers, access control, nested classes, enum types
O3 2 0.2 Classes and Objs 3 Interfaces
O4 3 0.9 Inheritance 1 Inheritance, overriding, polymorphism, super
O5 3 0.9 Inheritance 2 java.lang.Object, final, abstract


X1 3 0.5 JavaFX 1 Intro to JavaFX
X2 4 0.6 JavaFX 2 JavaFX and event handling
X3 4 1.1 JavaFX 3 JavaFX Transformations (optional)
X4 6 1.0 JavaFX 4 JavaFX Animation (optional)
X5 7 0.9 JavaFX 5 JavaFX and JUnit (optional)

Abstract Data Types (ADTs)

A1 6 1.4 Lists 1 List implementation 1
A2 7 0.9 Lists 2 List implementation 2
A3 7 0.2 Sets The set ADT and its implementation
A4 8 1 Hash tables Hash tables
A5 8 0.8 Trees The tree ADT
A6 9 2.1 Maps Map ADT impementation, ADT recap

Core Computer Science

C1 6 0.8 Recursion Recursive functions
C2 8 0.2 Hash Functions Hash functions, choosing a good hash function
C3 8 0.9 Hashing Hashing applications, Java's hashCode()
C4 10 0.9 Files File IO, streams, random access files, buffering
C5 11 0.6 Computational Complexity Time and space complexity, Big O notation
C6 11 0.6 Grammars Formal grammars, EBNF
C7 11 0.4 Threads Concurrency, races

Guest Lecturers

G1 4 0.5 David Sitksy (Head of Development, NUIX)
G2 4 0.5 Katherine Coons (Facebook)
G3 5 1.0 Stephen Gould (ANU)
G4 6 1.0 Xi Yang (ANU)
G5 7 1.0 James Bornholt (U. Washington)
G6 8 0.5 Kathryn McKinley (Microsoft Research)
G7 11 0.5 Gavin Huttley (ANU)


R1 13 1 Sample Exam Please submit questions in advance.
R2 13 1 Review Please submit questions in advance


In this table you'll find the material for each of the bios I'll be presenting during the semester, presented as slides, both in pdf and mp4 narrated slides. All of this material is prepared ahead of time. In the table above you'll find links indicating when each bio will be presented in class.

B1 Alan Turing
B2 Shafi Goldwasser
B3 Kondrad Zuse
B4 Grace Hopper
B5 John von Neumann
B6 Janette Wing
B7 Robert Floyd
B8 Fran Allen
B9 John McCarthy
B10 Barbara Liskov
B11 Ken Thompson
B12 Ada Lovelace
B13 Fred Brooks
B14 Ginni Rometty
B15 Robin Milner
B16 Marissa Mayer
B17 Dennis Ritchie
B18 Anita Borg
B19 Niklaus Wirth

Updated:  23 October 2015 / Responsible Officer:   JavaScript must be enabled to display this email address. / Page Contact:   JavaScript must be enabled to display this email address. / Powered by: Snorkel 1.4