Programming for Today’s Kids

by Bruce Abernethy 4. August 2009 05:56

Programming for Today’s Kids: Why NXT-G, Kodu, Scratch, Alice, Small Basic, KPL / Phrogram and others can reignite the imagination and understanding of technology for today’s kids.

As Kids growing up in the 70s and 80s, we did not have all the technical resources available to us as they do today.  Computers were rare, under-powered, and very difficult to use. Hand-held calculators weren’t even widely available, no public Internet, 3 TV channels, etc., etc.

What we did have was an accessible programming language that came with most computers: BASIC.  In fact, there wasn’t even much software that you could buy for your computer.  You had to write your own, and the language and environment was built-in to the machine.  A little later came LOGO, and even later came HyperCard for the Macintosh.  So for a kid with access to a computer, and a little interest, motivation, and summer break, you could spend hours programming and creating basic games with text, graphics and even sound.

Ironically, with all the advances in 30 years we have largely lost the entry-level development environment that kids can experiment and get started with.  Sure there are free tools for .NET, Java, PHP, etc. but they start at a much higher level and have so many commands and options that it is easy to get confused.  What kids need is a “level 0” or “level 1” type environment that is limited but easy to use (and did I mention fun?).

Not every kid needs to learn to write complex programs.  But a generation of kids growing up without even a basic knowledge of how computer programs are written make them unaware of how things work and end up victims or slaves of the very technology that is meant to help them.

So for the last 4-5 years I’ve been on an active search for current options for kids who are even mildly interested in programming.  They need to be risk-free (i.e. kids can play around with them without damaging anything), fun (no kid-assembly language primers here), and have the ability to scale to average homes.

I have made no conclusions here, but I wanted to list the environments I am using and “tracking” currently.  We started the “Bots on the Rock” robotics club in January 2008 and that has been doing well with kids 8-15.  In just the last month I started using Kodu on the XBox 360 at home, and now on the PC with the idea of using that with the club as well.  I am going to do a quick listing of what’s available, with more details to follow. 

Kodu: Game Programming Lab (XBox 360, PC (in Beta)) – 400 XBox “points”

kodu

The latest item on my list is Kodu: Game Programming Lab from Microsoft Research.  I put it first mainly because that is what I’ve been “talking” about on Twitter/Facebook which lead to this post (i.e. can’t explain all of this in 140 characters). Kodu is available today for the XBox 360 and and Academic version is in beta test for the PC for release in the near future.  As of today I have the PC version running on my laptop and I will be working with that more over the weekend.  We’ve been using the XBox 360 version for just under a month, and all of my kids really love playing with it and are making their own games – in fact they’d rather “play” Kodu than many of the other “real” games.

Kodu is difficult to explain in words, and really needs to be demoed – here is one of the better YouTube videos out there.

Basically all of the programming is done with an XBox controller (even on the PC) with a very intuitive series of “sensors” and “commands” (e.g. when I see a ball go towards it).  It also controls a very robust scene generator which enables a huge variety of terrains and elements to be included in the games.

The recent update of Kodu on the XBox 360 allows for much easier sharing of games that you have created.  You can even create multiplayer (local) games, and quickly learn about the headaches that come from multiplayer games on the same screen. 

There are a whole series of posts that could be written just about this environment, but for now I’ll leave you with the links.

 

NXT-G: Lego Mindstorms (PC, Mac) – Included with LEGO Mindstorms Kit ($275)

nxt-g

NXT-G is the graphical programming environment that comes with the LEGO Mindstorms Robotics kits.  The environment is a “click and drag” programming surface where programs are created by stacking and ordering blocks on the screen (much like building LEGO buildings, hmmm).  Blocks are called “Move”, “Loop”, and have sensor blocks that correspond to the robotic sensors in the kit (e.g. touch sensor, ultrasonic (distance) sensor, sound, light, and now color in the 2.0 kit).  The NXT-G application is actually an implementation of National Instruments LabVIEW graphical programming software which is used professionally by engineers and scientists.  In fact, you can use LabVIEW to do some advanced things with the robots that NXT-G will not handle.

The Education version of the NXT-G kit is now up to version 2.0 and contains separate modules for doing data logging and support new sensors like the temperature sensors.  In addition third party sensors can be added for specific needs – for example we added Compass and IRSeeker sensors from HiTechnic when we were doing our series with the robotics club on LEGO Soccer (i.e. needed to “find the ball” (bright IR source) and know “which way” was the opponent’s goal).

