Learners can use efficient coding concepts to program the micro:bit e.g. they know how count controlled (FOR Loops) and condition controlled (WHILE Loops) loops can be used. At this level, learners can gain user inputs to create programs. Learners start to consider clean code principles e.g. removing unused sections. Learners should be able to test their algorithms to debug errors and for efficiency. Learners understand the different data types used in programming and document their algorithms using flowcharts or pseudocode. Learners can apply decomposition, abstraction, pattern recognition and algorithmic thinking to develop well-designed programs.
Background information:
• Algorithms - sequences of steps / sets of rules for a particular objective. It’s also worth mentioning the idea of looking for more efficient or sometimes just more general algorithms. It’s important in most recipes to have the steps in the right order!
• Patterns - or generalization captures the idea of the good coder being a lazy coder, building on the work of others, using reusable code libraries and looking to re-use a more general version of their own code rather than writing lots of special cases.
• Decomposition - is about breaking down problems (or systems) into smaller parts – most modern code is modular, as this helps a lot in development and testing, but it’s a useful way of thinking for any project management task.
• Abstraction - one of the most powerful CT ideas, but also quite a subtle one – at one level, it’s about throwing away the unnecessary detail when modelling a system or analysing a problem.