In the summer between my fourth and fifth grade years my parents sent me to a Lego Logo camp (i.e., now called Lego Mindstorms). As an elementary student already trying to build useful, interesting contraptions like an automated NES game dispenser with my Construx, this class changed my perspective. Using software to dynamically control the various motors and sensors opened up a new class of possibilities that I hadn't considered feasible before, and my fascination with the subject subsequently bloomed into an undergraduate degree, internships, and eventually a PhD in Computer Science.
My story ends well, as I'm now happily employed at ABB Corporate Research, but I've often wondered what would have happened if my mom hadn't pushed me to attend that camp. Would I have started college as "undeclared", floating around a few years until I found CS, or would I have simply done something else? I'm honestly not sure how life would have worked out if that camp hadn't sparked my interest, and I'm hugely thankful that it did.
As I've thought through what might have happened to me, a middle class child, I wonder what happens to kids in more challenging situations. If no one ever pulls back the curtain of technology and shows them how things work will they ever get excited about STEM careers? My guess is "no". Without that spark, the same one that hit me during a summer camp way back in elementary school, it's hard to sustain the drive and determination to get through what is certainly a challenging major.
And so, to spark interest in computer science for those unwilling or unable to pay hefty summer camp fees my friends (Nicholas Kraft and Christopher Corley) and I have, for the past two summers, been running a (very cheap) one week camp to teach 10-12 year olds how to program. In this post I'll share all about the camp, from the tablets the children used to the language we used to the speakers we brought in.
However, this post is not about how great a camp we put on. This post is about giving you, the working software developer, the corporate sponsor, or the volunteer enough information to decide whether you want to join us next year. In 2016 we hope to reach twice as many of Raleigh's youth, but we need three additional dedicated teachers, about $3000 in corporate sponsorship, and 60 volunteer hours if we're going to reach our goal of 40 campers.
We hold our camp each year at Roberts Park Community Center. In addition to having a variety of sized rooms to accommodate our growing camp Roberts Park has an excellent and supportive staff. Ms. Sherri Hartsfield, along with her colleagues, not only take care of all facilities booking and administrative necessities, but they are instrumental in recruiting students that may otherwise not be exposed to programming. Pulling from the Roberts Park after school and summer childcare program, neighborhood contacts, and personal contacts Ms. Hartsfield has no trouble filling our classroom each summer.
As you can see from the above copy of Thursday's schedule we tried to have a full agenda each day, finding that keeping the participants busy was key to a productive camp. We utilized a variety of activity types to fill out our schedule. In between programming tutorials, the meat of our code camp, we had outside speakers from working software engineers, videos on the importance of programming, computer science unplugged activities, and demos. Breaking up tutorial/programming sessions with these other activities helped motivate students and had the nice side effect of making programming time seem scarce, which meant that students were very focused when they finally did have programming sessions.
In my computer science journey the Lego Logo class I attended sparked my interest, but this spark was kindled in a nurturing environment. I had a friend whose parents bought a Lego Logo system for home, an educational system where computers were common place, and a brand new TI-82 which I could program to my heart's content. However, students with less affluent friends and school systems do not necessarily go home to such a nurturing environment. Thus, a key part of our code camp is that, along with the knowledge of how to program, we deliver the means for students to continue programming after the class ends; students get to keep the tablet they use in class. Due to generous corporate sponsors in the first two years of our camp students have taken home either a Chromebook or a tablet.
In the first iteration of our camp (2014) we utilized Scratch, MIT's visual programming language specifically designed for teaching programming. We enjoyed using Scratch and found it effective for teaching programming concepts. However, Scratch is best used on a laptop or Chromebook, which are about $250 at a minimum. Fortunately, the language we used, TouchDevelop by Microsoft Research, was designed from the beginning to be programmed via touch interface, and so we were able to purchase more cost effective tablets (e.g., HP Stream 7). TouchDevelop, which is similar to Scratch, provided us with the same great teaching experience. In addition, TouchDevelop also had built-in, interactive tutorials, which reinforced lecture lessons and gave students clear guidance on projects. We found that the interactive tutorials led to much higher completion rates for individual exercises.
Part of sparking an interest in computer science is setting a vision for a desirable future. At least part of my interest in computer science was because of the countless adults that told me "You'll make a great living in computer science!" That, combined with the minimum wage jobs that I had in high school helped show me that education really did lead to a better future.
To help foster the same realization in our camp's participants we had a speaker, who had to actively be earning a living in the computer field. You would be amazed by how effective these 10-15 minute sessions were in growing the children's visions of their future. I'm not sure what it was--perhaps these students had never met a working computer scientist before--but the kids grew absolutely silent, listening intently during many of these talks. And they had a strong effect, by the end of the week I'd hear some saying "I want to be like Mr. Mark when I grow up!"
Join Us Next Year!
As you can tell, we had a lot of fun this past summer. More importantly, we helped level the playing field for twenty students, increasing the chances that they'll benefit from the tech boom that is happening all around them in the Triangle. Yet this year we only reached 20 kids when there are hundreds growing up within walking distance of Roberts Park who are falling prey to the digital divide. We want to reach more.
If you are a working computer scientist, a corporation that wants to make a difference in Raleigh, or someone who is willing to volunteer their time, we need your help. In 2016 we hope to reach twice as many of Raleigh's youth, but we need three additional dedicated teachers (anyone with a CS background), about $3000 in corporate sponsorship, and 60 volunteer hours if we're going to reach our goal of 40 campers.
Please contact firstname.lastname@example.org if you are interested in joining us!
David Shepherd leverages software engineering research to create useful additions to the IDE.