Dragging and dropping controls is quite easy for most students – in fact the biggest challenge continues to be slowing kids down and having them try to think through and plan out a solution instead of just barreling right into programming.  Probably an ongoing struggle for many programmers out there.

 

Small Basic (PC) - Free

smallbasic

Small Basic came out of Microsoft’s DevLabs as a simple programming language for kids to get started with.  It is unique among many of the rest in that it allows for the direct entering of programming code, whereas most of the others have gone to a graphical programming language.  It also preserves a lot of the BASIC syntax (15 keywords) so it will be comfortable for many adults that are assisting and mentoring kids who are starting to program.  It also means that the age range probably scoots up a few to perhaps 10-16.

The power of Small Basic comes in it’s simplicity (look at the tool bar compared to Visual Studio, Eclipse, or any other professional tool set).  There is only so much you can do and experimentation is easy to get into and execute.  Another part of the power comes from the .NET Framework.  There are many libraries included (Flickr one is shown) and others are being developed.  If there is something you want your Small Basic program to do, that it doesn’t to right now, develop a Class in your favorite .NET language and Small Basic will be able to access the functionality.

 

Scratch (PC, Mac) - Free

scratch

Scratch has been developed by the Lifelong Kindergarten Group at the MIT Media Lab as programming language for kids 8 and up.

Like Kodu, this is better demoed than described (pardon the music and volume level, but the later content is very helpful).

Many educators using it with a lot of materials freely available and ready to go.  With the backing of the Media Lab and some key educators (and as it is free) this is a platform that is growing in general adoption and use.  It is probably also in the 10-16 year age range and has many key features.

One of the other programs, besides BASIC, that I really miss is “Storybook Weaver” which enabled students to write stories with animated and multimedia features included.  Scratch, and next Alice, offer a lot in the way of storytelling in addition to programming.

 

Alice (PC, Mac – Java) - Free

alice

Alice is unique programming environment out of Carnegie Mellon in that allows creation and manipulation of custom 3D characters and objects – which is really cool.  Creating 3D objects is hard but not impossible, and better tools are coming out all the time.  There are freely available 3D models that are being created by the community for use by others in Alice.

I have not used Alice, but that is only because of a lack of time and resources and not because of any other reason.  Here’s a video promoting Alice and showing many of its features.

Like Scratch there is a nice storytelling component in Alice which is currently called “Storytelling Alice” (soon to be “Looking Glass”).  So whereas the Alice 2.0/3.0 environments themselves are better suited for a formal class in programming, a more informal and easy-to-use version for storytelling (and basic programming) is available.

Now strongly allied with Java, Alice is extensible via Java which makes many other possibilities available for more advanced porgrammers.

 

KPL / Phrogram (PC) - $35-$50 + more for additional libraries

Lastly, to be complete in this list I wanted to include the Kids Programming Language (KPL) which has been retired, but has resurfaced as Phrogram.  The KPL effort was intended to create a simple programming language for kids that would allow for rich graphics capabilities and be extensible using the .NET Framework.  Admittedly I have not used or tried using the product since it became Phrogram, so I can’t make any recommendations.  On the surface it appears that the communities surrounding the other products are more active and current.

 

In Conclusion – there are no Conclusions

I am glad that the market for kids programming environments is heating up and that there may actually be competition instead of a big giant hole.  I am actively using NXT-G on a regular basis and am really starting to like Kodu (more each time I use it).  In considering a class or even formal curriculum for “next steps” I am watching Small Basic, Scratch, and Alice and expect to be using one or more of these in 2010.

Kodu Review and First Impressions

by Bruce Abernethy 19. July 2009 06:57

One of the other fortunate things we were able to spend some time on last week was Kodu for the XBox 360.  Kodu is one of those things that is difficult to describe in words or even screen shots, and really needs to be experienced to understand.  In a nutshell it is a programming environment and visual programming language that lets kids create fully functional games using just the XBox 360 controller.

So how complex or cool could these games really get with such a significant limitation?

In the end all three kids want to use Kodu more than play any other games or videos at the moment.  And for them to use up their limited computer/game time on a programming environment is quite amazing.

