Welcome to Java Coding & Concepts with a Game: Java Puzzle Ball
Java Puzzle Ball is a game-based learning solution used throughout this course. Each lesson coincides with a series of puzzles. As you play, you'll build a strong mental model for a particular underlying Java programming concept. This is followed by lecture videos which debrief and contextualize your observations. We’ve found that technical details really "click" with students during the debriefing process. This should also translate to better performance and problem-solving ability when you attempt the coding labs. Topics include:
You’ll also go behind the scenes of Java Puzzle Ball to learn software development practices and see how the Oracle Cloud accommodates developers.
This course is intended for:
Setup Instructions for Java and NetBeans
This section walks you through the process of installing:
This section also provides optional background information on Java and the components you've installed.
Lesson 1: Object Oriented Thinking and Class Design
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.
Lesson 2: Static vs Instance Variables
Continue playing Basic puzzles. The puzzles associated with this lesson include more behaviors, one of which demonstrates the difference between static and instance variables in Java. 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 syntax. The instructional materials are shown in their recommended order.
You'll also go behind the scenes of the game's development to examine the development process and briefly hear about Oracle cloud tools which can accommodate developers.
Lesson 3: Inheritance
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 syntax. The instructional materials are shown in their recommended order.
You'll again get a behind the scenes look at the game's development to examine other aspects the development process and briefly hear about Oracle cloud tools which can accommodate developers.
Lesson 4: Lambda Expressions
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 instructional materials are shown in their recommended order.
This week's lab lets you complete a bank-teller graphical application. The application is written using JavaFX, just like Java Puzzle Ball.