Resources
Software
Java Development Kit (JDK) and a Java IDE, for instance:
- IntelliJ IDEA from JetBrains
- VS Code from Microsoft with the Java extension pack
- NetBeans from Apache
Git, a source version control system used for assignments, and a GitHub account to host git-projects, including your submissions
Textbooks and references
This course is based on several free online resources as well as one textbook available for purchasing online, which is entirely optional.
Main resources
[DJ] https://dev.java/learn/ – Oracle’s developer portal for the Java language: covers language features, collections, generics, streams and lambdas.
[API] https://docs.oracle.com/en/java/javase/21/docs/api/ – the standard library API reference; the authoritative documentation for
java.util.concurrent,java.net,java.sql, and others.
Secondary resources
[CJ] Core Java, Parts 1 and 2, by Cay S. Horstmann — two books available for purchase online, which is not required: they are good but expensive.
[YL] Advanced Java by Youmin Lu (CU) – the departmental text, written for past iterations of this course; available on Brightspace. It is much shorter than the others and covers most topics briefly, so treat it as optional extra reading: a fast way into a topic when you are short of time, rather than the one thing you read.
[UH] https://java-programming.mooc.fi/ – a successful Java MOOC from the University of Helsinki. Parts 4–6, 8–10, 12 are relevant for this course.
[GJS] Google Java Style Guide – how to lay Java out: braces, spacing, naming, Javadoc. Short, and worth skimming once. Most Java projects follow a guide like this one, and check it automatically.
Where to get help
- Office hours — see Syllabus: Course info
- Course forum — see the Discord link on the main page