Computational Thinking

Coding In The Classroom: Is MOE Ready For It?

In 2017, Singapore announced a $3 million plan, dubbed the Digital Maker Programme, that aims to distribute 100,000 micro:bits to schoolgoing children and adults over the next two years to teach basic coding.

Coding is an enrichment programme in schools, like music and ballet. Computing is now offered as an O-level subject at Secondary 3, starting in 19 schools. If digital literacy could be as important as reading and writing, should coding be part of the school curriculum in Singapore?

There are practical difficulties to such an approach includes a lack of qualified teachers. The bottom line? If coding is the language of the future, the answer to whether it should be taught in all schools is obvious. As with all things, the devil is in the details. When will MOE be ready for it?

Australia: In 2017, Australian schools introduced the new Digital Technologies curriculum. Every child from the first year of school to Year 10 will be working on the curriculum.

Japan: Starting with the primary schools in 2020, computer programming will be made a compulsory subject in Japanese primary schools. It will be followed by the implementation in middle schools in 2021 and high schools in 2022.

UK: Since 2014, UK is the first country in the G20 to ensure that every child is schooled in coding from Primary until G.C.S.E.

China: Many Chinese children are now getting exposed to coding by the time they reach preschool, as private coding classes for preschoolers open up. Normally, youths of this age are working on mastering math and Chinese, but they are soon possess new skills in technology to go alongside these others.

US: Though Obama’s initiative of Hour of Code, 28 million Americans has been exposed to Coding. One quarter of K-12 schools have integrated Computer Science into their curriculum.

References:

  1. https:// fossbytes.com/ japan-computer-programming-compulsory-subject-schools/
  2. https:// bigthink.com/ ideafeed/ china-is-already-teaching-coding-to-the-next-generation
  3. https:// pursuit.unimelb.edu.au/ articles/ coding-in-the-classroom
  4. https:// edtechnology.co.uk/ Article/ digital-learning-day-coding-in-schools
  5. https:// www.straitstimes.com/ opinion/ add-coding-to-basic-skills-taught-in-schools

 

Computational Thinking and Human Development

Future-Proof Your Child Through Coding

Computational thinking is effectively a way that humans have been figuring out every aspect of life since time immemorial. We have spent centuries understanding what the component parts of any subject matter could be, and the really important ones, we note down so that these can be taught to future generations, such as with music, mathematics, economics, and similar. Other skills that we acquire through socialisation, such as language and social-emotional development for example, require the same steps in order to develop effectively, we just don’t call it computational thinking.

Computational thinking is quite obviously required for coding computers but in a more explicit, concrete and inflexible manner. Coding is a relatively new human activity that is likely to lead the next stage of human development but computational thinking has been around for much longer and is required of us in every aspect of life and from nearly day one.

Computational thinking is described as a process of analysing an array of information in order to identify basic parts (decomposition), ways that the parts consistently work together effectively (pattern recognition), ignoring the unrelated bits (abstraction), logging these elements as steps involved to achieve the process repeatedly (algorithm), and testing out the identified system for faulty assumptions, correcting them where necessary (evaluating solutions).

We do this more often when we are young as a necessary part of learning how to exist in the world and much less as we age and define reliable (enough) rules to live by. When we are young, our brains are primed to do this, but over time we capitalise less frequently on this natural ability. Capitalising on this innate way of learning about the world, ensuring we can identify and positively utilise the ability is one way to ensure that we are all able to continue this important process well beyond the natural developmental period of youth and retain this critical skill throughout life.

Computational thinking has been embedded into standard school curricula in many nations now, whether taught as a discrete learning area, as with the UK and USA, or embedded in each class, as occurs in Finland. The

Given that estimates of up to 60% of current work that can be coded into a logarithm is estimated to be given to machines in the next couple of decades, it is important not just to have an important workforce skill of programming or coding computers in the future but also understanding the way they work, or don’t, is potentially the next step in the development of the critical life skill of computational thinking. For those who are not supported in learning this apparently future-critical skill, there may be a different array of career opportunities, but they are likely to be limited and limiting. Whether one wants to learn to code or not, Computational Thinking is already with us and is here to stay.

