What are some of the best photography schools in the United States?

Why is computer science not part of the mandatory education curriculum in all high schools in the United States?

  • I think this would go a long way to making U.S. high school students more competitive in the growing tech-focused economy. Edits: - Bottom line: There is a large shortage of quality programmers inside the United States. The amount of jobs requiring programming skills continues to increase. It seems logical to open the door to many more students by exposing them to CS/programming earlier just like schools do for many other subjects. - Nearly everyone in the United States is reliant on using computers software daily, shouldn't people learn the basics of how it is created? - Yes, the costs and lack of teachers is currently an issue. Isn't this a structural issue in the education system that should be corrected? Finding 10,000 new teachers across the country does not seem completely unreasonable, especially in some type of 2-year commitment TFA structure. - Many subjects, such as chemistry, physics, biology, health, history, geography, foreign language, economics, etc., are required. What makes CS any different? - Public schools that I have seen have plenty of available computers so I will assume that is not a limiting issue. - Computer science and programming courses are currently taught at many high schools, so the issue of required math is not entirely crippling - Wouldn't teaching students to program help improve their logical thinking ability? - What other subjects do a better job at teaching methodical reasoning abilities?

  • Answer:

    I agree that there's an obvious shortage of teachers -an unavoidable hurdle to making this subject mandatory. Still, there seem to be a few reasons to increase the number of schools that offer computer science--if not to make it mandatory. Firstly, the critical thinking aspect. Learning programming fosters and, after learning syntax, requires critical thinking--something that is , by many accounts, missing from a lot the American educational system . Granted, it is possible to teach very basic low level 'syntax' (Please read https://learning-to-program-101.quora.com/The-Problem-with-Codecademy for more). Nonetheless,  you can't go far in programming without learning to solve your own problems, learning to use the debugger to walk through the logical flow of your own thoughts/code and to figure out where your thinking went wrong. Secondly, the employability aspect Now, I know that other answers have stated that even learning CS does not help with silicon valley level problems, and I can't speak to that ; however, another reason to make it mandatory  is because basic familiarity with CS is becoming more and more helpful for jobs of non-programmers. Lastly and most importantly , in my opinion,-Discoverability I have seen, in my own high school classes, that kids who take my programming classes just to 'check it out' sometimes find that they absolutely love the subject and want to pursue it as a career. Some of these kids are very bright ones who went on to ivy league colleges and our now working for some big name public companies, and I imagine, could do some great stuff in their life. What I can't help but wonder is--what about all the other kids who might have an unknown passion for programming but never gave it a shot? So, my answer to 'why is computer science not mandatory' is -- A) see the other answers B) no matter what the reasons are, the reasons aren't good enough for the sad state of computer science education in US high schools.

Victor Morgan at Quora Visit the source

Was this solution helpful to you?

Other answers

I've taught high school biology for several years and one thing that I've noticed with high school science teachers is that they were usually mediocre students in college. All of my friends who had above a 3.5 GPA in biology and chemistry went on to med school or graduate school for a phd. Your top students go on to high paying jobs with respect and prestige and your lower ambition students go on to teach high school. This isn't in every single case but it tends to be the norm. So what would happen with CS graduates?  Your top graduates go on to make good money or go on to grad school and eventually earn six figures. If there is a shortage of qualified CS people then even mediocre students should be hired and paid well according to simple laws of supply and demand.  So what would be left would be people who didn't do well enough to land jobs going on to teach. Teaching high school isn't just about your grades in college; your temperament is more important,. It is very difficult to teach high school kids with short attention spans... My guess is that less than 20% of the general population could do a good job of teaching high school so that further limits your ability to find qualified CS graduates who could go on to become successful teachers. I don't think high school should be in the business of focusing on job skills - most teachers have rarely ever left teaching and can't really speak to outside careers. Also students should be focused on mastering the fundamentals; let's figure out how to graduate kids who can do the three R's well. Kids who have an aptitude and interest in a specific subject tend to find resources and do well. I'm fine with expanding elective opportunities for CS in high school, especially for minority students and students in lower income school districts, but requiring it seems to be a huge waste of resources to me.

Selim Jamil

