“I believe your Java GUI programming book as one of the best and I enjoy learning from them. One of the things I like about your tutorials is that they teach you how to create and build sensible programs.  That to me makes a lot of sense, rather than just to learn a bunch of Java basics, like what I see in other books .   I have really appreciated the books I bought from you. I will tell anyone about  your publication because I am 100% certain they are simply the best!  There are no other Java books like yours.” – Carvel Bell, Java Developer,  Uniondale​, NY

BEGINNING JAVA – 11TH EDITION <Table of Contents> is a tutorial consisting of 10 chapters explaining (in simple, easy-to-follow terms) how to build a Java application. Students learn about project design, object-oriented programming, console applications, graphics applications and many elements of the Java language. Numerous examples are used to demonstrate every step in the building process. The tutorial also includes several detailed computer projects for students to build and try.  These projects include a number guessing game, a card game, an allowance calculator, a state capitals game, Tic-Tac-Toe, a simple drawing program, and even a basic video game <Project Screen Shots>.   We have also included several college prep bonus projects including a  loan calculator,   portfolio manager,  and a checkbook balancer to get you ready for college.

BEGINNING JAVATM  is presented using a combination of over 400 pages of  course notes,  and actual Java examples. This material should be understandable to students aged 15 and up.  No programming experience is necessary, but familiarity with doing common tasks using a computer operating system (simple editing, file maintenance, understanding directory structures, working on the Internet) is expected.

This 11th Edition course requires Windows 10, MAC OS X, or Ubuntu Linux.  You also need the ability to view and print documents saved in Microsoft Word format, and Oracle Java.   To complete any of our Java tutorials, you need to license a copy of the Java Development Kit (JDK) 11th Standard Edition LTS from Oracle and install it on your computer.  Java JDK11 LTS can be downloaded from the Oracle Java website.  This Oracle website contains complete downloading and installation instructions for the latest version of Java which is now. You can also download all Java documentation from this same site.  Our 11th Edition tutorials also use the free version of NetBeans 11 as the IDE (Integrated Development Environment) for building and testing Java applications.  We only support the Long Term Support (LTS) Edition of the JDK (JDK11) at this time.  A newer LTS version of JDK 17 was released by Oracle on September 14, 2021 and we are our currently testing our tutorial with JDK17 LTS and NetBeans 14. We hope to release an updated  JDK 17 LTS & NetBeans 14 Tutorial in late 2022 .   We do not support interim (non-LTS) JDK versions.

What others have been saying about our Beginning Java Tutorial:​

What is “Beginning Java – A Computer Programming Tutorial” … and how it works. Written By Alan Payne, A Computer Science Teacher

The lessons “Beginning Java” are a highly organized and well-indexed set of tutorials meant for children aged 10 and above.  NetBeans, a specific IDE (Integrated Development Environment) is used to create both Console and GUI( Graphical User Interface applications).

The tutorials provide the benefit of completed age-appropriate applications for high school students – fully documented projects from the teacher’s or parent’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 the rational for the form layout, coding design and conventions, and specific code related to the problem. High school learners may follow tutorials at their own pace. Every bit of the lesson is remembered as it contributes to the final solution. 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!

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 comprehensive, student-friendly 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 in the NetBeans environment. Then specific Java coding for the example is provided so that the user can see all the parts of the project come together for the finished product.

By presenting lessons in this graduated manner, students are fully engaged and appropriately challenged to become independent thinkers who can come up with their own project ideas and design their own forms and do their own coding. Once the process is learned, then student engagement is unlimited! I have seen literacy improve dramatically because students 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 Kidware Software products.

I have used Kidware’s Programming Tutorials 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 – help screens which can never be fully remembered! These projects are examples of how student projects should be as final products – thus, the pathway to learning is clear and immediate in every project.

If I want to use or expand upon some of the projects for student use, then I take advantage of site-license options. I have found it very straight forward to emphasize the fundamental computer science topics that form the basis of these projects when using them in the classroom. I can list some computer science topics which everyone will recognize, regardless of where they teach – topics which are covered expertly by these tutorials:

* Data Types and Ranges
* Scope of Variables
* Naming Conventions
* Decision Making
* Looping
* Language Functions – String, Date, Numerical
* Arrays
* Writing Your own Methods (subroutines)
* Writing Your Own Classes (stressing object-oriented concepts)
* Understanding the Abstract Windows Toolkit in Java for GUI applications, and more… it’s all integrated into the tutorials.

