In honor of Computer Science Education Week, an annual program dedicated to inspiring K-12 students to take an interest in computer science, and Hour of Code, a one-hour computer science tutorial that has become a global movement engaging tens of millions of students in over 180 countries, we want to introduce you to an exceptional inventor, educator and father—Mark Engelberg.
Mark Engelberg is a computer science teacher, former virtual reality researcher for NASA and inventor of Think Fun’s new board game Code Master, which teaches computer programming logic skills without a computer. He is also an outspoken advocate for exposing students to computer science at an early age.
What inspired you to create a game to help kids learn basic computer programming?
Shortly before my first child was born, some sort of paternal nesting instinct kicked in, a desire to make the world a better place in preparation for his arrival. As a professional computer game programmer, I felt that my knowledge of programming was something I could offer, something I could teach to the next generation. I called around to local schools, volunteering to teach computer science. Most schools were not interested – no room in their schedules. But I eventually linked up with the public school district's resource center for homeschool students and they were tremendously enthusiastic about my offer, so I began teaching there. The joy I got out of teaching completely transformed my attitude towards parenting, and I soon realized that I wanted to be home with my son so I could be there to teach him his first words, his first numbers, and whatever else came next. Conveniently, my wife was itching to get back to work, so we swapped roles: she returned to work and I resigned from my programming job to become a stay-at-home dad. Once a week, the moms at the homeschool center would keep an eye on my infant for a few hours so I could continue to teach there.
The homeschool center gave me complete freedom to teach using any method or curriculum that I wanted. So my teaching, both at home and at the homeschool center, became a sort of grand experiment. At school I tested various approaches to teaching programming. I used these results to guide the way I taught my son, and soon after, my daughter. In turn, when something worked with my own kids, I found a way to bring that approach to the classroom so other students could benefit.
As my kids got older and I started to have a little more free time, I got back into the game design business. As a parent, I had experienced first-hand how hard it was to restrict kids to a reasonable amount of “screen time,” so this time around, I focused on developing board games and puzzles, rather than computer games.
Code Master was the culmination of many years of thinking about how to design a fun and educational programming experience that wouldn't require a computer.
Do you think kids need a computer to be proficient in computer science?
Can you master computer science without ever touching a computer? No. But do you need to be at a computer all the time? Absolutely not. I had a professor who frequently reminded us that “a good programmer does his best work away from a computer.” One of my programming heroes, Rich Hickey, coined the phrase “hammock time” when he implored programmers to spend plenty of time lying in a hammock thinking about a problem before sitting down at a computer to program.
I believe that the best educational experience for kids is to mimic what the best computer scientists do – spend a lot of time thinking away from the computer, and then test out ideas by programming at a computer. Both parts matter.
I created Code Master to give kids an opportunity to practice the thinking part – the ability to plan out a program away from the computer, think through the steps, and know exactly what your program will do before you ever run it.
What do you think are the greatest benefits of learning computer science at a young age?
Learning computer science helps develop powerful problem solving and critical thinking skills. Computer scientists have a unique way of looking at things, identifying the essential steps of solving a problem in order to solve new variations with ease. Learning this process early gives kids an edge in every academic subject they encounter.
How has fatherhood influenced your work in this field or vice versa?
The biggest way that fatherhood influenced me was to see how my son and daughter, despite having very different personalities and interests, both benefited from learning computer science at a young age. My son shared my passion for computer science; starting early helped him reach his full potential. My daughter wasn't as interested in the subject, but I continually see ways in which those early programming experiences sharpened her problem solving skills. This has strengthened my conviction that all kids deserve to be exposed to computer science early in life.
If we asked your son to tell us something about you, what do you think he would say?
Over the past couple of years, my son and I have had the opportunity to collaborate on open-source programming projects, and give talks together at local programming meetups and national conferences. Although he is still a teenager, he is already a respected professional software engineer. I think of him as a colleague and thoroughly enjoy working with him. I value his opinion and frequently consult him for advice. My hope is that he'd say the same things about me.