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!
Call it "How to Get 5000 Facebook Friends Before Everyone You Know."
Then start the class off doing proofs on discreet math. They'll all cry and drop the class, and the whole world will be win.
Knowing how to use a keyboard or some basic knowledge of the web are valuable skills for just about everybody, not just computer scientists.
While I agree with the basic premise she has presented (this might give the impression that CS is an advanced application use field of study), how is it that this misconception is going to predominately affect females? Is she implying that females are dumb? Is she implying that they are too superficial to look beyond a the name of a class offered in high school when planning their field of college study?
Classes that just teach you how to program aren't really Computer Science either. It's just like learning a trade skill. The real science starts in the Data Structures and Algorithms classes, usually the 3rd class after programming 1 & 2. This is also where departments separate the men from the boys (and women from girls).
> '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.
My prof drilled into me (and my degree matches because he fought for it) that it's Computing Science. Computer science is doing science on a computer -- Computing Science is is the science of computers.
Ah well, just some random nit-picking and pedantry. Either way, basic computer literacy is not "Computer Science".
Lost at C:>. Found at C.
Funny thing...
We call it Computer Science, but not one of my teachers or professors through the 8ish long years of highschool and college advocated for using anything that resembled the scientific method. I'm sure I'm not the only one in that boat. I wonder why that is.
Do most people know what Computer Science is? Whenever someone asks what I majored in, I always end up having to attempt an explanation before their eyes gloss over and reply with a terse, "Oh, so you repair computers?"
I guess I should just start telling people that "It involves me sitting at a computer and reading ./ all day."
Never have. The curriculum is only updated when a new version of whatever office software they use. High School computer classes have only ever taught proficiency in specific applications and that hash't changed in the 20~30 years schools have had computers - if they even let the students touch them in the first place. This is further exasperated by the fact that it always seems to be 'taught' by the teacher who drew the short stick.
"I use a Mac because I'm just better than you are."
The problem is not limited to high-school. It was not until my post-grad studies did I start learning real computer science. Most of what I learned in my undergraduate studies was IT.
At its heart Computer Science is Applied Mathematics and is closer to Physics than IT. With that said I am currently working in IT as are many with advanced CS degrees so maybe that is where the confusion stems from...
Encryption: I may not agree with what you say, but I will defend your right to encrypt it...
In my experience, universities don't know what computer science is so it isn't a surprise that highschools don't. Most universities seem to think that programmers are computer scientists which is approximately like saying architects are civil engineers.
I'm not entirely sure most high schools know what math is, either. Or science in general. Canned labs and regurgitation of scientific facts are not science, and turn a lot of people off. I was one of those people until I was in college.
But to get on topic, no, they don't. If you aren't teaching programming or theory, you aren't CS. You are just a class about computers. I'm also a tad confused as to why this would "turn girls off" (or boys, or anyone). I suppose it would mislead them, but then what other degree would they expect to cover actual CS/programming? A lot of times students are in the wrong major because they have been mislead by whoever that it is about something that it isn't (psychology, for instance) but I really don't see what else there is, other than perhaps Software Engineering. (I understand this is about high school, I'm looking at the long run for these students) If these schools have AP Comp sci courses, those should set the students straight.
There is more to science than physics!
www.iomalfunction.blogspot.com
In my high school we had two different programs after 2000. That's when the classes were first being created and a mathematics teacher wanted to have a computer programming course. They initially were teaching C++ without OOP principals before a teacher that actually had programmed came into the school and rewrote the curriculum. That was in 2004. I first took a programming course in 2004, as a freshman, with that teacher and helped show him what was missing. I had taught myself C++ from different books and guides online. From that point on the school has always had two programs under different departments. Business Apps is under Business(History Department) and Computer Programming 1, 2 and IB(International Baccalaureate):Computer Science is under the Math department as it should be. Coming from my learning and as I've gone into college and the workforce, my HS was lucky in that we actually DID have some people that knew what programming was, and was not. The only class that has gone back an forth between the two is HTML Internet Programming(a joke class, really). All that teaches(kinda) is HTML, some CSS, very very little JavaScript and Flash. That has been sent back over to the Business folks because the school wanted higher rates of students in it, and they always had more. Though, from other students I've talked to. As the OP writes, it is far too often that schools actually call stuff like this posted Comp. Sci. It's a joke to the students, parents and themselves.
This is also where departments separate the men from the boys (and women from girls).
Is that also where they separate the sheep from the goats?
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
I disagree. Teaching students the tools of the trade (IDEs, debugging, control structures, if....then...else) are the foundations of the Science. You are taught math the entire time in high school, and an advanced math program starts with the assumption that you know how to add, subtract, multiply, etc. Teaching kids, either in high school or CS101 gives them the tools to move onto and understand Binary Trees and Linked Lists..
Isn't this a bit like complaining that high school chemistry isn't really science, or high school physics isn't really science? Of course they're not, you need to have a certain set of basic skills and knowledge developed before you can do real science.
99% of programmers wouldn't know what to do with a stochastic analysis of parsing algorithm families. And as long as Moore's law holds, it's not worth teaching them how to make things faster or cheaper, because that's coming from the supply chain.
This is also where departments separate the men from the boys (and women from girls).
You know how they seperated the men from the boys in ancient Greece? With a crowbar.
This is also where departments separate the men from the boys (and women from girls).
And the large furry creatures from Alpha Centauri from the small furry creatures from Alpha Centauri.
XML is a known as a key material required to create SMD: Software of Mass Destruction
A little while ago where i teach, some candidates had to be turned down from a position because they were IT teachers, and the position was for CompSci
It seems like what we call "real computer science" (like algorithms or theory of computation) is actually math. I don't see anything scientific about it at all.
Programming seems more like engineering than anything else (sure, it uses algorithms; but not much more than building a bridge uses math, and we call would call designing a bridge "engineering").
The only things I can think of that I would call "science" are: (1) benchmarking a complex system to get some empirical results; and (2) troubleshooting problems.
I'd be interested to hear why we keep focusing on the word "science" when that seems like a relatively small part of what we do.
Social scientists are inspired by theories; scientists are humbled by facts.
I took a high school computer science class in 1981.
We learned the parts (CPU, memory, input, output, etc.) of an electro-mechanical system for processing information and we learned to program in assembly on mapo cards. We learned theory before we put anything into practice.
It seems unbelievable that compsci classes today are keyboarding classes and no one (in the school boards) sees anything wrong with that.
I read the article and the issue the author seems to take with this is that the approach to upping the ratio of females in computer science was to herd them into "computer science" courses at the earliest age (high school). This might have the negative effect if that's your strategy. The summary used a really unfortunate clip of the logic that seems to imply that the girls aren't being treated any differently than the boys so they must be deficient at seeing through these classes. But the girls are being treated differently in an effort to balance genders in computer science. The big problem is that these courses designed to "turn on" the thirst for computer science in young women have little if anything to do with computer science.
My own anecdote, I went to a high school in middle of nowhere Minnesota and we had Computer Science AB advanced placement. It was about twenty guys, I don't remember a single girl. We learned C++ in very simple forms and when I was forced to take the typing courses I wanted to kill myself. Did you know that typing courses are often a requirement to computer science courses? I was dumbfounded. As if the fact that I wasn't hitting 60 words a minute was reason to prevent me from learning about pass by value versus pass by reference (one of the basic concepts we covered). Still, even that wasn't much computer science and seemed closer to "C++ in a semester" style of teaching. You knew a language but you didn't quite get the really generalized concepts.
My work here is dung.
and they only know java. you'd think a good cs program would encourage students to implement principles using many tools.
Do High Schools Know What 'Computer Science' Is?
- No.
Do your employers know?
You can't handle the truth.
I know that the first rule of Computer Club, is never talk about Computer Club... unless you don't wanna get laid
My HS in north Florida had their program together -- it was the instructors who occasionally slacked due to most of us not caring (I wasn't one of them).
We had MOUS (Office, which I never took), web design, programming (VS6, incl. VB, C++), CompTIA (A+, Net+), Microsoft (MCP, MCSA, MCSE) and Cisco (CCNA) with in-house certification programs for most. Hands-on training and at no cost -- can't beat that!
You're right in some ways. I find that the primary goal of Programming 1 is to make sure students understand basic concepts, like assignment & loops. Programming 2 for object orientation and recursion. Even so, the first two classes are mostly instruction, usually for one language. "This is how you program in C++/Java"
I hold a BS in Computer Science.
I believe the field should be called "Algorithm Development".
It is called "Computer Science" because it was computers that allowed the useful embodiment of many algorithms. But the reality is (often literally, during coursework), that the platform, hardware or software, is largely irrelevant to the mathematical development of algorithms.
Today, as the article notes, anything related to using computers is often labeled "Computer Science". Rather than trying to get the rest of the world to stop using a term that is actually somewhat intuitive, I think CS should change its label to something that is actually a more intuitive description for itself.
A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.
At my high school, the entire network was based off dumb terminals from Sun. The "computers" room was full of old Macintosh running OS 9 (OSX had already been released for a fair bit) and we were programming using HyperCard. Either that or we had seminars on how Wikipedia is bad and how to browse the net safely.
Not until 'advanced computer usage' doesnt constitute learning how to type and making excel documents. Once educators realize that's just basic necessary skills then MAYBE we might see some progress.
They are useful skills in much the same way as knowing how to steer a car is a useful skill to an automechanic. They are, of course, important prerequisites, but to me, computer science, even at the high school level, should be much more than "How to use a keyboard 101".
When I took it in high school, we started with some basic theory of how a computer works, and then moved on to Pascal programming to demonstrate those concepts, along with good coding techniques, flowcharting and various other concepts that would, in fact, be valuable to someone looking for a career in computer sciences.
The world's burning. Moped Jesus spotted on I50. Details at 11.
We did do work on linked lists and some basic sorting and binary search algorithms, so I'd say it certainly touched on computer science. Obviously it's high school, so I think you only want to go so far, anyways, rather like how you don't really learn the dark depths of quantum mechanics in high school physics.
The world's burning. Moped Jesus spotted on I50. Details at 11.
I currently teach high school math at a very successful public school. I have about a dozen computers in my classroom which get varying degrees of use, but might start teaching programming next year. I minor'd in CS, so I'm certainly no expert, but I have seen some problems with our tech courses here. We have public speaking courses where kids use powerpoint to do presentations, and use word regularly. Unfortunately we don't really teach any computing skills in those classes as much as we teach "application" skills. I'd like to throw an open office or just something that looks different and see how my kids do...I'm guessing not great for the majority.
If I do end up teaching programming I aim to stay away from focusing on syntax and focus more on theory as much as possible. Structure of if statements, different loops, arrays; that would lead to some basic discrete math stuff too hopefully (a course we have tried for several years now to get off the ground).
I have a minor in CS, and have no professional experience, but it absolutely amazes people when I say that the vast majority of my CS classes didn't have a computer in the room. I'm certainly no expert, but even I can spot gaping flaws in the way we're going about things now!
So...we've got high schools misinforming the entire population about a major facet of modern life, and the worst problem we can think of is it might cause a couple percent of a couple percent decline in gender balance? Even that is speculative, as I have a hard time seeing a young woman being interested in algorithms and data structures and then concluding, based on her high school's offerings, that these were not part of computer science. By the time you're exposed to such things you're already aware that what your high school offers is a greatly-reduced version of the subject catering to your un-motivated peers, and therefore know not to jump to any conclusions based on it anyway. Shouldn't we be discussing something things like the general dumbing-down of society that occurs when we tell people "now you know some Computer Science[TM]!" who have only learned application use? I'd say that's a bigger concern.
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
I didn't want to fall into the classic old geezer thinking that everything was harder back in the day...So I peeked at the curriculum for some of the local high schools. And damn, it was harder in my day. In my high school classes back then we learned about Turing and Godel and their impact on how computers are designed. We didn't write much code, but I remember blackboard sessions on sorting algorithms, queuing, floating point operations, etc..
So I wonder.. 25 years ago, did other adults look at the high school curriculum and think the same thing? In the 1960s there was a push for "new math" which apparently included set theory and base-n computation, both of which would be very helpful in computer science. And I can imagine that even though Simpson and Newton-Raphson methods were centuries old, the computers of the 1960s were not necessarily accessible to students.
It reminds me of a story by Roger Zelazny. There is a mythical creature that didn't have hands. It loved to play chess, but because of his lack of hands (and IIRC, lack of opponents), this mythical creature had to play chess games in his head. He got to be very good at mental chess.
The upside of this is that there are are some very bright high school students out there. Twenty five years ago the people who were interested in computers were just a handful. In my class there were five or so. In a given high school there are probably still that many but it's harder to spot them because typing classes are masquerading as computer science.
to turn most girls off...
Wow.. this article makes me sad. I graduated from High school in 2009, and took all 4 years of computer science electives. The courses i took however were not "typing" or learning little HTML scripts. The first year we learned how to build a computer from ground up, installation of operating systems, and basic soldering skills. Second year we learned about setting up networks, configuring modems and routers and even learned how to create our own Cat5 cables. Third year was mostly about PC Troubleshooting, more advanced electronics principles, and reading schematics. for our final exam we had to read a schematic and build a radio on the component level. Fourth year the instructor wanted us to branch out and learn about computer science subjects that most interested us. We had to choose our subject, make weekly reports on what we have found and learned and demonstrate our understandings of the concept. There were only 6 of us to make it to year 4 but we all ended up doing something different. While I chose Linux and programming as my focus, we had robotics, web design, computer repair, network administration etc.. etc.. The funny thing is, I went to a regular public school in a small town of Georgia... You would think if a great HS CS education could be had here, California surely would go way above and beyond.
If you set the bar such that computer science in HS requires a high level background of math and computer skills, then you'll scare away the average student. Having a CS101 class in reality be a "introduction to computers" is perfectly fine in my book, as you don't want to start off with Day1: Introduction to Pointers. As that will scare of 99% of the non computer nerds. When i was in college (back in '93), there was a CS101, Intro to Computers and there was a CS102: Women in Computing.
While the first one was a "how does a computer work? How to use a computer?" the other class (CS102) was aimed specifically at women (and only allowed women to take). It was taught by our female professors in an environment to encourage women to pursue a college career in Computer Engineering or Computer Science. As a reference my CS+CPE graduating class in '98 had 2 women in it (and 100 men). While some women out there had the background in computers to jump right into the standard initial CS courses, many others were turned off by the daunting requirements and misconceptions about taking CompSci/Engineering.
This type of course layout is used in all sorts of curriculums. Ever take a cooking/woodshop/swimming class? They don't start with advanced techniques.
'More girls might get the impression that computer science is only advanced application use, which might turn them off to computer science.'
I actually am a high school CS teacher who is also interested in gender parity in CS. I teach a course I call "Computational Thinking." I describe it to parents as "computer science without computers."
To be fair, we do use computers for one day during the semester-long course: we disassemble and reassemble them to talk about components. Other than that, it's pretty much games, challenges, and other exercises. We turn the school hallways into a network topology through which to send messages. We play Mao. We transmit messages using our own encoding, compression, and error-checking scheme. And plenty more.
After one lesson early in the semester, a student asked, "Are all our classes going to be fun?" I responded that we had just learned system analysis, logic, debugging, and problem solving; how could that be fun? I guess what I'm trying to say is that you can teach CS without low-balling students with classes about typing and applications.
No.
Typing faster = more lines of code. What is the problem exactly?
When these students go to college and think that they want to major in "Computer Science" because "computers are fun," they will be set up for disappointment and confusion when a professor tries to explain to them the differences between sorting algorithms.
If we want to do a better job preparing students for college, then we should not try and "pretend" that computer science is only about using a computer. I could draw a good parallel example with the subject of chemistry. Until I encountered a high school chemistry class discussing "atomic orbitals," "moles," and all the prefixes and postfixes that change the chemical makeup of a molecule, I always assumed that chemistry was only about making bombs from whatever you could find in your garage, MacGyver style. I'm very thankful that high school did me the favor of showing me how boring chemistry could get, teaching me that pursuing the subject further in college would not be worth my time or interest.
The A.P. Computer Science course was a great learning experience, but only because there was standardized material that teachers had to adhere to so that we could pass the APCS exam.
Perhaps the problem is that there is too low availability of such programs or entities that can create such a standardized curriculum.
while(1) attack(People.Sandy);
I recently volunteered at a local high school for a lunchtime talk for a CS club.
It was advertised as "Learn how to send secret messages to your friends that even the CIA can't break" or something like that, nothing about CS.
In 45 minutes (60 would have been better), they learned how to represent base-26-ish in binary (5 bits), do a XOR, flip pennies to generate a one-time-pad, and encode/decode a secret message.
Non-CS students showed up. No experience was required - I could have done this with 4th graders. Many left happy - it's not clear how many realized they just learned some computer science.
No computers were employed in this exercise. It was sort of silly that we met in the computer lab - an art room would have had better table space. A whiteboard was useful.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
I remember the incredibly confusing day where our teacher spent the entire class period explaining to us what "Foo" was.
My first experience with a computer keyboard was with a teletype-age master console on a Burroughs mainframe I operated back in the late '70s.
Not even God could have ever touch-typed on that machine, so I evolved a technique (that I still use) involving thumb and two fingers of both hands, plus (rather more recently) the little pinkies for shift, ctrl and enter keys.
Sure, I don't rattle out 800 words per minute (or whatever the standard is), but I don't need to, so I get by. I spend much more time thinking about what I am going to type than I spend actually doing so, and my accuracy approaches 100%.
My high school taught us fortran and cobol programming (hey that's what was primarily in use in industry at the time). I don't think it was a good idea. I used cobol only once since then, for a summer job in college. Never since then.
They should teach things from which people can derive on their own which actions are safe to engage in, and which are not. The idea of protection rings: the difference between things running in ring-0 and in user space. Does app XYZ *really* need to run in the same ring as the *kernel*? Once people are able to evaluate these things on their own, they'll do a lot less stupid things with their PCs.
They should also teach basics of algorithms, understanding and analysing time complexities, and other things which are NOT tied to any specific vendor's technology. It should be the groundwork that you can use to understand whatever you come across in the future. It should have NOTHING to do with running specific apps, creating "hyperlinks", "web programming", or whatever else. Those are all trade skills - things you can trivially pick up if and when you should need them.
seems to be a name thing as I have seen computer stuff fall under lots of names and topics in the HS level.
And they just lump all of it under 1 area vs having parts in 3-4 different areas.
Does anybody really know what time it is
Does anybody really care
I'm just as worried about them using the word "science" for those classes!
America, Home of the Brave.
Pascal programming to demonstrate those concepts, along with good coding techniques...
;-)
Here you go: Real Programmers Don't Use Pascal. It's old, but some of the ideas would be worth at least bringing up in modern CS courses.
Oh dear. You obviously have no idea how much ridicule to which you've exposed yourself by mentioning "Pascal" and "good coding techniques" in the same sentence.
This does not surprise me in the least. But then I'm a mathematician and I have pretty much the same sort of reaction when I see what they teach in many high school mathematics classes -- it's a pale shadow of real mathematics; mostly just a hodge podge of poorly taught arbitrary skills and facts that may or may not have a lot of relevance to actual mathematics. There is a disconnect where many people don't see the difference over the difference between "facts about mathematics" and actual mathematics. It therefore comes as little surprise to me that there is a similar disconnect over the difference between "things you do on computers" and computer science.
The simple answer is that both mathematics and computer science are far too often taught by people who don't really actually have any grasp of the subject. Get someone who actually knows computer science to teach the subject and it will be taught very differently and cover different things. Get someone who actually knows mathematics well and it will be taught very differently and cover different things. Welcome to the real world. It sucks. Get used to it.
Craft Beer Programming T-shirts
There is a big difference between learning to bang out code (most coding shops I've seen demand 10,000 lines of code a day regardless of bugs), versus true computer science and the core concepts.
True computer science is more than 1/0s. It is being able to deal with the layers of abstraction from the pulses of electricity running around a CPU to how a user points and fertilizes their donkeys on FarmVille.
Several example puzzles that are overlooked when one thinks about CS:
Advanced concepts of structures more complicated than a linked list -- circular buffers, heaps, stacks, caches, hash tables.
Dealing with a hard disk. Being able to position the read/write head not just on top of the data you want, but right before it, so you get blocks before and after the read, or if handed a bunch of reads from sectors, the most optimal way to read them all, giving priority to the ones that need it the most first, and which to cache first, which others to dump.
Process scheduling. Round robin may sound good, but there are times when it may not be optimal.
Security from the ground up on a computer. This is almost an art form, where any component can be compromised.
Storage. What is the most optimal way to store data on a certain format? Gray codes? Just plain 1s and zeroes? 6 and 2 encoding like DOS 3.3 on the Apple ][ floppies?
Integrity of data. There is a reason why NoSQL isn't used in anything production-grade, and why ACID when it pertains to data storage has nothing to do with the stuff that comes on blotter paper.
CS is sort of squeezed between two things. CS graduates end up going into coding, or they end up in IT. It is hard to do much with a "pure" CS background these days, unless one is starting a company and has VC access to start pursuing cool things. The engineering aspect (new hard disks, etc) end up being the realm of the EEs and MEs.
No, no they do not.
The only courses offered at my high school were keyboarding and VERY basic VB classes taught by a math teacher who was learning VB as she "taught" us.
Still, even that wasn't much computer science and seemed closer to "C++ in a semester" style of teaching. You knew a language but you didn't quite get the really generalized concepts.
You could say, he didn't teach you pointers.
[Puts sun glasses on]
Yeaaaah!
First off, let me state that there is no shortage of the fairer sex in IT in general. To claim otherwise is asinine. Is it a 50/50 split? Of course not. But this nonsense of, "Oh no, we need to encourage the poor innocent girls into spending their lives sucking down energy drinks and hunching behind a keyboard!" is complete nonsense. I mean, when I was growing up, nobody encouraged me to be a freakin' ballerina. (Probably a good thing, I just don't have the legs for it. ;)) Equality is great. We have equality now. Forced numerical equality? That's a totally different and completely vile thing, and I hope to hell I never live to see it.
Now, as for education - I took a programming class in high school. Can't argue with it too much - it did say programming on the roster, even if it didn't mention, 'Remedial QBasic and Pascal'. The class was completely uninteresting to me, of course - by that time, I was producing C code capable of inflicting sheer terror on those who saw it. But the class did teach the basics - this is what an integer is, this is what a string is, here's how you do an if/then/else, here's how you iterate. Not a bad thing for a high school.
College? There's your real problem. I paid good money to go to a certain Institute in the frigid wastes of northwestern New York. You know what my first semester consisted of? ...This is what an integer is. This is what a string is. My second? Elevator simulations in Java. Which wasn't bad, but considering we were effectively *given* the answer - just had to plug in some variables and loops'n crap - uh, yeah. Third semester? Binary math. Because binary math is *so* useful. I understand the 'science' angle of computer science, but the idea that I'd ever need to do binary math while not sitting at a computer with a perfectly good calculator...
I didn't get a real education until I dropped out to go to a community college. Even there - I had to deal with bullshit. A COBOL instructor who did away with computers because they were a 'distraction'. I blame that instructor and his ten pounds of handouts for the destruction of the rainforest. But the occasional bad apple aside, most of the instructors there were absolutely valuable for one reason:
They had real jobs. They could explain what working in the real world required - kind of technical rather than science; but they also backed up the reasoning behind when - and *why* - you'd want to use certain types of sorts, for example. And they were happy to do so.
Our education system is in shambles at every level, and not just for computer science. Our history classes more often than not have descended into rote memorization of useless facts that are quickly forgotten. Science in general is the same. English? Aside from some useful instruction on the mechanics of the language at a stupidly early age, it's become, "Story Time for High School Kids". Math? I'm completely retarded at math. No, let me take that back - complete, legal retards are probably far more adept than I am at math. Same problem. "Memorize, reproduce, quickly forget." Never explain the what or why behind things. Of course, there are good schools out there. There are even good teachers in bad schools.
But upon the whole? One is best served by doing what sadly needs to be done to get an overpriced piece of paper, while struggling to maintain the drive to learn outside of academia. Because that's where *real* learning happens.
... and will cheerfully lie that they do. In 1998 or 1999, my son was in Sullivan High School in Chicago. They *claimed* he had the one and only "computer" class they offered.
I will gladly go on the stand in a courtroom, and under oath as an expert witness, say in so many words it was *NOT* a computer course, it was what, 30-40 years ago, was called a typing class.
Period.
A friend who went there in the sixties tells me it used to be a really, really good high school These days, it's 80% black and latino, so why would they want to teach them anything....
mark
Its a common problems that seems to exist with peoples think that if it is computer related, it must be "CS". I run across this when people say they are going to take some CS courses to understand how to use some application better and then getting flustered on not finding courses they want in the CS section of a college catalog. I point out to them that they need to look under CIS and tell them that CIS are the courses dealing with computer applications where CS courses deal with computer algorithms. I try and explain this when people cross the two and at times I get a blank look back from them, they can not see the difference. The simplest explanation that seems to work with them are: CIS - how to use the programs, CS - how to make the programs.
Amen. We had introductory computer science in my HS, and we had a class called... wait for it... "typing". We learned on manual typewriters. This was the 80s, mind you, and schools are usually behind the curve anyway. IIRC, there was some rationale about the manuals helping you learn better; but I bet it all boiled down to money. I wonder now if my loud keyboarding stems from the fact that I learned on a manual.
I actually don't recall what language we used in our CS course. It was probably BASIC. That's utterly unimportant as it should be in any introductory CS class. You're learning ideas, not languages. We watched a really cool video on sorting algorithms, and coded quicksort and several other algorithms. It was interesting to note that for a newbie, quicksort was a PiTA to code and debug, and actually seemed slower on these machines--I never got a verified sort to work during the time allotted.
Anyway, the whole idea of the guy above thinking that you should be made fun of for learning with Pascal is a bit silly. First, you were a newbie and probably had no choice. Second, if you're any good at all, the first language you learn won't cause brain dammage. I beg to differ with other famous experts in the field who say otherwise. If BASIC damages you, it's your own damn fault.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
It's about parents and politicians. Most of the parents that really don't care or appreciate the difference between CS and formatting a bullet list in word think that their kids are learning impressive-sounding technology skills for the 21st century. Anyone with ambition in the school board gets to brag about how many students take classes with swanky titles in their election bid for their next office. The possibility that any student, girl boy or otherwise, might benefit from the classes is a far distant consideration. The only reason girls come into the picture at all is that they form at least half of the student body and they are needed to fill classes.
It's no less egregious an approach to getting elected than a cynical attempt to get religion into the curriculum.
Nullius in verba
There is no science in Computer Science. That isn't a bad thing, it just means that it isn't science.
Everything a high school student needs to know about Computer Science can be summed up with one sentence, "Computer Science is a branch of mathematics, so if the prospect of getting a math degree strikes fear into your heart, pick a different field of study.".
I graduated from high school back in 1997. I knew about two dozen kids (all guys, go figure) that were going to college for computer science. One got a degree, the others all switched (mostly to MIS). I tried to warn them, but they didn't believe me.
See that "Preview" button?
I know how to use a gas pedal, I must be an auto-mechanic.
Well, I'd been coding in BASIC since I was about twelve years old, both TRS-80 and Commodore dialects, so I wasn't a newbee. Frankly, since I left highschool, I think I've only worked with Pascal once, when I was helping a friend of mine's kid with linked lists from their computer science class. I'm not bragging up Pascal, but for an introduction to structured programming, it's as good as anything. Back when I was in school, OOP programming really hadn't filtered down. Nowadays, it probably would make more sense to start with Java, but when I took my classes it was the 1980s.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Our CS class in high school was basically programming in c++. Made college programming classes in c, c++, and java a breeze.
There is an issue with keeping students in school these days. There is an even greater interest in keeping them in some of the drier courses. Grades seven to twelve students will tend to abandon subjects unless some immediate reward is at hand. Some computer science courses have been so dry that a computer is hardly needed for the first couple of years as subjects such as the mathematics of computing take forever to plow through in depth. I suspect that these days the classes in computing need to be taught backwards to hold on to the students. Show them an app or game that they like and then teach them how an element of the program was created and why it was created the way that it was. Eventually the entire, simple app construction should be understood by the student.
Another huge issue are the junk computer schools that snag the ignorant and take tax payer money and student loan money with no benefit to the students. For example going from illiteracy to creating powerful, new, computer games and animations in 18 months is absurd. The promise twenty years worth of skill building in a couple of months to candidates who likely will never be more than dish washers or ditch diggers.
Classes that just teach you how to do math are not really Physics either. It's just like learning a trade skill. The real science starts in the General Relativity and Quantum field theory classes, usually the 10th class after mathematics 1 & 2. This is also where departments separate the men from the boys (and women from girls).
Well... Just saying.
Without those courses you won't understand a thing later on. They are not a trade, they are a foundation. And just as you can not build a house on a bad foundations, you will not be able to work as a physicist if you can not do math nor as a computer scientist if you do not understand programming concepts.
Ah well, just some random nit-picking and pedantry. .
"Computer Science" isn't a science. Neither is mathematics. Websters, Wiki, etc.... all have it wrong.
Science is measuring the natural world, developing theories based upon data and then seeing the theory correct.
Unfortunately the adjective science has been abused so much that the true meaning of the word has been forgotten. The same goes for engineering. And no, CS isn't engineering either.
The El Paso Integrated School District has what they call a "Technology" class in their HS curriculum. The Syllabus is nothing but basic MS Office skills. It's pathetic, and should be called a Secretarial class instead.
Sadly, my son's high school doesn't have any programming classes. All their 'computer science' classes are just application usage, with a single class on 'web development' using one application.
In the mid-80s, I learned BASIC in high school in one class, then I took AP Computer Science my senior year where I learned PASCAL. These classes were offered through the Math department. Geek that I am, I was even president of the Computer Club in senior year. Modern high schools don't even seem to have such things.
I weep for the future of CS in America.
-Necron69
I learned on a manual typewriter too. I love loud keyboards and got myself one of those Das Keyboards with the blank black keys. When I get to the end of a paragraph or I finish a good chunk of code and finish the SVN commit command I like to hit Enter with a big loud CHUNK!!!
That way the whole office knows that I am working. :-)
I'm pleased that we are dumbing down the courses for boys so that we can encourage girls to participate. Does this really mean that girls are just plain old more stupid then boys?
is that WPM rate measured in Python or Perl?
My high school had 3 "Comp Sci" courses, this was 6 years ago. Two were semester courses, one was a year long course.
The first course was basically intro to HTML and JavaScript. We had to create some simple webpages, and write some code that did simple things like mouseovers and onclick events. At the end of the semester (last two weeks) the teacher gave a crash course in Java. Enough to write a hello world class, and do some simple math.
The second course was a typical computer science 201 class, in Java. We had to do basic problem solving.
The third course, which was a year long, was Data Structures and Algorithms. You had to take at least the second course as a prerequisite to take this class (you could skip the first one with a waiver from the math department). It covered the basic stuff, sorting algorithms, trees, linked lists, hash maps, pointers, memory management, etc. This one was a real comp sci course, a bit abbreviated compared to a college level version, but a comp sci course nevertheless. I'm pretty sure that school still has that course (it's still listed on their website).
So I would say SOME schools know what computer science is.
I know how to use a gas pedal, I must be an auto-mechanic.
I believe "race car driver" would be a more adequate analogy (one who uses -- rather than fixes -- cars/computers). Although I suspect Torvalds, Stallman, Knuth etc. can "fix a computer," that's not necessarily their claim to fame.
Of course, race car driver analogy sort of excludes the purely theoretical aspect of CS, so I guess the conclusion is that analogies aren't perfect...
Hey now... I was in high school in the late 90s and our computer science class was centred around Turbo Pascal. I learned a lot writing Pascal programs, and for my final project my lab partner and I wrote a graphical RPG including an on-screen scrolling-text display we wrote from scratch. The year after I left, they switched to C++.
I know Javascript, BASIC, Pascal, a bit of Perl, but not any C. And while I feel that every CS student should come away knowing it, I'm also thankful to these other languages for teaching me the fundamentals of program logic.
sigh...yet another article about how the poor little girls are being poorly served because they just don't want to do hard stuff like math or programming.
Look, we get it...but stop complaining that the whole world needs to change to make things different for women. Women are as free to choose education and career paths as men are, the fact that they don't do so isn't a fault of society, it's a free will choice. I get sick to death of hearing how terrible it is that young women are allowed to choose for themselves, but are choosing incorrectly.
IIRC, there was some rationale about the manuals helping you learn better; ...
Dude, they're called man pages...and yeah, they do help you learn better ;)
We have public speaking courses where kids use powerpoint to do presentations, and use word regularly. Unfortunately we don't really teach any computing skills in those classes as much as we teach "application" skills
Using the application gives a student an immeadiate response. He can see how well he is progressing. The successful presenation provides a sense of accomplishment. I am not convinced that a purely thoretical approach would work at this level.
Knowing how to use a keyboard or some basic knowledge of the web are valuable skills for just about everybody, not just computer scientists.
This is a fair criticism. Teaching "typing" is not "computer science", it's typing. Back when I was in high school we learned touch typing on IBM selectric typewriters. Were we really learning CS? Does it become CS just because it's on a PC?
It might be legitimate to have these type classes in a CS course of study, and in fact typically ARE. It would be overly pedantic to take issue with application classes having a CS designation (i.e. CS101), but in a microcosm, they're at the fringe of CS in much the same way Stephen King is "american literature".
I have two degrees... Civil Engineering and Computer Science, taken in that order, a dozen years apart. I did not know what CS really entailed until I was in it.
As for typing... it isn't CS. But it was still one of the two most valuable classes I took in HS. (The other was Senior English. And yes, I did take Physics, Calculus, etc.)
âoeAny society that would give up a little liberty to gain a little security will deserve neither and lose both.
While it's good to have some programming language in your back pocket for CS studies, the issue IMO is that those really are not "tools of the trade"... I hardly programmed at all for my own Master's in CS. The tools of the trade are pencil and paper mostly.
Now, programming language design and compilers is certainly a subfield of CS, and some of the most interesting languages ever have come from academia (thinking of Lisp, Prolog, Haskell)... but "programming skill" is not per se an academic discipline.
I want to play Free Market with a drowning Libertarian.
Even old timers like this guy (Joel Spolsky) don't know what Computer Science is about:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
Its not knowing how to write programs and its definately not implementation details about a certain low level language pointer arithmetic.
You can ask exactly the same question about mathematics. What most high schools present as math has really nothing to do with the actual discipline. I suspect it is probably true about most subjects.
AccountKiller
In my first year of computer sciences at my school we had a teacher who understood computers and, frankly, was a geek.
He gave me top grades because I did everything right.
The second year he got replaced by a woman who only knew what her "computer sciences" manual told her to teach us... This led to me getting a lower grade since she didn't understand my methods, like using "Hot-keys" etc.
Long story short the quality of these courses vary wildly depending on the teacher and his/her experience level.
There a vast number of lower class Americans excluded from jobs because they "cant do the computer". This usually means things like managing email, writing a memo, and entering things into a database. this also means you should have the literacy and math skills of at least and 8th grader, which is a problem too. When you look a community college catalog you see lots of courses addressing these basic skills.
I graduated in 2001 (Antioch, IL) and our compsci classes were actually programming. First class was VB and the second was C++. We even learned how to program our Ti-8x calculators. They had an AP class available my senior year, but didn't advertise it. If it had actually been in the class list I would have taken that too.
my rule of thumb for schools is an hour online(non-porn) is as good as a week of public school, unless ur teaching conformity and braking the working class spirit
warning pointless sig
I took keyboarding in 6th grade, around 2000. Schools should be teaching it at the middle school level, if not earlier. Calling a high school class 'computer science' when it's just simple keyboarding and common-sense surfing the net is misleading to colleges and not fair to other applicants. Fortunately, my high school actually tought languages, but not much beyond that. Then again I only took the first year since all future years conflicted with my required language class >:( ...
"Computer Literacy" was the name of the class that was offered in my middle school. It also offered a unit on Basic, though.
I'm reading a book about the failure of the love-affair between the education system and computers. It was printed in 2000 but it's fairly relevant today.
Armstrong, Alison. "The Child and the Machine." Beltsville, Maryland: Robins Lane. 2000. Print.
I'm barely into it but there are some sticky points, the author's lack of intimate knowledge of programming and computing one of them. Page three features some pretty mindlessly listed factoids about programming that bear resemblance to a high schooler's crammed and rushed-to-laserprinter report on Early Computer Languages. One really bad sentence:
"Far from being skilled technicians, many of today's computer operators are little more than typists because the software packages they use require them to perform repetitive, machinelike tasks."
What does the author expect? It's instructions for machines. She must have been too astronomically bored reading descriptions of Turing's machine operations to render a more philosophically correct perspective on computing.
So saying, I thought I should go read the article mentioned here. And the author of the article is right, "computer science" is a misused term. Funny enough, this book I'm reading harps on about how "computer literate" is also misused and ill-defined. There's a quote from Andrew Molnar (who created the term "computer literacy" in 1972):
"In a 1991 interview, by then painfully aware that computers had failed to have much positive effect on education, Molnar explained: 'We started computer literacy in '72. We coined that phrase. It's sort of ironic. Nobody knows what computer literacy is. Nobody could define it, and nobody knew what it was.'"
I once designed a free course in basic computer science for a church to teach the homeless, and they were happy with the syllabus but the prospectus involved putting three to six students on one computer and they didn't see how that would work, and were simultaneously afraid to turn away homeless people from using a privilege when others were being allowed (because of class size and other constraints, mainly how much time I was willing to spend and how many people I was willing to teach.) This is what my vision of the basics of "computer literacy" entail [excerpts]:
HARDWARE AND SOFTWARE
To be most efficient, the course would be designed so that each computer screen or terminal would be occupied by three students simultaneously. ... The mouse is not a great instructional device for two reasons: usually only one pointer is available anyway, and even if several pointers can be installed reading from several devices and even if the processor can handle all of them simultaneously, the mouse/pointer is not really meant to be anything more than a convenient effort-saver, and the simplicity of point-and-click interfaces doesn't really immerse the adult student in the intricacies or complexities of the computer the same way that the keyboard can. The computer itself should be anything in the x86 processor series, preferably a 586 but any computer between 286 and 486 is also reasonable and far less expensive ... I think it would be advisable to use older computers dating back realistically no earlier than 1985, but preferably no earlier than 1990. ... As far as acquiring software, all the tools needed or desired by the instructor can be found online for free or can be programmed.
COURSE GOAL OR OBJECTIVE
The full course should be teachable within six hours. After ... Introduction to computer use
the course, the student should be able to discourse freely
about the engineering and operation of computers and should
be able to say that they were able to program a computer to
perform specific functions.
even with a goal of learning specific software collections
if hindered by technological intimidation and is aided by
a level of familiarity and confidence that can't be bought
out of the box, or picked up by using point-and-click inter
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
You are taught math the entire time in high school, and an advanced math program starts with the assumption that you know how to add, subtract, multiply, etc.
A decent maths program at university level (yes, even the arithmetics classes) will start with some axioms and a decent chunk of group theory.
They won't necessarily tell you how to add two numbers but they are not going to expect that you somehow, intuitively know what an addition/multiplication/... is.
So in a very real sense (unless you are highly interested in actual numbers) they try very hard to develop as much as possible from scratch and don't make any assumptions about your high-school education
On the other hand, when I took computer science in my junior year of high school, the first thing we learned was Hoare preconditions, postconditions, loop invariants (we used the textbook How to Solve It By Computer). An unexpected and traumatic experience that turned me off from CS for several years.
Keyboarding courses are sort of the equivalent to spelling/handwriting before creative writing courses. While it would be nice to allow these sorts of things to be tested out of, the reality is that you need some level of proficiency at swimming before they let you into even moderately deep waters.
You're funny.
Teaching a kid an IDE is not Computer Science. But the you thought programming was computer science.
Silly monkey.
I remember in high school we were given a lab where we were instructed to determine if a person's arm angle (the degree to which the forearm is out of parallel to the upper arm) had any effect on throwing accuracy. We to had make a hypothesis on whether it would, figure out how to measure the angle, and design an experiment to test it. There wasn't a lot of that kind of stuff, but the things I remember from back then are when the teachers made us think for ourselves.
By that guy's standards, we are all "quiche eaters." Not a single one of us uses an 029 keypunch to enter Fortran any more.
Pascal was, and is, a good teaching language.
...unless you're analyzing algorithms and assigning them to complexity classes, or at least determining their order of operation.
So if you wanted to have a high school level class that was correctly named "Computer Science," what would you put in it? Writing working programs is computer engineering, and complexity theory is too advanced for high school students.
Why is that even considered an important issue? Seriously. Are there also high school programs designed to up the ratio of males in nursing?
The tyrant will always find a pretext for his tyranny - Aesop
The AP Computer Science AB exam was killed off last year so there's less incentive for linked lists, BigO, binary search trees, to be taught at the high school. Truth is, if there were no AP exam, most Principals would kill off those programs.
More interesting is that the IB dossier views CS so important that it is one of the six pillars of the IB diploma. Funny how the rest of the planet view CS more important than the USA (AP).
I recently had a former high principal ask me if anyone programmed computers anymore?
"Those who can, do; those who can't, teach".
I hold a BS and MS in CS. The problem is that everyone I met during my college years had no desire to teach. CS isn't a field where you get a degree in so that you can teach (at least not at the HS level).
I had a mixed experience in HS. The first two classes taught qBasic and then Visual Basic (5.0 I think). These gave me a very good foundation for beginner concepts. The higher level class was updating the website for the HS using Front Page. The problem was that the teacher's knowledge was based on reading a teacher's book instead of real world experiences. To him, it was much harder to get the web pages to look good then it was to write an IF-THEN-ELSE statement, so he made that class the higher level class.
To me, the real key to getting people into CS is to show them that it's not rocket science. If you tell the computer to do something, the computer does it. Start with decision graphs and flow charts, then teach them how to implement those in a language.
It also helped get people into the classes in my HS by telling them there was no homework since all work had to be done at the few licensed machines we had.
Computer Science is a terrible name for this business. First of all, it’s not a science. It might be engineering, or it might be art it’s also not really very much about computers. It’s not about computers in the same sense that physics is not really about particle accelerators, and biology is not really about microscopes and petri dishes. It’s very easy to confuse the essence of what you’re doing with the tools that you use, and indeed on some absolute scale of things we probably know less about the essence of Computer Science than the ancient egyptians really knew about geometry. I think in the future, people will look back and say yes those primitives in the 20th century were fiddling around with these gadgets called computers, but really what they were really doing was starting to learn how to formalise intuitions about process.
The learning outcomes for Computers and Technology haven't been updated since 1995.
Supporter of the +1 Over Dramatic mod option. In memory of apk.
"learn to use hyperlinks"
Wow. I wonder how many weeks that part of the class takes?
As opposed to what...other dimensions or parallel universes?
Dammit, keep your mouth shut, man!
They don't get to learn that until they've forked over their $30 registration fee, completed the OT Programmer III auditing and have been shown the secret handshake!
Honestly, don't they teach the traditional courses any more at you programmer's temple? What's your badge prefix number?!
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
I see nothing wrong with learning how to code when you're also learning algorithms. I learned BASIC back in the day and it gave me an avenue to experiment and apply what I learned from other sources.
Kernel protection schemes are a specialized area dealing with operating systems and should not be included in a course teaching first principles.
Agreed. As many other have pointed out, even colleges don't know what computer science is. In the beginning, it was mostly mathematicians and electrical engineers. Today, some places are just about churning out code monkeys. I know I'm glad I went for the Computer Engineering degree instead of Computer Science. Application development is okay I guess, but I really loved the theory and design of CompE; at my university, it was basically an alternative EE degree, with heavy emphasis on digital electronics, machine design, integrated systems, etc, plus a much bigger chunk of math and physics than CS majors ever saw.
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.
I cut my teeth on the 024 and mainly the 026 keypunch for Fortran, Cobol, and RPG as well as the assembler level code for the CDC machines... think it was called compass or something like that.
If you yanked out the programming card too quickly from the 026 keypunch then you could strip out the star wheels and then have to find them on the floor which was always a pain.
Anyway, i am glad that the input operations have been changed from punch cards (sorry Mr. Hollerith) to keyboards and other techniques.
And in the end, the love you take is equal to the love you make
I took Computer Science at a California high school a long time ago. We programmed in BASIC... my final project was a terrible, terrible video game. Ok, everyone's final project was a terrible video game. It was definitely not just a typing and using applications class. Now, we are talking about public education, but surely not every school has forgotten how to teach a basic programming and algorithms class.
Well if you've had other functional programming languages, C is pretty easy to learn and it was only a 1 quarter long class for me in college, as was C++, but I can't imagine they can cram C++ into a quarter (maybe a semester, but that would be pushing it IMO) these days as a ton has been added to it since I had it (heck, we didn't even have templates or try/throw/catch blocks).
I write C++ sometimes in my day job (more java, perl and silverlight these days) and I personally feel it is an awkward and kludgy language, to say the least. It is in no way elegant like true OOPs (smalltalk, objective-C), and my work even writes 99% of our code as true OOP outside of about a 40 line "main" - so no public or protected variables in classes and the classes MUST include message passing.
As for my high school, we had 40 IBM PCs (and by that, I mean the ORIGINAL IBM PCs - I believe they were 10 or 12 years old when they finally got replaced) locked in a lab and one teacher that knew enough of how to use them to teach an intro to computers class, which was in BASIC. In contrast, my elementary school and Jr High had Apple ][s in open labs where we used them before, during, and after school, and we (as in the assembly language programming pre-teens that were also cracking every piece of software we could get our grubby hands on) often taught the teachers how to use them.
Actually, Java is a tough teaching language. Most high school and early college students don't have the ability to think abstractly about objects. The idea of "everything is an object" is a tough one for them. You often have to do a lot of "pay no attention to the man behind the curtain" teaching to get them through the basics of variables, loops, etc. Pascal is a great teaching language because it allows you to teach the mechanics of structured programming without glossing over 90% of the language in the process. Once students have that part down, it's much easier to transition to something like Java.
Of course, just to keep the flame wars alight, I still recommend Ada as a teaching and production language. It's just better. (waiting for the troll mod now)
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
When I was in High School, back in the '90s, we went through a couple of "Computer Science" teachers. The first was a washed-up math teacher looking to have us write in BASIC, though most of us used pascal or C++ (I bought Turbo C++) for our projects.
She had a real problem with students knowing more than her, and it showed. She modified the grading system mid-year to include 30% for "class participation" and handed out almost an entire classroom full of C's for the semester. One kid in our class was eventually suspended for jumping up on a table and kicking her in the face.
After her being asked to retire early, several of us went back for the replacement with an AP programming class that was mostly free form (run by the sysadmin who didn't know any languages). It seemed to track alright, but that usual high-schooler disrespect for the unqualified came up in our class again.
Year end projects came up. I wrote a texture-mapped bucket-sort protected-mode-DOS 3D engine from scratch for a chess game, wrote the move and input systems, did all the art, and wrote up basic MIDI playback.
My partner played the MIDI song that I tracked.
He got an A, I got a C. The reason? Not enough comments...
For me, that resonates as a few life lessons:
1. If a counter-party has all the power, kiss ass.
2. Even if you're going to get a C, don't over-comment your code. It's just annoying to see comments that describe what the code describes. Besides, see rule 3.
3. Politics bests quality nine times out of ten.
Learning those few lessons prepared me for career as a computer programmer, so I'd say that my CS classes were pretty spot on.
Hey now... I was in high school in the late 90s and our computer science class was centred around Turbo Pascal. I learned a lot writing Pascal programs, and for my final project my lab partner and I wrote a graphical RPG including an on-screen scrolling-text display we wrote from scratch. The year after I left, they switched to C++.
I know Javascript, BASIC, Pascal, a bit of Perl, but not any C. And while I feel that every CS student should come away knowing it, I'm also thankful to these other languages for teaching me the fundamentals of program logic.
Agreed. We had Pascal, C++, and QBasic (later Visual Basic). I had C++ before Pascal, and then ported a number of C++ classes to Pascal - including a C++ mouse driver that used inline assembly. Pascal is quite a nice language and has its strengths. It's just not as flexible or useful as C++ any more.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
Although I suspect Torvalds, Stallman, Knuth etc. can "fix a computer," that's not necessarily their claim to fame.
I hope nobody would confuse Torvalds or Stallman with computer scientists, such as Knuth.
My high school taught me Fortran, Pascal, C and some assembler, but I would still not call it computer science. Computer science is applied math, things like lambda calculus, Turning machines, formal definition of computation, computability, grammars, language theory, algorithms, data structures etc.
They don't touch these in high schools and sometimes not even all of these topics get covered in a typical CS degree program.
As the island of our knowledge grows, so does the shore of our ignorance.
I'd love for school districts to (1) have actual computer science programs at the high school level AND (2) Computer Competence programs that go beyond typing and recognizing the general use of File, Edit, View, and Help menus.
Let's actually teach them some more in depth stuff about computers.
(1) Safe Websurfing -- Cookies, temporary files, malware/virus avoidance and damage control.
(2) Parts of the computer (updated for modern and continuing specs) and standards. Motherboard, CPU, Heatsink, PCI, PCIe, AGP (may as well), hard drive, flash storage, RAM, (sound integrated and discrete), video (integrated and discrete), power supply, etc.
(3) Software vocabulary: Open source, shareware, freeware, free-to-try, how to decide which software to use and which distributor is reputable.
(4) Home networks, routers, modems, wireless standards
(5) Relevant law (it's just safer this way) including recycling, IP, interstate commerce, etc.
I disagree. Teaching students the tools of the trade (IDEs, debugging, control structures, if....then...else) are the foundations of the Science. You are taught math the entire time in high school, and an advanced math program starts with the assumption that you know how to add, subtract, multiply, etc. Teaching kids, either in high school or CS101 gives them the tools to move onto and understand Binary Trees and Linked Lists..
I agree, but I don't think anyone is complaining that those courses are being taught. They're complaining about the label. Learning basic arithmetic is important, and you can't do Calculus without it, but if you label a basic arithmetic course 'Calculus 101', you're doing something wrong, and you should be called on it.
I had a class named "Keyboarding" in high school, in which they taught us how to type. I also took "Computer Science" in which we learned about sorting algorithms and linked lists. They keyboarding course helped in the Computer Science course, as it allowed me to write my code without hunting and pecking for letters. I'm glad I took keyboarding, but I would have been pissed off if they were teaching me how to type in my "computer science" course.
>"computational science" or even "computational mathematics."
I like both of these better than my name. Good job.
A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.
In my high school we had 3 tracks you could take for your technology requirement.
Track 1: Multimedia - The easiest and most basic of the classes. You learn to use powerpoint, dreamweaver/frontpage, photoshop and some very basic video and music editing software. 80% of the school took this. Only the one year-long class.
Track 2: Video Production - Working on much more sophisticated video editing projects. Common year-end projects were minutes-long stop-motion animation projects or half-hour short movies. Discussion of filming techniques was much more in depth. About 5% of the school took this. Sometimes a second year was offered as more than just an independent study if there was enough demand.
Track 3: Computer Science/Business Computer Programming. Up to a 4-year track. Years 1 and 2 - C++ (now Java) Year 3 - SQL and databases. Year 4- Independent study. Day 1 of the class started with printing to the screen and if statements and quickly progressed to loops and recursion. About 15% of the school took the first year, and about 5% progressed on to years two and three, Prepared you for the AP computer science test fairly well.
>What you describe is called being a Math Major.
In fact, when you're done with a BSCS you are very close to a math major.
But a lot of CS is about applied mathematics - how to use mathematics to efficiently solve computational problems.
A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.
I have also used them in the distant past. But I'm pretty much 100% sure you don't still use them.
In my senior year I took Computer Science 2 to fill up some time, thanking the teacher kindly for allowing me to forgo CS1 and get some sort of challenge. As it turned out the teacher knew nothing about C++, the language we were to learn. This wasn't helped by the fact that every computer was completely locked down to the point that notepad wouldn't even run. Fortunately, we had an IDE. 3 guys and a couple days later we had a nice program to disable and enable the security software (Foolproof) at will. We learned about 3 weeks worth of material in that class, which amounted to learning some basic logic. "Computer Science" is such a broad term, it's as difficult as teaching "Art". Most schools come up with little thought through curriculum because the staff knows little to nothing on how to teach it. However, it's hard to blame them. I don't see too many computer experts lining up to teach 6-12 graders. Computers should be taught like an Art class would. Teach the students the hardware basics, how to build a PC from the ground up, move on to various OS setups, and then to projects which use the different abilities of what was built. I'm sure there is much more that could be listed here, but as with any high school class, the idea is to help the students find what they enjoy so they can pursue it. Let them experiment, let them create, but teach them how to use and maintain the tool.
Where genius and insanity become confused true wisdom is found
The tools of the trade are pencil and paper mostly.
Bingo! For PhD study, I've done about 1000:1 writing up my ideas versus programming. If your first inclination in CS is to go to the IDE and start banging away, you're probably wrong. Design and theory are the two greatest tools to the computer scientist. The programming aspects, while important, are a tiny fraction of what you really do. I suspect the same is true of those developers out there who work at the higher CMM level companies.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
Why is that even considered an important issue?
Because gender imbalance in a field is damaging to that field. Computing in general, and Computer Science in particular has suffered enormously because of rampant gender bias.
Are there also high school programs designed to up the ratio of males in nursing?
I would not be surprised if there were. Either way, even in nursing, the gender imbalance is nowhere near that of CS. And fixing the gender bias in CS will naturally have an impact on the female-biased professions. Women who might have been pigeon-holed into nursing might discover their talents in another field, thus increasing demand for male nurses. Also, men who may have been pushed into computing because of gender bias might end up in a profession they are more suited to.
... and then they built the supercollider.
Purists would even disagree with the article author's implied definition of Computer Science, i.e. when she mentions "program design". For some folks "Computer Science" is wholly separate from "programming".
An IDE is a programmer's, not a scientist's tool. Try not to confuse computer programming with computer science. The two intersect, but are not the same.
Control structures and branch logic are certainly computer science concepts, but their occurrence in specific languages are merely an implementation detail. Proficiency with a language, ability to debug, or using an IDE makes you a computer scientists no more than proficiency with a word processor or HTML makes you a programmer.
A computer science curriculum is woefully deficient if it focused on the use of tools (a language, an IDE, or HTML), just like a mathematics curriculum wouldn't be teaching mathematics if it focused on the use of calculators and software like Mathematica. Proficiency with tools does not constitute an exercise in science.
--Udo.
Only in my nightmares do I use them.
As I said... I am glad that input operations have been changed from punch cards.... should have added "and punch card coding devices like keypunches".... thanks for clarifying that for me.
Do you remember the "starwheels" used for the programming card?
Perhaps the only this worse than punch cards was paper tape. Remember loading in a new compiler from a large spool of paper tape only to have to hiccup someplace in the middle.
It has been decades since I have had to mess with a keypunch. And I hope to keep that record intact.
And in the end, the love you take is equal to the love you make
I can't complain about Pascal. Yes, it's oversimplified, and thus makes some things rather verbose when compared to languages like C, but the whole point of the language is to teach structured programming concepts, much like BASIC was meant as a dummy's Fortran.
OOP is just generally a lot harder to learn, but with the amount of GUI coding going on, it's still important to get over that hump.
The world's burning. Moped Jesus spotted on I50. Details at 11.
As A course I just completed mentions. Computer Scientists are the Scientists we are inventing the industry, just as Physists worked electrical systems at the turn of the last century. Eventually Software Engineers will take over the standard IS jobs, i.e. Microsoft Engineers(MCSE). If you are not pushing a boundry in the science somewhere, or working in a poorly understood field, you are an engineer, as such should know the tools, and environment in which to develop software systems. Computers Science degrees churn out programmers because a computer scientist must be able to program, students see this as the fastest route to be a programmer/coder. They miss out on learning much of the Software Development Life Cycle (SDLC). My Graduate program in CS, had relatively little program or algorithms, unless its an Engineering course.
"Computer science is no more about computers than astronomy is about telescopes." Edsger W. Dijkstra
In our project we get > 50% girls when doing scalable game design: http://scalablegamedesign.cs.colorado.edu/ 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.
Keyboarding, links, etc. are to Computer Science as inclined planes, levers, etc. are to Physics. The latter are often taught at the Junior High School level. The former were taught at the Elementary School level 15 years ago, when my children were learning to make HyperCard stacks. Neither are even vaguely related to Algorithms and Data Structures or Quantum Mechanics.
"Programming skill" is, however, far more important to most Computer Science students who aren't going to pursue a job in research or academia. I can't remember the last time I had to perform any sort of algorithmic analysis beyond knowing intrinsically what is an efficient and inefficient solution to a problem.
Compared to yours, my Masters in CS for professionals is focused on programming and software development methodologies. CS is a diverse field and there are many, many routes one can take from the base knowledge with the first big fork being if you want to follow the theoretical path or the practical path. Both are valid and important and the base education should reflect a combination of both fields before students can specialize.
To be honest if I had learned nothing but theory for two-three years when starting my CS undergrad I would have switched majors. But i didn't since I had practical experiences as well as theoretical and I love my software dev job as a result.
Uh huh... why we would have resolved the question of P==NP by now if only there had been better gender balance. What twaddle.
In other words you don't know. Well there aren't in any school I know of - but go ahead and provide some examples.
Well I've spent time in both hospitals and CS departments and my experience is that as a proportion there are significantly more women in CS than there are men in nursing.
Except there won't be any male nurses to fill that demand since they won't have been encrouaged to see that as an option. Oh wait... I see... a generation or so later the number of male nurses will fill the gap. So let's fix things for girls now, with the same special programs and encouragements of the last two or three decades, continue to ignore boys for the next generation or two and then things will even out? What amazing misandry.
The tyrant will always find a pretext for his tyranny - Aesop
By that guy's standards, we are all "quiche eaters." Not a single one of us uses an 029 keypunch to enter Fortran any more.
Pascal was, and is, a good teaching language.
Perhaps not, but I still weekly use a paper tape to bootstrap an old PDP-11 to play games.
Karma: Excellent. 15 moderator points expire sometime.
Don't even talk about paper tape. I once manually reconstructed a lost section of code with masking tape and a paper clip to make the holes. That was 30 years ago, but I still don't ever, ever want to think about paper tape ever again.
Science as applied to Computers is neither benchmarking (which is product testing) nor troubleshooting (which is the fixing it part of programming or systems analysis).
Computer Science is (for a few esamples) the study of data relationships so as to develop and test improved methods of storing, sorting, and retrieving data; the development of methods of designing programming environments to improve out ability to (for example) use parallelism in systems with multiple cores; using mathematical proofs and theorems to understand how to improve hardware design; using physics to develop quantum computing hardware and software; using materials science to improve data density in various storage media; applying computerized technology to other complex scientific disciplines to aid the development of knowledge in those fields; the development of mathematical constructs like relational calculus to create new ways to house databases, like Codd and Date did to invent relational databases (DB2 and Oracle are a couple).
I understand that a meta-definition would be better than a list of examples, but my time as a computer scientist was 20 years ago, and I was really on the line between being a systems analyst and a computer scientist. I was good at using the CS techniques I was taught for solving complex real-world problems for major public institutions (Taxes, Environmental Protection, Gas Measurement, etc).
Algorithms and theory of computation are between maths and science, which have overlapped in most scientific pursuits for centuries.
It is about help desk, customer service, configuring CISCO Routers, possessing magical powers to fix the internet, using excel, how to troubleshoot Windows, and writting simple hello world programs.
Just ask any HR representative and they will tell you. This is why it is required to answer phones.
http://saveie6.com/
My son has taken what is called computing and keyboard skills. It pretty analogous to the typing class I took years ago.
Feel free to visit my site.
http://degree-info.blogspot.com/
http://online-education9.blogspot.com/ and
http://school-info9.blogspot.com/
merry christmas.
chears.
We called it "Computer Math" back in 1981.
Of course, we felt damn lucky that we even had a computer lab full of TRS-80's. But it was a class in BASIC, on how to solve math problems, graph functions (linear and polynomial.)
Our motivation to take the class was the idea that, at that time, the personal computer revolution was just beginning, and this set of skills was more or less a guaranteed career. That's certainly not the case anymore.
I don't know how or why you'd attract a person to a field of rigorous study if they weren't going to have some reasonable expectation of a secure future. And that's not up to the teacher or the designer of the curricula. That's up to industry.
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
Keyboarding and linking to other sites is Advanced?
Frankly I think King fits American Literature more than typing fits CS. Learning typing in a CS class is more like showing up for your first day of American Lit and finding that teacher intends to start with teaching you to read. It's a fallacy in two ways. First of all typing is ancillary to computers, we need to type to use them, but only because no one has yet discovered a better input method. In theory you could just as easily talk to them, use an eye based virtual keyboard like they make for paraplegics, or even interface directly with them neurally. As it happens, a keyboard is the best universal access method now, but that hardly makes typing a part of computer science. Secondly, if we accept that typing is, for now, a useful ancillary skill for computer scientists to posses, it's an incredibly basic one. It's at best a prerequisite, not a part of the subject.
Similarly, reading is ancillary to American literature. Reading the stories is certainly the most effective way for most people to absorb literature, but one could listen to them being read or read them in braille and still be able to intelligently discuss them. If we accept that reading is, for now, a useful ancillary skill for studying literature, it's an incredibly basic one. It's a prerequisite, not a part of the subject.
You don't expect to be taught to read in a literature class, you shouldn't expect to be taught to type in a CS class. Application use classes aren't much better.
I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
There is a reason why NoSQL isn't used in anything production-grade, and why ACID when it pertains to data storage has nothing to do with the stuff that comes on blotter paper.
You sure about that? ACID is a heavy tool, and sometimes you need scale that it can't deliver in a cost effective way.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
High schools used to have "Typing" courses, as part of a way to train future secretaries (aim high, girls!). So of course since typewriters are now obsolete, they've merged this into computer use (again, training future sec-errr--"administrative assistants").
It's wrong to all it Comp Sci, I agree, but that's pretty much why I think it's morphed into this. It's old dinosaurs trying to merge old dinosaur programs into current times.
I think the problem with that is that many mathematicians would say that arithmetic really isn't math, just like spelling isn't English or lit crit. Certainly anyone who has taken a real course in algebra (i.e. the one you take as a senior in college as a math major, as opposed to what's in 8th/9th grade) will be quick to point out that it has essentially nothing to do with what you were told algebra was.
As a CS prof at various schools, I've taught a discrete math called "Foundations of Computer Science" as a first course in the major, and I've taught a variety of programming courses with different titles as the first course. I completely agree that most of the meat of CS first out in your CS3 class (although at my current school we actually teach design patterns and real OOD in our CS2 class).
Instead of fighting over the course name that should be in HS, I think it's a lot more important to try and establish what course _content_ should be in HS, MS and Elementary school. LOGO was used by elementary school kids in the 70s and 80s, and BASIC and/or Pascal were taught in high schools in the 80s (as many have noted). Modern tools like Storytelling Alice and Scratch (an heir apparent to LOGO) are amazing tools that can teach elementary/middle school kids to write plays and learn geometry while introducing them to programming in an amazingly rich way. And they're free.
These tools are so far beyond what I learned on it's amazing. So why are we in the dark ages?
but so is arithmetic, (high school) algebra, geometry, calculus, complex analysis, and so forth. And yet there are high schools where calculus is not taught, and the fact that logarithms are the inverse of exponentials never gets mentioned.
The problem is that people who understand what this stuff is learn it, use it, and teach it to their children, but the people who don't understand what this stuff is have and unknown unknown and don't even realize that they're missing anything. Short of spending zillions to buy airtime in the middle of American Idol, I don't think there's any way to make people understand what they're missing.
Programming is APPLIED computer science (part of it, anyway).
An IDE is a tool that makes the application of said computer science concepts in real-world applications easier than without it.
number theory : computer science
using math to solve problems : programming
IDE : slide rule/calculator
With the first link, the chain is forged.
Obviously a joke; but you reminded me of how I learned about various Unix commands. I found out about the PATH in my init script, and realized the binaries for all the commands lived in $PATH. You could ls that directory. Between $command --help and man $command, I learned a lot of commands, which I later forgot since it was years out of school before I got back into a *NIX environment.
For a newbie, man $command was information overload. You were lost in a sea of formality that included *everything*. $command --help was sometimes better. I still think it would be nice if man pages had a "10/90 section", which would describe the 10% of features you need 90% of the time.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Uh huh... why we would have resolved the question of P==NP by now if only there had been better gender balance. What twaddle.
Except I didn't say that. But thanks for making a strawman up.
In other words you don't know. Well there aren't in any school I know of - but go ahead and provide some examples.
Well, if you read the rest of the comments on this story, people have actually provided links to such programs. So, just because you don't know, you assume they don't exist?
Except there won't be any male nurses to fill that demand since they won't have been encrouaged to see that as an option.
Except that they are being encouraged to see that as an option.
Oh wait... I see... a generation or so later the number of male nurses will fill the gap. So let's fix things for girls now, with the same special programs and encouragements of the last two or three decades, continue to ignore boys for the next generation or two and then things will even out? What amazing misandry.
Utter horseshit. The idea is to fix it once and for all. Again, you are completely putting words into my mouth in order to knock down strawmen.
The idea is to open the market for all professions to both genders and remove historical gender biases and discrimination.
I don;t see why you think it's so bad to be encouraging people to consider Computer Science as a field of study. Nobody said anything about discouraging males. The idea is to find the broadest talent pool. If you let sexism reign, then you cut off 50% of the potential talent, and possibly turn away the best people.
... and then they built the supercollider.
Anyway, the whole idea of the guy above thinking that you should be made fun of for learning with Pascal is a bit silly. First, you were a newbie and probably had no choice. Second, if you're any good at all, the first language you learn won't cause brain dammage. I beg to differ with other famous experts in the field who say otherwise. If BASIC damages you, it's your own damn fault.
Yup. I learnt Commodore BASIC - not a particularly good and expressive dialect of BASIC, mind you - when I was a kid. At school, we used GW-BASIC, which was sort of familiar because I had also used Spectravideo BASIC previously. (All of these BASICs were Microsoft-built, though.)
I wrote a lot of rubbish. I took to my heart the weird unstructured, GOTO-filled mental model that BASIC required.
Then, the school, and every cool kid, moved on to Turbo Pascal. I kept trying to wrap my head around these "procedure" things. I couldn't do it. And then, one winter day, I was walking outside when it suddenly snapped in my head and I understood how to do all sorts of stuff without GOTOs. Then I realised that I hadn't really understood BASIC either; a better understanding of GOSUB/RETURN would have made me a much better BASIC coder.
Wow, hadn't heard that term in ages. I was born in 1961 and clearly remember being taught very basic set theory and "bases" in elementary school.
Most students typically do not understand what mathematics is about until their sophomore year in college when they take linear algebra. The educational system basically lies to to them. Mathematics is presented as formal manipulation of symbols and math is an seemingly endless set of problems to do. Proof, examples, counterexamples, application of theory basically anything a working mathematician might do is ignored. While there are some exceptions, once the student gets to linear (or abstract) algebra or an upper division mathematics course and finds out it mostly is about proof and structure they realize they have been duped. Similarly. it is now formally coming down the pike with computer science.
Um, not it is not. Learning the IDE, environment etc is commodity, application stuff - learn that in college. University CS should focus on concepts design, algorithms, design yada yada yada.
I've drawn the logical conclusion from your prior comments. If you don't like that then that's your problem - claiming straw men is a pretty obvious tactic. The school system has utterly failed boys and yet we still hear how it is girls that need the special help - that and your comments are what is "Utter horseshit".
The tyrant will always find a pretext for his tyranny - Aesop
Computer Science should ba about computers and what they can and cannot do. Algorithms and logic are paramount plus some decent mathematics. Coding should be taught at all levels, and graded accordingly by professors who can read and understand the language they are testing upon. It would be nice to see professors who can read a HEX dump, but those days appear to be gone.
Application usage is more suited to introductory courses. The knowledge about how to figure out arcane or obsfrucated GUI's is a possible art, but not computer science.
LOGO is not a programming language, no matter who yells it at the top of their lungs.
I would have studied CS even if they had told me it involved carrying a load of bricks 10 miles uphill on a daily basis. I already knew what I wanted and why I wanted it (even though I got a lot more, much of it better). I get the feeling this may be the case for most...
Which games?
> Kernel protection schemes are a specialized area dealing with operating systems
No, they are one of the fundamental aspects of computer security. Without understanding of how your computer works, you cannot know whether some program's request to install a ring-0 driver is legit, or not.
If the article and summary is worried on the impact on girls, I think the bigger problem is that you end up with girls in college with no idea what computer science is (and probably getting mocked for it). i.e. it comes across as "dumbed-down computer science for girls"
Though, frankly, the same would happen to boys put through programs like this too.
I didn't have CS courses in high school. Maybe once, one of our teachers showed us a general program in BASIC. But I adapted to using any aspect of the computer very well, and found ways to poke at this interesting (DOS) command-line thing. Why did I end up going to computer science in university? Because adults told me I was smart (and therefore going to university), and "good with computers" (I could use one more easily than they could). When I told someone what I was taking in university, I invariably got a response of "oh, so you can fix computers, then?"
Did I know what I was getting into? I knew better than a lot of adults where I lived, but no, I didn't really know what compsci was all about.
Then I got frustrated in university, worked for a while, and went back for a networking diploma from a college with hands-on experience. (Though the university education was a help too.)
Maybe it's adults that need an education on what compsci is about? At least they should have enough information that they can tell a kid there many disciplines involving computers. Shove 'em in the right directions.
I've always thought of computer science as being way to broad a concept to have as a degree. In my mind, it is much the same as saying "I have a degree in Social Science". Schools really should break it up into more specialized degrees.
There is a big difference between learning to bang out code (most coding shops I've seen demand 10,000 lines of code a day regardless of bugs), versus true computer science and the core concepts.
Bullshit. (Unless you're in some third-world "cheap to outsource to" country with managers from 1970's)
True computer science is more than 1/0s. It is being able to deal with the layers of abstraction from the pulses of electricity running around a CPU to how a user points and fertilizes their donkeys on FarmVille.
Edgar Dijkstra also thinks you're wrong:
"computer science is no more about computers than astronomy is about telescopes."
Wait... "fertilizes their donkeys"???
Advanced concepts of structures more complicated than a linked list -- circular buffers, heaps, stacks, caches, hash tables.
How are any of those things considered 'advanced concepts' which are 'more complicated than a linked list'? They all look like common data structures to me. Where did you study CS? Bangalore Discount Computer College?
Dealing with a hard disk. Being able to position the read/write head not just on top of the data you want, but right before it, so you get blocks before and after the read, or if handed a bunch of reads from sectors, the most optimal way to read them all, giving priority to the ones that need it the most first, and which to cache first, which others to dump.
Sounds like you based that imaginary task on The Story of Mel
I could go on. Suffice it to say, it's pretty clear that you have absolutely no idea what computer science is actually about.
Go get a job in telemarketing and stop pretending to be a 'computer scientist' when all you really are is a bad programmer.
Required reading for internet skeptics
with biology. I mean as a guy with a degree in CS when I took a bio course after I had graduated it was amazing to see how much of the concepts they were using when talking about DNA that I was already familiar with. (Let's see, DNA is digital and contains information that is executed. The data is group together in chunks similar to a byte. The information is kept stored away in a repository to protect it and has to be copied and translated out before it can be executed. The cell has to use mechanisms to load the information as well and also has error correction mechanism to protect the data.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
Germans refer to it as Informatik - Information Science.
"Computer science is no more about computers than astronomy is about telescopes." - Edsger W. Dijkstra
I've been taking computer science course for grade 10 and now grade 11 and we have learned a lot. Before we get to programming (Visual basic ftl), we have to learn about hardware, software computer ethics, networking adn a lot of other computer stuff, it is a challenging course. I guess most people don't seem computer science as a very functional course because I attend one of the few schools in Toronto where they have this program.
As someone who did a lot of Java in college, I think they spent too much time focusing on Java-related things and not enough time on learning the nuts and bolts of the language. I know that Data Structures and Algo are hard classes, but I think students would have done better if the professors spent that time more wisely at the introductory level.
There is more to science than physics!
www.iomalfunction.blogspot.com
If anything should ever be marked "Insightful" it is this parent post of yours.
Masking tape and a paper clip... wow.
You are one of the original true hackers.
Nice exchanging thoughts/memories with you!
And in the end, the love you take is equal to the love you make
Yea I was working a schools system and came across the "CS Teachur". I noticed the PC's running a typing tutor. I asked what she considered good. I laughed and she looked affronted. I said I'd do the first exercise, I did and left to configure more PC's while the 'learning' PC was still typing out the buffer. I asked later how well I did and she looked pissed and told me to leave.
... are incompetent when it comes to computers, this is why they avoid teaching "real" computer science, i.e. most teachers have no clue (not qualified) and find the prospect of teaching it dreary.
This may change over time as demographics change however since more and more kids are brought up on technology.
Ever notice that most of the occupations on your list are low-status and/or low-paying? No, there's not as much of call to get more men (or women) into low-status, low-paying jobs. (Nursing is probably the main exception, as there is a high demand for it. And there are efforts to get more men into that field, as others have pointed out.)
Agreed, unfortunately, Java lends itself to that. You end up teaching a lot of java-specific stuff just to have enough foundation to work on the fundamentals. It's a tough problem.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
The problem is that computers can do an awful lot. In studying CS, you can specialise in computer security, networking, operating systems, embedded computing, artificial intelligence, robotics, search, optimization, high performance computing, distributed computing, cloud computing...the list is long and distinguished.
As for reading hex dumps, that's mostly relegated to the EE folks now. They tend to do a lot of CSy stuff at the hardware/software interface while the CS folks tend to stay at the higher layers.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
OOP is a design, not a language.
CS and its subset, IT, are "advanced application use" (cases).
What the writer fails to acknowledge is that the activities described aren't "advanced application use" - they're idiocy. You can do this shit by the time you're 12 on Facebook.
If anything, people taking these courses are going to be grossly disillusioned when they find out that what they learned is actually just commonplace. They'll be grossly out of their league if they do decide to be in a technical field, as it provides them with not even enough skills to work a helpdesk.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
I think ABET accreditation goes a long way towards forming a good balance between the things that you mentioned. Though some of those subjects, such as operations research, is really more of a graduate level subject which could be fed from several BS backgrounds (statistics, etc.) You should check out the huge list of requirements for ABET for computer science programs.
You were a little late with the glasses there, David ;)
And that is a problem in our university where a lot of graduate student works for IT stuff around the campus (so they earn a tuition waiver along with it). Many of them are international (esp. Indian) and extremely difficult to train. Most of those CS graduates does not know how to turn on a computer, despite their resume greatness. International students are also the laziest on the job (with the exception of people who are doing REAL research under a professor, which are rare in our place).
Domestic people seems to possess a larger variety of skills, may be because of their interest. Sadly, Not that many CS PhD students/candidates know how to setup an Active Directory forest anymore.
New Economic Perspectives
I don't have a degree in CS. Mine is more like Information Systems with lots of CS theory and mathematics thrown in only because of the route I took starting an undergrad in computer engineering and switching tracks about half way through. My work title is "multi-discipline engineer" only because I was an electronics engineering technician first and still work in an aerospace engineering R&D lab. I do programming, specify instrumentation and measurement systems, herd contracted development projects and manage databases and data acquisition systems networks. In practical terms I'm more of a software engineer and developer that fills some management and support functions.
A CS degree? Nice to have and the background is likely as good as what I received from university but there is nothing wrong with software engineering and for most business needs it's usually just fine. The extra calculus didn't do me any harm in the long run. I think I have a broader outlook than most CS grads but I also had a lot more programming experience since I finished part-time while working full time. I do sort of wonder how a CS grad can come out of university not knowing digital logic, how to specify a project and what recursion is but schools do vary quite a bit in what they teach.
High school should start with digital and mathematical theory and work outward since that is what computers are really about. You only need a single book and a white board to show what's going on. Turn it into a digital lab class and then work up to CPU organization in the abstract. Delphi or C# programming to start if there has to be something that shows program structure. How about bringing back an old 8088 PC with MASM on a floppy? Nothing like a little assembler to show what registers or program counters do even if the technology is obsolete.
High school CS classes should give the students a bit of idea the breadth of the subject and it's pretty wide from where I sit. If the kids are interested then they should have something decent to chew on rather than some idiotic typing class or "enter these lines into VB and see what it does" crap. A class that doesn't teach anything is a waste of time and in high school they take enough classes like that. CS classes are en elective. Electives should be playtime for the mind.
bob@Osprey:~>
I had a similar problem, when I was taking courses in a community college. Gave me a undesirable outlook on the CS field. Then I started taking classes at a university and found that CS did in fact include computer programming and was its main focus area. And now have had to backtrack a few classes to get into that field. I am not a girl, but I agree with this and believe that it should be expanded to all institutions.
I've drawn the logical conclusion from your prior comments. If you don't like that then that's your problem
No you haven't. You've drawn emotional illogical conclusions that have nothing to do with my comments. How is it logical to extrapolate that encouraging women and addressing gender bias is the same thing as being sexist against men?
The school system has utterly failed boys and yet we still hear how it is girls that need the special help - that and your comments are what is "Utter horseshit".
Who said anything about "special help"? Once again, you're just making up stuff that hasn't been said. Males are also encouraged to do courses like Computer Science. How is giving females the same encouragement "special treatment"? How is not excluding them "special treatment"? Males don't have this problem of institutional bias against them.
Your attitude is actually a fine example of the problem here - as it is quite typical of people in the computing field: obnoxious and narrow-minded. Socially unaware. Reactionary and hostile. Arrogant.
I wonder whether you'd feel the same way about it being a different group that was being excluded. For example, if Asian people were being discriminated against in computer-related fields? Would you then claim it was horribly racist against Caucasians to be supporting their participation?
... and then they built the supercollider.
I think it was called "Computer Studies" where I went to high school, and it was largely a waste of time. My teacher told me there wasn't any point in me showing up, and i just submitted the assignments and got an A.
The interesting stuff was part of our pure mathematics course. We were handed a simple example of how RSA encryption works and asked to encrypt/decrypt a few messages, break stuff with short keys and explain why it was infeasible at longer key lengths. That's how it should be done!
I agree with everything you said. Except the part about the NPC many undergrads may confuse that with "Non-Playing Character" as many of us are also into games :) but I thought CS was just advanced application usage because of a community college i attended a while back. For that reason I started the EE degree course, even though I am a far more proficient programmer. Because I didn't find out until i confused an ACM meeting for an IEEE meeting (same time but wrong room) last semester, I'll have to take another 3 years to go down the CS path and only another 1 1/2 years to finish the EE. So It will be a while before I really have fun with CS.
It's kinda sad though, I really have a lot more fun and learn a lot more writing challenging programs rather than trying to calculate the gain region of a MOSFET common source amplifier. It's useful information but it's not really the field i want to focus in, I'd personally much rather be hacking away at writing a secure EEC encryption algorithm. If I ever figure out who decided to place learning to use MS office or MS frontpage 2000, or even typing speed courses in the CS category at that community college. I'll waste 3 years of their time by writing a program that e-mails them 100+ times a day a reworded essay that explains just why they are such a big idiot for doing so.
Actually, I would say that at its heart Computer Science is Logic (that is, Mathematics), and is therefore actually closer to Logic, or Mathematics.
Mod this AC insightful. That is exactly it. That is why I suspect Pascal is often used, because it has one of the least abstracted set of logical operators out there.
No, you don't understand GP's comment. This has nothing to do with Pascal. What it comes down to is that a lot of fundamental CS theory grew out of mathematical logic, or feeds back into it. Before there was any CS, logicians worked on decision problems for logical languages and theories; Turing and Church's foundational CS work was, at its heart, about this.
After that, the major later theoretical advance in CS is the Curry-Howard Correspondence—which is an equivalence between models of computation and systems of logic.
Are you adequate?
Welcome to the touchy-feely generation. Political Correctness has fscked up a lot of things thankfully not comp.sci. yet. Won't it be fabulous when some girl gets into a course that twenty better qualified males should have been offered. Just wait till some kool-aid victim gets on the GLBT amputee dwarf bandwagon.
The new right fascists are bilingual. They speak English and Bullshit.
IMHO as a Comp. Science PhD from a RAE 5 UK University, Computer Science is the study of the science of computing... as in Turing Machine computing. That is, Comp.Sci is about the theories of computation and algorithms... ALL of them.
The fact that you *could* apply those algorithms in an instrument (computer, calculator, abacus, etc) is a different thing.
On the other hand, Software Engineers (I am also one of those, per my Bachellor's degree in Software Engineering) are the people that focus on developing computer programs to solve problems. Thus, they should know the theory behind analyzing, designing, programming, debugging and deploying software systems.
Then you have Computer Technicians; these guys know their way around Operating Systems and computer programs. They also know (well... they used to, but nowadays...) the hardware setup of a PC and thus can easily replace hard drives, motherboards, sound cards; and troubleshoot computer problems.
Now, there are some people who have more than one of those skills... usually because they learnt it at different [school] levels or because they are self-taught.
During my PhD, I met several Computer Scientists who didn't know how to do an HTML page. I don't blame them. I am sure there are a lot of mathematicians that do not know how to use Mathematica, Octave or SPSS, or R, or any other of the thousand of tools.
Ubuntu is an African word meaning 'I can't configure Debian'
LOGO is not a programming language, no matter who yells it at the top of their lungs.
Wow... the people doing real agent-based modelling research dare to differ with you [PDF].
Ubuntu is an African word meaning 'I can't configure Debian'
Welcome to the touchy-feely generation. Political Correctness has fscked up a lot of things thankfully not comp.sci. yet. Won't it be fabulous when some girl gets into a course that twenty better qualified males should have been offered.
What the fuck are you talking about? We're hardly living in a "politically correct" generation, quote the opposite.
Also, who said anything about letting less qualified females into courses ahead of better qualified males? Neither the linked article or the commentary here mentions anything of the sort. The real problem is that less qualified males are getting into these courses ahead of better qualified females because of misogyny and gender imbalance in the field. This threatens the less-qualified males, because they might have more competition and compete on merit, rather than privilege.
What's hilarious is that the real "touchy-feely" ones are the males who react like having women enter the field is a sexist sleight against them, some kind of conspiracy against men. Talk about acting the victim.
... and then they built the supercollider.
Sorry I'm not going to play your game. You deliberately misconstrue what is said and then rail against it, are deliberately (at best) obtuse, apparently unable to logically address what is said to you, you appear unaware of the idea of "context" in a discussion and head off on wild tangents. You are either highly irrational or are deliberately dishonest. I'm going to assume the latter given your long list of insults against "typical" people in computing. I won't waste my time on the likes of you. Have a life.
The tyrant will always find a pretext for his tyranny - Aesop
Sorry I'm not going to play your game. You deliberately misconstrue what is said and then rail against it
What have I misconstrued? You're the one who went off on random rants about sexism against men, and railed against imaginary arguments that were not made.
apparently unable to logically address what is said to you,
Again, I absolutely addressed your arguments logically. You appear to be the one with the logic problem, as you are not willing to put up a substantive argument. In fact, you appear to be threatened by reason, because you scurry away as soon as your obviously flawed arguments are questioned.
... and then they built the supercollider.
You == troll.
The tyrant will always find a pretext for his tyranny - Aesop
You == troll.
Okaaaay, so I'm the troll because I base my arguments on facts, and you're not because you build strawmen and can't be bothered responding rationally to simple arguments.
I'm pretty sure it's the opposite, because you are the one who based your argument on a lie (that there are no programs to encourage males to enter nursing) and then followed up by fabricating arguments I had never made, and claiming a conspiracy theory to subjugate males.
You do realize that simply making declarations doesn't make them true, don't you?
... and then they built the supercollider.
As a former and future CS professor, this issue is near and dear to my heart.
The conflation and confusion over what constitutes computer science is just as rampant at the college/university level as it is in high schools. Perhaps the "CS" moniker is even more abused in post-secondary institutions. At least those high school programs that were designed around the AP exam had *something* to focus them (I'm not wading into CS versus programming right now, just saying that the AP exam gave a concrete body of material that is at CSy enough).
Now certainly, CS is well- and correctly defined at R1 type schools and at the top 10 to 25% of liberal arts schools (the top 100 at Princeton Review or some such). It's not too bad at the top 5% of "master's" institutions (say top 50, but I haven't gone through the list carefully. I know there are VERY BAD examples further down the list -- say around 100. The "master's" category of institution is typically for schools that can't compete with R1 or quality liberal arts). [Note, those are my intuitive numbers from personal experience (I'm intimately familiar with about 15 programs in the broad northeast of the US at all three levels. I know the structure and reputation of another 50, but my comments are mostly based on those I have more personal knowledge of.)].
What makes the problem worse at the (weak) post-secondary level is that CS is turned into IT (or CIS) and the students wonder why they can't get jobs doing something other than MS system administration with a bit of "pluggy pluggy" networking and a side of "pointy clicky" databases. Of course, the same students shy away from anything 1. hard and 2. involving that evil, demonic subject: math. So, the schools take the path of least resistance and produce students who will peek their career in about 3 months (except for a few that have the natural political/business ability that will move up in management after 5 years).
*sigh*
I wish this were mere fancy. But I can name multiple schools, without stopping to think, that fall into this category. Sadly, almost any school that isn't good (as defined above) is going to be bad. Some of them are honest enough to name the programs CIS/IT and have a gutted/token CS department with two students; a few of the schools defined CS as CIS + two or four math classes; some schools just name it CS and let the dice fly. Fortunately, at some of the schools, there are folks working to improve things. But, it is an uphill battle with entrenched faculty who are tenured (can't get rid of them), don't have advanced CS degrees (aren't really qualified), are currently uncertain about the economy (have motive to keep earning money), don't have anything better to do (have motive to go to work), and may work for another 10-20 years (ugh).
The "how to use a computer" basics classes should honestly be part of home economics, just like being taught how to use an oven or any other common appliance. Some schools have beginner driving and auto repair classes - they're not Advanced Vehicle Engineering any more than how-to-use-a-browser is CS.
I went to a large school, and they had trouble keeping enough students in the classes to even have the classes. I took Pascel, and went to take C but they canceled the class due to lack of interest. So it could have much more to do with the size of the school and number of kids interested. My school also had keyboarding and application classes, and they were called what they were.
APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
Any CS person from a halfway decent school should be able to tell you that all CS majors start from CS110 (which could be Java, C++, etc.) programming language. Any of the lower numbered class under 110 are probably for non-CS majors who want a dip in our pool to see how the water is like. Or the the typical business major who wants to claim they know what CS is all about from a single course of CS101.
In my experience, most programming these days is done by EE folks anyway. The CS folks spend all their time on web development and don't go anywhere near the software/hardware interface. Programming is a skill that anyone with an interest can learn and become quite good at. I'd suggest continuing your EE degree, and learning more about programming on the side. You'll likely be happy with how it turns out in the end.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
Yeah, I can't say that I know how to work with AD. I know I can figure it out in a weekend, but that's an application of knowledge. The point of CS should be to learn the underpinnings of how computers and algorithms work. That way, when faced with something like setting up a Windows network, you can learn the local dialect (MS in this case) and apply it to what you know (communications protocols, network routing, security practices, etc.).
CS isn't and shouldn't be the training route for an IT job. Most IT jobs involve specialised and focused skills that are learned through training on that particular piece of equipment. CS is a degree, not a training program. It should focus on the how and why of computers and algorithms. It should definitely be much more theoretical than practical in that regard (think science, not engineering).
Your post is actually a great example of the confusion surrounding the definition of Computer Science. No one would confuse the pilot of an airplane with an aerodynamic engineer. The skill set of one is not necessary or sufficient for the other. Yet there are countless posts on slashdot lamenting that CS majors don't know how to use a Cisco switch, configure a firewall, manage a server, etc. I would liken IT experts to pilots, and computer scientists to aero engineers. One is a highly skilled, well trained expert who knows his assigned systems inside and out. The other is a highly educated professional who is responsible for discovering new uses of computer systems, their limits, and the science of how they work. Neither is a menial job, and neither is more important than the other, but they are also not the same thing at all.
The key point of this discussion is that many people go for a CS degree expecting to receive IT training, while many others expect to get an engineering-style degree. In either case, the school you choose will dictate which of those degrees you get even though both of them tout it as Computer Science. It is this ambiguity, fed by poor definitions and bad expectations, that is causing grief throughout the computer world.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
I'm well aware of ABET requirements having taught in an ABET accredited department and being part of our 10 year recertification.
ABET offers a great set of requirements for the curriculum to follow, and ensures consistency between universities, however it fails to manage expectations. To wit, an earlier poster lamented that CS majors are poor IT professionals. There is nothing in ABET requiring classes in the specific skill sets used by computer technicians. ABET doesn't cover network engineering explicitly. Sure, it covers the foundational knowledge for these topics, but it is not intended to educate students to the standards expected by the IT industry. I would argue this is a problem with the IT industry's expectations and not the ABET accreditation. As I said above, CS is too large, too fractured, and too poorly defined, so everyone has their own idea about what it should be, even with professional accreditation sources.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
Maybe they should just teach Smalltalk, which was designed to teach OOP. Smalltalk is pretty much the Pascal of OOP programming.
The world's burning. Moped Jesus spotted on I50. Details at 11.
In my CIS classes, there were three groups of people
1) CIS Minor/Business Major
2) Love problem solving and self taught
3) Regurgitate what they learn and the teachers recommended they change majors
I never saw a bias to push men into CIS. If there was a bias, it was to kick people out of the major. Quality > Quantity
Of the 3 girls in the major, they were all married even though in their early 20s. I guess it's first come first serve.
yep, I call BS and I blame "no child left behind" for this crap, let natural selection do the work and the smart kids learn advanced stuff and the slowest kids learn to not emulate their loser parents-- I blame the parents too, lowering the bar every frigging time their kids are not up to par to the neighbor's instead of pushing them harder. We should go back to the ancient greeks system where your curriculum consisted of attending the classes with the smarter teachers if you really wanted to learn.
If we had programming by example/demonstration, one probably could be a programmer with less training/experience. Programming is sending events to objects (message passing). Not too unlike typing/mousing/clicking with your input events targeted at an object on the screen.
LOL, Dangitman says stuff like:
"Your attitude is actually a fine example of the problem here - as it is quite typical of people in the computing field: obnoxious and narrow-minded. Socially unaware. Reactionary and hostile. Arrogant."
and I get modded as a Troll for refusing to continue responding to his abuse. LOL riiight - good job moderator.
The tyrant will always find a pretext for his tyranny - Aesop
LOL, Dangitman says stuff like:
/.
"Your attitude is actually a fine example of the problem here - as it is quite typical of people in the computing field: obnoxious and narrow-minded. Socially unaware. Reactionary and hostile. Arrogant."
I tell him I'm not going to respond further to his abuse. Then he keep keeps posting trying to provoke a reply from me, someone who has said they don't want to talk to him, and then I get modded as a Troll for pointing out that he is trolling??? LOL riiight - good job moderator. Yaaayyy
The tyrant will always find a pretext for his tyranny - Aesop
I can't imagine what a hs intro/CS class should be now, but my son is 4 months into 9th grade CS class, and my Qs are (1) shouldn't they know what a command prompt is? (2) have a concept of OSes -- that the machine needs to load an OS to "work"? (3) some basic understanding of how 'the internet' started and what makes it work (protocols)?
At least he's getting some calculator programming in his honors math (and the kids are making games on their own time—THAT'S more like what I remember) —but that class is called 'math', not CS.
What's promised for the second semester of "CS" is an introduction to markup "language". H T M L. Needless to say, I'm giving up on our school's CS and hoping for better when kids get to college.