Go back
CertifiedEducation quality


Blackbird Code is a text-based programming platform with a comprehensive curriculum for coding.

Blackbird Code's project-based curriculum teaches JavaScript to beginners in an approachable way. Students are introduced to new concepts and techniques in the lessons until they have the skills to create their own programs from scratch in a sandbox environment. Helpful error messages make learning to program in a text-based language easier than ever. Built-in features like the Docs, Show me, and Step Tasks ensure students are successful in learning to code.

The platform includes a full-featured learning management system (LMS) so teachers can monitor progress and interact with students in the classroom or virtually. Teachers can message students, leave code reviews on student projects, organize "warmup" projects, and make class announcements. The teachers don't need prior coding experience.

Age groups 
Middle school
High School
Tertiary Education
Professional education
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.

Blackbird offers excellent pre-curated material for learning to code, both for the teacher and for the students. The guidance is supportive and scaffolded, and students in different skill levels can utilize it as much or as little as they need. The feedback on tasks is timely, interactive and encouraging. The program doesn't punish mistakes but guides towards correct answers with many clever features and uses motivating gamification elements.
The learning path in Blackbird is divided to small parts, where users the user are clearly told, what they are learning next. The lessons are structured so that the learner will need to remember and repeat the commands they have learned several times until they know how to use them. Before moving to the next level, the learner is tested. However, the key to learning coding happens through creative tasks. There a plenty of opportunities to engage in open-ended problem solving.
The Units follows linear, predetermined user progression, and learning progress is directly comparable between users.The teacher has extensive tools for monitoring progress and understanding the students' level of learning. The students can progress through the lessons very independently, so it is easy for the teacher to eg. schedule some milestones or give Unit lessons as homework, and still allow the students to spend as much time with them as is needed. The project library is very extensive.
Communication and collaboration features in Blackbird Code are executed excellently! The students can co-write code and very easily share projects to others. Chat allows direct communication with the teacher. The sharing options are executed in a way that makes them safe and requires consent from all parties.

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

Blackbird Code supports learning and practicing textual programming concepts with a very well designed learning path.
Blackbird includes great example projects that inspire your own work.
New concepts and structure of code are well explained, and the learning approach suits a broad age group who wants to learn textual coding.
Communication and collaboration options are excellent, and there are many tools for teachers to monitor and control tasks.

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

Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
Develop programs with sequences and simple loops, to express ideas or address a problem.
Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks.
Using correct terminology, describe steps taken and choices made during the iterative process of program development.
Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
Give attribution when using the ideas and creations of others while developing programs.
Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
Design and develop computational artifacts working in team roles using collaborative tools.
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.
Create programs that include sequences, events, loops, and conditionals.
Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
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.
Create procedures with parameters to organize code and make it easier to reuse.
Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
Incorporate existing code, media, and libraries into original programs, and give attribution.
Systematically test and refine programs using a range of test cases.
Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
Document programs in order to make them easier to follow, test, and debug.
Model the way programs store and manipulate data by using numbers or other symbols to represent information.
Demonstrate code reuse by creating programming solutions using libraries and APIs.
Develop and use a series of test cases to verify that a program performs according to its design specifications.
Evaluate key qualities of a program through a process such as a code review.
Use and adapt classic algorithms to solve computational problems.
Create programs that use variables to store and modify data.
Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.
Evaluate and refine computational artifacts to make them more usable and accessible.
Work respectfully and responsibly with others online.
Keep login information private, and log off of devices appropriately.

Soft skills learning goals

Practicing to notice causal connections
Learning to build information on top of previously learned
Encouraging to build new information and visions
Learning to combine information to find new innovations
Practicing to notice links between subjects learned
Practicing to work with others
Enabling the growth of positive self-image
Practicing to find, evaluate and share information
Practicing keyboard skills and touch typing
Using technology resources for problem solving
Using technology as a part of explorative and creative process
Using technological resources for finding and applying information
Understanding and practicing safe and responsible uses of technology
Practicing logical reasoning, algorithms and programming through making
Using technology for interaction and collaboration
Using technology as a part of explorative process
Practicing memorizing skills
Practising visual recognition
Learning to notice causal connections
Practicing persistent working
Learning to find the joy of learning and new challenges
Practicing creative thinking
Encouraging students to be innovative and express new ideas
Practicing strategic thinking
Practicing time management
Learning to plan and organize work processes
Practicing decision making
Practicing versatile ways of working
Realizing the connection between subjects learned in free time and their impact to skills needed at worklife
Learning to acquire, modify and produce information in different forms
Practicing to use information independently and interactively
Learning the basics of spelling
Building common knowledge of technological solutions and their meaning in everyday life
Understanding technological system operations through making
Practicing letters, alphabets and written language
Practicing to take responsibility of one's own learning
Practicing to set one's own learning goals
Practicing to evaluate one's own learning
Creating requirements for creative thinking
Practicing to improvise
Practicing to use imagination and to be innovative
Practicing to use imagination and to be innovative
Practicing to use arts as a way to express
Developing problem solving skills
Practicing to create questions and make justifiable arguments based on observations
Practicing to look things from different perspectives
Practicing to plan and execute studies, make observations and measurements
Learning to face failures and disappointments
Encouraging the growth of positive self-image
Learning to face respectfully people and follow the good manners
Learning to listen other people’s opinions
Learning decision-making, influencing and accountability
Learning to understand the meaning of rules, contracts and trust
Practicing to give, get and reflect feedback
Encouraging positive attitude towards working life
Learning to use foreign language in work context
Connecting subjects learned at school to skills needed at working life
Practicing logical reasoning to understand and interpret information in different forms
Practising to understand visual concepts and shapes and observe their qualities
Practicing fine motor skills
Practicing categorization and classification
Practicing to observe spoken and written language
Practicing to find ways of working that are best for oneself

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