Skip to Main Content

Breadcrumb for learning path

Main Parent

Learning Path Details Parent




Java Coding & Concepts with a Game: Java Puzzle Ball

This course utilizes a game-based learning methodology to build your understanding of key Java programming concepts and prepares you to think through coding challenges in ways that more-passive forms of learning simply can't. It includes lecture videos, a game, code labs, a community forum, quizzes, and a completion award. You’ll also go behind the scenes of Java Puzzle Ball to learn software development practices and see how the Oracle Cloud can accommodate development.

Enroll the User-Public



beginner Beginner
duration 403 Min
modules 9 Modules

Learning Path Contents

Module Sections Topics and more

  • About This Course
      duration 0 Min
    Learning how to program often means wrestling with complex concepts and strange new ways of thinking. It may feel overwhelming and confusing. The game Java Puzzle Ball offers a quick, fun way for you to build your understanding of key Java programming concepts and approach code with confidence. In other words, it accelerates your ability to learn. It's used in this course alongside video lectures and code labs. You'll also go behind the scenes of the game's development to explore the software engineering process and see how the Oracle Cloud can accommodate developers. Expand this button to learn more, including course topics, the target audience, how to launch the game, and to see a video summary of the course.

      Please set aside a few hours for each of the five main Java lessons.  Materials are shown in their recommended order within each lesson.  Feeling stuck?  You're welcome to visit the course forum (link below) where you can troubleshoot with other students.  Happy Learning!


      What Java topics are discussed?

      • Object-oriented thinking and class design
      • Static vs instance variables
      • Inheritance
      • Lambda expressions
      • MultiThreading

      Who is this course for?

      • Students interested in computer science or a future in software engineering
      • Uneasy professionals and academics who want to code more confidently.
      • Experienced programmers who are curious about game-based learning
      • Developers looking to use the Oracle Cloud and Autonomous Database
  • Play Java Puzzle Ball
      duration 0 Min
    Play 60 cerebral puzzles across 4 different game modes! Java Puzzle Ball was originally developed in JavaFX. It's now written in the Unity game engine, which is playable in a browser (via WebGL) and can connect to the Oracle Autonomous Database. The JAR version of the game is older and has fewer features. You'll need Oracle Java 8, 9, or 10 installed on your machine if you'd like to run the JAR version. The WebGL version of Java Puzzle Ball will run regardless of the Java version you have.
  • Lesson 0: Setup Instructions for Java and NetBeans
      duration 15 Min

      This section provides a download for the following:

      • Lecture slides summarizing the Java language and its components.
      • Lab instructions on installing Java and NetBeans
        • You need Java Development Kit 8 (JDK8) or higher to run the course's code labs.
        • You also need an Integrated Development Environment (IDE) like NetBeans where you'll edit Java code.
      • A 'HelloWorld' NetBeans project so you can test your Java installation.


    Instructional Material
  • Lesson 1: Object-Oriented Thinking and Class Design
      duration 78 Min
    Basic Puzzles 1-5
    •      New programmers often have difficulty understanding classes and objects.  Object-orientation and class design presents an unfamiliar way of thinking and structuring code.  The strength of playing and experimenting with Java Puzzle Ball, is that it develops these thought models in a way that passively listening to lectures simply can't.  To get the greatest benefit, we strongly recommend you play the game before viewing certain lectures and labs.  Playing the game builds your conceptual understanding and makes technical lecture content so much easier to absorb.  This should also translate to better performance and problem-solving ability in the programming labs.  The instructional materials are shown in their recommended order.  Enjoy!
    Instructional Materials
  • Lesson 2: Static vs Instance Variables
      duration 78 Min
    Basic Puzzles 8-11

      Continue playing Basic puzzles.  The puzzles for this lesson include more behaviors, one of which shows the difference between static and instance variables.  As you play, consider the different ways you can affect a bumper's rotation.  We'll explain how your observations can be translated to Java code.  You'll also go behind the scenes of the game's development to examine the development process and briefly hear about the Oracle Cloud tools that can accommodate developers. 

    Instructional Materials
  • Lesson 3: Inheritance
      duration 79 Min
    Inheritance Puzzles 1-3
    •      Inheritance and polymorphism are a key aspect of object-oriented programming.  Inheritance is a technique which enhances your abilities to create and structure Java classes.  It therefore requires an enhanced way of thinking.  In this lesson, you'll play through the associated Inheritance puzzles and build your understanding of this technique.  As you play, consider what makes Inheritance puzzles different from Basic puzzles.  We'll explain how your observations can be translated to Java code.  You'll again get a behind the scenes look at the game's development to examine other aspects of the development process and briefly hear how the Oracle Cloud can accommodate developers. 
    Instructional Materials
  • Lesson 4: Lambda Expressions
      duration 76 Min
    Lambda Puzzles 1-7
    •      You've created a bunch of object instances in the previous lessons.  So what are you supposed to do with all these objects now?  Could it ever get confusing managing them all?  The answer to these questions lies in understanding Lambda expressions and the Streams API.  Lambda expressions enable a new way to think about programming, known as "functional programming".  Understanding it requires a completely new game mode.  As you play, you'll get to see and experiment with lambda expression code.  Try to identify the use-cases for lambda expressions. The Lesson 4 lab lets you complete a bank-teller graphical application.  The application is written using JavaFX, just like the original Java Puzzle Ball.
    Instructional Materials
  • Lesson 5: MultiThreading
      duration 77 Min
    MultiThreading puzzles 1-12
    •      How can you work with a large amount of data more quickly?  One technique is to utilize multiple threads across your machine's multiple cores and processors.  Coordinating this can be tricky.  In this lesson, you'll explore how to coordinate threads.  In the lab, you'll examine the impact multithreading has on code completion times.
    Instructional Material
  • Lesson 6: Further Learning
      duration 0 Min
    Java Puzzle Ball can be hosted on the Oracle Cloud's Object Storage and uses the Oracle Autonomous Database. Slides with more details on what we did can be found in the Database section of the game. LiveLabs and LunaLabs provide step-by-step instructions on how you can similarly use the Oracle Cloud for your own project. This includes creating an Oracle Cloud account, using the autonomous database and other Oracle Cloud services mentioned in previous lessons like Analytics Cloud Service. Feel free to troubleshoot and showcase your work on the forum. We'd love to see what you can come up with! Throughout the course, we've also mentioned additional resources from Oracle where you can further your learning. These resources are summarized here.