As students go through the courses, they get acquainted with the possibilities and impossibilities of programming and acquire insight into the power of logic. They will also gradually learn how a large problem can be solved by breaking it up into smaller pieces which can be solved more easily. This, of course, is a skill that comes in handy when doing other courses or studying other application areas.
Everybody in this country should learn to program because it teaches you how to think
— Steve Jobs
With programming, you learn how to automate repetitive tasks, transform perceptions into actions and come up with ways to make smart decisions, even if in unknown situations. However, purely teaching how to program is not our main goal.
When teaching a natural language, you do not aim to train students to become writers. When teaching math, pupils do not need to end up as mathematicians. With programming it is the same. You do not need to become a programmer to benefit from understanding fundamental concepts. That is why we rather talk about Computational Thinking...
Let Bill Gates, Mark Zuckerberg and others convince you why learning how to program matters.
Computational Thinking is a term used for the fundamental patterns that drive almost any machine. Therefore we define it as:
How to make a machine work for you.
— RoboMind Academy
There are several other definitions around, and a more formal one states:
Computational Thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent.
— Cuny, Snyder, Wing
The RoboMind Academy offers an attractive environment that trains Computational Thinking. When building the Academy, the field of Computational Thinking was analysed and divided in a fine-grained structure of concepts and skills. Each of the provided courses, presentations, quizzes and challenges trains a specific set of these aspects. The following table shows you the hierarchically structured concepts and skills that make up the field of Computational Thinking.
|Programming||Mathematics||Problem solving||Creating solutions||Communication||Applications||Understanding|
|Control flow (sequences, loops, conditionals, procedures), Syntax, Programming paradigms||Logic, Geometry, Algebra, Statistics||State space, Goals, Problem formulation, Search strategies, Solutions, Execution, Evaluation||Modelling, Abstracting, Debugging, Refactoring, Documentation||Project management, Pair programming, Sharing knowledge||Robotics, Art, Transportation, Logistics, Planning, Home automation||Explain working, Questioning solutions, Seeing Patterns: in Applications and across Domains|
Computational thinking is sometimes organized around three main aspects: Computational Concepts, Computational Practices, Computational Perspectives. The RoboMind Academy recognized seven areas that are covered.
Programming is, as mentioned, an important area to train logical and structured thinking. The basic building blocks of automation are covered: sequencing actions, defining repeated sections and decision making based on perceptions. These are the ingredients that can be written down in a formal way. In later stages, you learn to analyze the choices made in programming languages.
Fundamental parts of mathematics are naturally covered when doing exercises. By writing down under which conditions an action should be performed, logic is introduced. The robot world demonstrates geometry in various navigational tasks. When rewriting a solution, algebraic rules will guide you to do it correctly. Random processes are at the basis of many modern applications, from banking to developing medicines. With RoboMind you can observe this yourself.
Problem solving is a another core concept of Computational Thinking. First a problem needs to be analysed in order to come to a precise definition of the goal. Then a possible solution for the problem needs to be found. Possible solutions are evaluated in terms of generality and complexity and can be tried by letting a machine execute it. We train you in this problem solving process in a rigorous way and introduce classical strategies along the way.
Creating solutions in the form of writing a program teaches you many skills: from carefully analyzing a challenge to design, implemention and testing of your solutions.
Big challenges are rarely solved by an individual. Communication skills are trained in demanding problems. From brainstorming sessions, to delegating tasks and presenting results.
Computational Thinking is directly connected to relevant applications in many areas. The robot world is a perfect fit to demonstrate transportation challenges, automation in factories, and searching in an unknown environment.
Understanding what you learned in theory, during the implementation process and with concrete applications, will allow you to formulate design decisions. By evaluating different solutions, specific choices for an application domain will reinforce these decisions. Different application areas of the same core concepts stimulate seeing patterns across domains.