Tagged with: ,

What is Computational Thinking?

Computational Thinking has been identified as the bedrock of 21st century skills which anyone should have.

1 What is computational thinking? Wing first defined computational thinking in her 2006 in ACM Communications?Computational thinking involves solving problems,designing systems,and understanding human behaviour, by drawing on the concepts fundamental to computer science?

2 One of the biggest contribution of computational thinking is,as stated,in the area of solving problems.Computational thinking helps one to ask how difficult the problem is to solve,and what the best way to solve the problem is.In this article we will share a problem solving framework inspired from how computer scientists solve problems.This framework is called PCDIT.

PCDIT

PCDIT is a problem solving framework to help novice programmers to write code.

At the same time,we can apply such framework to other context and situations even where computer code is not involved.The framework consists of five non-linear steps that programmers do in solving problems.It starts with P which stands for (P) roblem formulation.

(P)ROBLEM FORMULATION

In this step, one asks questions like: What is the input to this problem? What do we have in hand to start with? What is the output of the problem? What do we want to achieve? What is the computation involved? Or what is the process we need to do? Though this steps is simple as it sounds, novice programmers may have difficulties in identifying the input and the expected output.Sometimes they don’t ask further questions like what kind of input they have,what the domain of the input is,or even what the boundary cases are.

(C)ASES

Thinking through this problem formulation may sound abstract,and that is where step C comes into
play.This step stands for (C)ases,or in programming is more commonly called Test Cases. Rather than
jumping straight into implementing a solution, a programmer designs test cases based on the
problem formulation.Designing test cases may help us to formulate the problem in a more precise manner.It may also help us to think of the boundary cases.The main point of this step is to go into the concrete example and detailsof the various cases in this problem.

(D)ESIGN OF ALGORITHM

Thinking about various cases does not only help us to re-formulate the problem to be more precise, it also helps us to bridge to step D,which stands for (D)esign of Algorithm. By looking at the Cases and work on
those cases, we can start writing our step by step approach in solving the problem.These steps
constitute a solution to the problem,an algorithm.The key element in this step is to write those steps and
re-write them again.One should refine those steps, looking for patterns and common steps that is to be done again and again. Almost all algorithmic solutions comes into three kind of basic structures: sequential, branching,and iteration.We will discuss these patterns in another articles, but now, we are ready for implementation.

(T) ESTING

The last step is called T for (T)esting. One should always test their implementation and see if their solution works.What may not be obvious is that such testing should not be done only after the whole implementation is finished.Rather,it should be done in small bites as the solution is being implemented. One should learn to test in steps as well as to test for all the possible cases.We can see how these steps may not be linear as we can discover more cases or even found out that the solution may need some refinement.There maybe cases when we need to refine our problem formulation.

In summary, PCDIT framework which is used to help programmers writing a computer code can be used consciously or unconsciously by anyone in any other problem solving situations.Such computational thinking helps one to solve problems systematically.Such thinking helps one to solve the problems more thoroughly by analyzing different cases of the problems.Such thinking encourages iteration and refinement of the solutions as well as testing those solutions in bites and in big chunks.Maybe that is why computational thinking is identified as the bedrock of 21st century skills for today’s world and the future.

References

(1) Kurshan,B.Teaching 21st Century Skills For 21st Century Success Requires An Ecosystem Approach
https://www.forbes.com/sites/barbarakurshan/2017/07/18/teaching-21st-century-skills-for-21st-century-successrequires-an-ecosystem-approach/#116570f73fe6 (accessed Jul 24,2018).
(2) Wing,J.M.Computational Thinking.Commun. ACM 2006,49 (3),33?35.

Download this White Paper – Computational Thinking

Tagged with: ,