Friday Mar 22, 2013

Introducing Kids to Java Programming Using Minecraft


Minecraft is a wildly popular game among elementary and middle schoolers. The game allows players to build constructions of textured cubes in a 3D world.

My son has been playing the game for about a year, lets say addicted to it. Last Fall he told me that the game is corrupted because the JAR file snapshot has messed up the configuration. And that right away rang a bell in me as a Java Evangelist at Oracle.

I learned from him that the game is written in Java, has a trial version that runs as an applet in the browser, and downloaded as a JAR file for desktop. The game is modular where the players travel through a world and chunks are loaded and unloaded to keep the memory footprint small. Something unique about the game is the ability to modify the game from what it was originally designed for. In Minecraft language, this is called as a "mod" - short for modifications. For example, a mod can add new characters to the game, change look-and-feel of the play field, or make it easy to build new structures.

The game has a server and a client component. This allows the game to be played in a single player mode where a player connects to a server using a client and plays the game. Alternatively multiple players, using different clients across platforms, can connect to a server and play with each other collaboratively. Its very common to have a server run with multiple mods. There are almost an infinite number of mods someone could do to make Minecraft a more amusing game to play. There is no official API to create these mods but there are several third-party vendors that provide that capability; Bukkit is one such API. The ability to write mods and alter the game play gives players more control over the game and gets them more excited.

My son expressed his desire to write a mod and so we started exploring further. Then onwards, he started teaching me Minecraft vocabulary and I taught him the Java programming concepts. Our discussions in the car, on the dinner table, during the breakfast preparation, and elsewhere changed to reflect that as well. He already played with Scratch and Greenfoot last Summer and that was extremely helpful during this learning curve. We set up a goal to build a mod during Christmas break. After understanding the basic concepts and building a few mods, we decided to share the knowledge with a broader set of Minecrafters. And that's where the concept of doing a Minecraft Workshop was born.

My son came up with a list of his minecraft buddies and we announced a date for the workshop. Everybody invited for the workshop confirmed their presence right away. I found out that both the invited kids and their parents were equally excited. One friend could not attend because of a prior commitment and was extremely disappointed. On the day of the workshop, some kids were eager to come even before the formal start of the workshop.

The workshop was attended by 10 kids with age ranging from 10-14 years. Most of the kids had no programming experience, let alone Java. However there was high Minecraft experience in the group with some kids playing for about 2 years and up to 2 hours every day. When given the topic of Minecraft, the small group would talk excitedly about different aspects of the game, constantly using hundreds of game-specific terms and phrases as if speaking a different language. My goal was to leverage their passion and introduce them to Java programming.


The challenge for me was to introduce programming to these kids using analogies from the daily life. Using a car, features, capabilities, types, and car dealers and correlating with class, properties, methods, instances, and packages seem to work. Fruits and different methods of peeling, eating, and planting was used to introduce the concept of Interface in Java. I asked, “What can you do with a watermelon?” the first answer was obvious, “you can eat it.” The second one was a little less so, “You can chuck in a trash can.” The response was greeted with scattered laughter. I used that to explain the concept of Exceptions in Java.

Short anecdotes and side-conversations kept the livelihood of the group going throughout the five hour programming session. There are almost an infinite number of mods someone could do to make Minecraft a more amusing game to play. But all these mods hold the same basic framework that we set up for any future work on making game-specific mods. By the end of the session, we had worked out an entire framework for making a mod. A Maven archetype to create a template Bukkit plugin allowed the attendees to avoid writing boilerplate code. A lower bar to get started and simplicity was the key for this audience. The mod built in the workshop added a new server-side command and printed a trivial message.

Although the goal of the workshop was to get an introduction on programming and make a Minecraft mod, I believe the attendees learned much more than that. I think the informal set up helped them discover that programming can be fun and useful to add to gaming experience. Programming is a vast field and we barely scratched the surface. But most importantly, the attendees had a good time and learned their first lesson of Java programming to start off an interest in it.


"Fun", "Easy", "Quick", "Awesome", "Short", and "Intuitive" described attendees' one word summary of building and running their first Hello World application using NetBeans.

All the instructions followed in the workshop, including a lot more pictures, are available at java4kids.java.net/minecraft-workshop.

For me, it was quite a humbling and learning experience. I've delivered multiple workshops all around the world but mostly to professional developers. I realized how the instructions need to be completely spelled out in order for the attendees of this age to make progress. Something as simple as "Hit Enter after entering the command", yes, that is required. Anyway I plan this to be the first of many more workshops aimed to introduce the world of Java programming to school students.

One of the lessons learned during the workshop was to simplify the installation experience. All the kids had JDK and NetBeans set up already, pretty straight forward. However I wonder why Maven insists on JAVA_HOME variable instead of figuring it out. I need to investigate how to seamlessly install JDK, NetBeans, and Maven in a platform independent way. This will allow to focus more on building the actual mod rather than the multi-step installations.



This workshop was not possible without mentoring support from Allen Dutra and other parents. A huge shout out to my family who helped validate and calibrate my strategy for the audience. My nephews feedback from the lab is incorporated into this blog. Thanks to Oracle for sponsoring the snacks!

Thank you @notch for using Java to build the game! You've provided a great platform for young kids to learn Java and truly enabled Make The Future Java ...

Thursday May 19, 2011

"Oracle GlassFish Server 3.1: Administration and Deployment" - NEW course from Oracle University

Are you using (or plan to use) GlassFish 3.1 in deployment and would like to learn all the nitty gritty details of administration and deployment ?

Oracle University has announced a new course on Oracle GlassFish Server 3.1: Administration and Deployment. This course will be taught by an instructor in a classic class-room fashion. In this extensive 4-day course, you'll learn how to:

  1. Install, configure, update, and uninstall GlassFish Server 3.1
  2. Configure, start, stop, and monitor nodes, instances, and clusters
  3. Deploy, redeploy, undeploy applications
  4. Create, configure, and tune JDBC access to databases
  5. Configure and demonstrate session persistence to memory and to Coherence Active Cache
  6. Configure JMS Message Queues
The coordinates are:

Date: 21-Jun-2011
Duration: 4 days
Hours: 9:00 AM - 5:00 PM
Location: Denver, CO
Register here!

More details about the exact Table of Contents are available here.

A virtual course is also a possibility and you can check the complete schedule and availability here.

What are you waiting for ? Register today!

Tuesday Jan 25, 2011

Java Pass: Huge Savings on Oracle's Top 10 Java Live Virtual Classes

Companies are taking advantage of Java Pass, a program from Oracle University that helps get developers and programmers up to speed with Java. With Java Pass, each employee you sign up can take Oracle's top 10 Java Live Virtual Classes for a full year at a significantly lower cost, plus receive a discounted voucher for a Java Certification exam. Students train and become Java certified on their own schedules, without the expense and hassle of travel.

Now available in AustraliaCanada, Germany, United Kingdom, and United States.

There are several Java SE 6 and Java EE 6 courses available.

Why wait ? Sign up now!

Technorati: oracle university education javapass courses training certification

Thursday Oct 14, 2010

Java Pass - Training & Certification by Oracle University

UPDATE: This offer is NO longer valid.

The Java Pass is a new offering from Oracle University and is a flexible education subscription program that enables you to attend its top ten Java courses in a live, virtual format for one year at an extremely discounted rate. It also includes one certification voucher so you can become Java certified.

There are several Java SE 6 and Java EE 6 courses available as part of this offering.


Hear all about this course in this short video introduction:

What are you waiting for ? Stretch your training $$ and sign up today!

Visit education.oracle.com for more details.

UPDATE: This offer is NO longer valid.

Technorati: oracle university education javapass javaee6 javase6 courses training certification

Sunday Jul 27, 2008

Spotlight - GlassFish Resources for Education Community


Are you a student interested in demonstrating the diverse and powerful features of GlassFish ?
Are you a professor who would like to teach GlassFish in your curriculum ?
Do you train other people in enterprise technology ?
Are you involved in education community in any manner ?

If the answer to any of the above questions is Yes, then spotlight.dev.java.net is onestop that provides a list of GlassFish resources for you. It provides a comprehensive list of resources about video Tutorials, Blogs, Demos, Training courses and other information.

Do you have your favorite slide deck to share ?
Do you have a demo to share ?
What additional demos/resources would you like from us ?

Let us know by sending an email to users@spotlight.dev.java.net and we'll shine the spotlight on you!

You can find more detailed information Sun's offering for students @ Students Portal.

Technorati: glassfish education students spotlight

Wednesday Jan 09, 2008

Meet Agraj Mangal - Sun Campus Ambassador for Delhi University

As mentioned earlier, we have recruited a new student under Sun Campus Ambassador Program.

Meet Agraj Mangal - a student of Masters of Computer Applications  (equivalent to MS Computers but a 3 year program) from Delhi University. He has already started a blog - Kreativity Personified. If you are a student and would like to learn about Sun technologies then subscribe to his blog and have fun in the "quest of learning and sharing knowledge".

I met him when I presented on GlassFish @ Delhi University last year. He was selected after an intensive interview process after that. I'm glad he got selected cause he certainly impressed me with the short interaction at the University. I think he is going to be a great ambassador for our technologies. As first "assignment" in his new role, all the students in the Computer Science Department are already using  GlassFish and NetBeans for all their projects. So these students will already be GlassFish and NetBeans-enabled when they graduate.

Agraj has already started Java User Group and Open Solaris User Group in the University. Please feel free to bug him for any GlassFish and NetBeans related queries :) In order to help Agraj with his GlassFish quest, I'll create a "GlassFish For Schools" packet.

Read more about why Sun started Campus Ambassador program and other interesting details here.

Technorati: education school college sun campusambassador delhi glassfish netbeans

Wednesday Dec 05, 2007

Sun and Academic Institutions Together

I presented on GlassFish and related technologies (Metro, JRuby-on-GlassFish and jMaki) at the Department of Computer Science, Delhi University earlier this week. A more detailed blog describing that visit will be published later. But this blog is an attempt to create a summary of the main efforts that Sun has to offer to academic institutions.

The complete portfolio of Sun programs and solutions for the educational and research communities is listed here. More specific details are given below:

  • Sun Software Programs for Education - Offers special discounts to Education community on software licenses, training and software support
  • Sun Technology and Academic Resources (STAR) for Education and Research - STAR provides grants, collaborations and technology resources to educational institutions.
  • SDN Academic Developer Program empowers Academic Developers through sharing, collaboration and open innovation. It offers tools, resources and communities in which to participate and share.
  • Sun Academic Initiative is a program designed to introduce students to Sun technologies and equip them with skills in their chosen fields of study. The students get access to
    • Latest Sun technologies
    • High quality instruction and curriculum and course paths that lead to certification
    • Courses that can be integrated into degree program

    Read the entire program guide here. Apply for Sun Academic Initiative here.

  • Campus Ambassador (CA) program provides extensive training to a chosen student from a University on different Sun's open technologies including Java, NetBeans, GlassFish. This allow students to lead Sun's open source developer community in campus, run demos, promote Sun training events on campus and Sun tools to faculty. The chosen CA is paid a stipend :)
  • Student Zone provides details for students and new graduates. This page also lists country-specific events, for example Sun India University Program.
  • Sun's Real-world technology courses that earn you a certificate.
  • Subscribe to Sun Student Connection monthly newsletter. It provides you latest news on open source developer tools, technology resources and a range of developer topics.

Finally, get started by submitting resume. Hope you find this useful!

Technorati: education school college sun opensource academic

About

profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.


Java EE 7 Samples

Stay Connected

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today