Java Arena

The course

Java Arena follows the order and topics of the University of Helsinki's Java Programming MOOC, parts 1 to 14, with its own lessons and exercises.

Projects: larger programs built over several milestones, each after the modules it needs.

Pro Track: projects for your own computer, for after the course.

Topics A to Z: Java keywords, classes, methods and ideas, each with the steps that teach it.

Java Programming I

Parts 1 to 7 of the MOOC: the basics of programming, up to classes, objects and larger programs.

  1. Printing
  2. Reading input and strings
  3. Variables and types
  4. Calculating with numbers
  5. Making decisions
  6. Conditions and logic
  7. Problem-solving patterns
  8. Repeating with while
  9. Loop conditions and for
  10. Methods and parameters
  11. Return values and the call stack
  12. Finding bugs
  13. Lists
  14. For-each, list methods and lists in methods
  15. Arrays
  16. Working with strings
  17. Classes and objects
  18. Getters, toString and bigger classes
  19. Objects in a list
  20. Reading files
  21. Designing classes and overloading
  22. Primitive and reference variables
  23. Objects working together
  24. Lists inside objects
  25. Separating the UI from program logic
  26. Troubleshooting and unit testing
  27. Procedural and object-oriented programs
  28. Sorting and searching
  29. Larger programs

Java Programming II

Parts 8 to 14 of the MOOC: hash maps, inheritance, interfaces, streams, exceptions, generics, and graphical programs.

  1. Warm-up: recap of parts 1 to 7
  2. Hash maps
  3. Comparing objects: equals and hashCode
  4. Grouping data with hash maps
  5. Inheritance and abstract classes
  6. Interfaces
  7. Polymorphism
  8. Streams and lambdas
  9. Ordering objects: Comparable and Comparator
  10. StringBuilder, regular expressions, enums and iterators
  11. Class diagrams
  12. Packages and imports
  13. Exceptions
  14. Writing files
  15. Type parameters (generics)
  16. Building your own list and hash map
  17. Random numbers
  18. Two-dimensional arrays
  19. GUI: windows, components and layouts
  20. GUI: event handling
  21. GUI: multiple views
  22. Data visualization
  23. Drawing, images and sound
  24. Project: an Asteroids-style game
  25. Libraries, Maven and databases

Extra modules

Newer Java features and topics the MOOC doesn't cover. Optional, for after the course.

  1. Recursion Extra
  2. Records Extra
  3. switch, var and text blocks Extra
  4. Pattern matching and sealed types Extra
  5. Linked lists, stacks, queues and trees Extra