Go back
CertifiedEducation quality


Vidcode is a platform for learning programming

Vidcode provides coding courses for students ages 9 and up with over 300 highly visual, open-ended and rigorous project tutorials. The projects are based on editing visual material through programming. Learning starts with block-based programming, but editing real JavaScript code is always present in the courses. It is also possible to create interactive content, such as games.

Age groups 
Middle school
High School
Not required
Offline play 
Internet required
Educational Quality
Learning Goals

The pedagogical analysis covers how the product supports learning of the identified skills. The student’s role is assessed by four contrary pair parameters, which are selected to cover the most essential aspects on the use of the product.

Learning with Vidcode is based on students doing different kinds of programming related activities. The interactive elements like quizzes and programming tasks make the lessons engaging. Although the exercises are best done in order the student has some choice on which exercise to work on. The exercise topics are very relevant to today's society and work-life. The tasks become gradually harder and more complex, so in order to progress the user is required to acquire and use new information.
In Vidcode, progress is based on utilizing individual tactics to solve challenges. The student is told what they should make, but they have plenty of freedom for trying out different things and the solution uses different tactics to teach things. The open-ended final projects of each phase are very important for the learners to present their learnings and recall the things from the tutorials. The instructions are divided into easily understandable chunks.
The solution follows linear, predetermined user progression, which is necessary for teaching computer science, where one needs to build upon previous concepts to learn new things. The evaluation of student's skills is easy for the teacher and the Dashboard gives nice analytics and easy access to published projects, so both students and teachers can clearly see the progression. The students can return to their old work as much as they like and try eg. the quizzes several times.
The user can act and progress autonomously. The solution allows the user to act openly and show their own activity. The solution promotes the sharing of learning outcomes in the gallery, which is nice looking and easy to use. The students can leave likes but not comments on the gallery projects. The teacher's guide gives instructions for peer-programming and pair work done in class.

The following are the high educational quality aspects in this product.

Vidcode is a great solution for learning basic concepts of programming through manipulating images and videos.
The visuals and topics in the product are close to the students' world and the possibility to use one's own videos and pictures is a nice bonus.
The user interface is clear, intuitive and easy to use.
The learning topics are divided into smaller tasks, where it is easy to progress based on your skill and interest.

The supported learning goals are identified by matching the product with several relevant curricula descriptions on this subject area. The soft skills are definitions of learning goals most relevant for the 21st century. They are formed by taking a reference from different definitions of 21st century skills and Finnish curriculum.

Subject based learning goals

Create programs that include sequences, events, loops, and conditionals.
Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
Understand what algorithms are; how they are implemented as programs on digital devices; and that programs execute by following precise and unambiguous instructions.
Create and debug simple programs.
Use logical reasoning to predict the behaviour of simple programs.
Can understand and apply the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation.
Can analyse problems in computational terms, and have repeated practical experience of writing computer programs in order to solve such problems.
Use technology purposefully to create, organise, store, manipulate and retrieve digital content.
Design, write and debug programs that accomplish specific goals, including controlling or simulating physical systems; solve problems by decomposing them into smaller parts.
Use sequence, selection, and repetition in programs; work with variables and various forms of input and output.
Use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs.
Design and develop modular programs that use procedures or functions.
Understand and apply the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation.
Understand several key algorithms that reflect computational thinking.
Create programs that use variables to store and modify data.
Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.
Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
Describe choices made during program development using code comments, presentations, and demonstrations.
Document programs in order to make them easier to follow, test, and debug.
Create clearly named variables that represent different data types and perform operations on their values.
Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
Incorporate existing code, media, and libraries into original programs, and give attribution.
Create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests.
Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
Use and adapt classic algorithms to solve computational problems.
Recognise common uses of information technology beyond school.
Create procedures with parameters to organize code and make it easier to reuse.
Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks.
Model the way programs store and manipulate data by using numbers or other symbols to represent information.
Develop programs with sequences and simple loops, to express ideas or address a problem.
Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
Develop their capability, creativity and knowledge in computer science, digital media and information technology.
Using correct terminology, describe steps taken and choices made during the iterative process of program development.
Demonstrate code reuse by creating programming solutions using libraries and APIs.
Are responsible, competent, confident and creative users of information and communication technology.
Can evaluate and apply information technology, including new or unfamiliar technologies, analytically to solve problems.
Understand how data of various types can be represented and manipulated digitally, in the form of binary digits.

Soft skills learning goals

Learning to notice causal connections
Encouraging positive attitude towards working life
Practicing decision making
Practicing to notice causal connections
Learning to build information on top of previously learned
Understanding technological system operations through making
Using technology as a part of explorative and creative process
Practicing logical reasoning, algorithms and programming through making
Using technology to express one’s emotions and experiences
Developing problem solving skills
Practicing persistent working
Practicing to take responsibility of one's own learning
Practicing to evaluate one's own learning
Learning to find the joy of learning and new challenges
Creating requirements for creative thinking
Practicing creative thinking
Encouraging students to be innovative and express new ideas
Practicing to use imagination and to be innovative
Practicing logical reasoning to understand and interpret information in different forms
Using technology as a part of explorative process
Building common knowledge of technological solutions and their meaning in everyday life
Practicing to use arts as a way to express
Practicing to use imagination and to be innovative
Learning to acquire, modify and produce information in different forms
Using technology for interaction and collaboration
Practicing to look things from different perspectives

The Finnish Educational Quality Certificate

Our Quality Evaluation Method is an academically sound approach to evaluating a product’s pedagogical design from the viewpoint of educational psychology.

The method has been developed with university researchers and all evaluators are carefully selected Finnish teachers with a master's degree in education.

More about the evaluation