Build a game. Learn math. Be cool.

On Wednesday I met a man named Bob Cas­sels, a soft­ware devel­oper at Google, who told me his children’s school recently announced that all its stu­dents would learn to code before they grad­uate. Beaver Country Day School isn’t alone: Last month, UK edu­ca­tion sec­re­tary Michael Gove revealed a new cur­riculum that will have all the nation’s five year olds learning pro­gram­ming in their first year of school.

While this may be a new trend in edu­ca­tion, it’s likely to stick around. Everything—from a smart phone to a light bulb—seems to be cod­able now. So even­tu­ally, everyone will have to know how to do it.

As someone who knows a thing or two about pro­gram­ming, Cas­sels under­stands that how we teach this increas­ingly impor­tant skill is not a trivial matter.

When his 17-​​year-​​old son was 12, he tried to teach him how to code using a tra­di­tional text­book as a guide. But by the time they got to chapter three, he said, his son had com­pletely lost interest. A few years later he saw him fid­dling with a game on the com­puter and asked what he was up to. “I’m pro­gram­ming,” his son said. He’d taught himself.

*   *          *

I met Cas­sels before a work­shop being held at North­eastern to train middle and high school teachers in an inno­v­a­tive cur­riculum called Boot­strap, which aims to edu­cate stu­dents in algebra and com­puter pro­gram­ming simultaneously.

Boot­strap is the brain­child of Emmanuel Schanzer and com­puter and infor­ma­tion sci­ence pro­fessor Matthias Felleisen, along with some crit­ical help from pro­fes­sors Kathi Fisler of Worcester Poly­technic Insti­tute and Shriram Krish­na­murthi of Brown University.

Schanzer and Felleisen met on a train from Prov­i­dence to Boston a little less than a decade ago. Schanzer, who holds a com­puter sci­ence degree from Cor­nell and was familiar with Felleisen’s soft­ware, was teaching math at an after-​​school pro­gram in an under­served Boston neigh­bor­hood at the time.

Bootstrap is the brainchild of Matthias Felleisen, left, and Emmanuel Schanzer, right. Photo by Brooks Canaday.

Boot­strap is the brain­child of Matthias Felleisen, left, and Emmanuel Schanzer, right. Photo by Brooks Canaday.

This sparked Felleisen’s interest. He was helping a group of North­eastern under­grad­u­ates run a com­puter pro­gram­ming summer camp for dis­ad­van­taged middle schoolers in the area. The stu­dent group was called “Com­pass” and the first gen­er­a­tion had some suc­cess at their mis­sion, Felleisen said. But the new group was having a dif­fi­cult time reaching the demo­graphic they really wanted to work with—turns out com­puter pro­gram­ming had a rep­u­ta­tion as some­thing of an elite sport, reserved for the “smart kids” in the most priv­i­leged schools.

Ear­lier in his career, Felleisen had devel­oped a pro­gram­ming lan­guage called PLT Scheme (now called Racket) that he hoped would enable all students–regardless of their back­ground or report cards–to program.

Racket is unique in the world of pro­gram­ming lan­guages because it works a lot like reg­ular math. If you know algebra, it’s not a big leap to code a video game in Racket.

But learning algebra is hard enough on its own. Schanzer cites research into stu­dents’ strug­gles with algebra. This is when math itself shifts com­pletely, he said. “Rather than solving equa­tions, stu­dents talk about prop­er­ties such as  lin­earity, roots, whether an image is ‘one-​​to-​​one’ or ‘onto.’ The switch from get­ting the answer to ana­lyzing objects is a major leap into abstrac­tion, one that can be extra­or­di­narily intim­i­dating and con­fusing to students.”

And to all of us: “We have a serious national fear of math,” said Emma Youndt­smith, North­east Regional Man­ager for Boot­strap and a North­eastern grad­uate who learned to code using the same type of cur­riculum she’s now teaching.

Emma Youndsmith, a Northeastern graduate, learned how to program through the same curriculum  she's now teaching. Photo by Brooks Canaday.

Emma Yound­smith, a North­eastern grad­uate, learned how to pro­gram through the same cur­riculum she’s now teaching. Photo by Brooks Canaday.

But video games aren’t intimidating.

The Com­pass stu­dents, Felleisen, and now Schanzer thought that per­haps if kids could get excited about building a video game using a math­e­mat­ical pro­gram­ming lan­guage, they could get excited about math and pro­gram­ming too.

So after doing some learning of his own, Schanzer devel­oped Boot­strap. The cur­riculum imme­di­ately achieves that ele­ment of excite­ment and moti­va­tion that Bob Cas­sels’ son needed in order to finally learn how to write code.

Stu­dents get to make their very own video games and each time they look at what they’ve cre­ated and realize it could be a little cooler if they could just make X happen, they learn a little more math­e­matics to get them there.

Another bril­liant thing about Boot­strap is that it can be readily adapted into any public school algebra cur­riculum. It’s specif­i­cally designed to teach toward the common core stan­dards for math, which makes it a lot easier for teachers to adopt it in their classrooms.

But in the end stu­dents don’t just learn how to answer algebra test ques­tions. They learn algebra. They also learn pro­gram­ming, and, per­haps most impor­tantly, that these two seem­ingly nerdy activ­i­ties can grant them access into one of the coolest, most rapidly growing fields around.

Cas­sels’ son, about to grad­uate with a solid under­standing of com­puter pro­gram­ming, is begin­ning to think about col­lege and what he might do when he gets there. He went with his dad to tour some of Harvard’s physics and astro­physics labs and found that nearly everyone there was coding in at least some part of their research: “From the guy doing data analysis on quantum physics exper­i­ments to the woman doing com­puter sim­u­la­tions of activity around a black hole,” Cas­sels told me.

Of course astro­physics research isn’t in everyone’s future, but things like cell phones, microwaves, and light bulbs, likely are. Since all of these things are becoming pro­gram­mable, we’d better learn how to pro­gram. Why not enjoy it, too?