The Coding Club Learning Philosophy

The Coding Club uses project-based curriculum to teach children coding and computer science. This “reorganizes” a curriculum around student projects as opposed to a fixed scope and sequence like Common Core. The benefit is that students who complete projects may understand the subject matter more deeply. The challenge with project-based Curricula is that they are often hard to do at scale and require a lot of teacher guidance.

Project-Based Learning

With this in mind, The Coding Club tries to solve the challenges in two ways. First, we have built an interactive online project-based curriculum that allows students to progress independently.

Student Teacher Ratios

The second way we handle Project Based Learning challenges is by having a lower student/teacher ratio. We are careful to staff our program with trained instructors who have enough time to help students. We aim to provide continuous feedback to families, who are primary motivators for children.

Independent Projects and Common Core

Our goal is to enable students to create independent coding and robotics projects by the time they reach high school. This will put them in a great position. Some subjects that they learn while coding are not in the same order as Common Core. For example, cartesian coordinates (grade 5), algebra (high school) trigonometry (high school) are such an important part of programming that they taught much earlier. This is one advantage that coding has over more didactic learning approaches such as math tutoring. Students naturally end up understanding concepts across a wide variety of subjects because they are more motivated to understand - it is often required to finish their projects.

Programming Languages

We use developmentally appropriate programming environments depending on student developmental phases. When students are younger, they work primarily in visual environments such as MIT Scratch which are easier and more forgiving. After Scratch we make the transition to other languages. The next stop is CoSpaces which is coding in 3D but still uses block-based coding. Then, as they progress, much learning takes place in Javascript using BitsBox. We chose Javascript given that it is ubiquitous, web-accessible and easy to understand. It avoids complex configuration requirements necessary for other common teaching languages such as Java or Python. These languages are great for learning computer science concepts, but often require a custom development environment and much configuration. Once students understand computer science fundamentals, there is a much broader array of languages available to them, and most concepts translate well from one language to others.

Developmental Phases

We have divided up our curricula into 4 distinct developmental phases. Children typically fall into one phase, and some may move faster or slower through those phases as they progress. This sequencing gives an understanding of what is truly involved in learning to code, as well as its long term benefits. Please visit our Join Now page here for times and days and to register for any of our classes!

The Coding Club Student Coding Development Phases

Phase 1: Literacy Fundamentals
Grades K-2

Literacy requirements are more rigorous for coding than in school. Students must be able to read, follow directions, write, use a desktop computer, understand basic arithmetic and cartesian coordinates (which we teach them!). During this phase, students often work in MIT Scratch or very basic Javascript.

Phase 2: Programming Fundamentals
Grades 2-8

At this stage, we teach students the fundamentals of programming: How to use variables, loops, functions to create simple animations and games. Students are typically externally motivated at this stage and require a large amount of help from staff. Scope of platforms is typically well constrained to platforms. Most coding here is done in Scratch, WoofJS, CoSpaces and Javascript. Students may start this phase as late as 8th grade.

Phase 3: Integrated Projects, Advanced Math and Robotics
Grades 5-8

Students at this phase learn more advanced math and physics in order to build more sophisticated games, apps, and simulations. They learn about version control and code structure. They learn about multiple number systems (binary, hex), algebra, trigonometry and Newtonian physics. They learn computer science concepts such data structures, algorithms, and Big O notation. At this phase, we encourage students to start using industry standards such as Unity, Git, HTML, Blender, CSS or other tools as necessary.

Phase 4: Independent Projects
Grades 6-8

Students define and create independent and original projects. They are able to complete projects themselves. When, they can solve engineering problems from first principles, process of elimination and internet research. It’s also a pleasure to watch them them work together and help each other solve coding challenges. At the end of this stage, students are prepared for more advanced and intensive opportunities such as paying work, competitions or research projects.