The evolving needs of the IT workforce are constantly discussed–even people who are far from it understand the constantly growing needs for computer science. And yet, U.S. high schools don’t consistently offer computer science education and IT classes.
According to CSTA reports, a little over half (53 percent) of U.S. high schools offer a single computer science course–a fundamental subject critical to the nation’s economic and security health. Modest yet significant growth is being observed–in 2018 this index was 35 percent.
Some schools’ computer science education programs are shrinking due to budget issues. School administrators do not see computer science education as a necessary skill for teaching students. Minnesota (only 43.5 percent) and Louisiana (45.8 percent) have the fewest number of students who attend schools that offer foundational computer science courses.
CSTA research also found significant differences in access to computer science education across different social groups. For example, rural and urban schools, such as schools with a large proportion of economically disadvantaged students, are less likely to offer computer science. There is also a trend related to ethnicity: Black/African American students, Hispanic/Hispanic/Hispanic/Latino students, and Native American and Alaska students were less likely to attend a school that offered it.
What’s missing in American high schools for the development of computer science education at this level?
Lack of curriculum resources
Since there is not always a clear answer to the question of what graduates should know after completing a computer science course, finding resources can be very difficult. Often this choice falls on the teachers themselves.
Currently, only 14 states have adopted the ACM and CSTA standards for high school computer science, and only 10 allow them to be credited for graduation. Only 1 out of every 10 schools teaches programming, and in most schools computer science is not a required part of curriculum.
However, 65 percent of teachers believed that existing CS curricular resources met the needs of a diverse student body.
Lack of hardware/software resources
Thirty-five percent of teachers said they didn’t have the materials, supplies, equipment and space needed to teach computer science. There is no single program; no resource requirements. In general, to program in Python or Java, a computer is enough–sometimes internet access would not hurt. However, it will be much more convenient for students to learn programming with the help of specialized software, in convenient integrated development environments, with online materials, and so on. Finding all this in schools can be challenging.
Lack of appropriate assessments
How to assess student knowledge? Because there are no uniform requirements, it is very difficult to adequately evaluate students. If there is an enthusiastic teacher who has developed a program on their own, they usually have a few followers who are very interested in it. For example, in one school in Illinois, a teacher developed an elective program in robot programming. As a result, two students created a controlled robot, while the rest limited themselves to typical tasks. Of course, it is difficult to evaluate them equally.
Lack of teacher subject knowledge and lack of (funded) teacher training
About three-quarters of teachers said they took at least one computer course during their undergraduate studies. Well, only 30 percent of high school teachers have a degree in computer and engineering sciences, and 6 percent have an additional education in computer science. Even more, the IT industry is constantly evolving, and sometimes the knowledge that college instructors receive simply loses relevance.
Many teachers report being encouraged to start learning Python programming. “The problem is, I’ve never learned Python,” said one respondent. “I know Java, C and C# after getting my CS degree. It’s not a problem, but it takes some time to learn it with your students.” In some schools, there is a request for a course, but there is no corresponding teacher. In this case, the computer science can be led, for example, by a math teacher or even a volleyball team coach who takes the time to learn.
Underpay of teachers
Unlike core subjects where teachers can rely on proven didactic materials, computer science education requires the maximum involvement of teachers in the development of such materials, programs, and grading systems. The teacher does a lot of work, most often on a voluntary basis. Additional funding for such initiatives is usually not provided.
Students’ lack of subject knowledge, lack of knowledge in other subjects
Computer science education programs are often inconsistent with other subjects. This usually requires at least a minimal understanding of mathematics, but it can also be very difficult to agree on what a “minimal understanding of mathematics” is. In some schools, high school students struggle even with fractions operations. The most common problem is the lack of habit of simple algorithmic reasoning.
Lack of student interest/enrollment
Despite the popularity of the IT field, not every student wants to study it in school. In Massachusetts, 84.7 percent of high school students attend a school offering fundamental computer science, but only 5.8 percent of students are enrolled in a computer science course. Louisiana not only has one of the lowest levels of computer science education availability in schools, but also very low demand, with only 1.8 percent of students attending a computer science course.
The reasons may be different. Many high school kids are confident in the excessive complexity of this subject, and believe that they do not need extra tasks. In some schools the subject is optional and students don’t want to spend time on it.
There are schools where interest in computer science education is very high, but there is only one teacher or there arenot enough resources. In this case, the teacher may not be able to qualitatively check all the work of students and give feedback to everyone. In such a situation, modern materials with tests and automatic verification of the correctness of typical solutions could help.
Computer science is losing students due to scheduling conflicts when only one class section is often offered–those class sections often conflict with the classes students need to get into college.
Lack of academic priority (vs core subjects)
There is a lack of unified curriculum, resources, and standards in computer science education. This means there are changes happening, but in pockets and unknown to others. Some schools’ computer science education programs are getting cut because of budget issues. School administrators don’t view computer science as a necessary skill for students to be learning. In addition, Computer science is often confused with other technology fields.
…and other problems
Problems in computer science education can be considered a litmus test of the problems of high school education in general. If we imagine a fantastic situation in which a person from 1790 is shown a computer, he will not guess what it is. But if you show him even the most modern classroom, then most likely he will easily recognize it as a school. This is to say that the biggest problem in IT training is the combination of the inertia of the training system and the very rapid development of the IT field.
Nevertheless, IT is such an influential industry that it is no longer possible to ignore it, and we hope that obstacles to expanding computer science education will be solved.