Teaching Kids to Program in 3D
On Independence Day, my son Timothy and I joined our Boy Scout troop in making preparations for the annual Fourth of July parade. As the other scout leaders and I were talking about how difficult it was to get the kids up that early in the morning and how they’d rather be playing Minecraft, I mentioned that I taught a game design workshop a couple of months ago but all the kids wanted to talk about was Minecraft. One of the leaders then asked me for recommendations about teaching 3D programming to kids. I told him that I would do some research over the weekend and here is what I came up with.
Kodu is a visual programming language from Microsoft Research made specifically for children as young as 5-years-old to create games on the PC and Xbox 360. Kudo uses a game controller or mouse for input rather than a keyboard. Kids can program simply by choosing various options from a visual menu and can create their own game within three minutes, allowing for rapid design iteration. Kids can sculpt landscapes; decorate them with trees, buildings, lakes and other objects; and populate them with interactive characters, gameplay, scoring systems and more using an intuitive icon-based language. Once created, games can be shared and accessed by others. While Kodu isn’t a general purpose programming language — for example, it doesn’t introduce loops, exceptions, or debugging tactics other than trial-and-error — it does teach kids to think like a programmer by introducing the logic and problem solving of programming as well as demonstrating that programming is a creative medium. Kodu is a free download for PC and a $5 download from the indie games channel of the XBOX marketplace.
Although Kudo is very simple to use and comes with a variety of samples and tutorials, you can get additional help with programming from the book Kodu for Kids: The Official Guide to Creating Your Own Video Games, by James Floyd Kelley
If your kids are of middle-school age, you should check out Alice, a free and open source 3D educational programming environment designed by researchers at the University of Virginia as a gentle introduction to object-oriented programming. Instead of using numbers, letters, and punctuation like other programming languages, Alice uses three dimensional figures placed in a storyline. Users select from a gallery of 700 characters and backgrounds, then select the character’s movements through a pulldown menu. Kids drag and drop blocks of text that instantly affect 3D sprites in a virtual world. Using Alice, kids can create 3D animations, interactive games, or videos to share on the web. It’s more advanced than other kid-friendly programming tools, though great for older kids.
A variant of Alice, called Storytelling Alice, features a gallery of 3D characters and scenery with custom animations designed to spark story ideas and is designed to emphasize social interactions between characters. Both programs are free to download and run on Mac and Windows, although Java runtime is required. There are also a number of books providing instruction on programming with Alice, including An Introduction to Programming Using Alice 2.2 by Charles W. Herbert.
The Unity 3D website contains an education section with tutorials, detailed documentation and community support. Another website, Unity 3D Student, provides “bitesize” tutorial modules combined with challenge to teach kids the skills they need to know to do game development and also get an understanding of how to research further info as they work. For those who like “book learning”, Unity 3D Game Development by Example Beginner’s Guide by Ryan Henson Creighton takes a clear, step-by-step approach to building small, simple game projects using the Unity 3D engine.
Regardless of your child’s age, there are many other tools out there to teach him or her to code. This amazingly creative, increasingly important, and very learnable skill is perceived to be reserved only for those who are geniuses or “wiz kids”. The reality is that coding is something that most people can do with very little effort.
Hacking The Classroom
Last Saturday I attended an event called Hack The Classroom at Loyola Marymount University. Aimed at K-12 teachers working at the Archdiocese of Los Angeles, the six-hour program consisted of talks on the future of technology in education and hands-on workshops on how to hack your classroom with the top iPad Apps, Google Docs, and other technology. My wife, a Catholic high school teacher, had invited me to go with her, and since I was about to head up development of a educational software project myself, I was interested to attend.
Not having been inside a school in over thirty years — aside from visiting my wife’s classroom, attending my children’s open houses and delivering an occasional talk to students about game development — I really didn’t know much about changes in teaching approaches that had taken place since I was a kid. I was immediately blown away by the keynote presentation about technology as core curriculum, which related the evolution of educational thinking, from traditional (Web 1.0) to current (Web 3.0).
Whereas education in my youth was closed and industrial, the current view is that education should be open and ubiquitous.
Most surprising to me was the concept of “flipping the classroom”: the idea that teachers should present their lectures at the student’s home (via online presentation software), and that “homework” should be done in the classroom so that students having problems can be assisted by teachers or more advanced students acting as tutors. This is a form of blended learning which encompasses any use of technology to leverage the learning in a classroom, so a teacher can spend more time interacting with students instead of lecturing.
As excited as I was about these new approaches, I was somewhat dismayed that there was a need for workshops to show teachers how to use such simple resources as Google Drive, Twitter and even Wikipedia. However, I’ll give the teachers credit for recognizing that there was a need for them to step up and learn about the technology that their own students use everyday.
There are plans for future Hack The Classroom events organized for other educator groups. You can learn more here.