Showing posts with label Kids Programming Language. Show all posts
Showing posts with label Kids Programming Language. Show all posts

Monday, January 14, 2008

KidzMash @ Codemash

CIMG5353 I had an opportunity to volunteer some time for Kidzmash at Codemash. This is a great way to try to influence young minds to stay on a technical career.
The slides and sample code that I was "planning" on using can be downloaded here.


Jim Holmes, told me that he did not know how many kids will come or what the ages were. Well, I have volunteered before at my son's school, and I had 30 kids in the computer lab [previous post]. Of course,the kids at school were 10-13yr-olds that knew how to read and type on a computer..... ;)


Hello KidzMash..!! I had like 10+ kids with their parents showing up. Oldest one? 9-year-old.!! Youngest one? 5-month baby... yikes..!! I asked who knew how to read.? like 4-5 hands went up.

After about 5 minutes of Kids Programming Language (KPL), where you could hear crickets on the background, I decided to dump KPL, and I switch to Scratch.

Scratch is programming tool developed by MIT, to teach kids about programming concepts. I have download Scratch about 2 weeks ago, and I have put it to the test with my kids and they were able to use it within 5 minutes. Since this program is aimed at a younger age, I decided to use this program.

image
Kids were more receptive to this program. Thanks goodness.!! Here is the link for Scratch:

http://scratch.mit.edu/



Doodle Game included:

image The intuitive editor for some of the graphics is just plain simple, they were able to draw, and play with this one character all of the time.!!

I have asked for volunteers helpers, and they were all raising their hands to take a turn at using the laptop. :D


Once again, this was just another way to influence young minds to the wonderful world of programming.

Sunday, June 03, 2007

Volunteering = Priceless



It's been a grueling 7 weeks. My son was initially talking to some of his classmates about him learning how to write computer games. Talking to one of the moms (Lisa L.), she suggested that maybe I could offer to teach the same to some of the kids at school. Well, to make the story short, I agreed to give it a try. After going through all of the pre-requisites to become a volunteer (Protecting God's childrens seminar, finger printing, etc.) I was finally slated to start teaching kids how to write computer games.

I have chosen Kids Programming Language for its ease of use and fun approach to programming. In the beginning, discussing with Mrs. Frecker (Computer Teacher) about the target audience, we decided to open it to students from the 4th to the 8th grade on a first-come-first serve basis. So we open it to the first 35 kids that sign up (there are 35 computers in the computer lab). To my surprise, we had over 20+ signed up by the end of the first day after the invitation flier went out...!!

This was an after school activity so all of the logistic were worked out by the wonderful Mrs. Frecker and the help of Ms. Taylor. I got the list of kids and the spread of ages was very large. Using this information, I came out with a temptative schedule that would try to fit all of them, and at the same time get the concept across.

The schedule was:
  1. Get familiar with KPL interface (Hello world..!)
  2. Get familiar with KPL.
  3. If-then-else
  4. While Loop
  5. Sprite animation
  6. 2-player mode interaction
  7. Interacting with background

How to introduce KPL to kids? Well KPL's interface is just like VStudio 2005.



It is all structured in one single file. All programs start from the MAIN routine. It even has intellisense.!


The assignments that I gave the students were nothing more that scavenger hunts. I modified the original games and added new functionality. I then proceed to delete some of the code and have the students follow instructions to find where the missing code was, and to type the code back in.



The purpose for this approach, was that they would get familiar with moving around the KPL interface and typing code. Fortunately KPL is not case sensitive. However, kids very soon discovered that spaces and "_" are not the same. ;D


They (Morrison Schwartz) did an excellence job at making KPL very simple to write games. Once you pass the intellisense and the the VB-like syntax, then loading a sprite and animating it, is just as easy.

Explaining the concept of multiple frames in a single sprite



To get this sprite to animate, this is the code needed:



Handling User input is very straight forward:

As you can see, there are already constants defined.


Sprite intersections and IF-THEN-ELSE logic. To explain the IF-THEN concept, I've used a very useful system function called SpritesIntersect. This function takes on the name of 2 sprites and return True/False if they are touching at any point. This function makes it very easy to explain graphics collision without getting into all of the calculations behind. The code that I used to explain this logic was:



it was not very hard to see their faces *clicking* right away with this concept.!