Besides the other answers, which mention the lack of teachers, trying to teach CS in high school doesn't solve a huge problem that those of us hiring CS grads encounter often: even with a CS degree, many people don't have critical thinking and logical, methodical reasoning ability.  This fact makes them not particularly useful for many, perhaps most, of the open CS positions in the current job market.  "What tool and process do I use for this job?" is not something many of think. It's scant comfort, but I don't think any other country of significant size is any better at teaching these things. The very core of computer science, besides the above, is discrete mathematics and several other areas of mathematics, some of which are taught in precalculus courses. [Edit]: Addressing edits, computers are very complex systems, particularly today.  This fact has implications in most of the following points. Sure, we should expose high school and earlier students to computer science.  What exactly is a question, but it can be done.  Vietnam even does it in grade school.  (It's important to note that programming is not CS.) Most computer science degree holders don't know the basics of how computers are created.  There's not much point in teaching that at an earlier level. If you can find 10k people that can teach computer science effectively, I can show you 10k people that can make at least twice as much money practicing computer science.  Chicken-and-egg economic situation. CS is newer than the subjects mentioned, and unless we extend the school day, something else has to go.  Educational politics blocks change.  It's probably harder than finding teachers. Teaching programming doesn't improve logical thinking, otherwise far more CS degree holders would be usable in industry. Methodical reasoning is not solely taught by any subject.  It's the way the subject is taught that teaches reasoning.  However, the vast majority of academic education can be passed by memorization rather than reasoning, so people don't learn to reason, or don't want to.  Half of US adults denies many things that are effectively proven in the scientific community, so trying to teach their children logical reasoning is difficult at best. It's not futile to push CS education into earlier education, and we should do it (probably as part of the math curriculum), but the US will probably do it only after it's too late, like most things.

Shane Ryoo

Not enough instructors qualified to teach computer science. Computer science classes would likely only be an updated version of wood shop, i.e., pretty much useless for career training.

Mendel Cooper

Let's run some dirty math on this. There are 4.1 million new high school students each year in the U.S. Let's assume this hypothetical computer science course lasts only a single semester, and there's no followup courses available, aside from pre-existing classes on programming that some schools have. So, that's 2.05 million students that have to be taught each semester. Assuming the class size is 30, and there are 7 periods in a day, then a single teacher could teach 210 kids a semester. 2.05 million kids times 1 teacher/210 kids gives us 9761 teachers. We'll call this 10,000 teachers, to keep things simple. So, the question becomes: Where do we get 10,000 teachers that are qualified to teach computer science? Also, this would probably require schools to greatly expand the number of computers they have available, not only to teach the class, but also to let the many students that don't have access to a computer at home to complete their homework. Just what the heck is the point of all of this? So that Americans get a single high school semester's worth of the most basic, rote computer science education imaginable? The payout is not really obvious. And would this "growing tech-focused economy" you're referring to be the bloated tech bubble that is about to go 1999 in everyone's faces?

Neil R Gottel

I know a fair bit about this problem, because I've been working on it for 20 years. In 1995 we created a program initially called http://teach-scheme.org/ and later http://www.programbydesign.org/. In 12 years we trained over 850 high school teachers, many of whom were already computer science teachers but some of whom were not. Most were from the US, but a few came from foreign countries. We learned several things from this. Teachers are hard to find, the good ones often get much more lucrative industrial jobs (from the dates, you can tell we've been through two computing booms, which is when it becomes especially hard), classes are small, school administrators do not understand the discipline (the difference between teaching Office and teaching programming was often lost on them), and by the time kids got to high school (which is what we were targeting), they had already self-selected into or away from computing specifically and STEM broadly, so we were having little impact with diversity numbers as well. Many other respondents have made similar points. It was a pretty depressing experience, and we were in fact one of the really "successful" programs by many measures. That tells you quite how hard it is to move the needle on this problem. About a decade ago we decided to reboot our efforts. Working with a new collaborator, we got into middle-school computing instead (to help address the downstream effects). More importantly, we went after a new audience: math teachers. The project is called http://bootstrapworld.org. Now, you have to understand there is a long history of computing people trying to impact math ed. Most of it has failed, for reasons that I don't have time to explain here, but that are explained well in our publications (e.g., http://cs.brown.edu/~sk/Publications/Papers/Published/sfkf-trans-word-prob-comp-alg-bs/—see the related work section). Instead, we designed a curriculum that would actually be attractive to math teachers because it addresses real needs they have (in this case, helping students with algebra, two-dimensional geometry, and the critical concept of a function). There is still the problem of attracting students. We do that by having them design, and then build, a simple video game. Though their games are not very sophisticated, they take ownership through various techniques we employ such as early customization. At the end, students have a "launch party" where they show off their games to family, administrators, etc. So their motivation is palpable. Bootstrap gets to some quite sophisticated concepts in its 20-hour span. Students learn to write functions; they become very good at unit testing; they learn to write type signatures; at the end, they participate in code reviews; and they actually practice model-view-controller separation, though in such a lightweight framework that even a 12-year-old can pull it off without any significant effort. Bootstrap therefore attacks this problem from several different ends. It tackles student interest by placing the curriculum in a domain that interests them. It tackles the lack of teachers by enabling math teachers to teach some computing. And it entices math teachers by demonstrably helping them with actual issues they face in math classes. We outlined this strategy back in 2008 in a paper in CACM (http://cs.brown.edu/~sk/Publications/Papers/Published/fk-why-cs-doesnt-matter/). We were dismissed by some prominent computer scientists for various reasons. Yet now, many people are finding that this strategy may actually have much more long-term impact than just throwing resources at the problem. Not only is Bootstrap thriving nationwide, we are also in partnerships with several organizations, who use our curriculum as their middle-school math/computing program (e.g., Code.org).

