Our Approach

We believe that primary school education should be key in laying the foundations for the computational thinking necessary to support participation in a computing-rich society. Computational thinking entails developing fluency with programming concepts (key constructs and ideas that are central to most forms of computing). But more fundamental than specific coding details, computational thinking includes the ability to pose problems and seek solutions that use key practices (the activities people engage in when creating computational projects) involved in computing and programming. And beyond solving problems with computers, young people should develop perspectives like digital empowerment, which enables them to see how challenges in the world around them could be addressed through computing; and computational identity, which instills in them the knowledge that they can have active, positive roles as people who can use computers to enhance their lives and the lives of people around them.

Our vision is that by supporting children in developing their computational thinking, we can help them transform from passive consumers to active designers and shapers of the digital future.

CT Concepts


CT Concepts

< Sequences / > : identify a series of ordered steps for solving a programming task
< Events / > : one thing causing another thing to happen
< Conditionals / > : make decisions based on conditions
< Operators / > : support for mathematical and logical expressions
< Parallelism / > : make things happen at the same time
< Repetition / > : run the same sequence multiple times
< Naming and Variables / > : store information to be referenced and computed in a program
< Data structures / > : basic ways data are stored, retrieved, and updated
< Procedures / > : create code blocks to modularize and abstract sequences of commands

CT Practices


CT Practices: Problem-solving Skills

< Testing and debugging / > : make sure things work, otherwise find and solve problems when they arise
< Being incremental and iterative / > : develop a little bit, then try it out, then develop more
< Reusing and remixing / > : make something by building on existing code, projects or ideas
< Abstracting and modularizing / > : explore connections between the whole and the parts
< Algorithmic thinking / > : articulate a problem’s solution in well-defined rules and steps

CT Perspectives


CT Perspectives: Identity and Motivation

< Expressing / > : create and express ideas through this new medium
< Questioning / > : feel empowered to ask questions about and with technology
< Connecting / > : appreciate that others are engaged with and appreciate one’s creations
< Digital empowerment / > : develop the ability to see problems in the world as solvable through code
< Computational identity / > : see oneself as being able to enhance the world through coding


Check out our
View Now


Wish to learn more about
computational thinking?