Lessons Learned:
  1. Kids can't type that fast: To this end, by week 5, I start dividing the labs into 2 parts. One that was mandatory, and a *bonus* section. The mandatory was for them to learn the main focus I was trying to convey. The Bonus section was for those advanced enough that wanted to get some more functionality.
  2. Keeping kids attention is hard.! I discovered very soon, that some of the kids did not wanted to do the labs. Instead they just wanted to go on their own and change the program and the sprites by themselves. This was probably the most difficult part to handle. Specially, since I had a wide range of ages in the class. So I spent a couple of hours every night prior to the class, customizing some of the games that came with KPL. For instance, the racing cars. I had modified it in such a way, that after you typed in your assigment, there will be a *cheat* code that will allow your car to be driven at 3x the speed of the other cars. So while you could play the original racing car, there was an incentive to do the lab, so that you can get the extra capabilities.

In average, I have spent close to 3hrs every night for the past 7 weeks just to prepare the labs and the concepts. However, at the end of week 4 my hard work was finally rewarded. While waiting for some of the students to ask for assistance in finishing the lab. We saw a couple of students from the 4th grade making changes to some of the KPL original games. It was just awesome to see them moving around the program with confidence. Initially, they were afraid of changing anything. However, by now they are changing the sounds, colors, words, sprites, sizes, scales, etc.

Hours spent volunteering programming classes: 7.0 hrs.
Hours spent becoming a volunteer: 6hrs
Hours preparing for classes: 20+ hrs.
Time spent discussing how to write a computer game with 10-to-14-year-olds = priceless...

Sunday, March 25, 2007

Cincinnati Code Camp 2007

Original Plan:
  1. Get Up at 4:00am
  2. Meet James and Monish at 4:30am at the office
  3. Pick up Alexi at 5:00am at the Stringtown exit
  4. Arrive at Cincinnati at about 6:30am
  5. Go to IHOP for breakfast.
  6. Arrive at Code Camp before 7:30am to help out on the registration
Actual Plan:
  1. Phone call at 4:45am from Monish.
  2. [2-5] same workflow
  3. Arrive at Code Camp at 7:45am.
Mental Note: when you are setting your alarm you should make sure it is setup for the correct day. I set my alarm for 4am on FRIDAY... :(

To make up for the lost 30 minutes, I was doing about 74.6 miles/hr down on I-71 South. We make it to Cinci at about 6:50am. However, finding the IHOP was a little bit more complicated than we expected. Google sent us driving through neighborhoods and dead end streets for a while. Finally we made it to the IHOP and the Code Camp.

1st Session: Missed it [front registration duty]

2nd Session: Getting to know Generics by Dustin Campbell
Dustin was showing some of the gotchas using generics. One of the main point he was try to make was that sometimes developers do not know what else is out there and use Generics for all return values. He explained about a couple of namespaces which will return Read-Only generic types, which are safer for public interfaces.

3rd Session: Real World Sharepoint by Jim Holmes
What can I say? He is good.! Jim was doing the Sharepoint 2007 presentation yesterday at DevCares, and today's presentation was not a repeat.! One thing that I learn, is that the BSOD is still available in Windows Vista.! Jim got a BSOD right at the beginning of the session.! :)

4th Session: Intro to XNA by William Steele
Bill's presentations are always amazing. I have a bigger interest in the XNA Development Toolkit, since I am volunteering some of my time to teach kids about programming. So this knowledge will compliment my presentations. I am using Kids Programming Language, and the way XNA works, it seems that this will be an awesome transitions for kids that are captivated by game development and want to move on to more advanced topics.

5th Session: Intro to Robotics by William Steele.
This was by far the most fun presentation I have attended in a long time. The concept with the Microsoft Robotic Studio is almost the same: Microsoft is providing most of the skeleton/framework code for you, so that you can concentrate on the actual code for your robot and not how the robot works.

6th Session: Real World Agile by James Avery
His session was in the same format as the Open Spaces at CodeMash. The only difference was that the topic was defined by James and not the audience. But the 2-way interaction was there and it was good. Good questions and good suggestions from the audience, kept the presentation going past the time. To the point that they were tearing down the wall for the closing session while James was still talking.! funny.

Overall, I think that the Code Camp was a very nice local event. There were plenty of drinks till the end of the day. Food as expected in a conference. It was nice being part of the developer community. I will definitely come back next year. Kudos to Mike Wood and all of the volunteers there, they did an awesome job.