Many high schools offering “Computer Science” really aren’t

The following post is an excerpt from a research paper I wrote this semester examining the use of high school computer science classes to increase the number of women in computer science. Yes, the high school I reference is the one I attended.

A major issue in teaching computer science in high schools is that not only do the students not understand what computer science is, but frequently neither do the teachers and administrators. High schools frequently offer classes under the heading “computer science,” that are actually courses on keyboarding or using applications. Actual basic computer science classes are characterized by study of data structures, algorithms, and program design. The figure below shows a course description sheet for “computer science” classes in a California high school. Of the two classes described, neither teaches computer science. The first teaches keyboarding and use of Microsoft applications, while the second teaches website design. While the website design course claims to teach the use of “HTML programming code,” this is a misuse of the term, as HTML is a markup language rather than a programming language and requires no understanding of algorithms or program design.

While the content of these classes may be useful and interesting to many students, they contribute to the stereotype that computer science only involves advanced application use. Students who might have been interested in the mathematics and logic involved in computer programming might never know about it from the impression they get from this school’s “computer science” program. It is fine and useful to offer these kinds of courses at the high school level, but they should not be called “computer science.” Because the difference between computer science and computer-related general market labor preparation classes is not well understood, encouraging more girls to take computer classes as they are now might have the opposite of the desired effect: more girls might get the impression that computer science is only advanced application use, which might turn them off to computer science.

The entire course description for computer science at my high school.

In addition to school administrators, education researchers sometimes misunderstand the difference between computer science courses and courses that teach basic computer skills. The National Center for Education Statistics is careful to note in its publications that classes that teach keyboarding and general computer application skills fall under the category of “General Market Labor Preparation,” as opposed to more advanced computer classes that fall under the category of “Occupational Education” (Levesque 2008). However, the paper “Impacts of CTE on Labor Success” sorts computer science CTE into one category which “included courses in keyboarding taught in high school, word processing, computer applications, and programming” (Bishop 2004) [pdf link]. The problem with this method is that it groups together two often disparate kinds of students: those taking keyboarding classes who intend to apply for basic clerical work, and those taking advanced programming classes who intend to work in high levels of industry. The data resulting from this grouping is skewed. The report claims that computer courses had “large significant positive effects on earnings and wage rates in 2000” (Bishop 2004) [pdf link]. Unfortunately, there is no way to know whether workers who took only general keyboarding classes experienced the same wage increases as workers who took advanced programming classes.

Grouping data this way masks not only the gap in pay between clerical workers and programmers, but also the pay gap between genders. One might claim that women take as many CTE computer science courses as men now, but unfortunately more women take general keyboarding classes while more men take programming classes (Levesque 2008). This contributes to the problem of women in IT being concentrated in low to mid level jobs, while high level IT jobs are dominated by men. If more research separated computer class attendance by both class level and attendance, it would be easier to see the problem.

