top of page
My Coding Place logo

The Source Code

A Blog on Learning Coding and STEM skills

Updated: Oct 26, 2020

Many organizations and tech giants have touted the value of learning to code, such as Code.org, Bill Gates and Mark Zuckerberg. The message is that coding is fun and empowering but a less explored question is 'who will teach?' Once we convince families that coding is a valuable skill, what is the most effective way for kids and adults to learn? There are many fine books, videos, and websites written and developed to teach coding. We value and assign homework from self-paced websites like sololearn and w3schools. There are even coding schools that have built software and systems to teach kids to code. However, the missing link for success is a mentor and teacher. A person that can answer questions, provide instruction and direction, and support the learning process is paramount. One could speculate that this problem is not addressed enough in the press and in practice because there is a shortage of teachers due to the shortage of coding education in the first place.


Resources For Learning To Code


There is no shortage of material and inspiration for learning to code. In the video What Most Schools Don't Teach, Steve Jobs said “Everyone in this country should learn how to program because it teaches you how to think.” This video has 15 million views and for good reason. It's powerful and inspiring. Facebook's initiative TechPrep has created a free website to discover programming, learn about programming jobs, and get started building skills. Google and Carnegie-Mellon also offer free curriculum. MIT graduate Michele Pratusevich discussed coding being the missing link in education with her article Why Programming? Why Python? Why Now? Her collection of 30 beginner Python exercises is used by some of our instructors, as we leverage and customize content to individual learners.


Although there are a plethora of good resources, there is less publicity about the shortage of Computer Science teachers and the organizations who are preparing teachers to advance computer science education. We need to recognize and support the immediate need to train and develop Computer Science teachers. It isn't helpful to proclaim the benefits of learning coding to get more students interested while disregarding the shortage of teachers who can impart this skill.


The Shortage of CS Teachers


"I can say at the K-12 level there's a dramatic shortage" of computer science teachers, says Jake Baskin, executive director of the Computer Science Teachers Association (CSTA), which worked with Code.org to produce a report in 2018 on the state of computer science education policy in the U.S. Surprisingly, the study revealed that only 35% of public high schools in 24 states offer computer science courses.


Even if all high schools offered computer science, we would not have enough teachers trained to teach. Outside of schools, Girls Who Code and CoderDojo organize free programming clubs worldwide, where kids can learn together while getting support from fellow members and volunteer mentors, but the facilitators do not need to know how to code and are expected to learn along with the students. Kode With Klossy, offering free summer programs to girls between the ages of 13-18, also recruits and trains non-coders.


In recognition of ongoing efforts to ramp up CS teacher education, dedicated groups such as the following sponsor and support professional development of Computer Science teachers across K-12 education. There is vision and progress being made.

In addition, after-school programs, coding schools, and non-profit organizations like Girl Scouts and library associations offer parents more options and support for learning to code. We all face the problem of who will facilitate. Due to the large difference between teacher and programmer pay, anyone who can code is more likely to choose a programming career over a teaching career. The biggest problem that the coding education industry faces is the lack of teachers.


Conclusion


Coding is a fun, empowering and valuable skill. We should introduce kids to coding at a young age to give them opportunities to learn more as they get closer to college. Ideally, instruction would involve a teacher leading lessons and providing guidance and assessment. However, there is a shortage of coding teachers, and this problem will not be solved until there are more Computer Science and programming classes in schools and colleges to develop future educators and knowledgeable practitioners. Which came first, the chicken or the egg? We won't have widespread coding education until there are more coding educators, who will come from more widespread coding education. Would you agree?






Updated: Oct 26, 2020

Before explaining why we are rolling out math as a class, let me explain how we got to this point. In July, we had 3 instructors leave due to personal conflicts and replaced them with 4 amazing teachers who are passionate about their profession or seeking to learn more through teaching others. It is always hard to see instructors go because we lose something every time, whether personality, technical gifts, or a way with the students. As a result though, we hired our first out-of-state instructor, a super-smart, driven young man starting his freshman year at MIT named Bryson. Bryson chose recursion as his first topic to teach, a difficult concept that demonstrated his confidence and initiative. I had asked him to develop curriculum for a Game Development Level 1 class to precede Unity, using a process document and framework that I created. While reviewing his deliverables and, separately, his students' understanding of recursion, we started talking about math and how he has spent time teaching math in all his classes at MCP. And that's how the seed was planted.


