Coding the Future Generation
The technology revolution that is happening can best be summed up by
“It has become appallingly obvious that our technology has exceeded our humanity.”
although Einstein was referring to a different technology then, this quote still holds true today now more than ever. Every aspect of our lives has been altered by technology to the point where it goes over our heads most of the time. Programming specifically, with many of us being computationally inept in a world revolving around code. It has been said that programming is the future but not for its ability to transform everyone into a coding prodigy but for the fundamental computational skills that develop from being able to code. The theory put out by several CEO’s and past administrations that everyone should learn to program is a bit ridiculous; this holds true for our current generation but for future generations it is an essential skill they will need to understand. The reason why this is a bit unrealistic for older people is because as people age they become more set in their ways. The introduction of programming throughout a K-12 educational system would be the best way to achieve a computational thinking future generation that will be able to keep up in a technologically driven world.
My argument for this push is a bit personal, being able to see firsthand the progress that kids can make via a coding environment is quite remarkable. In my previous job I was a programming teacher at multiple elementary schools all over Loudoun County, Virginia which is a very affluent community. Through this job I was able to see kids of all different backgrounds have a genuine interest in programming and learn a new way of tackling problems. With my experience, I do have a biased perspective on this topic but at the same time it also provided me with an exclusive insight into the advantages that came from introducing coding to kids at such an early age. In the program that I taught for Loudoun County schools revolved around the game Minecraft, a classic video game that younger kids in specific adore. This is actually a great way to disguise some programming fundamentals. The kids got to play their favorite game but added into the game were command blocks that they had to program in order to accomplish various tasks. Via this graphical drag and drop interface we introduced third graders to the critical thinking skills that come with solving programming problems. For the older kids that we taught it was more advanced, they still got to enjoy Minecraft but they were introduced to a syntax based language called LUA. Primarily made up of sixth graders they would write code just like any other programmer, paying close attention to their spelling and commands. A lot of the tasks revolved around having some sort of inspiration to create in the world of Minecraft for the kids. Many of the kids would draw from other subjects they were interested in. I had multiple history enthusiasts who would try to replicate the 3 ships that Columbus sailed to the Americas on or any similar topic they were learning about at the time. From everything that I have seen it doesn’t surprise that so many tech giants are pushing on this issue, I feel that it should have been done sooner.
With the recent resurgence that has come as of late that people need to learn to program to facilitate a cohesive tech future. One of the main arguments is that there is a serious lack of software professionals for the future as this field is growing exponentially. Even with CEO’s such as Bill Gates coming forward to say that, “Every student deserves a chance to learn this essential 21st century skill” (Paul) there is a bit of an obvious reason why he would come out in support. Gates founded one of the biggest software companies in the world so it makes sense for him to come out to support this movement. Aside from this catching popularity in the mainstream light there are many reasons why future generations need this skill other than to make Gates and other CEO’s happy.
Computational thinking is not just for computer scientist to utilize it has gone further than that. The adage that we must solely rely on our own computational thinking is that of the past, we must now be able to think alongside computers. Jeannette Wing Head of the CS department at Carnegie Mellon University states, “Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science.” (Wing) the same principles that are used in CS are needed to be used everywhere. The steps taken from a CS point of view addresses how to tackle a large complex problem and break them down into smaller chunks to facilitate a solution.
One of the key skills that can be developed from being exposed to programming at such an early age is the foundations of critical thinking. When working with code you really have to take the time to fully grasp what is being presented because there is such a small line for error to get something to work properly (Williams). Beginning to think this way develops structured thinking in a way that most people don’t approach problems(Hooda). The ability to break down problems into smaller subsets is a key concept in coding. Coding has a proven trial and error philosophy that there is no wrong approach to looking at a problem, as a matter of fact there are endless solutions to any given problem. This is where the creativity of the programmer at hand can really shine.
Contrary to a belief that programming limits creativity it is quite the opposite. According to Matt Asay a veteran technology columnist he believes, “As we seek to turn everything into a programmable algorithm, we end up losing the individuality that makes things like marketing actually work.” (Asay) this can’t be farther from the truth. In a way coding lets you mold your ideas into reality. With the example, he gave that marketing would negatively be affected by an increase in coding, it would do the opposite. Having a marketing team that can at least understand what is possible in the realm of coding is huge. This initiative is not about turning everyone into a programmer, we need many other skilled positions filled as well. The idea here is to have creative individuals like marketing specialist understand the limitations that coding can have and as well be able to be computationally literate. Having these foundational computational skills that can be developed from coding at a young age. There are many types of coding that can show a person’s graphical representation of what they are thinking about, being able to do this is the furthest thing from losing our individuality. With multiple different languages that can showcase someone’s creativity such as building a website, which takes a lot of time to design and even more creativity goes into coding it. Building a website takes a lot of visual creativity to make an aesthetically pleasing website, there are multiple variables that go into play when putting such a big project together. This would be just one instance of how coding can be creative, all languages can provide this similar experience.
WHAT IS THE HOLD UP?
The benefits of adding programming in a k-12 curriculum is a great idea for the reasons I have listed and for many others so why hasn’t this been implemented yet? The crux of the issue comes to several factors that are holding programming from being integrated in k-12 schools. Vaidyanathan a programming teacher with a master’s in computer science states, “there are not nearly enough computer science teachers to meet what would be an enormous demand” (Paul) this presents a huge setback in moving forward. The added difficulty of self-teaching yourself anything is quite the task let alone trying to learn such a complicated subject as programming. I personally have felt frustrated trying to learn a new programming language on my own. The difference of having someone to refer back to is a big motivator. Without having qualified CS teachers to teach these concepts there will be less of an interest in coding. There is a correlation between not having enough CS teachers and not having enough software developers. As statistics has taught me correlation doesn’t always mean causation or vice versa but in this situation, I believe that the lack of investment in programming is leading to this slump of us not having enough CS teachers.
Another resource obstacle is that primarily affluent communities are practicing programming. Although even those communities do not have full integration of coding programs into their school system. I have actually taught in a county that had the monetary resources to be able to offer such programs to students starting in third grade. Although the community I worked for had an implemented way for kids to experience coding not many other communes around my state are participating. Jane Margolis is a researcher at the University of California who did a study for 3 different public high schools that teach CS and found that, “Students who go to school in affluent communities, they found, are much more likely to have access to…courses that are academically challenging, creative and collaborative.” (Paul) which is amazing if you live in these communities. In contrast Margolis also found that, “Poor students and students of color, in contrast, are often offered only the most basic cut-and-paste computing instruction, often using inadequate equipment.” (Paul) the divide is quite drastic. With technology becoming more affordable there should be ways to eliminate this discrepancy. Even though my experience was at a more affluent section of my state the program I oversaw was “technology rich, but curriculum poor,” (Paul) which presents an overall miscommunication on what needs to be taught in a coding curriculum. The lack thereof a cohesive plan on how to teach coding in schools as a subject will need to be addressed in a way that kids are getting the same education as they would be getting with reading and mathematics.
The disconnect comes from a lack of set guidelines nationwide as to how schools should approach this new subject of programming as part of their school curriculum. At its core programming can include all different subjects that a student is learning. For example, that’s exactly what a Joanna Boyd a teacher in Nevada is doing with her programming class. Boyd “…encourages students to create their own programs around what they’re already learning in other classes.” (Margo) which is a useful way to incorporate all aspects of a school curriculum. Being able to have the freedom to pull from surrounding subjects makes programming a resourceful way for kids to be able to grasp coding better but can also increase their knowledge of the other subject at hand. With this kind of model, it gives a boring subject that they might not be interested a new perspective. The added creativity of making a program revolving around a specific subject they might not be interested in would increase an understanding of surrounding subjects.
The expense of acquiring the proper hardware to be able to learn programming has plummeted significantly in recent years. A computer someone can learn to program has dropped down to a mere $35 dollars, with the introduction of the raspberry pie a miniature credit card sized computer that has a lot of functionality. Logos was the first coding language that was geared towards kids being able to understand programming concepts it was introduced as an educational tool. Logos came to be in the 1970’s over 40 years ago its great down fall was that schools did not have immediate access to computers. With software developers collaborating to help future generations such as Logos once tried to do we now have many different tools for kids to learn. Scratch a popular community built language is made for kids, it follows a similar “…drag-and-drop, building-block approach that lets users experiment with variables and conditions in an intuitive way.” (Margo) that many other languages offer as well. There are a vast number of options that are available to teach kids the coding structure and critical thinking that the future needs.
Technology is advancing at an incredible rate, it is engulfing every business and all fields. Being able to understand and know how to program can make you more adaptable to our future tech world. The reality is though not everyone wants to be a programmer, and that perfectly fine after all that is what helps us innovate. Understanding the core foundational critical thinking that programming offers is something everyone should possess. Being able to break down problems and analyze each step and to come up with a solution is an important skill to have. Another benefit would be that in a future world that is so heavily dependent on code, having a basic understanding as to the limitations that coding has would help people communicate better with programmers. Regardless of what field future generations choose, having programming implemented in a k-12 curriculum would give them the computational skills to succeed in a tech driven world.
Asay, Matt. “Why the notion that everyone should learn to code is complete rubbish.” (2017). Web.
Batterson, Jim, David L. Streiner and Kenneth C. Young. “Programming For All.” Scientific American (2016): 8–8. 7/9. Letter to the Editor.
Hooda, Saurabh. “#3 Reasons Why Everyone Should Learn Programming.” Programmers (2017). Web.
Loewus, Liana. “Are K-12 Computer Coding Efforts Getting it Wrong?” Curriculum Matters (2016). Web.
Parnin, Chris. “Scientists Begin Looking at Programmers’ Brains: The Neuroscience of Programming.” (2014). Web.
Paul, Annie Murphy. “The Coding Revolution.” Scientific American (2016): p42–49. Web. 30 Sept. 2017.
Pierce, Margo. “Coding for Middle Schoolers.” T H E Journal (2013): p20–23. Web. 30 Sept. 2017.
Quillen, Ian. “Why Programming Teaches So Much More Than Technical Skills.” (2013). Web.
SEHRINGER, GOTTFRIED. “Should We Really Try to Teach Everyone to Code?” (n.d.). Web.
Szczerba, Robert J. “20 Great Technology Quotes To Inspire, Amaze, And Amuse.” Tech (2015). Web.
Williams, Jennifer. “10 Surprising Skills Kids Learn Through Coding.” STEM (2017). Web.
Wing, Jeannette M. “Computational Thinking.” COMMUNICATIONS OF THE ACM (2006). Web.