Dec 02, 2021 By Team YoungWonks *
What is Computer Science?
Computer science is a subject that deals with computers being instructed to perform particular tasks. It is not just about knowing the words that are used to write computer commands - typically known as syntax - it also focuses on the process of writing the syntax, that is in turn called computer programming. The more challenging and important part of computer science is developing problem solving and critical thinking skills to be able to devise the logic needed to solve a specific problem.
Where is Computer Programming (Coding) Used Today?
There are hardly any areas today where computer programming is not used. The most common and popular areas of computer programming as far as kids are concerned are video game development, web development and mobile app development for iOS and Android.
What is a Good Grade and Age to Learn Coding?
(Photo by Arif Riyanto on Unsplash)
An early exposure to coding can be helpful as kids can tap into their grasping power. And yes, this initial learning can help them later on when they opt for Computer Science (CS) at a later age, since they are already familiar with the subject.
But does that mean young kids should be taught coding right from an early age? The answer to that question is not really simple. The fact is that computer programming involves writing syntax and using critical thinking to come up with logic to accomplish the given tasks. And being able to independently write logic is more important than syntax writing. This is why a good coding program focuses on students getting enough practice and thus developing strong problem solving and critical thinking skills. But for kids to be able to benefit from this kind of computational logic development training, they need to be old enough so that they have reasonably developed lateral thinking skills. Starting the kids when they are too young is likely to push them towards memorizing the code instead of understanding it.
Coding programs are thus more suitable for middle school and high school students. Some elementary school kids ages 8+ may be ready for coding programs emphasizing computational logic building using easier-to-program tools such as Scratch or Lego robotics and Tynker, as opposed to some kids aged 10 + who might be ready for Python programming. Attending a free trial class at a good coding program is a good way to evaluate your child's readiness. Parents should be wary of programs that claim that six-year-olds can learn programming. This means that the school is trying to focus just on syntax writing and not really on logic building.
If you do wish for your kid to be introduced to coding at an early age (ages 5-7), it would be good to start with image-heavy kids’ coding tools or games like Scratch Jr. One can then move to simple visual coding languages such as Scratch or Google’s Blockly. These are essentially block-based programming languages where tasks are divided into modular portions called blocks; these blocks are symbolised by icons that can be controlled by clicking and dragging them. The graphical representation of the code makes it easier for kids to understand programming. Those above the age of 10 can look to learn more complex coding languages, aka text-based programming languages such as Python, Java, C# and so on.
Where Can One Learn These Coding Skills?
Coding skills also known as computer programming skills can be learnt in after-school programs, private coding lessons, online courses, summer camps and coding classes in middle schools and high schools. How then does one decide which is the best place to learn coding?
The way to do this would be to look for programs that focus on building computational logic skills with enough assisted practice. It is important to look for a place that will give you long-term value. Take for instance, coding summer camps; today, they have become quite popular. But how effective are they? On one hand, they offer structured learning and help you interact better with other like-minded students under the guidance of your instructor. And if you have a specific short-term goal in mind, a coding camp can help you get there. But at the same time, coding camps are quite expensive and one ends up being exposed to a lot of material in a very short period of time. The schedules can be gruelling and what one learns here may not be very effective. As a result, such a learning format is likely to be not very helpful in the long run.
Meanwhile, online coding classes like YoungWonks make for a better option. YoungWonks curriculum spans everything from foundational computer programming to professional-level programming skills such as Internet of Things (IOT), Full Stack Web Development, 2D and 3D game design, building coding games, Machine Learning, Artificial Intelligence and more. Here, computer science is taught in an environment that constantly encourages students to create fun projects such as building your own app or even your own games. Students get to work at their own pace on a one-on-one basis with a dedicated private teacher or in a small group of 4 students.
This model in turn ensures that teaching is done in a way that the student’s understanding of the study material is deep and thorough. The trial session at the YoungWonks program also includes the program intro where students and parents are walked through the computer science courses that will be taught and the process that will be followed to turn kids into computer programmers. Classes are offered online on Zoom and on RaiseHand, which is YoungWonks’ own online learning platform. YoungWonks also has its own online tutorials that students get access to after each class. In addition to this, YoungWonks conducts hackathons every 3-months where students get to make entire projects in less than a day.
What coding platforms are out there and which one should be used?Shared below are some of the options that are good for kids learning to code. Some of them are real programming languages where one directly learns the coding skills and some of them are tools that are promoted as ways to learn skills that will help kids learn real coding later on.
Recommended options to get your kids started with coding
Scratch is not really a programming language but a tool created by MIT to allow kids to learn coding concepts by building their critical thinking and computational logic skills. It is free to use and cloud based. One can create a free Scratch account by going to https://scratch.mit.edu. It is a great tool to learn coding and logic building skills as long as it's taught with a proper curriculum in place and good guidance. Moreover, it can be learnt by anyone - including adults - to better understand coding concepts and practice computational logic. YoungWonks teachers highly recommend Scratch as a good way to get started with learning coding concepts.
2. Scratch Jr
(Photo by Robo Wunderkind on Unsplash)
Scratch Jr is a mobile app created along the same principles as Scratch and helps little kids (ages 5 to 7) who are eager to know more about coding. Thus, it is good for those who are not yet ready for Scratch. If the user is 8 years of age or older, they can skip Scratch Jr and go directly to Scratch. For more information, visit: https://www.scratchjr.org/.
Python is a real programming language used by leading tech companies around the world. As a multi-purpose programming language, it is used for programming in the fields of web development, data science, Machine Learning, Internet of Things (IoT) using MicroPython and more. Many of the world's well known and loved products - for example, YouTube and Dropbox - are built with Python. Learning Python means directly learning a life skill that is much sought after today in workforces across the world. In fact, Python programming language syntax is closest to the English language; thus the learning curve here is not as steep as it can be while learning other languages. And while Python does borrow heavily from the object-oriented programming language, it is also procedural, imperative and functional. The skills picked up by learning Python can thus make learning other programming languages very easy. For more information, visit https://www.python.org/.
A high-level, class-based, object-oriented programming language, Java has very few implementation dependencies. It is a general-purpose programming language that lets programmers write once and run anywhere (WORA); in other words, compiled Java code can run on all platforms supporting Java without any need to recompile. Not surprisingly, it continues to be a popular programming language both in schools and in the workplace. Today, Java is used for mobile app development, desktop Graphical user interface (GUI) applications, web-based applications, gaming applications, Big Data technologies, distributed applications, cloud-based applications and even IoT applications. For more information, visit: https://www.oracle.com/java/.
A high-level, multi-paradigm programming language created mainly for embedded use in applications, Lua can be used across platforms thanks to its relatively simple C Application Programming Interface (API). And although it was supposed to be a general embeddable extension language, its creators have over time focused on improving its speed, portability, extensibility, and ease-of-use in development. As a result, its popularity has shot up recently and it is widely used as a scripting language by programmers for video game development. The gaming platform Roblox’s features are written in Lua and so does the game World of Warcraft which uses a scaled down version of the language. For more info, visit: https://www.lua.org/.
7. HTML/ CSS
8. Resources for Learning Robotics
(Photo by Hung Nguyen Phi on Unsplash)
a. DIY Robotics with Raspberry Pi
(Photo by Vishnu Mohanan on Unsplash)
At YoungWonks, we understand that kids are curious about robots and this makes robotics an appealing way of introducing kids to technology and STEM careers. Instead of buying robots, YoungWonks encourages kids to build their own robots using Raspberry Pi. For instance, YoungWonks students have built a web controlled robot car and tracker with the Raspberry Pi.
b. Lego Robotics
If you do wish to introduce your kids to robotics through toys, then Lego Mindstorms EV4 and Lego Mindstorms EV3 make for good options. Indeed, the LEGO Mindstorms Robot Inventor line of products comprises impressive robot kits that allow kids to work with five different robot designs; plus there’s an app that shares more than 50 activities that kids can take part in with the robots. Moreover, these robots support both Python and Scratch programming.
c. VEX Robotics
A robotics program meant for people across age groups and skill levels, VEX Robotics also has different types of robots for kids from different grades. In each of its three leagues, students are given a new challenge annually, where they design, build, program, and drive a robot to complete the challenge in the best way possible. The robotics teams consistently demonstrating exceptional skill across these areas get to take part in the VEX Robotics World Championship. Vex Robotics robotic kits are especially ideal for students in advanced grades who have outgrown Lego Mindstorms projects. Their advanced level robots allow programming using Java.
There are scores of other options that kids can turn to in order to learn coding. However, their efficacy may not be as high; it often varies from student to student. Let’s look at a few of them:
(Photo by Robo Wunderkind on Unsplash)
A well-known non-profit educational organization, Khan Academy provides free education to kids across the world through its instructional videos and practice exercises that cover a wide range of subjects, including computer programming, math, science and robotics.
An online game platform and game creation system that lets users program and play games built by other users, Roblox hosts user-created games belonging to multiple genres; as mentioned earlier, all of them are written in Lua. The second half of the 2010s saw its demand soar and the COVID-19 pandemic has only contributed to its growth, especially among kids.
Written in the Java programming language, Minecraft is a sandbox video game that has gone on to become one of the greatest and best-selling video games of all time. In the game, players explore a blocky, procedurally-generated 3D world where they discover and extract raw materials, fashion tools and items using them and go on to build structures. Players can also operate in different modes such as fight mode, survival mode and a creative mode, where players have unlimited resources at their disposal. The game has a simple 1×1 block structure making up the worlds and objects and they can be easily translated into a programming language made up of 0s and 1s. This means that this binary language can be communicated to the computer through lines of code.
The widespread popularity of Minecraft has paved the way for Minecraft modding, which refers to independent, user-made modifications to Minecraft. Today, thousands of mods exist, and users can download them from the internet for free. With the help of additional software, many mods can be used at the same time, providing for more engaging gameplay. In fact, it would not be an exaggeration to state that Minecraft owes its success in part to its strong modding community.
The website RootSaid has scores of free video tutorials on coding and robotics. It also has many step-by-step guides for different Arduino projects.
Robotics for Kids by STEMpedia
STEMpedia has a free online course called Robotics for Kids – Level 1. From assembling basic mobile robots to making a smartphone-enabled robot, the course is a good bet for middle school students.
Sphero is an American consumer robotics and toy company that is known for its educational robot, Sphero BOLT. Designed to teach children (aged 5 years and above) how to code using the mobile app, Sphero BOLT comes equipped with programmable sensors including light sensor, gyroscope, accelerometer, motor encoders, and infrared communications. Thanks to its built-in compass, kids can program BOLT to follow real-world directions on a map. They can also make their robot show characters, graphics and even play games on the robot’s LED.
Botley the Coding Robot
An educational robot toy for kids, Botley the Coding Robot offers an elaborate kit that comes with a 77-piece activity set, a remote programmer, detachable robot arms, 40 coding cards, 6 double-sided tiles, 27 obstacle building pieces and a starter guide with coding challenges. Kids can make Botley carry out different tasks such as detecting objects and moving around them, navigating obstacle courses and following looping commands and black lines.
Tynker teaches coding to kids in the age group of 5 to 14+ years. The curriculum focuses on teaching students the basics of programming, app development, creating games, websites, animation and robotics.
Dash +Dot Robots by Wonder Workshop
(Photo by stem.T4L on Unsplash)
Built by the California-based robotics company Wonder Workshop, the mobile app Wonder for Dash & Dot teaches robotics to kids aged 8 years and above. It has more than 300 challenges covering both building and programming robots, so kids can use the app to make their own robots, update their features and test their simulations.
The above options are said to help kids get hands-on experience of critical thinking and problem-solving. But is that truly the case? Vishal Raina, founder and senior instructor at YoungWonks, points out that while coding and robotics apps and kits can make for good tools, more than often than not, they are reduced to being just props that can only help so much. “Owning such toys and kits can boost a kid’s confidence when he/ she starts learning coding but a few hours of playing a game or tinkering with a robot doesn’t mean the kid will excel at coding later on,” he says, adding that the key to learning coding well lies in acing the basics. And indeed, this is where an after-school coding program comes in; it can help the student build a strong foundation. “A coding class that provides a structured curriculum and solid guidance can actually help students put their coding kits to good use,” shares Raina. The role of teaching methodology too cannot be undermined; it has been seen that a self-paced, enquiry-based style of learning encourages kids to question things and employ analytical thinking.
Encouraging students to build things from the ground up is also a key takeaway that kids wishing to learn coding and robotics can stand to benefit from. This is why Raspberry Pis, Arduinos make for ideal coding kits; they let the kids create something on their own using just the kit’s basic components and materials such as cardboard, wood, 3D printed parts, electrical wires, etc.
What to Look for in a Coding Class
How can one look for a good coding class for one’s kid? There are several key criteria one should keep in mind; let’s look at them below:
1. Fundamentals matter most
A good coding class recognizes the fact that coding boils down to logic and reasoning, and thus focuses on teaching kids the abstract concepts behind how code works instead of just making them just identify patterns in a programming language. At the end of the day, a true understanding of concepts will take your kids a long way and no amount of rote learning can really help beyond a point.
2. Learning by doing
(Photo by Clint Patterson on Unsplash)
Nothing beats learning by doing and it is no different for students learning coding. So a good coding class encourages its students to think big, come up with their own ideas and then explore existing concepts by applying them in their own projects. Such a class goes on to guide them even as they take a software project from idea to architecture to completion.
3. Project-based learning
Solving small, isolated programming problems may be good for practice, but the fact remains that actual coding typically takes place as part of larger projects. So for kids to get an understanding of how coding comes in handy in projects, they need to learn coding in a class that adopts project-based learning. This will prepare them with real coding skills needed in the future.
4. Event-oriented learning
Does the coding class you have in mind for your kid regularly host events such as hackathons and show-and-tell fairs? If not, it’s better to look for one that does so. Events such as hackathons and coding fairs help keep students engaged; they incentivise students to learn coding and use their acquired knowledge to create and showcase interesting projects like games, apps and robots.
For example at HackDay, a hackathon hosted regularly YoungWonks, its students have showcased impressive projects such as a web page aimed at getting people to calculate and then reduce their daily energy consumption; using Google’s user interface toolkit Flutter to create an Android and iOS-friendly game app; an Arduino light sensor/detector that goes on and off in a shoebox when the lid is opened or closed; a GPIO video game controller for a space-themed game and even 3D video games with hand-painted assets. Such projects exhibited at events speak volumes for the student’s progress over time.
5. Emphasis on teaching real world technologies
There is no good substitute for learning about real-world technologies; they are after all actually being used today. This means that a coding class teaching such a modern technology with real-life applications would undoubtedly have an edge over others.
6. Strong sense of community
A strong community can make a huge positive impact on your child and his/ her interest in any given subject. Coding is no different; if anything, a coding class with a strong focus on community building helps ease students into the new lessons which can seem intimidating at first. With students collaborating on projects, they help each other learn and they get exposed to team work and team building.
7. Qualified faculty with good experience
Teachers/ instructors who have significant experience with real-world coding are better poised to teach their students about real-world situations; for instance, they can warn them about potential pitfalls. Such a faculty with enough hands-on experience can impart valuable knowledge about how coding works outside a classroom.
8. Instilling accountability with regular evaluations
A good coding school should regularly evaluate their students’ progress to ensure that no important foundational concepts are missed. The class needs to be continuously invested in its students’ learning journey instead of just getting them to finish the set curriculum.
In addition to the above criteria, factors such as assistance between classes (so students do not lose interest due to minor setbacks) and good operations - as seen from the quality of the homework assignment/review/practice system for students - can also play a key role in the student’s learning. It’s important to keep in mind the safety and security of your child and their privacy in an online class; a healthy student-teacher ratio to make sure the kid is receiving the individual attention he/ she deserves and a well-structured curriculum with clearly demarcated lessons, worksheets and homework.
And lastly, parents need to ensure that a coding program does not water down its curriculum in the name of kid-friendliness. Many complex concepts being used across industries today can be taught to kids (typically older ones) with the right teaching methodology. So it is imperative to bear this in mind before selecting an online coding class for your child.
At YoungWonks, care is taken to ensure that all of the above criteria are met, so students have real results to show. This after-school coding program is WASC-accredited and its students have done extremely well at reputed competitions, such as the first place at the RoboRAVE International robotics competition. Focusing on a strong maker culture, YoungWonks students of all ages are encouraged to work on real, useful projects in areas ranging from web and app development to robotics and AI.
To sum up, if you are looking to enroll your kid in a coding program, it's imperative for parents to do their research and opt for a trial class to see for themselves the quality of teaching being imparted. It would also be good to take a look at the curriculum and the focus on projects and events. With the right guidance and encouragement, kids can even go beyond the scope of the curriculum by tapping into their own potential and actually building something that can make a difference from the ground up.
*Contributors: Written by Vidya Prabhu; Lead image by: Abhishek Aggarwal