3 May, 2020
Pitfalls in the US computer science curriculum as a whole are impacting computer programming in the classroom. Nationally, inclusion of computer science in the K-12 curriculum is inconsistent: a report conducted by the Computer Science Teachers Association (CSTA) and Code.org Advocacy Coalition revealed that in 2018, only 15 US states required all schools to offer computer science. Additionally, delivery of the computer science curriculum faces two main challenges – intrinsic and extrinsic. Intrinsic challenges include teachers’ abilities, methods and qualifications, and students’ abilities and understanding; extrinsic challenges involve problems of resources, practicality of implementation, the nature of the curriculum itself, and for students, the opportunity to practice the skills they learn.
STEM industries are the fastest growing industries in the US, and technology drives almost every other major industry. It is widely accepted that computer literacy is a fundamental skill for all 21st century students, and there has been a massive effort to expand the computer science curriculum in K-12 schools, including coding classes, to meet the demands of today’s world. In 2015, the Senate designated computer science a core academic subject as part of its ‘Every Child Achieves’ act improving access to K-12 STEM subjects, and by 2017, 33 states had passed new laws to promote computer science in schools.
However, just because the intention is there does not mean that schools necessarily have the means to respond to demand, depriving students of access to computer science opportunities and making it clear that the curriculum is not democratised throughout the US. Statistics published in the last few years illustrate the scale of the problem. In 2015, less than ten percent of schools offered Advanced Placement computer science courses and not all students studying these courses were being taught programming. The 2018, CSTA report showed that across 24 states only 35% of high schools taught computer science at all, that pupils from minority, poorer, or rural backgrounds were less likely to attend these schools, and that only 6 states had strategic plans dedicated to K-12 computer science.
The computer science curriculum can vary widely between different schools. It is not easy for state schools to change their curriculums, even less so to implement classes which require expensive hardware on a tight budget, and some schools do not have room in their schedules for extra classes. Many states allow computer science to remain an elective subject, so children will opt for easier classes instead and graduate without any knowledge of computing – what’s more, some states do not actually allow computer science to be a core requirement for graduation. But whether or not computer science is a core requirement, taking the course does not necessarily count towards the entrance requirements needed for university, which disincentivises students from putting in the effort at school.
Alongside attempts to expand and implement the computer science curriculum, there has been a push to develop programs to educate teachers. There is a lack of qualified programming teachers available in the US. One reason for this is the lucrative salaries and opportunities available in the private tech industry and other STEM industries. However, prospective computer science teachers often find it difficult to get the training necessary to qualify – it is not just the ability to code which counts, but the ability to explain a complex and abstract topic and bolster lessons with useful and engaging resources. According to the CSTA report, only 34 states offered computer science teacher certification, and only 19 states had dedicated funding to training teachers in K-12 computer science. This has a knock-on effect, as states that were willing to fund professional training courses for prospective teachers naturally have a higher number of schools which now teach computer science.
The role of a good teacher goes far beyond their actual teaching, and this is particularly noticeable in the STEM subjects. A good teacher should be aware of and try to address the wider issues in STEM subjects, for example redressing the gender imbalance. The 2016 book The Internet of Women: Accelerating Culture Change reveals the stark nature of this imbalance in computer science: in middle school, 74% of girls express an interest in STEM subjects, yet only 0.4% of high school girls choose a computer science college major; although 55% of Advanced Placement test takers are girls, they only comprise 17% of AP Computer Science test takers; and women make up less than 25% of those working in STEM careers, despite making up half of the workforce of the US.
Low interest in computer science can be partly attributed to the schools themselves. A recent study by the National Bureau of Economic Research revealed a bias in primary school teachers’ perception of the abilities of male and female students: teachers tend to grade girls lower than boys in maths, which results in fewer female students choosing to pursue STEM subjects to advanced or undergraduate level. If computer science lessons are to be successful then everyone has to feel supported and motivated, and female students may feel that they get more guidance and attention in extracurricular classes, especially if their school class size is large. What’s more, a 2016 survey conducted by Google of 16,000 7th-12th grade students, their parents, teachers and principals, revealed that over 50% of students and parents believed that you have to be ‘very smart’ to learn computer science, in comparison to 38% of teachers and 19% of principals. It is the responsibility of the teachers and schools to ensure that students feel that computer science is an accessible subject for everyone.
We have seen that it takes more than just an ability to code to be a good coding teacher. But it takes a relevant, interesting, and interactive curriculum for students to feel inspired. An important thing to remember when teaching children to code, is that they should feel some personal connection to what they are learning. If a school computer science curriculum is unclear, uncreative and unengaging, it will be highly off-putting.
Schools struggle with how to effectively integrate computer science into the curriculum, and decide whether it should be taught independently or in conjunction with other subjects. According to the CSTA report and Google survey, there is a lack of official definition of computer science or learning expectations for schools and students. It is unclear whether computer science lessons should be used to teach the very basics e.g. using the internet and office software, or whether they should focus on teaching skills like coding, robotics and AI from an introductory level. Google’s research did show that the percentage of coding classes offered at schools had increased from 25% to 40% from one year to the next, and that coding classes were more common in larger schools and schools in the north-east and west of the US.
It is hard for children to understand the importance of computer science and programming if they cannot understand how it translates to the real world, and this is the downfall of having isolated computer science classes. Schools should demonstrate that actually, programming can be used anywhere – and in a fun way. One of the recognised ways to help students understand computer programming is by using computational thinking skills across the curriculum. Google’s research showed that many students and teachers have used computational thinking in other subjects, whether or not they are aware of it – this introduction of computer science skills into ‘real life’ situations can prove a gateway to understanding the uses of programming.
What’s more, various organisations have sprung up to help teachers integrate computer science into the wider curriculum, for example, ScratchEd, a platform for teachers to swap ideas about using the Scratch visual programming language across the curriculum. For example, Scratch can be used to create multimedia presentations in history class, to present an argument in English class instead of writing an essay, or animate simulations of natural disasters in geography lessons; other programming platforms can be used to create apps to help with learning a second language. It is vitally important that students can be inspired by the versatility of coding, but this is hard if their school only covers the very basics of computer science in isolated lessons, and it is not possible for all schools to implement these creative ideas.
One of the key issues of the computer science curriculum highlighted by teachers is how to encourage pupils to think by themselves, rather than spoon-feeding them a set of instructions. The teacher-centred model of instructive teaching is known as the Gradual Release of Responsibility (GRR). Most lessons continue to use the GRR model because it works well and provides explicit, easy-to-follow instructions for a task, which is especially useful for younger students and larger class sizes. However, it does not necessary instil curiosity and motivation. Other methods can prove more useful and interesting for computer programming classes – ‘flipped learning’ and ‘dialogic teaching’.
With flipped learning, what is usually done as homework is carried out in class, and vice versa. Feedback rather than instruction is central. Pupils are given an introduction in class, then encouraged to explore the topic, practice their skills and consider questions or problems at home, and in the next class share their ideas and receive feedback and help. With dialogic teaching, pupils are usually set a problem or task to figure out in class independently or in a peer group, before coming together as a class to discuss. These two methods make lessons more interactive and learner-centric, encourage autonomous learning, problem solving and critical thinking skills, and allow students to develop a personal understanding and interest in the topic. This is better than just following a set of instructions to achieve a pre-defined outcome and not pushing any boundaries. However, it is not easy to implement these teaching methods in large mixed-ability classes in schools.
Thanks for reading this article and if you have any questions or comments on this topic or coding and STEM in general, please feel free to contact us.