AutoThinking

What is computational thinking (ct)?

Computational thinking (CT) means understanding how a computer ‘thinks’ and how you should work with it in order to reach a desired goal. Computers are very smart, fast machines that can do way more complicated things than humans ever could. However, if we do not tell these machines exactly what to do, they just stop working and produce an annoying list of errors. This can be illustrated by a very simple example. Let’s say we want some program at the computer to draw a nice image of a house. The enticing way to do so, especially for children, is saying: well computer, draw me a nice house. However, a house is not a general shape that is perceived the same by everyone, which is why the computer does not know what to do with this vague command. Instead, we could for example tell the computer to draw a yellow square at the bottom of the canvas and draw a red rectangle on top of that. These shapes can easily be described by mathematical formulas and so the computer knows what to do with these commands. The better we specify the characteristics of the square and the triangle, the more aesthetically pleasing the final image will be. So, the programmer’s skills influence the computer’s output. This is what computational thinking is about (source: https://codeburst.io/computational-thinking-in-primary-education-why-and-how-a2286cdff458).

Computational thinking includes many different skills, such as:

  • Problem solving/algorithmic thinking (problem identification and decomposition)

  • Building algorithms (pattern recognition & generalization)

  • Debugging

  • Simulation

It also includes many different conceptual knowledge, such as:

  • Sequence

  • Conditional

  • Loop

Why is CT very important?

Okay, so now we know what computational thinking is, but why is it so important? As mentioned before, the programmer’s skills influence the computer’s output. Therefore, it is essential to focus on the thinking method, which is CT, behind programming before starting with the actual writing of code. This forces people to learn which sequence of steps is most efficient to solve a certain problem, how specific their instructions must be to reach a desired goal, and how to solve unexpected errors by efficient debugging and creative problem-solving. This will result in more efficient programmers and therefore in cleaner code written in a shorter period of time than what would be the case without the mastering of CT. Also, mastering the skill of computational thinking allows people to tackle more difficult problems, offering many opportunities for future technologies. Furthermore, CT is not only useful for writing code, but also in many other aspects of life. Once people master the skill of breaking complex problems into smaller, more comprehensible steps, they can apply this in any other situation. Think about solving difficult math problems, writing a gigantic report or baking a delicious cake. These tasks might seem difficult at first, but once you are able to break these complex problems into smaller, simpler and more comprehensible steps, it becomes way easier to succeed (source: https://codeburst.io/computational-thinking-in-primary-education-why-and-how-a2286cdff458).

What is AutoThinking?

AutoThinking is the first adaptive educational game developed for K12 (kindergarten to 12th grade students) that uses icons rather than syntax of programming languages, to foster skills and conceptual knowledge of CT.

How is AutoThinking different from other existing games designed for teaching CT?

Unlike existing educational games that mostly promote abstract and conceptual knowledge of CT while encouraging student motivation, AutoThinking not only teaches the essential conceptual knowledge of CT, but also provides learners with opportunities to improve their CT skills.

Additionally, unlike other CT games, AutoThinking ADAPTIVELY teaches both CT skills and concepts, meaning according to individual needs, the game decides to change its teaching methods and gameplay.

MOST IMPORTANTLY, unlike most existing games that use text-based programming language or syntax of programming languages to teach CT without considering that using syntax of programming language is not well aligned with CT's objective and definition, AutoThinking uses icons which reduces students' cognitive load by excluding the chances of syntactical errors.

Why adaptivity?

Non-adaptive learning environment (games in general) may allow students to unintentionally repeat problem-solving tasks that they already mastered or bypass problem-solving tasks before they have been completely learned. On the other hand, adaptive educational environments take into account different characteristics/skills of the learners and behave according to their needs which will eventually lead to improvement in learning.

Additionally, in non-adaptive learning environment, students may get stuck in a problem-solving task for an extended period of time, resulting in frustration and disengagement in learning. However, adaptive educational environments can offer timely and customized feedback, hints, learning materials, etc. to help learners to advance in learning.