back to article US computer-science classes churn out cut-n-paste slackers – and yes, that's a bad thing

Computer science (CS) students in the US aren't being taught properly, and their classes are too limited in scope, says one IT think-tank. The Information Technology and Innovation Foundation (ITIF) says that its most recent study [PDF] of curriculum in the US has found that not enough schools are offering computer science …

Page:

  1. Cynicalmark
    Facepalm

    Ha

    Most dont have a clue about the basics, hardware and stack structure. Computer Science in my day was soldering iron led with multimeters and oscilloscopes, then logic; software i.e. Assembler was the final topic.

    1. Mark 85

      Re: Ha

      No relay logic then? You were high tech for the era.

  2. Anonymous Coward
    Anonymous Coward

    There's no longer decent documentation

    Most of the Java questions I Google would have been answered by a "K&R" type book, only there isn't any for Java.

    Ditto for Android APIs that appear to be rearranged monthly to suit Google's new API-flavor-of-the-month, and bookmarks for developer training get 404s.

    The books that are out there suck Jovian planets through a millipore filter. They rarely get further than "Hello world" and *never* cover the minutiae.

  3. Kevin McMurtrie Silver badge

    Visited Maker Faire

    The recent Maker Faire in San Mateo, CA, US was sad. Computer board makers dumped a bunch of kits into schools and the outcome was too often mapping the arrow keys on a laptop to a pair of motors on a toy and calling it a robot. It seemed to miss the point. Dreams of building something innovative were probably crushed by watching a big ugly mess of wires on wheels twitch and short out.

    1. DropBear
      Facepalm

      Re: Visited Maker Faire

      That describes pretty well 99% of the whole "maker movement" - just don't ask where exactly the robots are in "robot wars"... Almost all "making" is about clipping together a few blocks in the trivial order they were meant to, and that's it. Not that I have anything against building blocks, they're quite useful - but one should go way past the "blink a few RGB LEDs" or "drive a couple of servos back and forth" stage before one is allowed to show it to anyone other than one's parents...

  4. YARR

    Nothing wrong with StackExchange...

    .. it's a source of good solutions to common problems which saves time and makes developers more efficient. As long as people understand the code they're using what's the issue? People will always encounter issues that aren't on StackExchange that they have to solve using their own initiative.

    1. Anonymous Coward
      Anonymous Coward

      Re: Nothing wrong with StackExchange...

      What's really useful is the high chance there'll be an understandable explanation rather than just something to cut&paste on stackexchange. If you're going there just to get homework done for you you'll learn nothing of course. When you're pushing at the bounds of what you know or understand it can be an educational lifesaver.

  5. Ian Bremner

    I remember taking the Computer Science SCE O' level back in the late 80's.

    The first year consisted of basic concepts including processor architecture, binary arithmetic and basic programming skills.

    Then in the second year the SCE O Level was replaced with the GCSE Standard Grade course and renamed Computer Studies. Everything we learned in the first year turned out to have no relevance anymore as the Standard Grade was all about how to use a Word Processor and Spreadsheet.

    So in my experience (can't talk about the state of affairs now) the focus turned from basic concepts that grounded my knowledge in how computers work to how to use basic applications.

    For someone who wanted to pursue a career in either software development or hardware design the original syllabus would have been ideal. Instead what I got was a course in how to be an office drone.

  6. ecofeco Silver badge

    You don't have to tell me

    It's even worse than that. They can't make websites that are bloated abominations.

    1. DropBear
      Trollface

      Re: You don't have to tell me

      Oh, you must be a big fan of sites that flat-out start with a half-a-screen sized auto-play video simply used as a background, I can tell...

    2. ecofeco Silver badge

      Re: You don't have to tell me

      AREN'T bloated abominations.

      Aren't. Sorry 'bout that.

  7. jake Silver badge

    Nothing new.

    In a reply to a STOB article back on Sept. 8, 2008, I wrote:

    Have you ever read comments here in ElReg? The [insert hard/software/OS of choice] fanbois are constantly parroting the words of others.

    I've done a little teaching here in the BayArea(tm) over the last 25 years, and it's absolutely shocking how few people entering the IT world are capable of having an original thought. They learn by rote, and take exams/tests almost mechanically. It's sad, really.

    I tried to shake up my sysadmin/syssecurity class by bringing in an ancient DEC machine running TOPS-10 and a bunch of dumb terminals. My texts were mostly Tannenbaum. Several of the class complained to the administration, and a ruling came down that my "teaching platform was archaic and irrelevant in the modern world". Keep in mind I was trying to teach CONCEPTS, not applications.

    I replaced the DEC with donated/salvaged PCs running BSD (servers & routers) and Slackware/KDE (desktops). Didn't cost the school a dime. The same group of students complained. Out went the free system, and in came a Windows based network. The mind absolutely boggles.

    The problem is that the administration is clueless about computing in general.

    1. Dadmin

      Re: Nothing new.

      They are more concerned with getting their stats up, so they get more budget, so they can repeat this failure all over again and call it their "good work." Sometimes I wish I had received more college level computer coding classes; I went military, so no fun party schools for me, and I don't have the wherewithal to cover more education afterwards, just went right into the job market. And I pre-date the rage of certifications, and for good cause, as that is some expensive paper and not worth anything unless you end up at some company that actually requires these "bits of paper." Nothing is as full-featured as getting the real education from a real CS course, but there are ways of making up for it. Such as;

      1) have a project for your new found knowledge, so you're not just reading and forgetting. I like to learn a new language, then either master it by using it everyday, or just making sure I know what to do in there by making a sample application. I like to make a new password generator when I learn a new language. It makes knowing the syntax and the coding style for that language mean more and do more right off the bat, plus I get to grok all the nuances of the language and the cool specific goodies. Like the fun one-liners in Perl, or the pretty syntax and easy looping constructs in Python.

      2) take time to go back and learn all the theory you missed by not being properly trained! I got some education bucks from my last gig and purchase the Stanford University computer programming texts, a huge four volume epic by Donald Knuth. So heavy in math I had to take a break and starting learning higher math so I could get through the concepts. This is CHALLENGING stuff, but when you are able to craft a bit of code on a fictitious system like MIX, you are ready to code the depths of the enterprise. Mind you, I'm just a Senior Sys Admin and newly crowned devops guy, and not a full-time coder. I take the coding very seriously and know my limits and know what great code looks like and what shitty code looks like.

      3) use it every day! every day! If you're not taking a few weekends or nights to do your own computery projects at home with your scaled down data center, then you might want to go into managerial arts. People who love technology, people who love to write interesting code are the people that are fun to work with when you share those ideals. People who are not should rethink their role in IT, or like I said, become a manager and stop annoying the world with lesser solutions and stinky code.

      4) work with someone way, WAY better than you, and keep your mouth shut and your eyes wide open! I got a chance to work with a real coder, with big skills, and college trained in Finland, and it was a pleasure to learn all about a piece of code that I was trained to maintain, but really could not craft on my own. It was pretty big, in multiple parts and basically did the work of shuttling tons of Bugzilla tickets into that system for automated data center migrations and rollouts. No one ever used it while I was there, and I don't know if they even knew it was there, but no matter; it was a very well designed piece and taught me so much more about Perl than I even dreamed.

      It all comes down to talent, education, and a true love for what you do. No matter what you do. We know IT, but that statement works for any career, me thinks. Thanks for the stack exchange info. I've never heard of it myself, then again I dislike running to Google search something I could figure out on my own by reading the man pages, or the documentation. If you search first, you probably need to be a manager because your code is plagiarized garbage without original thought, mostly.

  8. channel extended

    My experience is Payroll.

    When I was in uni , late 1970's, the very first program we had to write when learning a new language was a payroll program. EVERY language. Even IBM 360 assembler!!! It was what the business communites wanted at the time. Who needs a payroll prog now? Plus with all of the new regulations it is not possible for a student to write one in a semester, even if that was all they were doing. Allowing ANY single org to direct your learning is a good way to become redundant.

  9. Anonymous Coward
    Anonymous Coward

    Not all that surprising, just look at the prospects for CS graduates...

    "Livin on The Edge..."

    * Comp-sci grads going through the system now have a depth of knowledge that often doesn't extend beyond C#. Cheating is also common as certification tends to consist of automated tests instead of practical grunt. But on the flip side, there's a lot more to know. More platforms, more-vendors. The end result is more holes in security.

    * How bad is it really?... When every system finally crashes, and every last database gets hacked, will that force us to come up something better? Because that's what it will take for change it seems. Everything can't simply be about ruthless & endless cost cutting, with senior execs still making 100's or 1000's of times what everybody else does etc.

    * Because of this many tech workers of my gen have actually left the market. Money was good in the 90's and early 2000's. But now the Mortgage is paid off, world travel is done and expat gigs all sown up. Some married, some didn't. Those without kids can now easily work part-time, and some can even get out completely.

    * But this wasn't how it was supposed to be. Tech was supposed to be life-long lucrative work, with the odd nod of respect. Most veteran IT pros I know would still work as opposed to living modestly. But the rewards just aren't there. Few of us expected that when the song above was released...

  10. Anonymous Coward
    Anonymous Coward

    STEM

    I've noticed a worrying trend in the US: apparently the ruling class thinks the chronically unemployable are our future developers.

    If you've never held an actual job, I guess you might think that way.

    How hard can it be, right?

  11. redneck

    H1B

    Now companies will say that they need H1B visa holders for entry level positions.

    1. energystar
      Headmaster

      Re: H1B

      Come on. Redneck. Work on your schooling. No Country is invading you.

  12. energystar
    Angel

    AMEN.

    Amen...

    P.D. Amen.

  13. Stevie

    Bah!

    Having come from a mainframe background and not having a CS degree of any vintage, I am regarded as the thicky in the two departments I report to.

    A few weeks ago I was asked to fix a once-working script two newly minted CS grad consultants had broken. I fixed their shell script and wrote a memo that had three sections: 1) I fixed it for you. 2) What I did. 3) Why I did it.

    In part three I talked about how to make and not break a heredoc stream. My supervisor and all the consultants made fun of me saying they couldn't understand the memo.

    Notwithstanding that I broke the info down to three parts and made the longish "how not to do this thing again" bit an optional read as the *last* thing *and was careful to word it in a neutral way, I was put out that the CS Grads not understanding a discussion of heredoc format was my problem for using long words rather than cause for a trip to Google for some remedial re-education in classic shell scripting basics.

    And *I'm* the useless fossil here.

    1. Cynicalmark
      FAIL

      Re: Bah!

      “In part three I talked about how to make and not break a heredoc stream. My supervisor and all the consultants made fun of me saying they couldn't understand the memo.”

      Yup - I retired recently from a company that hired based on degree standards rather than actual working knowledge - they didn’t understand a jot of what I was trying to instruct them on embedded device creation, management and repair. -ffs what the hell are they teaching these days?.. It certainly isn’t from the ground up as they don’t even try to know the engineering side of tech -it seems to be a ‘get a subcontractor to sort it’ culture- almost like managers rather than hands on engineers. Sad really.

      Not that I give a shit anymore (says the engineer who really does) my retirement is taken up learning even more so I can charge a fortune for services that are going to be like rocking horse poo in the near future.

  14. veti Silver badge
    Headmaster

    Elision

    The article seems to segue "naturally" from talking about schools one moment, to universities the next. Now somehow it's the schools' fault, if university graduates aren't up to snuff?

    Look, if the prospective student is not up to the material, either come up with a remedial course for them, or don't admit them to the course in the first place. You don't get off the hook by saying "oh, the teaching they had before they came and paid us a humungous sum to learn better was substandard, so obviously they still don't know anything now".

    1. David Nash Silver badge
      Headmaster

      Re: Elision

      Don't forget that in the USA they seem to like saying "school" when we Europeans (or Brits, at least) would say "university".

      I don't know what they mean when they say "university" :-)

      1. Stevie

        Re: Elision

        Probably because of the way the courses and degrees are organized so they can be attended/acquired over a protracted time as allowed by real life and finances.

        Marry the American idea of modular courses that grant credits with what used to be the high quality of British university level learning (a thing of the past in some cases, I'm seeing from real life example) and what I understand the Swedish model for financing to be (you get a free ride and sign over a given amount of your time after graduation to government service to "pay it back") with a loan buyout option and you'd have a truly great tool for further education, one that would allow the student to adjust their learning to accommodate their career options "on the fly" as it were.

        Governments would get the graduate skills they need to make their countries competitive whether in government or the private sector. Win win.

        Or we could keep charging an arm and a leg to have broke grads who *think* they know how to do stuff we needed five years before but not so much now (and likely will need to be almost completely re-trained to become useful anyway).

  15. Lee D Silver badge

    I work in schools.

    Today you are taught "computing". How to use a computer. Even the "coding" is a GUI flowchart-based thing, normally, without a single LINE of code actually written. Copy/paste exercises at best. At no point do you learn the architecture, simple things like binary (too much like maths, apparently), logic gates, etc. except in the most trivial of ways.

    When I was at school, even with the most basic of hardware, we were taught "computer science", which is an entirely different thing. There, you rarely get to touch a computer, you certainly don't get to bash around on it and search for the answers to copy/paste into word. You had to instruct the computer what to do, at best, and that was only after understanding what it COULD be told to do.

    The difference is still there. The difference between USING a computer, and designing/building/instructing/programming a computer is vast.

    P.S. I work in IT in schools, always have, have a Maths & Computer Science degree, can program, and am never short of work, and even help out in the "CS clubs" etc. because the teacher that understands the difference - let alone can do things like code from scratch - is a rare beast. I have met precisely three teachers in nearly 20 years of school IT who can code, for instance. One was a mathematician who knew COBOL and used to program financial systems. One was a mathematician that self-taught to teach a CS A-Level class. One was a former industrial control specialist for a large supermarket chain. All the other "IT teachers" I meet? I wouldn't leave them alone with a copy of Logo.

    1. Michael H.F. Wilkinson Silver badge

      It is indeed important to separate the situation at schools from the situation at universities. Our CS curriculum contains many courses where the foundations of computer science are taught, including the maths behind it, such as discrete structures, languages and automata, program correctness, besides courses in imperative programming, object-oriented programming, functional programming, parallel programming, software engineering, networks and computer architecture. etc. The emphasis is very much on what is happening under the hood. Prospective students often ask us what programming languages we teach, and we invariably answer that that is really unimportant. We teach programming paradigms, and the ability to learn new languages. Once you know how to program in one structured imperative language, learning another is largely a matter of learning syntax. What is far more important is learning how to cast a problem into imperative-programming (or OO, or functional) terms.

      Many schools here in the Netherlands do not teach CS, and those that do, often struggle to find good, qualified teachers. We also find that for those students who did follow CS at school, their maths grade is a far better predictor of success in CS at university than their CS grade at school. The CS taught at school does not really prepare them for CS at university. This is why we organise outreach events for school kids, to show them what CS is really all about. We recently had a contest for school children in which they had to solve a series of problems (such as cracking a Caesar Shift code) by designing Turing machines for the task. This levelled the playing field, because none had ever done this, and they cannot cut and paste solutions from anywhere. It also teaches them a structured approach to solving problems. The day was a great success, and they thoroughly enjoyed the challenge. We will make the course material and web-tools available to schools, and are looking into other ideas.

      1. Lee D Silver badge

        Precisely.

        That's what we try to do with the extra-curricular clubs, etc. but it's hard when they've never been exposed to it before and you have limited time to cover anything like that. The irony is that the kids are proficient in all the usual software packages before they even start school, really, and can do all the things that "computing" purports to teach them.

        We once rolled out the "game" TIS-100 to our club. It was eye-opening. The problem-solving skills to even start something like that aren't there, and despite being "gamified", it was almost impossible to get anything done (holding interest wasn't a problem - getting them to think in the right way was). The problem, as you say, it Googleability. There's little independent thought and the children's first reaction is "How did other people do it". There's an element of that to all programming, sure, we've all done the stackexchange / github lookup when we were after something. But to actually get that stuff from first principles, or understand it enough to modify it successfully, is alien to them.

        Though the assistance I had when I was a child their age was minimal to nothing, even with all the resources and power available to them now for free, they aren't able to get close to the same kind of understanding. It's a slippery slope.

    2. Updraft102

      That's it right there. The article purports to be about computer science, but then we read about people being taught to use Word. That's not computer science. It's like the difference between a taxi driver and an automotive engineer.

  16. Anonymous Coward
    Anonymous Coward

    Recently an acquaintance's 12 year old was telling me about his obsession with computers. It was obvious that he had no exposure to electronics below the box level. I offered his parents an Arduino experimenter's kit for him - leds, motors etc. I checked first that they weren't technophobes - indeed they were Apple fanbois. The answer was a very curt, even icy, "no thank you". Quite why is a moot point - did they think I was going to want to be his personal tutor?

    It appears difficult to help give most children the chance to develop a teenage hobby that was quite common for my peers in the 1960s. Many of us ended up with long careers in the IT industry.

    My own interest started when an older cousin gave me his electrical set of components of electromagnets, armatures, and a carbon rod microphone. Then at 13 I successfully rebuilt a DIY transistor radio kit that my father had failed to make work. I was hooked - just as the hobby of electronics started to take off in the UK. However it was the adults at the local Amateur Radio Club who provided the necessary technical guidance for several of us.

  17. This post has been deleted by its author

  18. Cynicalmark

    In the future when the machines code goes wrong.....

    Any of you chaps thinking we will be begged on hands and knees in the retirement homes our sh1tty kids will have farmed us out to for us to come and fix it for the muppet generation of accountants and end users? ‘Our AI has gone wrong and is screwing our cities up....boo hoo’

    Yep I would love to look up from my pee soaked high back chair to go tell em to all to suck my floppy disk. Hehehehehe. Seriously I need to get out more.

    Oh and @Mark 85 the relays were but its like 48 odd years ago and memory is fading faster than an ssd.......

Page:

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like