The game works by adding programming commands using the XBox controller.  They are set up in a “when-do” type format (i.e. and “if-then” or “condition-action”).  So, for example, when-kodu-sees-apple do-move-towards-it or when-kodu-bumps-apple do-eat-it.  Sounds strange, but ends up being really powerful when you get into it.  Not only can the robots/actors in the environment have programs, but all the objects (stars, coins, castles, apples, balls, trees, etc.) have their own programs which can be cloned to make an army of autonomous elements.

The kids have created a few race, shoot-em-up, and Mario-style, games – be glad to share if anyone else gets going online.  Check it out and let me know if you get going.

I applied on Microsoft Connect to try to get our Bots on the Rock robotics club into the beta for using the PC version – I’ll let you know if that works out.

Check out the Kodu Forums online for more information and community around this cool new environment.

Lessons from Keynote #1: Bill Gates

by Admin 10. June 2008 06:04

There have been two interesting keynote speeches in recent memory: Bill Gates at TechEd, and Steve Jobs at WWDC.  They both reflected on the current state of technology, made predictions, and made announcements.  So what of lasting value came out of what they had to say, and how might this impact choices being made for the future?  I’ll give you my $.02 worth on both of them, and see what you think as well (and I’ll try to fix the Blog comments to get some feedback too).

Let’s start with Bill Gates (transcript).  Perhaps the most notable thing coming out of Bill’s keynote is that it will be his last as chairman of Microsoft.  I’m sure he’ll be talking in the future, but not in the same capacity.  What effect might this have on the future of Microsoft?  How much impact has he had in the last few years as chairman, and in what areas of the company?

Continued Increases in Performance

The new trend for increased performance is no longer increases in chip speed (i.e. number of instructions per second).  Now the increases will largely come from having many different cores and processors doing work together in a single machine or on a single chip.  Also, there are systems working together across different machines, even out across the Internet.  Today’s programs aren’t written to take advantage of this Parallel processing and Cloud computing.  New techniques, tools and frameworks will need to be built in order to take advantage of these new resources, or else fall behind.  Sun’s John Gage quote, and Sun’s motto, “The Network is the Computer” is turning into “The Network is the CPU”.  Programmers who don’t learn how to segment and separate their code for distributed processing will soon find themselves at the same disadvantage as those that couldn’t move from procedural programming to event-based and object-oriented techniques.

Changes in Interaction

A big theme in this talk was the future of human-computer interaction.  Now our input devices are basically keyboard and mouse and to a certain extent pen.  The future is all about “natural interfaces” like touch (and multi-touch), voice, and vision. Star Trek, especially The Next Generation, seemed to me to have a nice balance in their technology user interfaces.  There was voice interaction, tactile/touch LCARS screens, and pen-based PADDs.  The Microsoft Surface touch technology, now being demoed for Microsoft Windows 7, could easily implement LCARS.  iPhones have done PADDs even one better by including the communicator.  Really the only illusive technology is the voice-recognition, which is still very hit-or-miss with today’s technology.  The vision systems have a lot to offer.  The Wii implements vision and 3D motion in their controller to great success.  The main lesson here is that developers who do not spend some time looking beyond simple point-and-click and keyboard input may also find themselves falling behind.

Robotics

The last thing that struck me was a seemingly larger commitment to robotics than I have seen from Microsoft before. In a sense robotics is extending the range and type of outputs in much the way the “natural interfaces” were extending the inputs.  They made the interesting comparison between the robotics development environments today and the computer programming environments 30 years ago.  Developing for robots means developing for a mobile system.  It means being able to process a wide variety of sensors and inputs and make decisions quickly.  It also means programming routines that are constantly running (e.g. keeping the robot balanced, monitoring the environment, etc.) and that run independent from one another.  On interesting component in the Microsoft Robotics Studio is the very sophisticated simulation environment.  What it means is that people can create programs for very expensive or dangerous robots and run a variety of tests and actions without ever needing to test on the actual hardware.  In fact Microsoft has started a Robochamp competition to see how well people can do at programming robots in large-scale scenarios (e.g. DARPA urban challenge, Mars rover, etc.) without needing the hardware (or getting to Mars).  In a sense this is disappointing because you don’t get to do the engineering and inventing of the robot (which LEGO Robotics folks will tell you is more than half the battle).  But in another sense it means the people with a simple download can get a flavor of what this type of programming is like without a huge investment.

Creating programs that talk to a wide variety of peripherals and take input from many sensors is an important trend here.  And learning to program and test in a simulated or virtual environment is also a good thing to learn.  All-in-all I think this was a very good breakdown of some of the challenges facing developers today.

