In education and teaching, programming competence and understanding are particularly linked to ICT competence and media and literacy. Consequently, they are included in the transversal competencies promoted across all learning areas and subjects.
Programming as such is only described in the National core curriculum for basic education in terms of a few objectives and contents, mainly in mathematics and crafts. As regards pre-primary education and Early childhood education and care (ECEC), programming is not mentioned at all in the basic texts. However, the objectives and contents of computational thinking have already been included in all basic texts from Early childhood education and care, especially in areas of transversal competence.
Computational thinking refers to thinking skills – breaking down a problem into parts, identifying and forming patterns of activity, and generalising and automating actions. It is also an understanding of how computers can be used to solve problems. Computational thinking is best learned by doing, exploring and programming.
The descriptions of programming competencies only summarise the essential sub-areas and objectives and can be supplemented and enriched locally. During 2021, example content will be produced to put the descriptions into practice.
The descriptions are divided into three main areas: 1) computational thinking, 2) inquiry-based work and producing, and 3) programmed environments and operating in them. These descriptions form a competence development pathway from Early childhood education and care to basic education, which can be examined in a separate file by the respective main areas.
Programming competence in early childhood education, pre-primary education and grades 1–9
Early childhood education
Programming competence in early childhood education and care
Small children are familiarised with the technological environment and practise the lessons and basic skills needed in programming. The pupils observe and name everyday technology and devices and reflect on their purpose and the ways they work. The children are encouraged to have a sense of curiosity and wonder about the world around them and are empowered to ask questions and find their own answers to them. This also involves practising logical thinking skills such as categorisation and comparison. The children learn to talk about things and their own thoughts and to work together to follow given instructions.
In Early childhood education and care, children gain experiences of technology and practise skills related to programming by playing and experimenting together, and by brainstorming and creating their own outcomes.
Programming competence in pre-primary education
The children are introduced to computers and learn to observe computer-controlled technology in their everyday environments. The children work together to investigate the ways devices function. They practise organising things in different ways and for different reasons, and how to explain their observations and solutions together. The pupils reflect on, analyse and examine everyday phenomena and problems. The pupils familiarise themselves with different operating instructions and try following and giving instructions in a playful manner.
In pre-primary education, children gain experiences of creative activities and expression through technology. They come up with and build their own devices, robots and game-like environments and describe their operating principles. They are encouraged to present their own ideas and to listen to others and divide tasks when working together.
Programming competence in grades 1–2
The children are familiarised with observing information technology in the world around them and are introduced to robotics. They learn how to describe the operating principles of information technology devices. They practise identifying repetitive formulas and regularities and organising information based on certain conditions. The pupils can talk about their observations and choices using concepts and tools. They can break down everyday problems and experiment with different solutions. The pupils can prepare playful operating instructions that can also be tested with programmable devices, and they also practise identifying faults and errors.
In grades 1-2, the working methods and tools related to programming are used creatively, playfully and by experimenting with the contents of different subjects. The children practise taking turns in task-related roles, as well as presenting and sharing their own ideas with others. Story-based outcomes are implemented using animation or programming.
Programming competence in grades 3–6
The pupils observe programming and robotics in society and consider both the ways of utilising technological solutions and their significance in their lives. The pupils discuss targeted digital content and the way they act in digital environments.
Different solution formulas are used to solve a problem, and the pupils also try to create formulas themselves. The solutions are evaluated using particular criteria. Information is processed and presented using concepts and symbols. Operating instructions and algorithms are prepared using basic programming structures, and errors in the operating instructions are identified and corrected. The pupils learn how to programme in a graphical programming environment.
In grades 3-6, the pupils practise working with determination and iteratively to achieve a common goal. Measurements and sensors, automation and robotics, and various animation and programming platforms are all used in creative expression and in the pupils’ own outcomes.
Programming competence in grades 7–9
Pupils are familiarised with the application of algorithms, automation and robotics in different areas of life. The possibilities, risks and ethical aspects of programmed technology are discussed. Consideration is given to targeted content and personalised services. The social and societal significance of programming and information collected in digital environments is also considered.
Problems and their solutions are analysed, visualised and evaluated using criteria. Various generalisations, diagrams, labelling methods, and logical operations are used to process and present information. Programme codes are interpreted and programmes that appropriately utilise the basic structures of programming are written. Programmes are planned and programmed in different environments.
In grades 7-9, algorithmic thinking and programming are utilised in different subjects and in multidisciplinary learning modules. The pupils design and implement programmed outcomes in creative and collaborative projects that solve subject-related or real-life problems.
Programming = Consist of giving instructions, analysing problems, assessing potential solutions, writing program code, as well as testing the application and fixing any errors. Programming is the part of computing science where thinking (or algorithmic thinking) is put into practice.
Program = A large algorithm that performs a specific, useful function. An example: Mobile phone applications, computer text processors, and any simple or complex programs that you create yourself.
Software = A set of programs and the data, procedures, and instructions that enable the execution of different tasks in a computer system.
Coding = The stage of programming where the actual program code is created. In spoken language, “coding” is currently also used as a synonym of “programming”. An example: Forming variables, loops, and conditional constructs in a way that enables the program to perform the desired action.
Code, program code = An algorithm (or program), created using a specific programming language, that a computer can execute. An example: Part of a program that calculates the total number of hours spent at school if the daily hours or the student’s timetable are entered.
Algorithm = A series of operating instructions aimed at solving a problem or transforming an issue. An example: A cooking recipe.
Programming language = A text-based or visual language used to transform algorithms or programs into a form that a computer can understand.
Conditional construct = The execution of a program will follow one path or another depending on a certain condition. A specific part of the program will be executed if the condition is fulfilled. An example: If it is raining, put on waterproof clothes before you go outside.
IoT (Internet of Things) = The act of connecting objects to the Internet. Over the Internet, different devices can receive and exchange information. An example: A wireless weather station can transmit data to an indoor display and over the Internet to a cloud service, where users will be able to view the data.
Iterative development = A development method through which a product is created in stages. Each part of the product is implemented separately and further developed if necessary. An example: A board game designed in the classroom that is not completely finished when it is released; instead, each part of it (e.g., the game board, game tokens, rules), once finished, is displayed for other people to comment on. The parts are then developed, if necessary, based on the comments.
Variable = In programming, a variable is like a container where data is stored. An example: A mobile game that asks the player’s name in the beginning and then displays it in the upper corner of the screen, requires a variable to store the name.
Programming environment = A program or platform used to create other programs.
Graphical programming environment = An environment where the code is created using visual elements. An example: Scratch.
Text-based programming environment = A text editor used to write code. An example: Notepad++.
Bug = A coding error that causes a program to not work at all or to not work in the correct way.
Embedded system = A device or a system designed for a specific purpose that has an embedded computer in it. Examples: A TV, a washing machine, a digital thermometer.
Artificial intelligence = The capacity of a machine or a program to emulate human functions. An example: A program that recommends new videos based on previously viewed ones.
Loop = A looping structure in programming. Part of a program that is repeated multiple times.
Debugging = The process of identifying and fixing bugs in a program’s code (i.e., errors that cause the program to work in an unexpected way).
Flow chart = A diagram that represents an algorithm or a process, showing the stages using arrows and different shapes.
URL (Uniform Resource Locator) = The unique code of a website. An example: www.uudetlukutaidot.fi