Tutorial Review by Alan Payne, A Computer Science Teacher:
What is "Programming Games with Java" and how it works.
The lessons are a highly organized and well-indexed set of game design tutorials meant for high school students and young adults entering post-secondary studies in Computer Science. JCreator, a specific IDE (Integrated Development Environment) is used to create Console (text-only) or GUI (Graphical User Interface) applications by employing the Swing Class Controls of Java Software Development Kit (SDK) Version 8.
The tutorials provide the benefit of completed age-appropriate applications - fully documented projects from the teacher's point of view. That is, while full solutions are provided for the instructor's benefit, the projects are presented in an easy-to-follow set of lessons explaining object-oriented programming concepts, Java Swing controls, the rational for the GUI layout, coding design and conventions, and specific code related to the problem.
Learners may follow tutorials at their own pace. The finished product is the reward, but the student is fully engaged and enriched by the process. This kind of learning is often the focus of teacher training. Every Computer Science teacher knows what a great deal of preparation is required for projects to work for senior students. With these tutorials, the research behind the projects is done by an author who understands the classroom experience. That is extremely rare!
With these projects, there are lessons providing a comprehensive understanding of Java SDK 8 language basics - where to get it, how to install it. Installation and file management within the NetBeans IDE is fully explained. Detailed instruction in Java-specific GUI (the Swing Class) includes Frames, Buttons, Labels, TextFields, TextAreas, CheckBoxes, RadioButtons, ComboBoxes, Lists, Scroll Bars, and Panels fully prepares the learner for Java game design. Finally, user-defined classes and methods form the basis of object-oriented instruction necessary to complete your own Java games.
While the NetBeans environment is ideal for the high school programmer, these tutorials are written to provide the best foundation to learn programming concepts in Computer Science - regardless of the language. Correct object-oriented terminology is emphasized throughout the lessons - making them exceedingly valuable for young and experienced learners alike.
Learners will see how lessons in one object-oriented language apply in ALL object-oriented languages.
The learner may follow the tutorials at their own pace while focusing upon context relevant information. The finished product is the reward, but the student is fully engaged and enriched by the process. This kind of learning is often the focus of teacher training. Every computer science teacher knows what a great deal of work is required for projects to work in this manner.
Graduated Lessons for Every Project ... Lessons, examples, problems and projects. Graduated learning. Increasing and appropriate difficulty... Great results.
With these projects, there are lessons providing a rich background on the programming topics to be covered. Once understood, concepts are easily applicable to a variety of applications. Then, specific examples are drawn out so that a learner can practice the correct Java syntax in JCreator. Finally, a summative game program for the chapter is presented. Game design is broken down into manageable parts - the logical solution to the problem, the design of the Java Swing Class graphical user-interface and supporting classes (blue prints for user-defined object types) and methods (subroutines) come together in the finished product.
Students are fully engaged and appropriately challenged to become independent thinkers who can come up with their own project ideas, design their own text-only (Java Console) or GUI (Java Swing Class) interfaces, and do their own coding. Once the process is learned, then student engagement is unlimited! I have seen student literacy improve dramatically as they cannot get enough of what is being presented.
Indeed, lessons encourage accelerated learning - in the sense that they provide an enriched environment to learn computer science, but they also encourage accelerating learning because students cannot put the lessons away once they start! Computer Science provides this unique opportunity to challenge students, and it is a great testament to the authors that they are successful in achieving such levels of engagement with consistency.
My history with the Kidware Software products.
I have used single license or shareware versions for over a decade to keep up my own learning. By using these lessons, I am able to spend time on things which will pay off in the classroom. I do not waste valuable time ensconced in language reference libraries for programming environments and help screens which can never be fully remembered! These game-design projects are examples of how student projects should be as final products - thus, the pathway to learning is clear and immediate.
The exciting thing is that all of the above can be done in Sun System's Java v7, Small Basic or Visual Studio languages - Visual Basic, Visual C# or Visual C++. To go from one language to another is now an inevitable outcome!
With these lessons, I am able to concentrate on the higher order thinking skills presented by the problem, and not be chained to a language reference in order to get things done!
Meet Different State and Provincial Curriculum Expectations and More
Different states and provinces have their own curriculum requirements for Computer Science. With the Kidware Software products, you have at your disposal a series of projects which will allow you to pick and choose from among those which best suit your curriculum needs. Students focus upon design stages and sound problem-solving techniques from a Computer-Science perspective. In doing so, they become independent problem-solvers, and will exceed the curricular requirements of elementary, middle and secondary schools everywhere.
Useable projects - out of the box !
The accompanying lessons and specific projects covered in the Programming Games with Java tutorials are suitable for grades 10 and above. They include:
Safecracker (a numeric version of Mastermind)
Tic Tac Toe
Match Game (Concentration)
Pizza Delivery - a game emphasizing business practices
Moon Landing - emphasizing trajectory physics
Leap Frog - emphasizing collision detection
As you can see, there is a high degree of care taken so that projects are age-appropriate, providing educational content in the finished games.
How to mark the projects.
In a classroom environment, it is possible for teachers to mark student progress by asking questions during the various game design and coding stages. Teachers can make their own written quizzes easily from the reference material provided, but I have found the requirement of completing projects (mastery) sufficient for gathering information about student progress - especially in the later grades.
Lessons encourage your own programming extensions.
Once concepts are learned, it is difficult to NOT know what to do for your own projects.
Having used Kidware Software tutorials for the past decade, I have been successful at the expansion of my own learning to other platforms such as XNA for the Xbox, or the latest developer suites for tablets and phones. I thank Kidware Software and its authors for continuing to stand for what is right in the teaching methodologies which not only inspire, but propel the self-guided learner through what can be a highly intelligible landscape of opportunities.
Alan Payne, B.A.H., B.Ed.
TA Blakelock High School