Do High Schools Know What 'Computer Science' Is?
theodp writes "The first rule of teaching high school-level Computer Science should be knowing what CS is-and-isn't. Unfortunately, many high schools offering 'Computer Science' really aren't. Using her old California high school as an example, now-a-real-CS-student Carolyn points out that one 'Computer Science' class (C101) touted keyboarding 'speeds in excess of 30 words per minute at 95% accuracy' as a desired outcome, while another (C120) boasted that students will learn to use hyperlinks to link to other sites. While such classes fill a need, she acknowledges, they should not be called Computer Science. What's the harm? 'Encouraging more girls to take computer classes as they are now might have the opposite of the desired effect,' she explains. 'More girls might get the impression that computer science is only advanced application use, which might turn them off to computer science.'"
Oh yeah like word and powerpoint! I took a keyboarding course in the 9th grade, too. Pssh. I don't know if it merits its own subject, really.
It's always confirmation bias!
> 'More girls might get the impression that computer science is only advanced application use, which might turn them off to computer science.'
Substitute "students" for "girls" and you've got the actual problem. Thinking that it's only a problem for recruiting women into CS is a big mistake.
Although I suspect Torvalds, Stallman, Knuth etc. can "fix a computer,"
Actually, this is the biggest misconception of all. I'm currently a PhD candidate in computer science. I know a lot about algorithms, data structures, computational theory, etc, but I don't know how to fix MS Windows 7 when it doesn't do x, y, or z properly (except of course to install *nix instead). Granted, I know how to work the menus and dig through the options better than a lay person, but that doesn't mean I'm intimately versed in how Windows works, nor do I have any interest in learning it.
Computer Science seems to have lost its soul in some sense. At my university, if I approach a professor with any problem that is NPC, they immediately say "that's an Ops Research problem". Working on robotics algorithms? "That's the EE or ME department". It's been a real challenge to build a committee because most CS profs at this school don't think that CS covers anything more than AI and logic theories.
The point that CS needs to be defined is actually quite salient. Developers often complain that CS students can't program. Some CS departments are less concerned with teaching good programming practices and more concerned with teaching theory. Students expect the former and get the latter. Other schools consider CS to be the art of design. They focus on software engineering and often leave out much of the mathematical rigor in the process. Other schools focus on the logical and mathematical underpinnings, but don't teach programming or software engineering. Then there are the schools that teach only programming with very little else in the curriculum. Should CS encompass all of the above, or should it be a subset of those things? Is software development the same thing as computer science, or are they fundamentally different, somewhat overlapping disciplines? How does operations research fit in? What about numerical computation, high performance computing, networking, etc., etc.? The field has become enormously fractured and everyone, including Knuth, Stallman, Torvals, et al. has a different opinion about what it should be.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.