How Can We Overcome The Challenges?
There’s a significant collision in the US educational system. On the one hand, the country experiences a drastic shortage of tech specialists. On the other hand, current computer science (CS) education isn’t efficient. What are the roots of this problem? And how can we solve it?
Why Is Computer Science Education A Big Deal?
Education is always about the future, and the quality of today’s education defines what our future will look like. For example, if kids don’t study computer science properly, we can expect more unfilled job openings in IT companies in a few years. In simplified terms, it makes our IT industry less competitive and requires more and more money from the government to fix the consequences of the problem, not its roots.
Another thing worth mentioning: the IT talent shortage is worsening. In 2018, the US Department of Labor claimed that there were around 500,000 unfilled tech positions [1]. They expected this number to double by 2024, and today we can see that these predictions are correct. In 2022, according to the National Foundation for American Policy, the number of job openings related to computer science is over 804,000. The biggest part of them is software developers and software QA specialists (326,014 positions).
So, if nothing changes, the problem may continue to deepen. Of course, there are other ways to reduce the IT talent shortage, for example, lowering the barriers for foreign workers to come and work in the USA. But this way also reminds one of patching the holes in a ship instead of fundamentally rethinking its structure and making it more robust and "hole-proof."
CS Education Today
Any description of the CS education problems should start with its accessibility. According to the K-12 Computer Science Access Report, in 2021 only 51% of American public high schools offered a CS course to their students. Research by the Computer Science Teachers Association (CSTA), the Expanding Computing Education Pathways (ECEP) Alliance, and Code.org Advocacy Coalition shows that in 2022, this number increased by 2%, so currently, 53% of public schools have foundational computer science programs. The progress seems quite fast, but only until you compare it with the previous dynamics. During the three years, from 2018 to 2021, the number of schools offering CS courses grew from 35% to 51% [2]. Also, there’s still a huge gap between access to CS education in different states. For example, in Arkansas, Maryland, and South Carolina, at least 90% of high schools offer such a course, but in Kansas and Louisiana, this number is less than 35%.
So, the accessibility issue is the first part of the problem. But it’s far from the last. Another significant one is also a lack of teachers. It’s not easy to find a qualified person to teach CS courses. If they are good at programming, they probably prefer to work for private companies. And it’s not surprising because even a junior developer can earn more than a high school teacher. So, often other teachers or even sports coaches take over CS classes, and it’s a challenge for them to help students acquire much-needed tech skills.
Then, there’s a curriculum issue. The students have a limited number of classes they may take. So, if they choose CS, they must sacrifice something else, for example, a foreign language. Students have to make decisions, and not every teenager can understand what will bring the most value to their future life.
And finally, CS education still must make its way through the skeptical attitude. Some people (parents, teachers, and even experts) don’t believe in the value of these courses or don’t understand how CS can help children in the future. According to a Gallup study, in 2016, only 28% of parents and 30% of teachers supported CS classes. The numbers are shocking, and they show that awareness of the importance of CS education value has been (and, most likely, still is) quite low. Also, according to the same Gallup study, less than one in three principals considered CS a top priority.
How so? Is it possible that people still doubt the necessity of CS education in times of such massive tech development? Apparently, yes. Maybe they are worried about their kids getting technical skills that may become obsolete in a few years, or just don’t believe that the tech sphere is for everyone. There may be various misconceptions, and some fears may be justified. The key point here is that schools shouldn’t ignore these doubts but consider them when composing CS courses and communicating them to parents and students. For example, teachers may ensure the course is not just about narrow tech skills but also logical thinking and problem-solving.
Thoughts On Solutions
Obviously, schools and the educational system they represent need help—and the teachers need help, too. On the system level, the situation could be improved by implementing standards to make computer science a fundamental part of K-12 education. For example, in 2017, CSTA introduced K-12 Computer Science Standards. Their main idea is to build the foundation for a complete CS curriculum and its implementation. As CSTA claims, more and more districts and teachers are adopting CS curricula based on this set of standards.
Also, CSTA created standards for CS teachers [3]. The first standards appeared in 2003, and the last edition was released in 2020. Having such standards is essential because people who teach CS in schools often have different backgrounds. At the same time, they should provide the same level of knowledge to the students. So, teachers must have a clear roadmap for their self-development.
In addition, there are many ways to make teachers' work more efficient. For example, they can use new strategies to teach students computational thinking, like gamification. More engaged students, according to numerous studies, learn better. Also, making studying more interesting brings higher results.
If a CS course aims to be practical, it includes programming. In this case, teachers may have a hard time if they aren't software developers. But it doesn't mean they can't provide quality education. Currently, they can choose an online programming course with many valuable features (for example, automatic verification of assignments). Giving the class access to such a course makes it easier for teachers to deliver tangible results and track the class's progress. The only downside is that the teacher has to focus on one programming language at a time. But if they choose a language that is in high demand according to the ratings (for example, Java), the students will get a useful set of skills and will be able to pass AP exams.
As we can see, CS education in the US isn't perfect, and there still are challenges to overcome. But there are also ways to do it, and each state can take steps in the right direction and provide more value to the students and, eventually, the market.
References:
[1] Issues Facing Computer Science Education
[2] More Than Half of High Schools Now Offer Computer Science, But Inequities Persist