Hello visitors from /. ! Thanks for reading my article. If you liked this, you might also be interested in my other posts on College and Technology.

  • Digger

    I find the tone of your wording describing “advanced application classes” as intended for “basic clerical work” to be somewhat condescending. You initially acknowledged the usefulness of such classes, but later undermine this notion. I feel, that success in any collegiate atmosphere necessitates skills in advanced application. Your categorization of the difference between students taking programming vs advanced application/keyboarding as high-level vs clerical is not only incorrect but alarmingly biased.

    I will acknowledge that you are completely correct in saying that a distinction must be made between Programming and Advanced Application.

  • Ben

    HTML isn’t even a scripting language. Python is a scripting language. HTML is a document layout description. That’s all.

  • Carolyn

    Fixed. Thanks!

  • Bear

    Captain, I have detected an angsty minimum-wage clerk using ‘advanced application skills’ at his/her job in the comments above.

  • CitizenKent

    Digger’s comment unfortunately reveals the common misconception that application use and application development are related disciplines that can/should be taught in the same way to the same audience within the same department. Application development requires such a radically different skill set and has such a narrower audience that it cannot be considered in the same breath as the education of application use. It’s much like the difference between watching TV vs. putting on a theatre production. While learning to use basic applications like spreadsheets and wordprocessors is certainly a useful skill (much like learning how to use the library is a useful skill) it does not equate in any way to learning programming skills and technology.

  • Noah

    Nice article. I’ve also found that the distinction is lost on people who don’t have a legitimate background in Computer Science. It’s a shame, because the study of the algorithms and data structures that make the hardware and software tick around us is a fascinating and deep subject, but one that remains hidden to too many students. It’s very similar to the misinterpretation that Computer Science = IT.

  • Jonathan

    C101 is kind of a weird course. Although I personally think it is valuable for everyone to know their way around what’s inside their computer in the same way I think it’s valuable for everyone to know their way around a car. I would assume, like you that these are intended for the workforce primarily using computers in clerical capacities therefore knowing the internals of a computer seem irrelevant.

    C120 is also weird, as you say it has nothing to do with computer programming. In fact it has more a place in a course for advertising and design than it does in a course. Not to mention that excepting the mention of “Web 2.0″ that whole description would last exactly one class were I teaching it.

    …and that doesn’t even get into the fact that I tend take Dijkstra’s point about what Computers Science actually is: a branch of math and is chiefly concerned with algorithms. “Programming” is the ability to turn algorithms into code. In my university experience it was assumed that you would figure out how to program from books and such. Very little about actual language constructs was taught in class. Why should it? You can Google the syntax for any element of any programming language in less time than someone can construct a power point slide. Even teaching things which aren’t formal algorithms but are useful in the implementation of algorithms like design patterns are far better than listening to a prof drone on about how to write a piece of code.

    @digger – just put “with computers” after each offensive statement.

  • Pingback: Do High Schools Know What ‘Computer Science’ Is? | JetLib News

  • CanCS

    Absolutely, your C101 was labeled “Word Processing” at the high school I attended as it should have been. Our CS classes did touch on programming, but only at a very basic level and had very low interest from the students (only one person continued on into a CS program, myself.) but at the very least, the students at least had some appreciation for what CS was and understood that Word Processing and CS were fundamentally different. CS is sadly neglected in high school, and for many of us our interest in the subject was sparked entirely outside of school.

  • Pingback: Android OS news » Do High Schools Know What ‘Computer Science’ Is?

  • Dan

    I guess I was privileged in high school because my 1995-1998 experience included computer programming I(Basic) which was part of the math department and computer science(C++ i think). I actually had signed up for computer applications where you learned how to use MS Office…but the teacher moved me to computer science where we learned programming. I don’t really remember all the details because I didn’t pursue this as a career.

  • Ed

    A footnote to this blog post, and a larger topic in its own right, is the constant blur between Computer Science and Software Engineering.

    Computer science is the science behind computing. The math, logic, proofs, theorems, algorithms, research, etc…

    Software engineering is how to engineer software: design, develop, debug applications. The tools used to build applications, such as programming languages, cm systems, qa tools.

    Certainly at the high school level they are intertwined, and perhaps rightly so, but through undergraduate and graduate coursework, they diverge. When I was in high school, we did an analysis of sorting times, complete with visualization, as to why, say, unimproved bubble sort is a Bad Idea ™. I’d call that computer science. Spending a few classes learning how to code it in Pascal, C, C++, or Java I’d call Software Engineering.


  • Mackenzie

    Keyboarding and MS Word in *high school*? Sorry, but that’s 4th grade. How have students been typing up their research papers from 5th grade through 8th grade if they don’t learn to type or use a word processor til high school?

    My school offered Visual Basic as the Intro CS course and Java for the two years after that. The advanced Java class was never run, unfortunately, since the number of students registering for each course decreased exponentially. (sem 1 VB: 60; sem 2 VB: 30; Java 1: 15, Java 2: well it was less than 14, so that class wasn’t running)

  • Matt

    I found your article rather interesting. I never really stopped to think about Computer Science classes in the High School environment. I think most people are intimidated when they hear the “programming” word. I know for myself, I had the opportunity to attend college, while still in high school, so I was well aware with Information Technology, before stepping foot on the stage at graduation. Having those resources available and an interest in computers/electronics/programming/etc is really what it is all about.

    As far as why men dominate the IT industry, I think it has mostly to do with the transitional development in generations. If you look back at the old mainframe days ( late 50s, early 60s ), I bet you would see male scientists in white coats, and most of the secretaries as being female. Over the years, women have started to become major competition for men, which is a good thing. I think the main reason why women don’t go into an IT profession is either it is social presssure ( being called a nerd/geek/geekete/etc) or perhaps they are intimidated because they don’t understand what Computer Science entails? If you have a good teacher, then learning new stuff is really exciting!

  • Mackenzie

    My high school’s way of teaching VB & Java was not as mathematical as proper CS, but it also wasn’t flat “here’s the syntax.” We weren’t memorising others’ algorithms, but rather learning how to think about problems and break them into the steps that’d be come algorithms. It was where I learned to use a pencil before a keyboard.

  • Mackenzie

    I’d like to know how CS became something men do in the 50s & 60s when it was women’s work in the 40s!

  • Bob

    I think a bigger problem is that people in IT think that somehow translates into CS. IT is as close to CS as IT is to people with basic computer skills.

  • Matt


    I am not sure how to respond to your claim. I am sure that you are right. I was just trying to point out that traditionally, men were typically the ones working on the enormous mainframes. Unfortunately, women really haven’t been given enough credit in the computing world. I always think of Grace Murray Hopper ( co-inventor of COBOL ). She was a very brilliant person and an excellent contributor to the Computer Science community. I just think that there is a lot of social pressure being put on people. Whether it is the family background, the school you go to, or the people you work with…there is a lot of pressure. Food for thought.

  • Kendrick

    @Bob: It’s not that big of a problem considering that a good number of IT positions require scripting and knowledge of CS.

    IT encompasses way too much though and really people need to understand there are a good number of differences. So really it isn’t a big problem, just a slight misconception.

    IT to a good extent can range from just helping a person use word processors while the other end of the field would be managing and maintaining servers. Two different fields in IT with radically different skill sets needed.

  • Mackenzie

    All the programmers on ENIAC were women. They were mathematicians. Their job title was “computer” until they were transferred to programming ENIAC.

    Women in CS are actually decreasing generationally. In the 1980s, 40% of CS students were women*. Today? Supposedly about a 1/4. At my school…I am one of 2 women to complete a BS in CS this year. There were 15 or 16 students so… 12-13%…


  • Ed


    I think what Mackenzie was referring to was that all of the original computer programmers were women, especially if you consider the first significant mainframe to be the ENIAC. Take a gander at:

    While men probably did the electrical engineering, they certainly were not programming the ENIAC.

    Discussing why certain people do or do not take to CS (or SE) is tricky business. Drawing lines based on inherent capabilities or social norms is fraught with pitfalls, bias, and counter-examples.

    In my experience, the dominant motivator for involvement in a field is the value of the contributions of that field to something of personal interest. Too often, especially at the HS level, CS material is presented dryly and with no context. It is far better, IMO, to have clubs or classes devoted to a particular application (robotics, games, social networks) and discuss tools and theory as appropriate.


  • Matt

    Very interesting. I find the decrease in numbers really shocking. I still think that there is a lot of social pressure / stereotypes that keep people away from the computer science related fields, but that is just my opinion.

    You are absolutely correct. In addition to your thoughts, I would be as bold to say that even some college level courses are painstakingly dry. I had the most enjoyable experience when I was given the task of completing a final project and presenting it to the class versus do Case Study 3 in the textbook. If people are going to spend thousands of dollars in education, then I would hope they would get the most enjoyable experience out of it as they can!

  • megan

    When I was in high school (way back in ’95) we had a similar but different problem. They wanted to offer some sort of computer class, but they made the typing teacher (a very sweet but not particularly tech-savvy woman) teach it. They Should have done a computer applications class. Instead this poor woman had to teach us PASCAL. Since I already knew BASIC I was the problem child in the class, and we didn’t learn much that was substantial about programming or theory. But it wasn’t reasonable of them to expect her to teach the course either.

  • Mackenzie

    Absolute agreement on the stereotypes and social pressures. It seems they’ve gotten worse, not better, over time. Is Hermione’s the only smart girl who gets the guy?

    I only just saw the movie Hackers in the last few years. I think it was the first movie I’d seen where the woman using the computer wasn’t a secretary. I guess maybe the Matrix too, but that was rated R in 1999, so….would’ve had to be 5 years older than me to see it in theatres at the time.

    What depictions of women using computers outside of a clerical role existed for kids in the 90s, the generation that is in high school and university now?

    For that matter, what depictions of women using computers outside of a clerical role exist for the under-13 crowd at all? Movies aimed at high school students do little to affect the thoughts of primary school students since they’re probably not watching them.

  • Blake Stacey

    Alabama high schools in the 1990s were at least honest: there was “keyboarding” (learning to touch-type) and then “computer applications” (learning MS Works). Everybody had to take “computer applications” as it was a state-wide graduation requirement. A dozen-ish students each year took AP Computer Science, which taught C++ at the time. Nominally, this class was supposed to teach about data structures and algorithms, but it boiled down to doing meaningless busywork with for loops and if statements (we had a pretty miserable teacher, which couldn’t have helped).

    Apparently, the harder of the two AP Computer Science exams, the one which actually tests a bit of algorithm/structure knowledge, doesn’t even exist anymore.

  • Wade

    Comparing “basic clerical skills” with “advanced programming skills” is misleading, and (thanks to the adjectives) implies one is more valuable or more difficult than the other.

    Building and using are very different skills, but equally important. An automotive engineer may be able to build the fastest race car, but not be able to drive it because he can’t operate a clutch. A professional driver may be the fastest behind the wheel, but she doesn’t know the angle of the intake valves in the engine.

    We just need to understand that the skills required to build software are not the same skills required to use software, and make it clear which we are teaching our kids.

  • dafew

    Carolyn… congrats on being slashdotted.. I agree on a more broad scope… I think computer science should be taught independent of programming. As a computer scientist, I feel a class should be offered that shows that CS is a way to solve problems given the constraints of the computer architecture…. an intro class that introduces set theory, basic algorithms, computational complexity, adversarial lower bound approximations, etc.. It has been my experience that discussing these topics requires no great programming skill… just an imagination and a willing an interest in puzzles.

  • http://scalablegamedesign.cs.colorado.ed Alex

    In our project we get > 50% girls when doing scalable game design: [] because the curriculum is simple enough for teachers to do, the kids enjoy it and they can transfer their skills from game design to science simulations. The smallest version of the curriculum is so accessible that it typically can be done in one week between keyboarding and PowerPointing.

  • Jessica

    Aren’t high school teachers *not* required to be graduates of Computer Science to teach any class lumped under that title? I could be wrong, but that was the case when I was in high school (in 2000). It was expected (and unfortunate) that the “Computer Science” teachers didn’t know anything about Computer Science. I’m not surprised to see that the outcome is still the same 10 years later.

    I know this is only a snippet of your actual research paper, but where is the theory or data to back up this claim? –> “Because the difference between computer science and computer-related general market labor preparation classes is not well understood, encouraging more girls to take computer classes as they are now might have the opposite of the desired effect: more girls might get the impression that computer science is only advanced application use, which might turn them off to computer science.”

    I am not drawing the conclusion that this affects women specifically. What makes logic and algorithms more appealing, to any gender? Because it *sounds* fancier? Are you implying that women are only interested in taking fancy-sounding courses? (I doubt this is true, but the article hints otherwise.)

    One last thought: The article sounds a bit conceited. You catch more flies with honey, as they say.

  • Artie Gold

    Essentially, “Typing 2010″.
    ‘Nuff said.

  • Dan Razzell

    I’ve been a practicing computer scientist for the past 30 years. It’s been an interesting and diverse career. Much of it has involved advanced research computing, but I’ve had a chance to work in industry and government as well, and I’ve done a bit of teaching at both the high-school and undergrad level. And whether in one setting or another my contribution has been practical or theoretical, most of its worth on a daily basis is due to being grounded in formal computer science.

    At most universities, the departments of Computer Science and Mathematics are organized, like Chemistry and Physics, under the Faculty of Science. This is not the only possible arrangement, but it’s the predominant one. I point this out to show that computer science is not a science in name only, but as much a science as math is.

    These disciplines have much in common. It’s certainly possible to teach introductory math or chemistry or physics in high school. In fact, it’s an excellent preparation for university studies. Why should computer science be any different? We learn arithmetic before we undertake to learn algebra, and we need algebra before we can study number theory. Computer science proceeds similarly. We begin with programming exercises on paper, and eventually move on to talk about the theoretical basis of algorithms and computability.

    Likewise, labs in chemistry and physics are not fundamentally different between high school and university. They allow us to verify in a practical, empirical way what we have learned in theory. And they give us some idea what to expect from these fields in working life.

    It turns out that computer science uses the same approach. Very rarely do we do analysis of algorithms in the abstract. Most of our time is spent in software development or other practical activities. So teaching computer science resembles teaching chemistry or physics more than it resembles mathematics. Students have to discover how to do something practical.

    What does all of this have to do with typing or running office software or writing HTML? Absolutely nothing. Worse than nothing. Those activities are not remotely related to computer science.

    Dijkstra famously said that “computer science is no more about computers than astronomy is about telescopes.” But at least telescopes let you do astronomy. You’ll never be able to do computer science by learning to run office software.

  • name

    Is there a feeling that software programming will just be outsourced so what is the point of teaching Americans programing?
    Or am I wrong about this?

  • Cheese

    Sad. My high school had two streams: keyboarding and apps, and programming.

    We got an introduction to structured programming with Pascal in the first, then continued on with the introduction to memory management (C) in the second course.
    Random hypercard thrown in for good measure.


  • dog

    @Cheese “Is there a feeling that software programming will just be outsourced so what is the point of teaching Americans programing?
    Or am I wrong about this?”

    Well regardless if this impression is correct or not.. the even less demanding skills of word processing and simple html design are even greater targets for outsourcing.

    However, there is no amount of outsourcing that can completely eliminate software development from the US. In fact, the high salaries that programmers make in leading markets prove that there is still is very high demand.

  • YellowandRed

    My high school had classes IT 9-12 (Information Technology 9, etc.). I stopped after IT 9 and started teaching myself Java instead because each course taught nothing but keyboarding, MS Office usage, and eventually HTML. Only IT 12 had a few class periods devoted to an introduction to Visual Basic. Things I had literally learned at home in grade 6 (except VB). I have no doubt learning Java put me miles ahead of anyone else insofar as preparation for study of computer science was concerned. I feel terrible for the people who have similar interest as myself and have found themselves in similar situations but have different learning style that make self-teaching less effective for them.

    I am glad to see my university has the naming of courses right: The first year CS courses are called Programming I & II. Only in second year does one take the course entitled “Introduction to Computer Science”.

    Stereotypes are very difficult to change. I wouldn’t mind if the term “Computing Science” was used more often since it is almost always interchangeable with the proper meaning of “Computer Science” yet less likely to be misinterpreted by the general public as IT, software engineering, etc.

  • http:/ Alfred Thompson

    Great post. I said much the same, though probably not as well, on a post at some time ago. What you describe is widespread in the US.

  • Pingback: Quick Links | A Blog Around The Clock

  • Metoo

    There are two issues here: Skill development (Word processor, Key boarding,…) and learning to think in a programming environment. The first part is tutoring and training and the second part is teaching. Simple algorithms, simple data structures, and using a programming language to solve simple problems. Start with BASIC, then C and then to other languages. But finding qualified and enthusiastic CS teachers are very difficult. Most school boards and their members are not trained to think. So, you end up with a poor curriculum. A 10th Grade student in India and China (others too) program in C++ and thus become quite employable where computer skills are required. Will we learn from them. I doubt.

  • Edward


    Excuse me if I go on a tangent. I see the point you are trying to make about one not more valuable than the other, but one in Computer Science has to be pretty much an expert on what he or she is programming, which mostly is applications used in Clerical jobs. People in both jobs are equally important, but one requires a lot more critical thinking than the other. Stopping myself in mid-thought here, thought that might not be exactly true. People in Computer Science don’t or might not always realize what kind of thinking has to go into the projects that are done using the applications that they developed, and those projects are not always simply Clerical. Many are, though. In fact many computer programs make work so extremely easy for a Clerical worker, that that worker may feel an injustice in having been forced to use the application, knowing that they are doing just a ‘simple job’, while the very thing they are ‘data entering’ into, for example, made the Programmer or team of Programmers, reach early retirement. The compromise is for Programmers to program applications that let the Clerical workers think more, and feel more important, rather than make their jobs so easy that they feel worthless and get paid less than the standard of living. But from the other side of the coin, in return, the Clerical Workers have to want to use their brains. I could probably go on a few more paragraphs, but this is getting lengthy.

  • Deirdre

    Perhaps, somewhere on your blog, you should explain what you mean by “living in a liberal arts major’s world.” I take it this is meant to be offensive, and not actually descriptive of anything meaningful. As someone who holds degrees in both the humanities (aka liberal arts) and CS, I always had to roll my eyes at people wanting to claim that one field was inferior. The term “liberal arts,” before it was co-opted as a derogatory phrase, referred to the subject matter that was fitting to a free person and gave one mental freedom — hence, “liberal.” Perhaps a little history is in order:

    In the broadest sense, it’s learning skills that are necessary to critical thinking — something that is actually important and lacking in many university programs (particularly those for technical specializations), let alone society in general. It’s not “art,” and it’s not merely elementary “general ed.” The social sciences (which are more literally science than is CS) fall under the realm of liberal arts/humanities at most universities.

    I learned more that has been useful to me in all parts of my life from the liberal arts program than in any other subject. The technical stuff? I could’ve just as well learned most of that on my own (and I did learn much of it autodidactically from software engineering references when I was high school age). The education in *how* to learn and *how* to analyze? That’s what university is really for.

    P.S. I’m not being snarky here (although this probably sounds that way), but you should really put a custom favicon on your blog. It’s not a hard thing to do, and it will add to the polish.

  • A Gould

    re: the “clerical” angle – in my working experience, your ability to use a computer (typing speed, knowledge of MS Office) is inversely proportional to your position in the company. (My hunch is that since building the spreadsheet is “clerical work”, the inability to do it leaves you free to schmooze your way to a manager/director position). This is by no means absolute, though.

    The course listings look like what I was taking back in 1995 (when I graduated). The first class used to be called “Typing” (or later “Computer Processing” or maybe “Computer Operation”). And I think we did the second course as part of the first (it definitely wasn’t advanced enough to require department approval!).

  • Merlin

    This is a really interesting thread, but I think two important points are missing.

    First, if we call the use of applications “computer science,” we give the students a terrible misunderstanding about what computer science is. That might make some students who would be good at computer science not pick it as a major and it certainly makes students pick computer science for the wrong reasons. As a computer science professor, I see freshmen every year who are surprised that we are going to teach them to program!

    Second, I agree that computer science is a science. We can teach Biology in high school because students have had life science types of courses since they were in elementary school. The same is true for chemistry, physics, and mathematics. Trying to teach programming and algorithmic thinking with no background is like trying to teach algebra without years of practice with arithmetic.

  • Kuba

    Deirdre said: “In the broadest sense, it’s learning skills that are necessary to critical thinking — something that is actually important and lacking in many university programs (particularly those for technical specializations)”. I don’t know what you mean by “technical specializations”, but an engineer without critical thinking skills isn’t worth much. If an engineering program won’t teach one “*how* to learn and *how* to analyze”, then the problem is with the program, not with the fact that it’s engineering.

    Science, liberal arts and engineering all require the same skillset — it’s only the underlying material that differs. Arguing that one is somehow deficient for not learning reasoning in a humanities course, but, say, in a mathematical logics/semantics course is plain silly. I’d argue that hard core semantics as applied to programming language processing require discipline that is largely absent in humanities/liberal arts classrooms. Heck, with any luck, if you’d end up being labeled a “nitpicker”.

  • Pingback: Computer Science by any other name | theatre of consciousness

  • Pingback: Many High School |

  • A little bird

    In contrast please see Vietnam’s CS program.

    Ordinarily this would be a “trackback” but smart folks disabled those a long time ago. So instead, a little bird is doing it.