As a consequence of the digital transformation, the development of the so called 21st century skills and competences is crucial for the participation in a rapid changing world and job market. Computational Thinking (CT), as one of those skills, is a way of solving problems from the perspective of a computer scientist and formulating the problem in a form such as an algorithm that is easily readable for a machine or other human.

Following the notion of Bocconi et al. (2016), six core CT skills can be identified: abstraction, decomposition, algorithmic thinking, debugging, automation and generalization.
Abstraction is a higher-level thought process and an essential part of CT. It describes the action of “… reducing the unnecessary detail” of a problem or an artifact. This step during the problem-solving becomes especially relevant for real world applications with sometimes an abundance of unnecessary detail and information. In this context, abstraction can be understood as decontextualization.
Typical questions regarding abstraction are:
What are the key information that I need? How/where do I get those? What is a good representation of my system/problem?
For complex problems, the division into smaller parts can help to find a solution. After such a decomposition, the single parts can be understood, worked on and solved separately. It also encapsulates the modularisation of a working process, enabling the processing of steps towards the solution.
A typical question regarding decomposition is:
Can I divide my big and complex problem into smaller and easier to solve ones?

The definition of clear steps that are easy to follow is part of algorithmic thinking. Usually, this is done in the form of an algorithm, describing the solution process step by step in a general and unambiguous way.
A typical question regarding algorithmic thinking is:
How can I formulate the steps of my solution process clearly?
Debugging in the context of CT means more than just the finding of a bug in a line of code. It means “… the systematic application of analysis and evaluation” to form a hypothesis for possible outcomes of algorithms, methods or approaches and the verification of those hypothesis.
A typical question regarding debugging is:
Can I predict and verfiy the outcome of a method/algorithm?
The transfer and implementation of priorly defined steps to a computer is included in the term automation. By doing so, it is possible to transfer monotonous work to a machine, saving energy and time.
Typical questions regarding automation are:
Does the problem occur only once? If not, how can I automate the solution?
Last but not least, generalization describes the identification of similarities and differences between an already solved problem and a new situation, making it possible to solve the new problem faster based on the already made experience.
Typical questions regarding generalization are:
Is this similar to a problem I’ve already solved? How is it different?
The Project Idea
We want to develop a learning environment <colette/> which can be used to teach and learn CT independently from the socioeconomic background of the students and schools. Using <colette/>, it will be possible to address each CT core skill individually in the generic tasks, teachers get a tool to foster specific CT skills and not just CT as a whole without any further differentiation.