Last Friday, KTBYTE conducted a live seminar on Wechat answering some frequently asked questions by our parents. As many of our students are between the ages 8-18, the seminar focused mainly on the benefits of learning Computer Science at an early age.
The Seminar was given by three KTBYTE instructors and Software Developers: Benjamin (Cornell Alumni), Vishnu (Yale Student), and Leo (MIT Alumni).
What are the benefits of learning Computer Science at a young age?
Benjamin — “We were very lucky to have started learning CS when we were kids. I started Computer Science when I was 5, and Vishnu started taking classes with us in 8th grade. We appreciate it because it is so much harder to Learn CS in College versus learning as kids. Ages 8-12 are like the golden years for learning CS, because they are not burdened by other academic activities or obligations. It is sort of similar to learning a musical instrument or a language.
Oftentimes, we are not just teaching CS, but also teaching mechanical skills like typing, muscle coordination, and abstract problem solving. Some younger kids might not even know what up, down, left, and right means, what are coordinates, acceleration or velocity. So, the learning they’ll be doing will be across purposes. Vishnu, for example, is making an application for his workshop class this Summer.”
Vishnu — “In my class, I teach kids how to make a virtual piano, drum sequencer, and a random song generator. I think it’s really great because these are some of the practical applications of CS, where students can see the software for making music is done through programming. And that we are building the tools that can be used for making music in the real world.”
The Difference between Programming and Computer Science:
Benjamin — “A lot of people think Programming and Computer Science are the same thing, especially since there are lots of programming classes that are popular these days. But, they’re actually different. It comes down to how to break down problems into smaller pieces, versus having to know a specific language. The important thing is to not have kids learn C++, Java, Swift, or any specific language. But, to have them solve complex problems.”
Vishnu — “One of the reasons I love CS is because you can apply it to a lot of areas. For example, I started out making little games with my friends, which was a lot of fun. Sophomore year of high school, I took the AP CS, where my friend and i made this big iPhone scheduling app for our whole school. Our school still uses this app till this day. CS is a way to improve the world, I think. I also took some USACO (USA Computing Olympiad) classes at KTBYTE, and I think USACO is a really fun programming contest where you do basic problem solving in programming. Just like how in Math competitions, you do math problems.”
What is the USACO?
Benjamin — “The USACO is a free Competition. Every year, they have four exams that lasts around 4-5 hours. You don’t need to register or apply for it. Just simply go online and take the test. The test involves having students solve English problems like having to find the shortest distance from a to b, be able to optimize some kind of equation, and to convert something into an algorithm. These algorithms might take students weeks or months to learn.
Students that learn CS when they’re in their junior or senior year of high school are also overwhelmed with SATs, APs, and/or other school activities. Students in 5-8th grade are the most free, and they’re going to find it the most fun. They’re playing games with friends, making memes, funny images, and learning to apply technologies that previously seem like magic. In the beginning, some of our students can’t tell the difference between the computer and the Internet. After a couple years, they can write algorithms better than most high school and college students.
Another thing to point out is that there aren’t that many girls competing in Computer Science. Because of that, many programs (ie. MIT PRIMES, USACO) will give special preferences to girls. Many of our female students who have competed in the USACO were able to get into whatever college they wanted to.
How to gain interest in Computer Science?
Benjamin — “In the beginning, interest is about exposure. Exposure in a lot of different contexts, not just seeing games (ie. Candy Crush) and apps. But, things in everyday life, futuristic things (ie. self driving cars), and things that don’t seem so technical (ie. a movie, 3D rendering, analysis of a scientific problem).
Benjamin — “So, students have a lot of different options for CS applications, like in Physics, Art, and Music. And, they can create different games too. Students are not only learning programming, but also expressing themselves in a creative way.
How do you gain fluency in Computer Science?
Benjamin — “When we say we want the students to be fluent in CS, it’s the same as wanting them to be fluent in a language. In the beginning, you’re just reading and seeing what’s going on. You can’t really write, and you certainly can’t interpret other people’s work and debug. It takes many years to gain fluency because fluency takes a lot of practice. That means that students use a lot of our teaching tools to be able to practice this discipline. They practice it live with instructors or at home.
Leo — “So I’m going to be talking about how some of our students practice coding. One way is live with an instructor. We have a tool called the KTCODER, where students can write, review, and run code, all while an instructor is watching them live. The instructor can help them debug their code (find and solve problems in their code), give them advice, and make sure that they’re having a fun learning experience.
Besides live coding, students can also do problem sets at home by themselves, like homework. For example, let’s say you have a problem where you have to convert Fahrenheit to Celsius. This is not like a multiple choice problem, so the student will have to write code to solve this problem on their own. If they can’t solve it, then they can get help with the instructors live online.”
Benjamin — That kind of practice is super important. As anyone who have learned an instrument and practiced scales will tell you, you need to have that low level practice. Part of it is having that environment where you’re always working on it and making improvements. We want students to not just build cool projects, but have understanding for data structures and algorithms (which are building blocks). Because, once you have a good idea of how to use the smallest building blocks, you will have a firm foundation to build all sorts of more complicated things later on. That foundation that they build with practice is really important.
Cross Disciplinary Applications of Computer Science:
Benjamin — “One of my students wants to write a program that differentiates between real Harry Potter books and Harry Potter Fan Fiction (writing by other people using the same characters). This is an example of a fun kids project. But, the same method can be used to identify whether or not a text is written by one political affiliation or another, or if a text is a positive or negative review on a website. So, CS can be applied to these other areas.
Vishnu — I’m studying CS and English in College. You might think that they’re two polar opposite disciplines, but there is an intersection between English and Computer Science. For example, you may have heard of a program called Grammarly. Grammarly checks whether what you type is grammatically correct. You might think, how do they do that? It turns out that they use Machine Learning to see and analyze what you write, and compare it to other things. Then, they are able to tell you if what you are typing is grammatically correct. It’s interesting that things you think are different can be joined together by Computer Science.
Benjamin — That’s why fluency is so important because you can apply CS in so many fields. Some of our AI (Artificial Intelligence) students use the Python (Programming language) to create image recognition computer vision that enables self drivings cars. It’s funny because we don’t actually teach our students Python. We teach Java. And so, how are they able to do AI and Machine Learning? Well, once students have a firm foundation in Computer Science and in one language, they can start learning other languages pretty easily.
What do students learn when they study Computer Science?
Benjamin — I said that language isn’t too important. But, I still want to talk about the languages we teach and how we teach them. We primarily teach Java, because Java is used in AP CS in the US. So, that’s the language they’ll have to learn if they learn programming in high school. It’s also the most popular language in competitions like the USACO. We usually start with teaching very simple Java using this environment called Scratch or Java Blocks that don’t require them to type the code. They can just click and drag blocks. Eventually, they can use Processing to get up to higher level CS topics, using more advanced tools.
Vishnu— Processing can be thought of as a version of Java. One of the beautiful things about processing is that it’s very interactive. I know that later in my coding career, things can be a little bland because you’re just staring at lines and lines of code. But Processing is cool because you can draw pictures and use libraries to do cool stuff like make sound.
Learning Computer Science at KTYBTE
Benjamin — “We try to give our students a lot of help along this learning process. We offer Office Hours, where students go online and talk to one of our instructors. It can be to ask for debugging help or even to gain motivation. This is one of the ways we inspire our students.
Our Summer 1-Week-Long In-person classes, in Lexington, MA, allows students to come in and make a bunch of different games and applications. In two or three days, they can learn a full language and then apply that to make personal projects. For students who want to deep dive, that’s great.
We also have longer classes during the Summer, and full semester classes in the Fall. These classes are progressive with homework. And, it allows students to build up their fundamentals.
So, if your son or daughter is 8 or 9. We recommend the in-person class because it’s more interactive and social because they can sit next to a friend.
Over time, when they get to around 10 or 11, the online format is really convenient during the Summer and the Fall. Students don’t have to go anywhere. They can conveniently access everything they need from home. From our perspective as instructors, we can see their screens a lot effectively when we have all their screens right in front of us, and we don’t have to walk around the classroom. We can make sure every student is focused and making progress during class.”
Making Games versus Playing Games
Benjamin — “A lot of parents ask me: ‘My child plays a lot of games. If they learn to code, will they play even more games?’ But, making games and playing games are actually very different. In the beginning, kids will want to replicate games they frequently play. But, they will realize quickly that making games is way harder because there are lots of detailed problem solving involved. Thus, they are only able to make a small portion of it. Some kids might slowly use the energy they spend on playing games and put it towards programming. They realize that everything they see out there is something that somebody had to create. When they gain confidence from creating something, they also realize that ‘Oh! I can do this! I can become whoever i want to be and make what i want!’.
For example, students may first be playing a game like Minecraft, then they’ll be modifying in Minecraft, and then later they’ll try to create a game like Minecraft. By that point, they’ll start succeeding in competitions, starting their own CS club at school, joining a robotics club, or programming with friends.
I’m always amazed at how our students are so far ahead from I was, and I learnt programming 5-6 years old. So, by the time I was 15-16, I had learnt it for a decade. But these students, in 2-3 years, learn what took me a decade to learn. And at that point, they’re proud and confident in their abilities and feel like the world is their oyster.