MVCode 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.
With this in mind, MVCode tries to solve the challenges in 2 ways. First, we have built an interactive online project based curriculum that allows students to progress independently. This works well since much of our subject matter (coding and computers) is online, so it makes sense to have them proceed on computers. We also use technology (mobile apps, push notifications, live remote help) as much as possible to give students and parents a rich and rewarding experience.
However, with robotics, students often need guidance from trained instructors in a more intensive way. We have built a scope and sequence for our robotics education that allows to students to simultaneously build and solve engineering challenges. Coding involved in robotics is often both simple (in terms of quantity of code) and very complex (in terms of understand complex Math and algorithms needed to interact with real world phenomena)
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.
Our goal is to enable students to create independent coding and robotics projects by the time they reach in 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.
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 familes and understand what is truly involved in learning to code, as well as its long term benefits.
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, code structure. They learn about multiple number systems (binary, hex), algebra, trigonometry, newtonian physics. They learn computer science concepts such data structures, algorithms, big O notation. At this phase, we encourage students to start using industry standard such as Unity, Git, HTML, Blender, CSS or other tools as necessary.
Students who understand programming fundamentals can proceed to learn basics of robotics. Circuits, sensors, servos, signals, calibration and electronics fundamentals. Projects are typically well defined. Students learn how to solve hardware problems through process of elimination and first principles. We prefer "open platforms" such as Arduino which expose students to a wider array of components, concepts and challenges. Robotics environments typically include Arduino and C programming.
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. They can aid other students to solve individual problems. At the end of this stage, students are prepared for more advanced and intensive opportunities such as paying work, competitions or research projects.