The students coded with three different programming tools during the camp: Scratch, Python, and Java. Scratch is tool designed for beginning programmers that uses a drag and drop interface to snap blocks of code together. It introduces programming concepts but also allows room for creativity with a built-in graphics editor so the students can create their own sprites and backgrounds. Python is chosen as the starting text language because of its easy to read syntax and popularity in schools and universities. Finally, Java is introduced later in the week to give an introduction to object-oriented programming concepts. This is done using a development tool with built-in classes and methods for manipulating graphics, movement, sound, etc., to give the students a head start on making something interesting. Overall the camp is project-based and largely interest-driven so students can focus on the tool(s) they wish.
“I really enjoyed working with the students all week and was surprised by the challenging coding projects they took on for the final presentations. It was wonderful to see and I know the parents were especially proud.
— Scott Blanck, Start Code, Founder and Program Director
At the end of the week each student presented a project that they worked on during the camp. They were free to present something in Scratch, Python, or Java.
For Scratch, the first presentation was a 2D fighting game that included many sprites and over 100 graphic files that the student imported and edited from Google. He used these images to animate the character sprites various fighting moves and then he programmed a fighting AI logic with the help of the instructors. The game truly looked like a classic 8-bit game. Another student created a platform jumping game with several levels that used event-driven programming and broadcasts to communicate the new level starts to all sprites and backgrounds. A third Scratch project was a homemade Space Invaders game in which the student created his own sprites for the invaders, UFO, and player ship. He then programmed the game to include invader movement, shooting, UFO behavior, score, etc. Two other projects were created with the Scratch 2.0 website online tool. These included a funny story with several episodes and repeating characters between episodes, and a tank game complete with a splash screen and coded computer opponent AI.
For Python, one of the students first did a lesson of tic-tac-toe to introduce coding using arrays for the game board and playing against a simple computer AI. Then the student asked two fun questions. "Can we make this two player?" and "What happens if the computer plays against itself?" Sure thing, let's do it! He modified the Python code to create both games and presented them on Friday. A second Python project was called Great Empire Creator and was similar to a text version of civilization and world of warcraft. Players could choose to create things like mines, barracks, troops, and then upgrade them to fight orcs. The student took this project home each night to keep coding and it was impressive to see the scope of the game after just a week. Another student focused on a Python book that introduces the concept of ciphers and encryption. The student chose one of the most challenging ciphers in the book (the Vigenère cipher) and created a tool that could encrypt, decrypt, or hack the cipher using a dictionary file. If was great to see him present this project by describing the cipher (not an easy task) and then showing how it worked.
Finally for Java the students were given a pre-built game scenario in which they try to optimize the code to get the highest score. The game involves some small aliens that first land their spaceship on a map and then try to retrieve as much food as possible. Given some Java methods for movement, collecting food, and sensing the world, the students then try to get the highest score over several maps. One student took on this challenge and she had some great ideas. She improved the aliens movement for returning food around obstacles and used methods to communicate between aliens to improve her score.
Volunteers from LexisNexis came out to speak about their jobs to show the kids a future pathway with the coding skills acquired during the week. As instructors, we really enjoyed working with the kids and were surprised by the challenging projects they took on for their final presentations to parents, school staff, and LexisNexis volunteers. The parents and staff were especially proud. Thank you to LexisNexis and Cumberland for having us and to Monica Garrett for making it happen!