coding

5 Top Questions Parents Ask About Coding For Their Kids

Here are the 5 Top Questions Parents Ask about Coding for their kids:

1. Why should my child learn Coding even though he/ she does not wish to work in the IT industry in the future?

Learning to code is not able being software engineers or programmers, it is about developing computational thinking skills. Computational thinking is how software engineers solve problems. It combines mathematics, logic and algorithms, and teaches you a new way to think about the world.

Computational thinking teaches you how to tackle large problems by breaking them down into a sequence of smaller, more manageable problems. It allows you to tackle complex problems in efficient ways that operate at huge scale. It involves creating models of the real world with a suitable level of abstraction, and focus on the most pertinent aspects. It helps you go from specific solutions to general ones.

2. Isn’t programming too complex for kids? I have heard of C, Java – how can young kids learn those?

Traditionally programming required knowledge of syntax, that is, the use of sequences of text including words, numbers, and punctuation. You are right, this is a complexity that children cannot successfully navigate.

But visual-based programming, such as Blockly, that uses blocks like pre-created code, and ensures kids can focus on the fundamental programming logic, rather than syntax.

Children can easily drag and drop to write a program (that is, build a game, a story) that works. Kids don’t get frustrated with a program not working because of a missing semi colon!

3. When should I start my child to learn how to code?

It’s common knowledge that children under the age of 7 acquire foreign languages extremely rapidly. So why not the computer vernacular?  Researchers have found that the best age range to begin teaching children a second language is between 2 and

Childhood and early adolescence are the critical age ranges for children to learn anything, including programming, because their brains are still developing and learning how to learn.

4. I don’t know anything about computers or programming. How do I know how he./ she is progressing?

Every member of The Lab is meticulously tracked by our system. From the time taken to finish a challenge, to number of attempts taken, all these are captured and recorded in our cloud database. Parents can log in into our system to see your child’s learning progression. Our curriculum is well-documented and reviewed by Dr. Oka Kurniawan, a professor in SUTD.

5. There are so many programming languages. Which one should my child learn?

The easiest coding language to learn for the first time learners is Python. Python is open source and free to use, even for commercial applications. Thanks to its flexibility, Python is one of the most widely used high-level programming languages today.

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: ,