Now onto the 'how' of our approach. Our approach to teaching math will be different than Kumon or Mathnasium because we want learning math to be fun and relevant. I hesitate to call the class a math class because of the stigma associated with math. We don't plan to teach with worksheets and tests. Our existing methodology uses hands-on, project-based learning artifacts to introduce coding or game development or photo editing. We believe in learning by doing, not rote repetition of formulas and algorithms. Our approach has been to encourage students to understand and enjoy solving problems using code or software as tools. Our Digital Arts program solves visual problems with digital solutions. Our Web Development program also solves problems requiring both visual and technical solutions. Software and code are merely tools, just like math is a tool to address daily issues like "How many apples can I buy for $2?" or "Can I get to the store with 1 gallon of gas left?" Our end goal is the application of what we teach, including math. We want to empower kids with tools for learning STEM, building projects, and solving problems, and math is a natural fit in our collection of teaching tools, along with tools like Scratch and Python.


I had noticed that math in some form was covered regularly by most of our instructors in the process of creating with code, even though math wasn't officially a part of our class curriculum. It wasn't until Bryson speculated that math could almost be its own class that I realized we needed to offer that subject and that it fit naturally into what we were already teaching. It has been exciting to discuss with various instructors not only ideas for getting through to students but also new, exciting topics that can help us grow and reach more students. Math is a prerequisite for learning Computer Science, and although coding doesn't have to include any computer science concepts, true appreciation and understanding of coding requires math. The math can start as simple as the Cartesian Coordinate system and remainders and get as complicated as factorials and recursion, but by using math as a tool and creating applications using math concepts, we hope that students will start to see math as fun and relevant. Stay tuned for the rollout of our newest class - Math in Action! Now if only there was a title for the class that doesn't include the word "math"!



Updated: Oct 26, 2020

Activities such as sewing, running, and cooking don't seem as satisfying as being on my device where I can reply immediately to e-mails and text messages, and read news and be connected to my friends at all hours of the day. To what end am I scrolling? What are we getting from all our time in front of screens? Studies show the answer may be stress, anxiety and fear-of-missing-out. Even if we are gaming and having fun online with others, the lack of physical activity and personal interaction is harmful to our health. That's why screen time should have stretch goals. Stretch goals are goals that are difficult or temporarily challenging. Time on screens can be productive.


Balance the fun of being online with a natural desire to learn and build things, and you have coding. But it's all about picking fun projects, and the reward comes during the process of making something complicated that works. This is why I'm calling coding a stretch goal, because learning a new language is hard. Yet the higher the frustration level, the more rewarding your student will find coding. If we only get students to the point of being able to follow directions and type in exactly what we say, that does not serve them well in the long term. Coding is an activity where it helps to talk out logic and to think through problems with others, so it's not supposed to be a lonely, isolated activity.


At the risk of repeating what I think is widely known at least in my world, here is a list of six reasons why your child (and you) should learn to code. The practice of learning to code does the following:

  • teaches problem-solving skills, helping think logically and sequentially

  • teaches collaboration and teamwork

  • encourages creativity when creating code

  • applies rules of language (like grammar) to the language of computers

  • inspires curiosity about how electronics and software work

  • paves a path for future career opportunities

Coding is rewarding not only because students build something out of nothing and learn to break problems down into smaller pieces, but also because they are learning a valuable skill for future job opportunities by learning to program computers using various computer languages such as Python and Java. We encourage you to stretch your students' screen time with coding.


Practically speaking, it will be hard to stop that YouTube video or Minecraft world to start coding a project in Python, so you should set aside a regular hour for coding and have kids stop what they are doing 30 minutes before coding time. It is likely that 30 minutes will turn into 15 or 10 minutes, but make sure they stop to take a break, close distracting windows, and refocus. The reason I know this will be difficult is the reason I have a hard time stopping my screen time to exercise with a video. It is hard to find the motivation to do something hard and easier to continue routine habits like scrolling through social media feeds, reading news stories on the health crisis, or playing Candy Crush. The best a parent can do is set a timer and establish a routine and possibly a reward system. It would be a fun project to create an app that tracks how many minutes a person codes each day like an activity tracker. In any case, structure and expectations are key.


Keep in mind that we all want to be better, to make the most of our time and to accomplish things. Try to appeal to the desire to improve. Websites like code.org or scratch.mit.edu have tutorials that are fun to complete, but if you need support please reach out. Even though My Coding Place can run classes virtually, we have always preferred to be in our studio physically present with kids and teachers interacting face-to-face which is the most effective way to learn. However, we prioritize safety above all else so we continue virtually. There is a lot to be said for structure and expectations. If you need help setting aside time for your child to code or finding resources and material, let us know and we would be happy to help! After all, there are six good reasons to stretch their screen time!



bottom of page