Teaching kids coding is one of the current buzz topics in schools, and rightly so. Programming is a vital skill, so much so that the National Curriculum in the UK—the government’s official guidelines on what schools are required to teach—has recently been updated to include the subject from a very young age.
My six year old has already come home talking about debugging algorithms, words I never used in all my years of schooling. I wanted to be involved in this journey with him and this new post series will follow our adventures in learning more about robotics, programming and more.
There’s a brand new graphic novel on the market this week, and it merges fiction, programming, puzzles, and a big mystery! Secret Coders follows the story of Hopper, a girl who is starting at a new school. She bonds with an unlikely friend as they try to figure out all the weird things happening around their creepy-looking school. Something’s up, and they know it.
Of course, we know how they are going to solve the puzzles: with programming! I always get a little worried when a book mixes fiction and education. Just how much will the story plot suffer? The programmer in me was willing to give this book a chance, and it did not disappoint. While there are a couple of places where the educational part becomes a little more obvious, namely when Hopper learns how to read binary and when she learns how to read a program, it really doesn’t drag. The book is fast-paced, full of humor, and just really fun to read. Fair warning though, it ends on quite a cliffhanger. Be ready to long for book #2! Continue reading Learn Computer Science Concepts With This New Graphic Novel
Youth Digital is an online classroom dedicated to teaching kids how to do a number of things including Game Design, Animation, and Minecraft Server Design. GeekMom Jenny wrote about the Minecraft Mod Design course a while back, but today I’ll be discussing my favorite course: Minecraft Server Design.
Minecraft, of course, is the second-most sold PC game of all time, surpassing World of Warcraft, Half-Life 2, and The Sims 3. With over 60 million players on all platforms, it’s no surprise that players of every age group want more and more from this celebrated sandbox game. After all, what’s better than a sandbox game with millions of custom mods, settings, and maps? Not much, I tell you. Not much.
Youth Digital’s Server Design Course allows players (particularly kids) to design servers that will let them define the rules of their Minecraft experience from the ground up. Our family was getting a little overwhelmed with commercialism on normal servers, and it was really making us wary of playing on servers. This sucks, because so many of the best mini games out there are designed to work on their signature servers. But paying for mini games, perks, and maps can get expensive.
When I started doing the YD course with our son, it was a great opportunity to decide which mini games we wanted to pursue. We both love PVP and parkour, so we agreed to design a map that provides plenty of both.
The class started off with some server basics: how to launch your server, setting yourself up as the moderator, and white-listing your friends. After the basics were set up, we explored the map. We had three choices, and decided to go with the map that had the most interesting features for us, the City map.
We discovered skyscrapers, cranes, helipads, and glass domed buildings. We found hidden parkour and interesting hiding places. It was a great canvas on which to paint our server. After checking everything out, we decided that Red v. Blue felt just a little stale. We switched to Green v. Red, which just felt more like “us.”
Read the rest of this article on our sibling site: GeekDad.com
Kids have the opportunity to learn how to code at an extremely early age these days. I thought I was doing pretty well by starting in the 9th grade back in the ’80s. But now, if you are old enough to use a tablet or computer, you’re old enough to learn to code.
This makes me happy. Not just because it gives kids a skill that is useful if they choose to go into a computer field, but mostly because it teaches kids to think about problems in certain ways early on. To take the problem apart, breaking it into component parts, and affecting the result, step by step. This kind of thinking is important in any field, even if your day job never has you touching a computing device.
Microsoft, with all of their resources, has done plenty to make programming opportunities available for kids of all ages. Here are several of their endeavors.
Kodu Game Lab
Programming games visually is a lot of fun. We’ve played with Kodu Game Lab quite a bit, and I think it’s the bee’s knees. For visually-oriented kids, it’s perfect for learning programming concepts. Kids (and adults) have almost endless possibilities to design and implement their own computer game. There are also books out there to help you through it, such as GeekDad James Floyd Kelly’s Kodu for Kids. There are websites to download the software, and to learn more about the project.
A program for high school girls in technology, DigiGirlz opens up doors for girls to learn about the possibilities in new and emerging fields.
Microsoft Small Basic
Learn to program in Small Basic. For free. There is even a free curriculum you can follow.
The Girls Who Code non-profit organization is putting together its 7-week summer immersion program again in 2015, which combines classes, mentorships, and presentations to introduce junior and senior high school girls to Computer Science.
The project-based curriculum provides hands-on practice with software development in a university or company setting, where the girls can get exposed to Computer Science, its industry, and the female leaders thereof. Field trips include familiar names such as Google, Facebook, Twitter, and the list goes on.
The girls of last summer’s program reported having a greater sense of confidence, formed a support community for each other, and were more likely to consider pursuing a major in Computer Science in the future.
In addition to the summer immersion program, Girls Who Code also provides a network of clubs, lead by volunteer teachers and professors, assisted by volunteer college students and professionals, to instruct 40 hours of classes per year. These volunteers provide the (wo)man-hours while Girls Who Code provides the curriculum and training.
Why is this important? According to the Girls Who Code website, “in middle school, 74% of girls express interest in Science, Technology, Engineering and Math (STEM), but when choosing a college major, just 0.3% of high school girls select computer science.” In the workplace, it translates to this: “In a room full of 25 engineers, only 3 will be women.” I don’t know if you’ve heard, but diversity tends to be a good thing.
Last December, non-profits Code.org and Computer Science Education Week (CSEdWeek) launched the Hour of Code initiative to get people, particularly kids, interested in computer science and programming. Whether you and your kids missed out on the opportunity last year or are looking to join in on the fun again, I’m here to tell you that the Hour of Code is back this year, December 8-14, with even more options than ever to inspire your interest in programming.
GeekMom Ariane motivated you to participate in last year’s Hour of Code with graphics on why computer programming skills are so important. Educators and entertainers also spread the word. Apparently a lot of people listened to the media coverage, and last year’s Hour of Code boasted some impressive statistics including:
Reached 15 million users in less than 5 days.
15 million students in 170 countries learned an Hour of Code.
Over 10 million girls participated.
I expect this year’s Hour of Code to be just as impressive, and dozens of organizations are participating:
As I reviewed the list of sites, I recognized quite a few but was also excited to see some new ones in the list. What a wide variety of choices for kids, and adults, to choose from! I found online offerings as well as offline ones. Some offerings you can run from your web browser, and others that can be used on your phone or tablet. Whatever platform you’re on, I think there’s an educational programming option to fit your needs.
Another offering that really caught my attention is Frozen from Code Studio. With this tutorial, programmers will learn how to create snowflakes with the Frozen characters Anna and Elsa. The tutorial is currently in beta, but I went through all 20 puzzles without any issues. I found it easy to learn some programming basics while having fun creating snowflakes—and just in time for the winter holiday season too! If you have a daughter that needs a little extra motivation to try out programming, this might be just the tutorial for her!
I was also pleased to see some video game design style tutorials. My son, Joey, age 12, often thinks he wants to be a video game designer when he grows up. He and a million other kids, right? Nevertheless, I think piquing his interest in programming with a tutorial geared towards video games will be quite effective. I went through the 10 step tutorial on the Code Avengers site and successfully created my very first video game! I can’t wait for Joey to give it a try!
I hope you and your kids will participate in this year’s Hour of Code. Don’t be shy, even if you don’t have a background in programming, you can set a good example for your child by giving something new a try!
Ever wondered why C++ ended up with two pluses instead of one? And why was C even named C? Did the creators of Java have a particular fixation with coffee? Does Python have anything to do with snakes? I was curious myself, so I dug around their history and found a few interesting stories. Read on to find out more! It’s perfect fodder for your next party!
Lisp has absolutely nothing do to with a speech impediment; it actually stands for List Processing. It was created in 1958 by John McCarthy, making it the second-oldest high-level language, right on FORTRAN’s tail. I’ve had friends in grad school who were big Lisp fans and users, so it might be falling out of style—but it’s not yet dead! The joke is that Lisp stands for Lost In Stupid Parentheses, after the language’s parentheses-heavy syntax, but at least it’s not really the case.
Created by Dennis Ritchie at AT&T Bell Labs, C was actually named C because it was the successor of—can you guess?—B! B’s origin is less certain. It could be a shortened version of its predecessor, BCPL, or another unrelated programming language, Bon.
C had been the popular language, but PhD student Bjarne Stroustrup saw a lot of potential into bringing object-oriented programming to C. Thus was born a new language called, quite descriptively, “C with Classes.” I’m not sure why Stroustrup ended up changing the name. Maybe someone pointed out to him that C with Classes was a terrible brand name, but changed it he did. He picked C++, with ++ being the syntax in C to increment a variable. Nope, there was no mediocre or abandoned C+ that came in between C and C++.
Though some say Perl stands for “Practical Extraction and Reporting Language,” that’s actually a backronym. Perl’s developer, Larry Wall, was simply looking for a short, positive name. It’s nothing more complicated than that. He had chosen Pearl, but it turned out there was already a (less successful) Pearl programming language, so Wall changed it to a more unique Perl.
The developer responsible for Python is Guido van Rossum, who has remained so active in the development of Python and its tightly-knit community that he is now nicknamed “Benevolent Dictator for Life.” As for Python, it was named not after the snake, but after Monty Python. Van Rossum had been reading the script for the Monty Python’s Flying Circus around the time he was also looking for a name for his new language. He wanted something “short, unique, and slightly mysterious.” Python fit the bill.
The Sun Microsystems team originally responsible for Java started working on a C++ alternative out of frustration against C++’s lack of automated garbage collection (the purging of system memory usage by the program). The project started out as the Stealth Project, then was renamed to the Green Project. Finally, the project earned an unofficial product name of Oak. Unfortunately, once Oak was ready for prime time, Sun’s legal team ixnayed the name; Oak was already trademarked by a company called Oak Technology. So the Oak team had a very long brainstorming session, throwing out every word they could think of, trying to find a name that would convey Java’s dynamic nature. A short list made it back to the legal team, who approved of Silk (as in web, get it?), DNA (I don’t get it), and Java. They ummed and ahhed as a group until Kim made the executive decision to pick Java just so they could finally move on and get back to work! The rest was history.
*Note: Dates are the origin of the projects, not the official release dates.
Do your kids Scratch? Nope, this isn’t a medical question.
Scratch is a free programming language developed for kids. From elementary school to college, kids use it to create interactive stories to building animations and games. In the meantime, they’re learning programming principles and collaboration skills—important stuff for the future. Scratch is available in over forty languages, and is in use in one hundred fifty countries.
The MIT Media Lab group Lifelong Kindergarten developed Scratch in 2003 and the project has received grants from the National Science Foundation as well as Intel Foundation, Microsoft, MacArthur Foundation, LEGO Foundation, Code-to-Learn Foundation, Google, Dell, and others.
With an unbelievable run on Kickstarter as the highest funded board game in the site’s history—and over 20,000 games shipped to backers—it only makes sense that Robot Turtles would find its way to a mass market. ThinkFun is now taking pre-orders on the preschooler board game, which is planned for release this June.
Robot Turtles creator Dan Shapiro talked a little about the release of the game in a note to the game’s original backers:
This summer, [ThinkFun owner Bill Ritchie] will be putting Dot, Beep, Pangle, and Pi on store shelves, with all the gameplay of the original plus some cool enhancements. I’ve seen previews of the graphics and they’re seriously snazzy–the same turtles, but with brighter backgrounds and shinier colors (including gold foil!). The box will hold the pieces better; no dump-and-sort. The rulebook will not fall apart when you open it. And content of the rulebook will be completely redone, making it waaaay easier to get started.
The game now retails at $24.99. Pre-order bonuses include a free Special Edition Expansion Pack that doubles game play and features new challenges, game tokens, and accessories. Once Robot Turtles is released in June, you’ll be able to find it at Target.com and neighborhood toy stores across the country.
So if you missed your chance to get in the original Kickstarter, this is your opportunity to get your young learners on the path to programming!
Computer Science Education Week (CSEdWeek) is a week-long celebration occurring yearly to advocate computer science awareness and education. This year CSEdWeek is promoting a worldwide event called Hour of Code. Its goal is to introduce programming to 10 million students of all ages. All it takes is one hour, no computers necessary.
Celebrated the week of December 9th in honor of the late computer scientist Grace Hopper, this year CSEdWeek falls from Monday December 9th to Friday December 15th. To celebrate in Hour of Code, you can sign up online to participate and commit to completing one hour of code during CSEdWeek. Individuals are welcome to participate solo, employers are encouraged to host a company event for their employees, and there are even prizes for educators who turn Hour of Code into a school event. Every educator will receive 10GB of free DropBox storage, and organizing a school-wide event will put you in the running to win free laptops or the chance to chat with Bill Gates (Microsoft) and Jack Dorsey (Twitter, Square).
To help you achieve your one hour of code, CSEdWeek offers a variety of one-hour tutorials and even an “unplugged” tutorial for those schools who don’t have easy computer access. I think the unplugged tutorial may be my favorite idea, since most people don’t realize there’s more to programming than wildly tapping techno mumbo jumbo on a keyboard.
Not convinced that programming should be important part of the core education system? The following infographic may help shine some light on the situation. Every student introduced to computer science gets a chance to discover a career that offers tremendous growth potential.
Following a long hiatus, the GeekMom Bit by Bit series is back again to take a look at another great tool for teaching programming to kids: RoboMind. The objective in RoboMind is to create programs that allow a robot to perform certain tasks. This educational software offers a no-prerequisite-required introduction to programming, but it’s also flexible enough to offer a challenge for the older, more experienced students.
The side-by-side view of the code in a text editor panel and the testing robot environment in a graphical user interface (GUI) panel provides a feel for what programming is like in the real world—the good old text editor way—while still offering an eye-catching GUI which can help entice the attention of a young audience.
RoboMind uses its own programming language. The language itself is pretty simple. Its list of available robot actions (move, paint, see, etc.) and programming structures (loops, conditions, procedures, etc.) is fairly limited. However, the level of difficulty comes from the complexity of the tasks you aim to make the robot do. For example, if the goal of your program is to make the robot paint a square, that can be achieved very quickly once you’re familiar with how to program robot actions like move and paint. On the other hand, if you take for example some of the challenges available on the RoboMind website, like having the robot recursively draw a spiral or having the robot search the map for certain objects, the level of difficulty jumps exponentially. The latter examples not only teach how to use RoboMind‘s programming syntax, but also how to think like a programmer to solve problems in computationally or time effective ways.
Though I used the word “limited” to describe the list of available robot actions and programming structures, I was happy to see that comments and procedures were included. A comment is a line of text you can add in your code to describe what it is doing for future reference, usually starting with some sort of escape character so that the text is ignored at compile time and runtime rather than to be executed as code. Adding comments to your code is a good habit to pick up from the start, yet comments are not included in many programming teaching tools for kids. So props to RoboMind for that.
Procedures—segments of code that perform a smaller subtask, the same way an employee may do a small section of work that is part of a larger goal unknown to all but upper management—are also often excluded from these programming teaching tools. It can make sense to exclude procedures in tools aimed for smaller children, as they can be quite tricky to grasp. However, knowing when and how to segment your code into procedures is a vital skill for a programmer, so I’m glad to see them in this tool aimed for a slightly older crowd.
I couldn’t find in the documentation if procedures could take in different data types as parameters, or return values. While some robot actions, like frontIsClear, returns a Boolean (true/false value) that the user can use in a condition, I wasn’t able to create a procedure myself that did the same thing. Only integers can go in as parameters. I guess that’s why parameter data types and return values were not covered in the documentation. Nevertheless, being able to use procedures at all is a good start.
In its GUI panel, the robot operates on a map. Creating maps, while simple, is tedious work. It’s entirely text based. A map consists of tiles, where one character represents one tile. For example, “C” stands for a top left corner tile, “H” a top tile, “G” a left tile, etc. A map with a single rectangular wall would look like this:
I would have loved to see some sort of graphical map builder tool that let you click-and-drag tiles onto a maps, and have RoboMind create the text file in the background. Nevertheless, the opportunity to mix-and-match scripts and maps opens the opportunity to create interesting assignments. If the student is assigned to write a script for the robot to travel a maze, the teacher can test the student’s program with an entirely different map than the one the student used to test his or her code. Therefore, the student is encouraged to use proper logic to code a solution that will solve the problem in all scenarios—as good code ought to do—rather than just hard-coding a solution that only works in one scenario.
If getting started feels overwhelming, RoboMind does offer a few tools to help. First of all, there’s a “Remote control” tool that gives you a graphical user interface to control the robot. The control actions are limited to left turn, right turn, move forward, move backward, paint white, paint black, stop painting, pick up, and put down. It will automatically create a script that matches the sequence of control actions you clicked, which you can then copy and paste into your own script.
Another helpful tool is the “Insert” menu, which gives you a list of all possible robot actions and programming structures. Choosing one item on the list will add it directly into your script at the current cursor location.
Finally, RoboMind also comes with documentation and sample scripts, which is pretty standard to any software download.
Despite being first launched in 2005, RoboMind doesn’t look or feel outdated. New releases have appeared over the years, and the new RoboMind Academy—a spin-off offering RoboMind-centric online programming classes—did a beta launch just last month. If you are looking for educational software that will introduce your child or student to text editor-based programming rather than a GUI-centric programming environment like Kodu or Scratch, RoboMind can be a great place to start.
Moreover, if your child is begging for an ever-so-expensive Lego Mindstorms robot, starting them off with RoboMind can be a good assessment tool to determine if your child is really interested in robot programming before spending the big bucks. The time invested in learning RoboMind prior to Lego Mindstorms is far from wasted, there’s even an export feature that lets you port your RoboMind scripts to the Lego Mindstorms NXT 2.0.
The tool is called RoboMind, and it was developed by Arvid Halma and Ernst Bovenkamp at the Research Kitchen in the Netherlands.
The objective in RoboMind is to create programs that allow a robot to perform certain tasks.
Age: RoboMind is designed to serve as an introduction to programming, without prerequisites. Difficulty level can be adjusted by the complexity of the exercises, meaning it can be appropriate from elementary school to high school.
Ease of installation (on a scale from 1-easy to 5-hard): 1
It is as easy as clicking a couple of buttons.
Code readability (indentation, comments, naming convention):
The tool does allow code indentation, and in fact will automatically apply indentation as you type. However, because the RoboMind language uses curly brackets rather than indentation to define the beginning and end of a procedure, condition, or loop, correct indentation is not required for the program to run correctly.
Comments are allowed. They are used in sample scripts and documentation, thus encouraging the user to do the same. Hurrah!
The use of variables is limited. As far as I can tell, the user cannot explicitly create variables except as parameters of a procedure. Data types are not introduced; only integers can be passed into robot actions and procedures. Conditions are Boolean based and can use operators (not, and, or), but evaluations (e.g., if value = 1) are not possible. The naming of the procedures and procedure parameters are up to the user, but good naming convention are not covered in the documentation.
Methodology (designing, writing, testing, debugging, maintaining):
The side-by-side view of the coding environment and test environment allows the users to code and test as they go. There’s a play button available to run the whole script. There is also a next button to run commands one line at a time, which allows for efficient debugging. If an error occurs during runtime, a message will appear to indicate what the problem is.
Software quality (reliability, security, robustness, usability, portability, maintainability, efficiency, performance):
The use of comments allows a gateway to talk about code maintainability. The mix-and-match possibilities of testing the same script against different maps can cover code robustness, reliability, and usability. The use of procedure, though limited, can help introduce maintainability, efficiency, and performance.
Control flow (conditions, loops, exceptions):
The only conditional flow available is “if-then-else,” and the only loop flow available is “repeat.” “Break” and “end” are also available to exit a repeat or end the program, respectively. Conditions are limited to Boolean values without variables, but does include operators. Exceptions handling is not available.
RoboMind runs on Windows, Linux, and Mac OSX. They are also currently working on an online version that would be tablet-compatible. Programs made in RoboMind can be exported to Lego Mindstorms NXT 2.0.
RoboMind is free for personal use, however a purchased license is necessary for educational or commercial institutions.
There’s no separate resources aimed specifically for kids. See list of resources for parents and teachers below.
Overall score (on a scale from 1-bad to 5-good): 3
I love the look and feel of the side-by-side view, the text editor-based coding environment, and the use of comments and procedures. The robot testing environment isn’t super flashy, but it does the job and it doesn’t look dated. However, I am really disappointed about how limited the flexibility of the procedures, variables, and conditions are. Nevertheless, it’s a decent stepping stone into the world of text editor-based programming environments for those who feel they’ve outgrown the click-and-drag GUI-based programming teaching tools.
You might also be interested in reading these other GeekMom posts:
Dan Shapiro is not your average board game developer. An entrepreneur and CEO of Google Comparison, Shapiro isn’t in the business of making games. But one day, while on the hunt for something to do with his four-year-old twins, he devised a board game that he and his children could play together—one that teaches the kids programming basics without them even realizing it. He decided to take the game to an audience craving the same type of activity, and Robot Turtles was born.
Robot Turtles is a board game for kids aged 3-8, in which parents play an important role in shaping each game. “I had conversations before I did this with board game manufacturers and folks in the industry and so on,” said Shapiro. “Everybody said, ‘Really, this just doesn’t work, this model of having the parent and the kid working together, because board games are the thing you buy so you can do something else.'” Shapiro wasn’t interested in just occupying his kids’ time — he wanted to play with them in a game where all players stayed engaged and he didn’t have to pretend to lose. “I love spending time with my kids,” he told me. “This was just an exercise to see if I could take that and put it into a box.”
Judging by the enormous response to the Robot Turtles Kickstarter, Shapiro isn’t the only parent who feels this way. Robot Turtles reached funding within five hours of the campaign’s launch, and just broke $225,000 with two weeks to go.
Not only have I backed the fundraising campaign, I’ve been lucky enough to see the game in action. My four-year-old daughter and I recently sat down with Shapiro to learn the basics of the game. Your child chooses a turtle (naturally, my girly girl gravitated to the one with pink) and then it’s the parent’s turn to transform into a Turtle Mover. The Turtle Mover places a Robot Jewel tile on the board; a first-time player simply uses the movement cards to get the Robot Turtle tile to reach the jewel.
When the player selects a card, the Turtle Mover (you) carries out the action. The movement cards go straight, turn left, and turn right. Shapiro used an ingenious method of colors and flowers placed on the card to help the child visualize which way the turtle will turn, rather than simply saying “left” or “right,” which can vex a preschooler. As your child begins to create a series of movement, thinking ahead to their next step, they’re on their way to learning programming basics.
Players can even stop and yell, “Undo!” if they’ve set their turtle on the wrong path as a form of debugging. When my daughter realized she couldn’t lose the game, she relaxed and really started focus on playing out the turtle’s next steps in her head. “For new computer learners, discovering that there’s no cost for being wrong is essential to their growth,” Shapiro wrote in the game’s Kickstarter.
After the young programmer learns movement basics, new tiles are added to the game board in the form of ice walls and stone walls. They can play a laser card to melt the ice, but as the stone walls are unbreakable, they must learn to navigate the turtle around them. Destroying the ice walls resulted in a crashing sound from the genuinely enthusiastic Shapiro; my daughter preferred his energy and passion so much that she asked me to step aside so that she could continue to play with him. (Note to self: practice laser sounds.)
It’s easy to see why Shapiro is so excited about Robot Turtles. The game engages the brains of all players, without taking an inordinate time to play (like, say, Monopoly). Preschoolers and young children love being the boss of parents, and Robot Turtles puts them in control of not just the turtle — as Turtle Mover, the parent becomes the “computer,” following the child’s commands to move the turtle around the board. Bossing me around is one of my daughter’s hobbies, so she was delighted to get the chance to do it in a game.
As for my little programmer-in-training, Robot Turtles definitely left her impressed. “I loved it so much!” she yelled. “I really want to do it again, okay?”
Despite my modicum of computer science background (I was this close to a CS degree), it’s still a challenge to teach my kids computer science when we homeschool. I try to instill a passion for it, hoping for quick understanding. But they approach computers differently from how I was introduced to them. When I was their age, we had a PET computer with a cassette tape drive. We then moved onto a DOS machine, but you really had to know how the thing operated at a fundamental level to use it fully. By comparison, my kids share their own laptop, and the internet (and thus the world) is at their fingertips. They don’t need to understand the underlying workings of the operating system to play Minecraft.
So, for now, I’ve given up on teaching straight code, and even Scratch hasn’t held their interest. The only thing I’ve had any success with has been Kodu, a fantastic computer game programming environment from Microsoft. We found a few tutorials online, and all three of us played around with it, creating some rudimentary programs. But I couldn’t find any systematic way to learn how to use the available tools, and the Kodu website mostly has introductory videos. They are great for piquing your interest, but not so great for a thorough curriculum.
Enter James Floyd Kelly’s Kodu for Kids. This prolific author, and writer for GeekDad, has written a book perfectly suited to my needs. Published by Que and an official resource for Kodu, the book begins from the very beginning, stepping you through downloading and installing Kodu.
Using Kodu allows for a very different way of looking at programming. I’m having to change my perspective greatly, since all of my programming experience was on DOS, CP/M, and Unix machines (you heard me right). Approaching it from a purely visual perspective is great fun, and more intuitive to my kids than to me so far.
Kodu allows you to create an environment from scratch, changing the details and delving deeply into the scenery. You can design the environment itself, add objects, change objects’ characteristics, and control the objects. Then you can start designing a simple game, such as shooting fish. You can keep score along the way, one point for each fish, and the game can be over when you reach a chosen number of points. You can add another player to your game, make the game more difficult, and even get your objects to shoot back at you.
Kodu for Kids picks apart Kodu bit by bit, teaching you each progressively more complicated part of the environment. It moves on to camera controls, healing your player, in-game instructions, environmental special effects, sound effects, and adding cut-scenes between pieces of the action, such as when you finish a level. The book also includes plenty of game design tips to help you be a better programmer.
If you want to reach out to the Kodu community, the Kodu Game Lab website also has a discussion area, and you can get to the Kodu Community Forum to compare notes with other programmers. You can also share your game with others, and try theirs out in return. And once you’ve oriented yourself to the programming environment, try out one of four sample games included in Kodu for Kids. You can re-create the sample games, play them, and then edit the specifics to change it up and play around. The book also makes suggestions on how to improve the sample games.
Once you’ve finished learning everything that the book teaches you, play with Kodu on your own. Be creative, inventing your own games and learning how all the components to a program affect the final result. A future career in video game development may ensue. Then dive into the online forums, learning from others. And keep an eye on the Kodu Labs folks. They are constantly improving Kodu, adding new features.
How does Kodu for Kids stack up? I think it’s fantastic. There are almost 500 pages of step-by-step teaching. Kids will not only learn how to make their own games, but they will also absorb basic programming concepts which can then be used in other areas, perhaps even leading them to straight coding. Who knows. By the time my kids are in college in another ten years, there may be yet another type of environment available, one which we can’t anticipate.
Kodu for Kids is currently available on Amazon for $17.98, a bargain for all families with kids. Learning Kodu is also fun for adults to learn how games are made, and it’s much cheaper than any class you can take in school. And the best thing is, you can take detours along the way and play with new features that you discover. I recommend this book to anyone with an interest in computer programming or computer games.
GeekMom received a copy of the book for review purposes.
Lego announced their next generation Mindstorm robotics product back in January at CES, and I was lucky enough to get a sneak preview. This updated version is super cool. Expensive, but super cool. It has a new Linux-based operating system (which Lego is totally cool with letting you hack), and Lego will provide instructions for up to 12 different models right out of the box. There’s a better processor with an actual SD card slot, and there’s much better on-brick programming. You can chain up to four Mindstorms together, and there’s a new infrared sensor as well as significant improvements to existing sensors.
Although Lego was elusive about the exact release date in January, most guesses were initially for early spring, mid-summer. We finally, finally have a date. The retail version of the EV3 will ship on September 1 for a price of $349, but if you shop around online, you may be able to pre-order sometime this month. You could also pre-order a book on the EV3. Ahem.
The Lego Education edition (pictured above) ships today. Most people should go ahead and wait for the retail version rather than getting the education version. The education version is intended for classrooms and leaves out some of the parts (including the new infrared sensor) in exchange for a better storage case. That’s a trade-off that makes sense if you need to store your system in a classroom, but not if you’re a home user that wants to build that really cool infrared cobra bot I saw them demo at CES.
My kids are in the kitchen all the time to help cook. Even if they’re just stirring the pancake batter, the early exposure and incrementally increased responsibility helps them understand the basics of cooking. That means they’re not going to be the ones in college that have to call and ask how to bake a potato.
I have the same philosophy about computers. Expose kids early, and expose them to more than just using a computer to run apps. Think of it like learning about baking bread instead of just buying pre-sliced loaves. So when our ancient PC stopped working this winter, I knew that I wasn’t going to build another computer this time. My daughter was.
She was relieved to find out that building a computer didn’t involve soldering.
I could have recycled my old case, but I figured that my daughter’s first build was not going to be on a case with a lot of sharp metal parts. We chose a nice case with plenty of room, cord management, and screw-less hard drive rails. I made the rest of the choices, but I talked through them with her so that she’d see why I chose the way I did.
I really tried to have her do as much of the work as possible. That’s the point, right?
There are a few things, like getting the screws loose on the case or seating the video card that just require some serious muscle power, but she tried to do those things, too. She was a natural at seating the processor, but she had to be coached into getting the RAM installed – as do most first time builders and upgraders. It took me a couple of tries to learn I wasn’t going to break the motherboard when I first started upgrading RAM.
We had to make a second trip to the store to get a DVD drive after everything was assembled. Turned out I couldn’t recycle the one from our old computer after all. Oops. We’d already gone through the process of installing things several times at this point. I handed the new DVD to her with no instructions and asked her what she should do. She replied that she needed to put it in the bay and hook it up to the power and “the brain.” And then she did it. She rocks.
I probably spent more money on that computer than I would have if I’d just shopped around and snagged a cheap refurb, but it is a nice system. More importantly, it’s the computer my daughter built, and that’s an experience that doesn’t come preassembled.
A version of this story originally appeared on GeekMom in January.
Arduino Adventures: Escape from Gemini Station is a great introduction to Arduino robotics projects for kids (and adults who want an easy starting point.) The book was written by James Floyd Kelly and Harold Timmis and published by Apress. Full disclosure: James Floyd Kelly is a contributor on GeekDad, and Apress is also my book publisher.
The basic structure of Arduino Adventures is the intertwining of the “escape from Gemini Station” story followed by a lesson and project. The projects build upon themselves and eventually finish with a completed robot and some explanation of Arduino programming.
There’s no soldering required, and there’s even a kit you can purchase with all parts for all the lessons mentioned in the book. Even without the kit, most of the parts should be available at your local Radio Shack.
The structure of the book is very logical, and the authors took care to eliminate a lot of the more frustrating points with big robotics projects, such as soldering errors. By the end of the book, kids should have some building blocks for understanding electronics and programming, although this book will not bring them to expert level. However, this sort of scaffolded introduction into robotics could easily spark their interest and motivate them to explore on their own.
This is the sort of mother-child project bonding book I’d recommend for the 8-12 year olds who are new to robotics. Older kids may want to go through the lessons on their own. I plan on going through the lessons with my daughter’s robotics club, because it gives the younger kids some projects that don’t require soldering and go beyond Snap Circuits or Little Bits.
Python for Kids is a book from No Starch Press that aims to teach kids ages 10 and up and their parents about the Python programming language. Python is a good candidate for kids and other programming newbies because it mostly uses natural language and avoids the more annoying things you can find in some programming language. There’s no need to end every line with a semicolon. Variables don’t need to be declared, nor do they need to stick with the same data type. And if I stopped speaking English about two sentences ago, there’s good news. Python for Kids can still help you learn.
I happen to have an 11 year old daughter for convenient review purposes, so we’ve been working through the book together. I’m bribing her with a Raspberry Pi and pink flexible keyboard, because the Raspberry Pi can be programmed with Python. Might as well use what you learn.
First off, the tone of this book is just about right. We tried Super Scratch Programming Adventure, and while the Scratch book is aimed at a slightly younger audience, it really feels like it’s aimed at a much younger audience. Nobody likes a book that talks down to them. Python for Kids author Jason Briggs manages to successfully describe programming to kids without sounding like he’s dumbing down the content. My one critique as an adult reading this is that the whole book had enlarged print, but if it actually helps struggling learners read, I suppose I can overlook it.
My daughter was able to work through most chapters on her own, but she did sometimes ask for help with global concepts, such as why you’d want to “recycle code” or what an if statement was meant to do. Once she understood the concept she was going to learn in the chapter, she was able to go through the exercises and excitedly brag about what she’d learned. “Mom, I made a tuple! Mom, there’s a turtle in Python!”
She’s still only halfway through the book, but I’ve read ahead. By the time you finish Python for Kids, you’ll have completed two games and learned the foundations for programming with Python. The lessons are well-constructed and leave the reader with a feeling of accomplishment in each chapter.
If you’re looking for a book to teach your fifth grade or older child how to program, and you’re willing to provide a little guidance here and there, this book (and maybe a Raspberry Pi with pink flexible keyboard) makes a good investment.
On Saturday, we shared the news about Etsy providing ten lucky programmer women five thousand dollars to attend Hacker School. Today, we have the whole story direct from the source. I interviewed Marc Hedlund from Etsy and Nicholas Bergson-Shilcock from Hacker School to get more details about the grants, the partnership between Etsy and Hacker School, and why Etsy wants more women in technology.
First, a little bit of background. Etsy is of course the Internet giant of handmade goods, a marketplace which we all know and love. Hacker School is a small project-oriented school where programmers can become better programmer in a safe non-judgmental environment.
Hacker School works in three month sessions, each hosted from various locations in New York. For the session of summer 2012, Etsy offered to host forty students for Hacker School, double the number of students in this current batch. Not only that, but Etsy also offered to contribute ten $5,000 grants to women who were accepted in Hacker School. While Hacker School is technically free, the grant money can be used to finance the students’ expenses while attending Hacker School in the Etsy headquarters in New York.
Hacker School was founded by Nicholas Bergson-Shilcock, David Albert, and Sonali Sridhar. They saw some holes in the Computer Science education system and wanted a community where programmers could focus on developing their skills in a workshop/apprenticeship environment. When I asked Nick about what they thought the shortcomings were in Computer Science education, he replied:
“Traditional CS programs are good at helping people become good computer scientists, but they’re generally not good at helping people become better programmers. Understanding CS is a part of being a good programmer, but it’s only a part.
We think programming is a craft, and like any other craft, the way to become great is to do it a lot. That’s why Hacker School is project-based, and everyone codes on day one.
Another problem with traditional CS programs is that not everyone enrolled in them actually likes programming or even wants to be there. That’s not the case at Hacker School. Because there is no certification or grading, the only reason to come to Hacker School is to become a better programmer.”
During the application period for the last batch, Hacker School received 130 applications. They didn’t ask the applicants to specify their gender so Nick doesn’t have the exact numbers, however he estimated that the number of women applicants was definitively below 10%, and probably under 5%.
What does Hacker School look for in an applicant? “We look for people who love programming and want to become better hackers in the best sense of the word,” said Nick. “Beyond that, we look for curiosity, passion, raw intelligence and a desire to build things.” And that is a group of people I’d want to be a part of. Oh, to be young and free again, I’d jump on the occasion to participate in this program!
Marc Hedlund is the VP of Engineering at Etsy. He was enthusiastic about Etsy’s partnership with Hacker School because of Hacker School’s approach to education. “We liked the approach they took to training people, and the emphasis on a supportive and collaborative environment. I also really liked the founders personally, and thought that what they are trying to build is admirable. Finally, it seemed like a great way to work on the issue of women in engineering, which was and is one of my major efforts at Etsy.”
As such, Etsy chose to stay uninvolved in Hacker School’s existing admission process. “We felt that Hacker School should continue running the program the way they have been — especially since we decided to work with them based on the way they were already running things.” Etsy will be providing space for the forty students in their spacious headquarters. “As we’ve expanded, we’ve taken on large areas in our building so we can continue growing. We’re planning to use two of those areas […] which we’ve acquired but not yet filled.”
I asked Marc if he ever felt a tug or disjoint managing a predominantly male group of programmers to design a website popular with a mostly female audience. “I try to build as much empathy in product development teams with the people using the product as I can; the predominantly female user base of Etsy suggests that having a heavily male development team isn’t the best approach for that. […] That tug and pull is present in every product team I’ve ever worked on — ones with strong female representation and ones without. But, I certainly think that many of the men on the team at Etsy use the site very differently than women do, and that having more women on the team will make our decision making stronger.”
As for why Marc wants to see more women in his programming team, he responds: “Well, there are lots of reasons. One of the more recent ones is that I have a three-year old daughter who I love and adore, and I want her to have every opportunity when she is older.”
Applications for Hacker School are open until May 7th, 2012. They may continue to accept applications beyond that date if they still have places available. There is a checkbox on the application to also apply for the grant. The grants will be distributed as first-accepted, first-granted, based on a statement of need.
It’s a pretty uniform feeling among geeks with daughters: We want to raise strong, smart, independent girls who can stand above stereotypes.
So when I’m faced with marketing geared toward girls, I feel a mixture of emotions. Part of me is excited to see something cute and girly, and part of me is outraged at the stereotypes. Sometimes I feel feminists need to stand down so we can allow a little pink into our lives, and sometimes I am that feminist.
When I see Computer Science being marketed towards girls, I am especially torn. Being the only female programmer on my team (over and over, across my academic and professional career), I wouldn’t mind seeing more women in Computer Science. I chose this field accepting the men-to-women ratio as it was and it doesn’t bother me in the least, but a little variety couldn’t hurt either. Go CS girls, go!
On the flip side, there’s a fine line between encouraging females into Computer Science and making girls feel they are a demographic that needs special handling and treatment. Sometimes I just want to yell: Look at me, I’m a girl and I can read boy posters just fine! Oh, this computer is not pink and yet I will touch it! I appreciate the extra help and the special attention, but I can do computing and I can do it myself, thankyouverymuch.
The topic came up again recently upon finding the new-to-me DotDiva.org website. Immediately I thought: “Girls in CS, yay! Oh wait, should I feel insulted?” There’s always that moment of doubt whether I’m being supported or targeted. In the last week I’ve been visiting the website often, just trying to make up my mind: How can we help more girls choose Computer Science? I took a convoluted path just to finally end up in CS, what would have convinced me as a teen to consider CS without the twisted path of self-discovery? Would finding resources like Dot Diva have helped me?
WBGH (a leading producer of educational media) and the Association for Computing Machinery (ACM) joined forces in 2008 to produce NIC, the New Image for Computing initiative. NIC’s original goal was to lure teens from the most underrepresented groups in Computer Science, namely African American and Hispanic teens, by revamping the image of computing. After a market research, they were surprised to find that the interest in Computer Science within the African American and Hispanic boys was fairly high despite their low attendance in the field, meanwhile girls across all races showed the lowest level of interest.
From such findings, NIC changed their goal to focus on girls only and Dot Diva was born. This week I got the chance to chat with Julie Benyo, who was the principle investigator at the time the initiative was first funded, and she was willing to answer a few of my questions for me:
From the findings of the market research, how did you decide what content would be provided on DotDiva.org?
What we heard from girls during our market research (and in our experience with Dot Diva’s older sister project, Engineer Your Life), was that if they thought of computing at all, it was within the context of sitting alone in a dark room writing code all day. When we asked them what they wanted in a career, they said they wanted to work collaboratively with other people, be creative, and do something meaningful. Therefore, on the web site, that’s the side of computing we wanted to show. In fact, when we spoke with young women in the field, they all told us that those were exactly the characteristics that attracted them to their jobs, so it was easy to feature them and their work. Also, we know that high schoolers are aspirational, but they don’t aspire to be 50 year old women, so we chose women much closer in age to the girls themselves. I don’t believe that any of the women featured on the site was over the age of 30 at the time we worked with them.
Has there been other tactics developed in addition to the Dot Diva website?
On the Web site, there’s a parents and educators section that’s got lots of downloadable resources, including an annotated PPT presentation that educators can use in presentations to girls, a databank of free images folks can use to spruce-up their own recruiting efforts, and other materials.
In addition to the Web site, we have other free material — a poster, a brochure for girls, and a brochure (in 3 languages) for parents.
Has the NIC initiative considered the effects of popular media (namely TV shows) on career choices in teens? Is that why Dot Diva included a webisode?
We certainly know that TV and other media are important to girls, but we didn’t have enough funding for TV, and with the growing popularity of online media, we decided to do a webisode. We originally wanted this to be a 10-part series, and we have the outline for all 10, but we’ve been unsuccessful in securing funding for more episodes, so…
We scripted the initial webisode as an introduction to the entire series. So, while the one that’s available may seem shallow in terms of its focus on computing, we wanted to introduce the characters and get folks to “know” them before we went too much farther into what it means to be into computing. Also, we wanted the 2 main women characters to be polar opposites in terms of personalities in order to show that there’s no one TYPE that goes into computing.
Is there current or future work being made to add more content to the Dot Diva website?
The group at ‘GBH continues to seek funding to support and grow the initiative in the future, but it’s been a slow slog.
There is a grant pending with the National Science Foundation, but that’s all that’s going on at the moment. Unfortunately, everyone associated with the project is supported on grants, so unless there’s money, no one is spending any time on the project.
Those of us who “used” to work on it still occasionally post to the Dot Diva Facebook page, but this is because we truly believe in the initiative and can’t let it go, even though we’re no longer paid or officially associated with the site or WGBH.
It is nice to see people working with such dedication toward helping kids find their path. Sadly, funding is a recurring problem for well-meaning initiatives and we’ll have to continue to rely on Hollywood to break the computing stereotypes. While we’re not proud to admit the pull that TV has towards our life choices, the impact is undeniable. For example, physics experienced a boom in interest partly due to the popular show Big Bang Theory.
Spinning science in a positive light on TV to boost STEM attendance is no new concept. In 2005, Pentagon research grants totaling nearly $25,000 were used to train scientists on screenplay writing. The goal was to encourage more Americans teens to major in STEM fields to avoid an imminent crisis in scientific jobs vacancies for defense laboratories, many of which require citizenship or permanent residency.
I am not immune to the Hollywood effect, I nearly abandoned my career in programming to apply to med school because of Grey’s Anatomy. Yes, you’re allowed to laugh at me for that one. My point is, if we hope to see more girls major in Computer Science, we need a TV show with a female programmer who can kick butt and take names.
For my Muse of Nerds this month, I’ll formally introduce you to someone I have talked about in the past: Dr. Michele McColgan of Siena College. I met her through our homeschooling group (she has two elementary-aged children) and she has introduced my kids to science, math, robots, computer programming, alternative energy, a Lego Robotics Team…and more than I remember. I first mentioned Michele in this post about soccerbots. And then again about a year-long project our four children worked on with RPGs and robotics.
At the moment, she teaches the general physics sequence to science and math majors, and electronics and optics for physics majors at Siena College, homeschools her two children, runs the Saturday Scholars program for inner-city youth, organizes summer camps in Physics, Alternative Energy, and Robotics, uploads regular YouTube tutorials, mentors Siena’s physics teams to participate in Siena’s Center for Innovation and Entrepreneurship, supervises summer research projects for physics undergraduate students, and prepares pre-service physics teachers.
She’s also really nice.
Michele agreed to answer a few questions for GeekMom.
You use robotics to teach physics concepts. How did you come up with this idea?
Before he passed away, I often met with Les Rubenfeld, the founder of RPI’s CIPCE program (Center for Initiatives in Pre-College Education.) He was a math professor and was passionate about teaching math with robotics. We would meet at Bruegger’s near Siena and discuss potential ways to collaborate to bring robotics to more students. He suggested that there was more to robotics than just programming the robots to take sensor input and program the robot to respond. He suggested that there was more science to teach. That inspired me to find the physics in robotics. So far, I’ve created robotics activities to teach physics topics including: kinematics (displacement, velocity, and acceleration); measurements to calculate gravity; force of friction; gear ratios for speed and power; impulse; angular velocity and linear velocity; and identification with light sensor data.
What aspect of your work inspires you? (and what are you currently fired up about?)
– Learning new things. I hate being bored. I’m always finding new problems to solve.
– I really enjoy the variety of things that I do. Change is really important for creativity. Revisiting past projects is important, too. Being a physics professor offers opportunities for both.
– Creating fun activities that naturally include science (like duct tape circuits.)
– Creating online resources to allow kids to complete projects at their own pace and allows me to grow my resources.
– Finding ways to show kids that science and math are interesting and fun when you’re solving real problems — not fake problems that someone makes up because you ” should” learn certain things.
Obviously you are a creative person in designing your programs. How can you pass along this creativity to your science and technology students?
I believe in modeling! I like to lead by example. I like to meet students wherever they are. I hate the phrase “you should know that”. I think it’s so important to meet students where they are. Shaming students shuts them down. Encouraging them, whatever their background, allows them to move forward and embrace learning about physics and math.
I think it’s so important for students to take control of their learning. I arrange my classroom and choose activities that require active engagement, not passive learning.
When students show an interest in any of my projects, I do everything I can to support their interests. I give out supplies and let students borrow equipment. I’m interested in their questions and problems and I believe they can do it. I also suggest that learning physics is a journey that takes time and effort. Even if you don’t completely master the material in my classes, that’s okay. Mastery takes time and effort and offers wonderful rewards. I believe that anyone can learn physics – it’s not a field reserved only for rocket scientists. Physics is so rich and covers such a broad range of topics, everyone can find something that’s relevant to them.
Thanks, Michele! And if you want to see even more of what she does, here’s some cool links:
Ardbot – robot camp to build and program a robot controlled with an Arduino and programmed with Modkit
I have a daughter who wants to design robots. She used to want to be an astronaut, and now she thinks that maybe she’d still like to go into space, but “only for a year or so,” since she’s discovered it could be a dangerous job. I assured her that a career in robotics looks spiffy on an astronaut’s resume. Howard Wolowitz got offered a chance to go into space, right?
Anyway, I’d been waiting for the day when she’d be old enough for a Lego Mindstorms kit. It’s expensive. That Amazon link is the best price I found. And yeah, I’ll admit that a lot of the reason I wanted one was as a toy for me. She agreed that this year it was her combined birthday/Christmas present. That’s something I usually don’t do, because as a fellow December birthday girl, I hated when it was done to me. I’m impatient and didn’t wait until her birthday to let her open it, so we got started last week.
I’d debated skipping the Lego kit and just going into soldering robots from kits, but that requires much, much more supervision for a nine-almost-ten-year-old. Her interest is more in programming robots than building them, so I decided Lego was probably the better approach. We also looked for nearby robotics teams, which is a great suggestion for anyone looking into it. We may ask the school about starting a team next year.
The Lego Minstorms kit is pretty awesome, and many fellow GeekMoms have blogged about their own adventures with Lego robotics. I worried that they’ll come up with an upgraded version of the kit as soon as I got one, since the NXT 2.0 version first came out in 2009, but I suppose that happens with everything, right? The iPad programmable version will be awesome. I’m sure it’s coming.
So far, it’s been a big hit. My son wants to play with it, but his mother isn’t ready to let him scatter pieces around. Call me selfish.
Some kids would be better at a younger age than others, but the building robots phase is pretty tricky. My daughter was only half patient for that portion of the building and needed a lot of help and encouragement.
Organization Is Key!
If anyone is wanting to get started with the Lego robotics, I think the first step before you open anything is to have a way to store it. There are bunches of teeny tiny pieces, and you really don’t want to lose any of them. Originally I went with a plastic bin and bunches of ziplock baggies, but my husband decided small fishing tackle boxes would work better stacked in the box. You can pick these up in the sporting goods section of any store. When we were in art school, that’s how we’d store all our stuff.
How did it go?
She and I built the first robot together from the instructions included in the box. It’s a simple vehicle, and it looks like this:
Once that was built, I backed off and let her explore. She’s a kid who can do great things when you get out of her way. She programmed it to go back and forth, using the buttons on the NXT brick itself. The brick is the brain part of the Lego Mindstorms kit, and NXT is the language used for Lego robotics programs, and she figured out how to do this basic bit of programming on her own.
Next, she wanted to add the visual sensor to the front. She did, and I challenged her to make the robot avoid collisions. She figured out how to use the NXT interface on our desktop computer and how to download her program to her robot. So far, she’s managed to get it to stop when it detects something in the way, but not to turn or start again when the path is clear. It’s a start, and I love how she immediately wanted to take her robot further and modify what she learned.
We bought The Lego Minstorms NXT 2.0 Discovery Book, which I’d recommend, since it takes you from the “now what?” phase of building the robot from the included instructions to more projects, but I had to talk her into it when her dad wanted to take apart her existing robot to build one from the book. I look forward to see how she modifies this one.