We believe that throughout the entire K-12 education lifecycle, it’s critical for students to have the opportunity to continuously develop their foundation of computer science knowledge. Students who harness the power of computational thinking to will learn and practice modern approaches to problem-solving. By applying computer science as a tool for learning and expression across many interests, disciplines, and industries, students and their communities, will have increased access and opportunity to participate in a world that is already influenced by technology on a mass scale. Scaffolded, project-based computing lessons and practice over time enable students to take new approaches to progressively more complex problems. We strongly advocate for a rigorous and integrated approach to computer coding education. To best illustrate this vision and philosophy, imagine a young student progressing through these kinds of skill-based acquisitions.

Elementary Computation

A Codecrafter begins by sequencing actions, like puzzle blocks, to create computer algorithms that can draw colorful images, illustrate their understanding of a story they read at school, and plot a path on an XY grid. From a young age, Codecrafters understand that computing is a creative experience and a tool for personal expression. Like creative writing or piano lessons, each creator learns basic constructs and practices every day to improve their technical ability to express learning.

Middle School Software Engineering

Codecrafters grow more sophisticated in the use of computing concepts and their understanding of why we code. They are able to discuss the merits of computing; the accuracy, reliability, and speed of using a computer to compute increasingly complex problems. They use the computer daily, as well as computational ideas and processes, to enhance their learning experiences in other disciplines. Computing serves as a medium for representing and solving problems. In science class, Codecrafters use computer programming to take in data from a weather station and model the daily conditions or create decision trees and flow charts to model the legislative process in civics.

High School Computer Science

Codecrafters will see opportunities within their community and society for applying computing in novel ways. The concepts and practices of computer science have empowered them to create authentic change on a small and large scale and across a wide variety of interests (or industries). Computer programming skills should be accessible on a basic level. Like a toolbox full of easy to use tools and built up over time, programming knowledge is a modern toolbox. When building a school, which tools should you know how to use? Do you need a hammer or a hammer drill? A screwdriver or an impact wrench? When building a model to understand the spread of a virus or an application to move patient data from their doctor to the ER, which tool will be the best? Students need integrated experience over time to learn how to evaluate which language is right for which job. Would an embedded language, object-oriented, or a scripting language be most appropriate? Binary or HTML? This is not a question for tomorrow. This is a question for right now. We owe it to our students and our communities to make it a priority in their daily education. Codecraft projects, curriculum, and approach allows students to grow, question and solve for today.