CompThinkingFramework

advertisement
CompThinking track at
Telerik Kids Academy
1
1. What is Computational thinking
In Computer Science, the key processes focus upon computational thinking. Computational
thinking is the process of recognizing aspects of computation in the world that surrounds us,
and applying tools and techniques from computing to understand and reason about both
natural and artificial systems and processes. Computational thinking is something that people
do (rather than computers), and includes the ability to think logically, algorithmically and (at
higher levels) recursively and abstractly.
2. Goal of the CompThinking track
The goal of the CompThinking (working name) track is to provide a way for a broad mass of
children to gain an understanding of what is computer programming. The track focuses on the
development of computational thinking – the thought process that underpins computer
programming – while providing repeated experience in designing, creating and evaluating
computer programs.
This framework is largely based on the work of the Computing At School (CAS) working group at
the British Computing Society and other researchers.
3. Scope of the CompThinking track
The track targets children with no experience in programming, between in the ages of 10 and
13. The track is to develop the ability to thinking computationally – that is to express problems
and their solutions in a form that can be effectively carried out by an information-processing
agent. The track is to teach children basic but fundamental principles and concepts of computer
science. The targeted processes and knowledge are described in Sections 5 and 6 respectively.
The development path is described in Section 7.
This foundation of skills and knowledge can serve the children for further development in the
field of computer science or software development. Possible paths of further development
include, but are not limited to, switching to more algorithm-intensive programming such as
competitive informatics (Algo track) or towards general software development direction by
attending the School Academy and participating in events like the national IT Olympiad.
4. Definitions
We will provide a specific meaning and usage of several words in order to avoid vagueness and
misunderstanding.
2



Knowledge – facts and information that provide the basis for understanding concepts;
Concept – An abstract idea (e.g. recursion);
Skill – an ability to combine knowledge and concepts in order to achieve a specific goal.
5. Computational thinking processes
The track is to develop several ways of thinking in the described breadth and depth. The
targeted competencies are:





Decomposition – the ability to think about problems, algorithms, processes and systems
in terms of their parts that can be solved, carried out and developed separately.
Abstraction – the ability to hide details and remove unnecessary complexity.
Generalization – the ability to develop general solutions that can be applied to multiple
specific problems.
Algorithmic thinking – the ability to understand and express problem solutions in a set
of unambiguous instructions that can be carried out by a person or a computer
Evaluation – the ability to ensure that a set of instructions is fit for purpose – that is
functionally correct, uses resources effectively enough and fast enough among other
properties.
All of these competencies are to be developed simultaneously. The extent of ability of a child to
carry out these processes defines the attainment level the kid has reached.
6. Targeted concepts
The track’s goal is to provide an understanding of the following concepts:





Sequence – a set of unambiguous instructions to be executed in a step-by-step manner;
Selection – conditional instructions and branches in a sequence of instructions;
Repetition – execution of a set of instructions a specific number of times or as long as
some conditions are satisfied, both iteratively and recursively;
Events – actions or occurrences that can be handled by a set of instructions;
Variables – ways to represent data and events.
The extent of understanding and ability to apply each concept the track targets is more
specifically described in attainment levels.
3
7. Attainment levels
For the one year course, we define 3 attainment levels. Levels are planned so that achieving
each one takes between 9 and 10 weeks, where the weekly engagement is about 3 hours in
lecture and about 3 hours of homework. While not obligatory, it is highly recommended that a
child fully covers a level before progressing forward. Uneven coverage of levels most probably
will lead to difficulties in further development.
Each level represents our current hypothesis of what is learnable for the respective timeframe
by a child in the age range of 10-13. Further levels may be added for a second year continuation
of the course.
Level 1
Can express verbally and in text a set of sequential instructions for achieving a specified task.
(AL)
Can express verbally and in text branching instructions that depend on simple conditions. (AL)
Can carry out a set of linear and branching unambiguous instructions given in a formal
language. (EV)
Can recognize similarities between related yet different problems. (GE)
Understands the notion of variables and can follow the changes in the values of several
variables. (AB)
Understands the notion of events and can provide examples of different types.
Level 2
Can plan and develop a linear sequence of instructions in a programming language. (AL)
Can express verbally, in text or in a programming language branching instructions that depend
on complex logical expressions. (AL)
Can carry out instructions that involve sub-sets of instructions given in a formal language. (EV)
Can describe several separate parts of a problem and the interactions between them. (DE)
Can freely manipulate simple data – numbers and text – in a programming language. (AB, AL)
Can use at least one form of user input in a programming language.
Level 3
Can plan, develop and implement a set of linear and branching set of instructions in a
programming language. (AL)
4
Can assess the functional correctness of a particular set of instructions given in a programming
language. (EV)
Can decompose a problem into known sub-problems, implement solutions to each and
compose the solutions together in a programming language. (AB, DE)
Can create general parametrized solutions for simple problems. (GE)
Can freely manipulate simple data structures – lists, arrays and tables. (AB)
Can use several forms of user input in a programming language. (AB)
5
Download