Should Children be Taught Computer Science?

computer science kid

As digital technologies become increasingly entrenched into our world, the conversation surrounding when and how to teach computer science is becoming increasingly important.  Should computer science courses be requisite the way that math courses are?  And if so, at what age would we start educating kids about computer science, and in what capacity?

To find out more about the current conversation surrounding computer science in childhood education, we spoke with two professionals in the field.  

Jasmine Ma is an Assistant Professor of Mathematics Education at NYU’s Steinhardt school, and holds a Masters of Technology in Education.  She is also one of the faculty members involved in Steinhardt’s Computer Science Education program.

We also spoke with Jason Briggs, who lives and works in the United Kingdom, and is the author of “Python for Kids,” a programming book designed for elementary school students.

How did each of you become interested in computer science education at the pre-college level?

Jasmine:  Most of my research has looked into how educators can connect a students’ out-of-school life with their formal learning environments.  When Steinhardt and the Mathematics Education department began conversations about a Computer Science Education program, I was one of the faculty recruited for the effort, given my work in education, pedagogy, and my knowledge of computer science.

Jason: My dad bought a computer when I was 8 years old, and I was hooked.  Apart from a brief period in my teenage years where motorbikes were far more important, computer science was always going to be in my future.

Can you each talk about the types of computer science opportunities that are currently available to high school and middle school kids?  Are there classes? Clubs? Groups?

Jason: In the United Kingdom, some time ago, there was a government initiative to improve technology education in school.  How well it has worked, I can’t really say.  I only have the experience of my daughter to go on, which is anecdotal at best.  If her secondary school is typical, there seems to be more focus on how to use programs, as opposed to building programs or programming.  The education is more focused on using word processors, powerpoint, etc, and is less focused on the actual building blocks of computer science: coding and a greater understanding of computers.

Jasmine: In New York City, there are several software engineering academies, where software engineering runs through the whole curriculum. After the first one opened, the city of New York also began their Software Engineering Pilot Program, which was a predecessor to Mayor Bill De Blasio’s Computer Science for All initiative.

The problem is that there is not currently a computer science education certification for teachers in New York State, and there is a lack of computer science education programs to prepare teachers.  To my knowledge, Steinhardt is the only school currently offering a program.  We have an undergraduate minor, and 2 computer science education courses at the Masters level.  Other schools are quickly developing programs, and we will likely see these programs emerge in the fall.

There are some online programs for schools, where teachers can rely on an online curriculum and platform to deliver aspects of a computer science education, but these online courses are mainly programming focused. I haven’t heard of anything that is as broad as “software engineering,” or something that teaches other aspects of computer science.

There are, of course, a lot of computer science opportunities in after-school and out-of-school spaces all over the city. These include programming classes, but if you pay attention to computer science broadly, you’ll see the teen hackathons, maker spaces and events, and programming that is interest-driven but includes general computer science knowledge.

Coding can seem like such a dry subject.  How do you think educators can get more kids involved in computer science and coding?

Jasmine: Coding is a dry subject. This is the problem that I mentioned when we equate computer science with programming.  Programming is a tool and skill that is part of a computer science education, but it’s a mistake to make coding the end goal.

Jason: Giving kids a project to work on, such as coding a simple game, is much more interesting as a educational topic for most kids, and they’re going to learn just as many skills along the way.

A game like Minecraft is another possibility.  Using code to build something in-world is going to make programming a lot more approachable. Imagine a class where the students discard half the lesson after being instructed to build a life-size pyramid, manually, in Minecraft.  Then the teacher uses simple code to build the pyramid in a few minutes or seconds.  The experience of laboriously doing the same thing over and over again, versus automating the task with a little bit of brain-power, is something that could appeal to students.

How do you think high schools and middle schools can better promote computer science activities?

Jasmine: I think that schools need to think of computer science as a discipline that is much broader that simply programming and coding. A lot of opportunities are lost when there is a hyper focus on coding.  Other aspects—engineering, production, problem solving, creative uses, and an understanding of hardware—are ignored.

Maybe the first thing they can do is learn, and teach the kids and parents, what computer science actually is, and then give teachers the space, time, and resources to bring computer science into their curriculum.

There is also a problem with time as a resource: middle and high schools already feel like there is not enough time to teach the standard curriculum, given the amount of standardized testing that students are subjected to.  Many teachers panic at the thought of having something else that needs to be taught, because there is the fear that it will take time from something else during the day.  What will they have to give up? More arts? Gym? Lunch?  It does not have to go this way, but there need to be more conversations about what incorporating computer science into education would look like in practice.

We’ve failed to convince people that math is important and valuable for all students.  How many adults have said “I am terrible at math. I hated it in school. I get on fine without it.”  This needs to be the start for understanding a computer science education. If we force the curriculum on people, it will not work.  We need to ask bigger questions. What are the experiences of the communities that we are supposed to be educating? Why might they care about learning computer science?

Schools need to understand why their students, families, and communities might care about learning computer science.  The predominant reasoning for teaching computer science is all about jobs and the economy.  But this isn’t the whole story.

Besides career opportunities, why do you think it’s important for kids to get involved with computer science?

Jasmine:  There is also a civic engagement aspect.  As the world becomes increasingly reliant on the digital, it is important to know something about computer science, in order to participate productively in society, to make good decisions, and to protect yourself.

Jason: Problem solving skills and logic: both are incredibly useful.  Knowing that you can possibly do something, and then, more importantly, having the confidence to figure it out for yourself, is really empowering for kids.

I’ve heard educators talk about the possibility of giving high schoolers the option to take computer science and programming courses instead of high-level math courses such as pre-calculus and calculus.  What are your thoughts on this?

Jason: Personally I think a foundation in mathematics is extremely important. I can certainly see the attraction. Programming could be viewed as more approachable than algebra, or calculus. But I worry that students would be losing something important.

Jasmine:  I don’t see any problem with it, but the issue is, a lot of university level computer science and math classes require those courses.  So you might actually be impeding some students who are in the pursuit of a computer science degree.  But if a kid is only taking pre-calculus as a requirement, and is likely to struggle through it, then I am all for replacing it with computer science courses.

However, if the content of the computer science course is disconnected from the student’s life, and presented as just another requirement, then I don’t see the point.