In many States or Provinces, the above-listed topics would certainly be formally introduced in High School computer science, and would form the basis of most projects undertaken by students. With these tutorials, you as the learner, teacher or parent may choose where to put the emphasis, to be sure to cover the curricular expectations of your curriculum documents.

Quick learning curve for teachers! How teachers can use the product:

Having projects completed ahead of time can allow the teacher to present the design aspect of the project FIRST, and then have students do all of their learning in the context of what is required in the finished product. This is a much faster learning curve than if students designed all of their own projects from scratch. Lessons concentrating on a unified outcome for all makes for much more streamlined engagement for students, as they complete more projects within a short period of time and there is a context for everything that is learned.

With the Beginning Java tutorials, sound advice regarding generally accepted coding strategies (“build and test your code in stages”, “learn input, output, formatting and data storage strategies for different data types”, build graphical components from Java’s Abstract Windows Toolkit or AWT class libraries, etc..) encourage independent thought processes among learners. After mastery, then it is much more likely that students can create their own problems and solutions from scratch. Students are ready to create their own summative projects for your computer science course – or just for fun, and they may think of projects for their other courses as well! And what could be wrong with asking the students’ other teachers what they would like to see as project extensions?

Meets 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, problem-solving perspective. In doing so, they become independent problem-solvers, and will exceed the curricular requirements of their computer science curriculum in all jurisdictions.

Useable projects – Out of the box!

The specific projects covered in the Beginning Java tutorials are suitable for students in grades 9 to 12. Specific kid-friendly tutorials and projects are found in the Contents document, and include

Sub-Sandwich Party
Savings Calculator
Guess the Number Game
Lemonade Stand
Card Wars
Blackboard Fun (GUI, meaning it has a Graphical User Interface)
Ballons (GUI)

And, from the final chapter,
Computer Stopwatch
Dice Rolling
State Capitals
Units Conversion
Times Table
Loan Calculator
Checkbook Balancer
Portfolio Manager
Tic-Tac-Toe (GUI)
Memory Game (GUI)
Pong (GUI)

And, as extra Java games,
Even Wins
Lunar Lander

As you can see, there is a high degree of care taken so that projects are age-appropriate.

You as a parent or teacher can begin teaching the projects on the first day. It’s easy for the adult to have done their own learning by starting with the solution files. Then, they will see how all of the parts of the lesson fall into place.

How to teach students to use the materials.

In a school situation, teachers might be tempted to spend considerable amounts of time at the projector or computer screen going over the tutorial – but the best strategy is to present the finished product first! That way, provided that the teacher has covered the basic concepts listed in the table of contents, then students will quickly grasp how to use the written lessons on their own. Lessons will be fun, and the pay-off for younger students is that there is always a finished product which is fun to use!

Highly organized reference materials for student self-study!

Materials already condense what is available from the Java SDK help files (which tends to be written for adults) and in a context and age-appropriate manner, so that younger students remember what they learn.

The time savings for parents, teachers and students is enormous as they need not sift through pages and pages of on-line help to find what they need.
How to mark the projects.

In a classroom environment, it is possible for teachers to mark student progress by asking questions during the various problem design and coding stages. In the early grades (grades 5 to 8) teachers can make their own oral, pictorial review or written pop quizzes easily from the reference material provided as a review strategy from day to day. I have found the requirement of completing projects (mastery) sufficient for gathering information about student progress – especially in the later grades (grades 9 to 12).

Lessons encourage your own programming extensions.

Once concepts are learned, it is difficult to NOT know what to do for your own projects. This is true especially at the High School level – where applications can be made in as short as 10 minutes (a high-low guessing game, or a temperature conversion program, for example), or 1 period in length – if one wished to expand upon any of the projects using the “Other Things to Try” suggestions.

Having used Kidware Software tutorials for the past decade, I have to say that I could not have achieved the level of success which is now applied in the variety of many programming environments which are currently of considerable interest to kids! I thank Kidware Software and its authors for continuing to stand for what is right in the teaching methodologies which work with kids – even today’s kids where competition for their attention is now so much an issue.


Alan Payne
TA Blakelock High School
Oakville, Ontario