As a Computer Science major, it’s no surprise that I love to code, however, this wasn’t always the case…
My first CS experience fell completely flat. Without a mentor or any guidance, I thought that coding simply “wasn’t for me”. Since then, the tables have certainly turned.
Now, as a kids coding tutor with Breakout Mentors, I’ve only increased my love for coding. I continue to learn what is possible with creativity and new platforms like Scratch. Working with younger students, I am always inspired to see how talented and creative they are, and I am thrilled to show them what I wish I knew when I was their age.
An Early Love of Math
As early as I can remember, I was very strong in math. I competed in math tournaments at Stanford, MIT and CalTech, and my senior year of high school, I even hosted my own math tournament for elementary and middle school students!
At the tournaments I competed in, hundreds of students from across the country would participate as teams in a variety of “challenges”; these challenges consisted of timed exams, and individuals’ scores would be aggregated to form their team’s overall score. It was a fun way to keep advancing outside of the classroom, and also provided an outlet for academic exploration.
I also challenged myself by taking courses outside of my high school, including in calculus, number theory, and probability. Eventually I stumbled upon an AP Computer Science MOOC (massive open online course) my sophomore year of high school, through which I learned the Java programming language.
An Underwhelming First Impression
While I certainly never disliked the AP Computer Science course, at times I found it–dare to say–boring.
The AP curriculum emphasized what I would call CS “vocabulary”: memorization of rules and concepts that are not necessarily useful in day-to-day coding to bring a project to life. In addition, when we finally started making more interesting applications in the second semester of the class, it often felt contrived. They were not projects that I found relevant to the world around me.
The result? I felt disinterested and didn’t realize the true power of Computer Science. I thought it wasn’t for me, and that I should “just stick with math”.
The Right Instructor Would Have Made the Difference
Looking back, if I had an enthusiastic role model, I am absolutely certain that I would’ve had a different opinion. I have decided, after all to major in Computer Science! It took a little bit of pushing and the guidance of kind, knowledgeable mentors to help me see that I could do more with code than just print dates; I could build operating systems, websites, and servers!
I had this realization after taking the first two CS courses at Stanford led by incredible professors, and supported by meeting weekly with the same teaching assistant. Finally the code I was writing could do incredibly powerful things. Of course I knew that my computer was built on an operating system and that people created and coded it, but I never realized that building this complex software was something I had the capability to do.
I finally had teaching assistants that I could approach with questions and any curiosity, and it was through their help that I really began to understand what I was capable of. Since then, my code has become more complex and integrated with the real world. I’m immensely grateful for these mentors, and for sticking with the subject I’ve come to really love.
Kids Can Learn Problem Solving Through Coding
Coding is an incredible tool, especially when you break away from rote memorization.
It teaches you how to approach problems; very rarely can you look at a problem and immediately know how to solve it from start to finish, but as you begin to break it down, the coming steps become increasingly clear. This concept of decomposition is how students create more involved projects and grow as computer scientists.
They may not be immediately able to lay out a solution in code (sometimes, even I can’t immediately foresee every step!), but they become increasingly able to take ownership of a problem and break it down into a manageable and fun process.
Scratch as a Powerful Tool
Scratch is an exceptional drag-and-drop platform for this work, as I realized through becoming a Breakout Mentor. It makes the creation of visually intriguing projects easy, as it was designed for beginners to focus less on syntax and more on the fundamentals of programming logic.
The user interface is very intuitive and presented in a very colorful and well-designed way. Code blocks are like puzzle pieces, where shapes and colors are intended to suggest how commands should be used in relation to one another. Though it is primarily intended for younger students, it is actually quite powerful and allows for an enormous variety of project implementations and, of course, a lot of learning. It is impressive to see logical concepts I am familiar with from university level courses presented in a kid-friendly manner.
Computer Science as a Creative Outlet
As a one-on-one mentor for four kids, it is exciting to see them have these revelations and the pride they have in their work.
The projects we create together are always fun, from digital Ping Pong to a keyboard version of Guitar Hero. Students are able to build something that they are not only proud of, but are very excited to use. They begin to realize the games they enjoy on their iPads and computers, they can actually create and customize!
Programming might not strike you as an outlet for children with huge imaginations or a lot of energy, but our students quickly realize that almost anything is possible, especially with a platform like Scratch! If you love to play Slither.io, why don’t we make our own version? If you love digital drawing, why don’t we create interactive animations? We can always take excitement for games and ideas and turn them into something tangible.
Balancing Fun and Learning
Through this process, the learning happens naturally. These games always involve movement, repetition, and doing something when objects collide, so often we come back to the same programming logic. Students become increasingly comfortable using the fundamentals they continue to encounter and the mentor can introduce new challenges as they are ready.
Rather than approaching coding as rigid or structured (like focusing on memorizing concepts in AP Computer Science), students excel with a project-based approach (I mentioned how Scratch is excellent for this). Once they’ve mastered the process of turning ideas into step-by-step implementation, they can continue to advance by moving to languages like Python and Java, that are some of the most commonly used in computer science applications in industry.
I continue to be impressed with how quickly students can pick up these logical patterns, and I think the students realize themselves that they are quite capable as well. They have a lot of imagination, and together, we are able to develop the power to bring their imagination to life with code. It’s confidence-boosting, educational and fun–exactly what any kids learning experience should be.
By meeting one-on-one, Breakout Mentors is able to do what my introductory classes did for me–show how to approach coding, while also allowing creativity and curiosity. I’m happy to be able to provide that mentorship to kids, since I know it is essential for success!
Interested in learning more? We are lining up kids to start with a coding mentor in January, so contact us today.