Increasing Access to Programming Education in US High Schools

It is no new fact that computers have become a huge piece of the classroom, especially in the post-pandemic world that we live with remote learning. Computers are now an integral part of academics within the United States. Their use has accelerated and streamlined teaching of subjects from Mathematics to English. But this leaves us a question, what about the subject of the device they use for those other subjects?

When I was in high school from 2008-2012, there was no access to a “Programming” class. The closest class that was available was your standard “Microsoft Office” class where you could automate your “Excel” sheets with formula and that is it. Upon checking the current curriculum guide for the high school, a basic programming class is not offered yet. I have also seen this reflected in other high school curriculum in my area, while some private schools do have introduction courses. So what are the challenges to this that could explain the absence of curriculum, and what can be done to increase adoption.

Challenges that face US high schools for adoption of Computer Science programs are mainly wrapped around Computer Science’s greatest strength, cost. It can be argued that most of a Computer Science curriculum could be taught with Open Source technologies that effectively bring the cost of software to zero. Great! Sounds promising! Not quite… While the software could be reduced, it is where the hardware comes into play. School systems nationally have been tasked with getting a large amount of students connected properly through the use of a number of tools. The greatest asset to school systems have been Chromebooks. Chromebooks are like any other computer. They run an operating system. They run applications. They connect to a network. Though, they have an Achilles heel for programming. They don’t have quite the freedom of a “full” operating system for the user. Most programming experiences will be either browser-based or half-baked applications. You can use browser items to accomplish simple coding, but this can be extremely limiting once you build larger programs. Fortunately, it seems there have been attempts by Google to open up the operating system to run a bash shell with access to Debian underneath, but a school system isn’t about to put money into a curriculum with beta use. What will need to come from this will need to better in browser coding experiences to offset experiences on all platforms for further adoption in a limited ecosystem. The next part of cost is faculty. According to Salary.com, the average salary for an entry level Software engineer in the US is $72,049. The average high school teacher salary is $63,001. That is an $11,000 dollar difference and does not take into account other benefits and costs associated with the two fields. There is also higher growth in the industry rather than teaching for Computer Science. While the upstart costs of these programs could look promising, it could face long term costs..

What is a school to do about these challenges to offset costs? Luckily, there are quite a few ways around this. Going back to Chromebooks. I hope you didn’t think I was giving them grief, because they really are a great solution to a problem. (If their slow specs and limited support time window are great for the environment remains to be seen though.) Though, you definitely can access a better way to create larger products. With virtualization technology at its current level, it would be very easy to create a large group of remote desktops that students could access further resources to develop and code on. This also would allow the teacher access to their coding environments as well so they can help students diagnose issues. Increasing access to new technologies to implement in the curriculum would be an easy way to do so. As far as salary is concerned, well that is quite a bit different of a challenge. A good short term would be creating interest for current teachers to expand their knowledge to cover Computer Science. Teachers that currently teach items like Physics or Engineering would perhaps already have some exposure to programming and able to develop a suitable introduction curriculum.

While it should not be instituted to make programming a mandatory skill, allowing further access to Computer Science and Programming at the high school level would be beneficial to increasing the available interest in the topics for students. This would prepare students going into degree programs at a better rate than others. By eliminating further barriers, you could help all demographics of students in the country as well.

Sources:

https://www.salary.com/tools/salary-calculator/software-engineer-i

https://www.salary.com/tools/salary-calculator/high-school-teacher