Next we’ll look at Steve Job’s perspective …..

West Michigan FIRST Robotics Regional Competition

by Admin 23. March 2008 23:54

I don't have time to post much this morning, but I wanted to get this out.

This Saturday (March 22, 2008) we attended the West Michigan FIRST Robotics Regional Competition over the weekend.  I'll post a couple pictures, and my first YouTube video (from my digital camera - came out pretty good).  I'll add some commentary and thoughts about it all very soon.

We got to the competition with the preliminaries already underway.  The rules are quite complex, but here is a link if you are interested.

robo_arena

Then we visited the "pits" where many of the teams were willing to show us their robots close up (safety glasses please) and explain how they worked (and give out their team pin - which were cool to collect).

robo_wobot

This is the "WO-Bot" from West Ottawa High School (near Holland) - this was Nathan's favorite as it tossed the ball over the divide.

I went through all the pictures and they really don't give you a feel for what went on there.  I added the YouTube video below to see if that would help.

Lots of lessons and ideas came out of this day.  More to come.

First "'Bots on the Rock" Meeting a Success!

by Admin 20. February 2008 01:24

botrfirstmeeting Well we had our first 'Bots on the Rock (LEGO Robotics club) meeting last night and things seemed to go really well, all things considered.  We didn't advertise or promote the first meeting in any way, and fought some pretty nasty weather, and still ended up with 11 kids and assorted parents (who seemed to get into it as much as the kids).

We got through everything we planned which included some organizational information and general welcome, a few individual and group exercises to get in the mood/mindset of robotics programming and then got on to our first "mission" which was the rescue of some stranded LEGO people across an expanse, without hitting the mines in the minefield (of course).  The kids worked in groups of two with parents getting into it as well.  We had 6 robots sharing 3 laptops, but everyone was able to go through several revisions of their robots and programs and complete the mission successfully before we ended for the night.

Ron came through with a great room with a projector and space to set up, and also got two LEGO NXT kits for those to use who don't have a robot of their own.  Dan did a great quick assembly of an FLL regulation LEGO table.   I collected some activities and ideas to get started.  It all came together, and even ended on time (started 15 minutes late, but we were assembling things until the last minute).

We'll start promoting a little now and have our next meeting March 4th.  I expect there to be perhaps double the people next time.  We're talking about having two rooms instead of one.  That way we can have one room to kickoff the meeting and then instruct and give more help to those who need it, and let the experienced folks get right to work in the other room.  We may end up needing a second table-top, but those are the good kinds of problems to have.

The real trick will be to keep things going now and always have the possibility of having brand new people who are starting from scratch combined with those who have been programming and competing with robots for years.

Tags:

Robotics

Return of the Heathkit HERO - now with Visual Studio

by Admin 27. December 2007 14:25

Hero1 Waaay back in high school (circa 1985/86) I got a chance to spend 2 hours a day working with computers and robotics.  One was just a robotic arm that integrated into the Apple ][+ serial port (and game port). The other was the Heathkit "HERO Jr. (RT-1)" (Heathkit Educational RObot).  It was really basic (simple 6808 Motorolla processor) but could move around and looked like it could have been on a Star Destroyer.

Now they are re-releasing the HE-RObot in 2008 with much updated specs.

heath_herobot_2 heath_herobot_internalssm_2

80Gb hard drive, standard Mini-ITX motherboard with an Intel Core Duo, runs Windows XP, webcam, CD-ROM drive, LED  IR sensors and speakers.

Better yet you can program it with Microsoft's Visual Studio 2005 (no more basic or push-button macros).

It seems that Heathkit teamed up with White Box Robotics who I've never heard of until now to bring this off.  Their site has a PC-Bot which looks darn close to the new HE-RObot.  Unfortunately the PC-Bots costs range from $5,000 (no plastic, or mobo) all the way up to $8,000 (WinXP, .NET, complete).  This out-prices this unit for home/hobby use.  I hope Heathkit can find a way to cut costs and put it at say $2,500 (complete) which is still expensive.

I'll stick with the LEGO NXT for now :-)

p.s. I've added a new "Robotics" category as this will be a major blog theme this year.

Return of the Heathkit HE-RObot | Geekdad from Wired.com

Tags:

General | Robotics

RecentComments

Comment RSS
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 Bruce's Blog