I’m a big fan of Recurse Center (formerly known as Hacker School**), a free educational retreat for programmers. RC’s commitment to Computer Science education and diversity therein is nothing short of impressive, and they officially announced today an exciting new experimental program.
Welcome to the Computer Science Education Week! By now you may have heard of this little thing called Hour of Code, a global initiative from Code.org and CS Ed Week to get everyone—adults and kids alike!—to try just one hour of programming. Why? No, not so everyone can become programmers, but because exposure to programming can teach logic, problem solving, critical thinking, and demystify technology. Oh, and it’s also fun!
One Saturday a month, dozens of kids from across the New York metro area, with parents in tow, attend free learn-to-code workshops run by CoderDojo NYC.
Kids as young as six years old are let loose to explore computer science with tech industry pros who volunteer as mentors.
I discovered CoderDojo NYC in 2013 during an otherwise fruitless search for coding classes for my tech-enthusiastic, (then) nine-year-old daughter. We made the trek into Manhattan for a November workshop, not knowing what to expect. After a few hours of playing with binary code, we were both hooked.
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!
You may have heard that there’s not a lot of women in the programming industry. In early 2012, Hacker School—think of it as a 3-month immersive retreat where programmers can hone their craft—announced a partnership with some leading software companies like Etsy to offer ten $5,000 grants for women who wished to attend.
Hacker School wanted to diversify their student body, and over the last couple of years, they have managed to increase their female student body from 5% to 35% through these grant programs. Today, Hacker School announced they are pushing the definition of diversity to include other minorities that are under-represented in programming: African Americans, non-white Hispanics, Native Americans, and Pacific Islanders. They want their students to be a better representation of the demographics of America.
I had the chance to chat with Nicholas Bergson-Shilcock, who co-founded Hacker School alongside David Albert and Sonali Sridhar. Nick explained why it was important to Hacker School to see more diversity in their student body, and I think the same logic very much applies to the benefits of seeing a greater diversity in any workplace.
The first reason why Hacker School is committed to seeing this change happen in their demographics is that their top goal is to build an environment where people feel safe and comfortable to expose their ignorance and learn through it. A big part of that is making sure no one feels alienated, whether that may be due to their gender, skin color, socio-economic status, or ethnicity. The second is that, at Hacker School, so much of the education comes from students learning from each other. If every student came with the same background, it would be a much less viable experience. The more diverse Hacker School becomes, the better the experience.
While Hacker School is actually free, they understand that living near the school’s location in New York for three months is anything but. Something that has changed over the last two years of grants is that they also offer an option, not only to apply for a grant, but to specify the amount you would need to make this experience possible considering your financial situation, from $500 to $7,000.
The grants available for the next year of students has been made possible mainly by Etsy, Juniper Networks, Perka, Betaworks, Fog Creek, and Stripe. Of the money donated to Hacker School for the grants, 100% goes directly to the people who need it. It should also be mentioned that Hacker School takes it seriously that every applicant be judged based on the same standards, the bar isn’t lowered for women or minorities or applicants requesting the grants. They automatically create a pseudonym for applicants so that the people reviewing them are not influenced by the gender or ethnicity of the name. There may be other information in the applications that reveal these details, but it helps the reviewers remain unbiased and really focus on the applicant’s qualifications and code.
If you are interested in applying to Hacker School, they work on a rolling admission so you can apply at any time. If you are accepted, you may be able to attend your preferred “batch” (each 3-month group is called a batch) or, if that batch is full, you’ll have the option to select another batch. Good luck!
My son is nine years old. He’ll be ten soon. He became obsessed with Minecraft about halfway through last year. In his spare time, he watches YouTube videos about Minecraft mods and walkthroughs. When I learned that there was a class, specifically designed for kids in Grades 3-7 to teach how to write Minecraft mods in Java, I knew it would be a perfect fit.
Youth Digital provides this class, along with other such classes on making 3D games, apps, and video games, and they have two new classes coming out in May on animation and 3D modeling. Their whole company is set up to provide a valuable service to kids like my son who are really into various computer activities. The classes will get them well on their way to developing job skills in computer fields.
My son is only a few sections into the Mod Design 1 class, but it is proving to be quite entertaining and educational. The instruction is clear, step by step, and entertaining. There is enough help for the students, and they enjoy it because they get to change things in Minecraft that they’ve never gotten to change before. Obviously, a hearty interest in Minecraft is useful for this class, but it’s also a great way to begin learning Java.
Our initial impressions are that the class is most excellent. My son is truly enjoying himself, and learning a brand new skill. We will report back in a couple of months for a full review. But in the meantime, check out Youth Digital and their classes. The fact that they offer such computer science classes for kids so young is impressive, and they do a stellar job of not talking over kids’ heads, or down at them, at any time. It’s also taught at a very appropriate speed. I recommend these classes to any kids interested in the topics.
Youth Digital provided access to the Minecraft Mod Design 1 class for the purposes of these reviews.
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:
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.
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.