As some of you may already know, last week I had the honor and privilege to help organize the 2013 Teen Tech Camp in Durham, North Carolina. The event was extremely challenging, fun and one of the most rewarding things I have ever been a part of.
The idea for the camp came from my experience at the Teen Tech Camp in 2012. Refresh the Triangle, a community made up of area designers and developers, hosted the camp and focused it around web applications, websites and web design. The kids learned about HTML, CSS, web design and other web-related technologies from local professional technologists.
This year, I wanted to help move the camp in a different direction…
At the 2012 Teen Tech Camp, one of the volunteers brought in a Raspberry Pi for the students to learn about. It was by far one of the most interesting aspects of that event. Almost every participant gathered around the device out of curiosity and to find out what it was. We were impressed to see so many of the kids wanting to learn about this tiny micro-computer and what it could do.
Students checking out Raspberry Pi at 2012 Teen Tech Camp
Since the kids from the previous year seemed so intrigued by the Raspberry Pi, that it seemed only natural to focus this year’s event around it. After seeing the initiatives from my colleagues Barbara and Katie at the Young Coders tutorial, which focused on teaching Python through Raspberry Pi, I decided to start organizing a similar event for the 2013 Teen Tech Camp.
Shortly after returning from PyCon 2013, I spoke with Refresh organizer Sarah Kahn about my idea for the next Teen Tech Camp. She was totally psyched about the new angle for the event and we started formulating a game plan to make it all happen.
We started by gathering information and creating to-do items for each of us. We formulated an equipment list, started recruiting volunteers, re-connected with Autumn Winters (Teen Librarian at Southwest Durham Regional Library and co-organizer for 2012 Teen Tech Camp) and reached out to sponsors for fundraising.
In that vein, we also applied for a grant from the Python Software Foundation (PSF) to provide funds for the Raspberry Pi’s, some basic peripherals (SD Card + power supply) and books for the students to take home with them to continue their computer programming education after the camp. After reviewing the proposal, the PSF granted us the funds to pay for all of the proposed items and gave us a great head start!
Other peripherals for the event came from generous donations from businesses like Triangle Ecylcing, an electronics recycling business, Ayima and the members at Splatspace, who created twenty unique 3D Raspberry Pi cases. It was amazing to see my local community come together to donate equipment for the camp. Very cool, indeed.
3D printed Raspberry Pi cases from @splatspace
The night before the camp, we set up all of the equipment. I had spent some time testing all of the peripherals weeks ahead of time, but wanted to make sure that everything would be ready the day of. Volunteers from around the Triangle area came to the library to help set up tables and chairs, plug in monitors, tape down cords and test equipment. It was great to get so much support from the community and also see their enthusiasm for this event!
Volunteers setting up 2013 Teen Tech Camp
After about 2 hours, lots of volunteer help and some masterful debugging by Clinton Dreisbach, we were able to get everything set up for the next day. We never could have gotten this accomplished in such a short amount of time without everyone’s help.
2013 Teen Tech camp setup
The day of the event finally arrived. I stopped by and picked up pastries and juice for the students + volunteers (thank you, Caktus!) and headed to the library.
The students started to trickle in one-by-one, each of them peering over at the work stations to see what awaited them. We passed out name tags, Raspberry Pi magazines donated by Linux New Media and let them settle in.
We started off the camp with teacher and student introductions. Each of us gave our name and favorite video game (most common answer: Minecraft). We then moved on to the first portion of the lesson: What is a Raspberry Pi?
During the first lesson, we went through each component of the Pi and what it does (e.g. SD card, USB output, etc.). We felt it was important for the kids to learn exactly what this little computer really was and what all of the different parts were.
2013 Teen Tech Camp instructor Clinton Dreisbach giving a Raspberry Pi tour, photo courtesy of @rmurphey
We next moved away from the slides and opened up the iPython notebooks for the Python coding examples (slides and examples are availabe on Github). Each student followed along on his/her own machine` using LXTerminal, the command line terminal program that comes with the Raspbian distribution. We reviewed how to use Python to do basic math equations, assign variables, input/output concepts (e.g. print), comparisons, control structures, conditionals and loops. During each section, we went through a few examples and then had the kids try it themselves. With six teaching assistants and one lead instructor, we were able to to go around to each student to provide individual guidance and support. We also included a few Minecraft and other gaming breaks to keep the students engaged.
Students giving a thumbs up while learning conditionals
There were also parts of the camp where we would ask for group participation. For each correct, or even “good try”, answer we had various donated gift items from local companies like Greenlight Community Broadband to hand out.
During the lunch break, Caleb and I did a demo of the game we collaborated on called Razzytails. Both of us went over the parts we contributed towards the game. We then demo’d the actual game and had the kids participate in the Pythonic questions Razzy encountered.
After lunch, we moved onto piecing all of the lessons we learned in the morning to help start writing functions. The students moved out of LXTerminal and opened up IDLE, a simple Python IDE, where they could easily run their functions and save their Python script files. We taught them about the .py file extension and how to actually run the script to make the program responsive. It was so amazing to see what the kids came up with on their own! They had gone from learning how to compute basic math equations to writing whole functions.
Learning how to run and write Python functions, photo courtesy of @rmurphey
Towards the end of class, we stopped coding and showed each of them how to take apart their Pi’s and put them back together. We then let them know that each of them would take home their own Raspberry Pi, any of the peripherals they would need and a “goodie” bag filled with Raspberry Pi stickers, educational books and other materials that would help them in their adventures in programming. It was so cool to see all of their faces light up with joy when they realized what they were going to take home! One of them even said to me, “Are you joking? Are there cameras waiting to come out and surprise me?”
2013 Teen Tech camp students and their Raspberry Pi’s
My goal for the 2013 Teen Tech Camp was not to have the students walk out of the library, ready to take on complex computer programming challenges. It was to spark interest in the students and get them excited about learning computer programming. By using varying techniques and providing a safe space for learning, we were able to engage every student at an individual pace. While I know that the students probably did not come away with a deep understanding of computer programming, they did come away with a positive and supportive experience. They will take away the motivation, energy and drive to keep on learning, because someone believes in them. Because sometimes all you need in order to succeed is someone else telling you, “You got this.” and cheering you from the sidelines. Kids need this the most and it’s programs like the Teen Tech Camp where we can bring a supportive, nurturing environment, along with a challenging learning experience.
Organizing the Teen Tech Camp has really sparked something in me. Having experienced the trials and successes of running an event like this has motivated me to do more and continue to teach computer programming education for our youth. The importance of getting them excited about technology is imperative. I truly believe that it is our responsibility as technologists to reach out to the younger generation and guide them.
The Python community is just beginnning to understand the importance of raising the next generation to be creators and not just consumers. After-school Python clubs, tutorials and classes are starting to spring up around the globe, and more resources are becoming readily available. We all hear the call and I can sense a strong collaboration coming, which will provide any child the type of education necessary to be successful.