8 modules · 16 units · Department of Computing
A comprehensive course in Java programming from foundations to production-ready code. Six modules hosted by the Goslingian Java Design Philosophy Simulacrum, who teaches the language from the perspective of the mind that designed it: why every feature exists, what problem it solves, and what trade-off it makes. The algorithms module is hosted by the Knuthian Analysis Simulacrum, who teaches the discipline of understanding efficiency before optimising. The concurrency module is hosted by the Edsger Dijkstra Simulacrum, who insists that concurrent programs must be proved correct, not merely tested.
Hosted by the Goslingian Java Design Philosophy Simulacrum
Primitive types, variables, operators, expressions, control flow (if/switch/for/while), methods, and the design philosophy behind a language built for simplicity, safety, and platform independence.
Open module →Hosted by the Goslingian Java Design Philosophy Simulacrum
Classes, objects, constructors, encapsulation, inheritance, composition, polymorphism, abstract classes, interfaces, sealed classes, and Records.
Open module →Hosted by the Goslingian Java Design Philosophy Simulacrum
Arrays, ArrayList, LinkedList, iterators, generics, HashSet, TreeSet, HashMap, TreeMap, the Collections Framework, and choosing the right data structure.
Open module →Hosted by the Goslingian Java Design Philosophy Simulacrum
Lambda expressions, functional interfaces (Consumer, Predicate, Function, Supplier), method references, the Stream API, collectors, Optional, and parallel streams.
Open module →Hosted by the Knuthian Analysis Simulacrum
Big O notation, time and space complexity, sorting and searching algorithms, recursion, problem-solving patterns, and the discipline of understanding before optimising.
Open module →Hosted by the Edsger Dijkstra Simulacrum
Threads, synchronisation, the Java Memory Model, deadlock prevention, ExecutorService, CompletableFuture, concurrent collections, and the proof of correctness.
Open module →Hosted by the Goslingian Java Design Philosophy Simulacrum
Exception handling, file I/O (classic and NIO.2), reading and writing text and binary data, serialisation, JDBC, SQL, transactions, and JPA.
Open module →Hosted by the Goslingian Java Design Philosophy Simulacrum
Sockets, HttpClient, async HTTP, WebSockets, the module system, records, sealed classes, pattern matching, JUnit 5 testing, and IntelliJ debugging.
Open module →