Shriram Krishnamurthi

According to Department of Labor statistics, there are 343,700 jobs in the USA for computer programmers, with a projected growth rate of 8%.   But plumbers, there are 383,900 jobs there and the projected growth rate is 21% (!). http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm So we could use your same logic for teaching students plumbing, right? More jobs,  greater demand, and from what I see when I write them a check, the pay is quite good. Of course, the counter argument is that high school should not be a trade school.   It should require the skills that all need and then allow some exploration for enriching studies of arts and music as well.   There will be time enough to build on this foundation and prepare for a career.   Of course, a computer science magnet school, that might make sense.  But don't force everyone to take programming. Or plumbing.

Rob Weir

Because it's not that important. OH MY GOD I JUST COMMITTED QUORA BLASPHEMY. But really, it isn't. Computer programming is a technical skill, and a useful one. There are a lot of useful technical skills on which the modern world depends- automotive repair, to pick one. Why isn't automotive repair taught in high schools? The world would be a messy, foul-smelling place without plumbers. Plumbing is not taught in high school either. Why? Because high school exists to give everyone a common base of knowledge on those things everyone needs to know, as well as to prepare students for post-secondary education, which is where technical skills are learned. I have absolutely zero need to know how to code. None. Zilch. I've taken a few courses on it, and find it excruciatingly dull. No offense, but I'd rather try my hand at DIY dentistry. Of course, lots of things I learned in high school are useless now. But, they weren't useless then, because then I was preparing to study anything at the post-secondary level. Algebra was useful because I might want to study engineering, or even computer science. History was useful because I was supposed to be an engaged, civic-minded voter. Literature was useful because I needed to learn how to process complex texts if I wanted to learn anything at all. But computer science? We can learn methodical thinking in mathematics, particularly geometry, and here we have the added benefit of gaining a broad base of knowledge, not a technical skill. We can learn to use computers without learning how to program them- is your ability to drive safely impacted by your knowledge of the intricacies of fuel injection systems- or lack thereof? Some coders have an almost evangelical zeal about the whole thing. I am sure some might bristle at comparing coding to plumbing. But I love plumbers! As a health care professional, I am quite aware of the importance of potable water and sanitation. Coders are great too! The fact that the EKG machine can suggest interpretations is marvelous. But high school is not the place to teach technical skills.

Jonathan Carp

The school day is full - something would have to be dropped to add computer science. Computer science is still relatively new. Our educational system takes decades to make major changes. Just getting enough qualified teachers in place would take a generation. We don't (and shouldn't) make major changes to curricula just to respond to today's job market. If we suddenly had a deficit of lawyers, plumbers, or welders, it wouldn't justify changing school curricula to train more. High schools are not trade schools. I used to teach computer science, and I'm a fan of schools finding a way to fit it into the day as elective or an after-school program, but I would not try to justify cutting back on reading, writing, math, art, science, social studies, or language to fit it in.

Michael Wolfe

Let me add one thing to the great answers above: What are you going to cut? That's never a popular perspective, but reality.  To add one more class to the curriculum, what are you going to take out?  The schedules are full, and the resources are allocated.  In 9th grade I took typing instead of the combined autoshop/woodshop/home ec/cooking course.  I still think that was worth it, but many don't.  So which class are you going to remove from the [you explicitly said "mandatory"] curriculum to have a mandatory programming class?  Biology?  A year of English?  A year of History?

Colin Jensen

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.