Should Computer Science be a mandatory part of a high school curriculum? The answer depends on the time horizon, and also on how one defines “computer science.” The question is moot in the short-term. In the long run, computational thinking and digital literacy will be mandatory, although perhaps integrated in other fields or introduced earlier, before high school.

In the short run: schools would need to offer computer science courses before requiring students study it.

Before answering this question, one must first ask whether schools can actually teach computer science. Today, most high schools don’t teach computer science, they don’t have a computer science teacher, so mandating that every student learn a field that isn’t even offered is silly. Fortunately, schools throughout the U.S. are now taking steps to offer computer science. And 56% of teachers believe computer science should be mandatory for all students [1]. And with Code.org training tens of thousands of new C.S. teachers per year, making computer science mandatory may be possible in less than a decade.

In the long-run: parts of computer science (computational thinking and digital literacy) will be mandatory learning, starting in grades K-8.

Computational thinking – which is the logic, algorithmic thinking, and problem-solving aspects of computer science – provides an analytical backbone that is useful for every single student, in any career. Schools teach math to students regardless of whether they want to become mathematicians, because it is foundational. The same is true of computer science. Consider, at the university level, computer science satisfies graduation requirements for 95% of B.S. degrees [2].

Digital literacy – understanding things like what is the “cloud,” what are “cookies,” or how does “encryption” work – these are useful for every student, regardless of whether they want to become a lawyer, a doctor, or a coder. They are just as foundational as learning about photosynthesis, the digestive system, or other topics one learns in high school science classes.

The coding aspects of computer science – learning the syntax of a specific programming language such as C++, Java, or Python – the syntactical expertise in one language is least likely to stand the true test of time. The programming language you learn in high school is unlikely to be popular 10 years later, and it’s hard to argue that every student must be required to learn any single language. However, teaching a coding language is often necessary for teaching computational thinking or algorithm design, and so it’s a key part of most C.S. education.

The U.S. education system is rapidly changing to broaden access to C.S., and even to require it in many regions.

In many U.S. states (e.g. Arkansas, Virginia, Indiana), computational thinking and digital literacy have already been integrated into the mandatory standards of learning for K-8 students. In these states, the most important foundational aspects of this field will be taught to every student before they even enter high school. When students receive that background in primary school, they can decide for themselves whether they want to take a deeper programming course in high school.

At Code.org, we don’t advocate for making computer science mandatory in high school. We advocate for integrating aspects of it in primary school (grades K-8). But we also support the ambitious school districts (such as Chicago, and Oakland) that have already decided to make it a mandatory high school course.

This question originally appeared on Quora - the place to gain and share knowledge, empowering people to learn from others and better understand the world. You can follow Quora on Twitter, Facebook, and Google+. More questions: