We typically use robots to introduce programming concepts. The tactile qualities of a physical object that you can command to move makes programming concepts accessible to even very young learners.

Scratch is our preferred “language” for coders in grades two through four. Scratch is great for learning just about every Programming 101 concept: variables, loops, conditionals, functions, you name it. It’s easy to build games, quizzes, animations, and plenty of other fun projects in Scratch, all while strengthening computational thinking skills like pattern recognition and algorithmic design.

We love the Lego EV3 Mindstorms platform for connecting abstract programming concepts to the physical world. Of course robotics is as much about the physical design of robots as the software design, and Mindstorms are awesome prototyping kits. So kids get experience with both software and hardware engineering. EV3’s block-based, drag-and-drop programming interface is highly intuitive, and provides a perfect match for Scratch…in fact, you can even program Mindstorms from within Scratch itself.

Armed with basic programming concepts, students are ready for Python—an excellent first text-based coding language, and one of the most popular languages in the world. Intermediate and advanced Python programming can get obscure, but we focus on establishing solid fundamentals for K-8 students. Decorators, generators, and other “pythonic” esoterica can come later!

Because so much computing takes place on the web, we also dive into core web technologies like HTML, CSS, Javascript, PHP, and SQL. Independent studies students have focused on coding Minecraft mods in Java, or exploring the world of server and network administration.

Finally, “all work and no play makes Jack a dull boy,” so we do also occasionally offer special Minecraft sessions. In general, we tend to emphasize creative (building) mode over survival (gameplay) mode, and in particular we love seeing student construction of redstone devices, traps, and farms.