Slashdot Mirror


Professor Questions Sink-Or-Swim Intro To CS Courses

theodp writes "After having taught introductory programming (CS 1) for the past six years,' writes GVSU's Zack Kurmas, 'and having watched many students struggle through this course and the subsequent course (CS 2), I have come to the conclusion that it is absurd to expect students who don't have any prior programming experience to be well prepared to study Computer Science after a single 15-week course (i.e., CS 1). I believe that expecting a student to learn to program well enough to study Computer Science in a single 15-week course is almost as absurd as expecting a student with no instrumental musical experience to be ready to join the university orchestra after 15 weeks.' Kurmas' frustrations are not unlike those voiced by Physics professor Dr. Yung Tae Kim, who argues the up-or-out, one-size-fits-all rigid pace approach to learning set by teachers and administrators is as absurd as telling a toddler, 'You have ten weeks to walk, and if you can't, you get an F and you're not allowed to try to walk anymore."

606 comments

  1. WHy are you majoring in CS... by LordLimecat · · Score: 5, Insightful

    If you didnt already begin in a high school class, or at the very least on hobby projects?

    1. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 5, Insightful

      I know! Would you trust a doctor who, at the age of 15, wasn't operating on his pets?

    2. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I learnt coding in 3rd year uni. Never done it before, not really interested...until some problems that couldn't be solved in Excel got me interested. Don't think everyone learns through the same stages or for the same reasons as yourself.

    3. Re:WHy are you majoring in CS... by Robadob · · Score: 3, Insightful

      I'm in my first year of a degree doing computer science at the University of Sheffield (UK), our course is made up of maybe 50% who hadn't programmed before coming to university (this includes not doing ICT[yeah that's nothing like cs] or computer studies at Secondary school). When i asked some people why they chose computer science they just shrugged, these same people struggle with a lot of the programming concepts we have covered in java past the initial 'this is a for loop, this is a select case statements etc'. I was really surprised when i got to University and my course wasn't full of 'nerdy' or geeky people as such, I just feel that some people didn't really know what they were getting into. So i agree that having programming experience and enjoying it is a necessity of doing a computer science degree (some may argue that the maths is the most important side). Even worse is the fact ~90% of the ITMB (IT and business management) students who have the java, software engineering and web/internet technology modules, lack even the slightest interest in programming or any of the CS modules when this is taking up half of their degree. Anyone should know that its far easier to learn something when you have interest in it, so back to the point why do people choose to do CS. Personally i had been playing around with vb.net and lua for a couple of years making loads of small utilities before i reached university (this involved software engineering coursework at a2) instead of going out clubbing and drinking, but some people just seem a bit naive about programming and struggle past 'Hello World!'. I'm not trying to say that i'm amazing, there are people who excel past me at programming. But there are only 10-25% of the course who can code competently, and a few others who excel at the maths side (usually Romanian international students). I just pity some of the people who will be in teams together for our software engineering module next year (where we have to produce a real product for a real customer in teams of 4 [50% of marks are awarded by a manager at the company your developing the software for]), maybe they will be better with haskell (functional programming language) which we learn next year.

    4. Re:WHy are you majoring in CS... by TheRaven64 · · Score: 5, Insightful

      Would you trust a doctor who went to university never having taken biology at school? Well, maybe, if he managed to graduate, but I wouldn't expect him to pass. Pretty much any medical degree in the UK will require A-level biology (no idea what the US equivalent is). Unfortunately, most computer science courses have very few fixed prerequisites. A lot don't even require maths, because A-level maths is mostly calculus, which is irrelevant to 90% of computer science, and completely omit things like graph theory that are absolutely fundamental.

      This is a real problem when trying to design a curriculum. You can't expect the students to have been taught programming, because most schools don't have anyone who's competent to teach it. Some will have taught themselves stuff (and probably picked up some bad habits along the way), some will not. The ones who are self taught will be bored for at least some of the first year, since everyone else will be catching up. Worse, they often assume that the fact that they already know some of the material means that they already know all of it, and get a nasty shock at exam time.

      The real solution is for schools to employ people who are competent to teach programming, and for universities to make this a prerequisite, but I doubt that will happen.

      --
      I am TheRaven on Soylent News
    5. Re:WHy are you majoring in CS... by paradox11 · · Score: 1

      Would you trust a doctor that has taken no biology classes, shown any interest in what it will take to become a doctor. But hey.. someone said Doctor = profit! So I paid my tuition.. and now I have a right to succeed at this course? (with the lack of effort that they have already demonstrated)

    6. Re:WHy are you majoring in CS... by Robadob · · Score: 1

      If anything there are maybe 2 people on my course of 80+ (ball park guess) who have been programming for an extended period of time before university (e.g. 5+ years), past that most peoples experience is either from starting via 6th form (16-18yrs education) or not at all, this may just be because i didn't want to goto Warwick and I'm not at Oxbridge, but most CS graduates aren't coming from those elite places anyway.

    7. Re:WHy are you majoring in CS... by Cwix · · Score: 3, Informative

      for universities to make this a prerequisite

      You want universities to not accept CS students because they didn't take a programming course in high school?

      Well id be fucked because my high school didn't offer any programming besides "Web Programming".

      So if a student comes from a school that cant afford a real programming course then they just aren't good enough for you? Fuck you. Prick.

      --
      You are entitled to your own opinions, not your own facts.
    8. Re:WHy are you majoring in CS... by Ephemeriis · · Score: 4, Insightful

      WHy are you majoring in CS... If you didnt already begin in a high school class, or at the very least on hobby projects?

      Not all high schools have computer science-y classes. And not all prospective students have the kind of resources necessary for hobby projects.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    9. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      If you didnt already begin in a high school class, or at the very least on hobby projects?

      Precisely. It's not like back when us fogies started where you had a mainframe and had to trudge uphill in the snow to get access to it. For years now, I've had to put up with the "Computers aren't hard! Why little Jimmy can make a box go across the screen after only a half hour of programming!" mentality.

      Right. And and his First-Aid certificate means that he'll be doing liver transplants, too.

      Still, CS classes are where you'd expect the "little Jimmys" to end up, just like the Med School is where the First Aid heroes would go. So we're not talking about people who are totally cold on the subject.

      A lot of what the intro course is about isn't teaching the subject per se, it's about whether the students can tolerate being a part of the culture. It's where the ones who thought it would be a good idea get a chance to find out if it really was a good idea. Or Not.

    10. Re:WHy are you majoring in CS... by mikael_j · · Score: 2

      Here in Sweden a lot of the engineering and "hard science" programs used to require pretty much the same across the board (don't know what it's like now, been a few years) which was equally bad. Rather than not requiring enough things they all required you to have taken the advanced HS math courses, advanced HS physics and of course HS chemistry, many also required other courses which were highly irrelevant for the program at hand but taught in a specific HS-level program geared at preparing students for college.

      This meant instead that there were plenty of students with the required math skills who couldn't apply to CS programs because they didn't take the right chemistry or physics course in HS. Or people who couldn't study chemistry because they didn't take "Social studies B" and so on...

      Of course, a lot of the people who took the specific college preparatory HS program didn't really know any of the stuff they were supposed to know because the high schools structured all courses to pass as many students as possible while still technically meeting the national requirements (it was kind of silly when you had classmates who barely knew what a function was who managed to pass "Math E" which was, as the name implies, the 5th math course available in HS, the first four being A, B, C and D with only A being required to get your high school diploma).

      --
      Greylisting is to SMTP as NAT is to IPv4
    11. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      In some places (everywhere in Ireland, for example) there is no high school class for CS.
      Any subject which isn't an official exam subject as decided by the state is completely ignored in 99% of schools.

    12. Re:WHy are you majoring in CS... by History's+Coming+To · · Score: 1

      Because (in the UK at least) people will often take whatever degree course they can get on to. It's not that they want to learn the subject, or use it in later life, they simply want a degree in anything.I've known somebody on a CS course who dropped out because they couldn't grasp the concept of a while loop - CS was their second choice, they wanted to do English Lit but the course was booked out, and they *had* to be at this particular University because "it's the best one to find a rich husband at". I kid you not, it's a very sad situation.

      --
      Please consider this account deleted, I just can't be bothered with the spam anymore.
    13. Re:WHy are you majoring in CS... by biryokumaru · · Score: 4, Funny

      You should just be glad many universities don't have any English Comprehension courses as requirements...

      --
      When you're afraid to download music illegally in your own home, then the terrorists have won!
    14. Re:WHy are you majoring in CS... by XManticore · · Score: 2

      Totally disagree. High school will not be a benefit to the vast majority of people. Either you were born thinking like a computer scientist, or you will never 'get it' at uni; there are very few people who are in between, who can learn how to think in that manner.

      Third year CS student here, I had never even thought about majoring in CS until about two weeks before applying to university –I was planning on doing Physics. I had never done anything remotely CS related at school. I'm one of the top students in my class.

      Here's a paper http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf. The gist of it is that school is a waste of time for the top students because they already know how to think; university is a waste of time for the bottom students because they'll never get it; and there is a minority who can actually be pushed to learn something, those students who are somewhere in the middle.

    15. Re:WHy are you majoring in CS... by tverbeek · · Score: 3, Insightful

      Heck, when I took Comp Sci 101 my freshman year in college, it was 1983 and there were no high school programming classes. I did fine. And if I hadn't.... isn't flunking an intro class usually a reliable sign that it's not a good subject for you? If you really want to challenge yourself by studying something you don't understand easily, go ahead and retake it. But you'd probably be better off finding a field you'd be naturally good at instead.

      --
      http://alternatives.rzero.com/
    16. Re:WHy are you majoring in CS... by BonThomme · · Score: 1

      If you are waiting to be taught, I think we just identified the problem...

    17. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Some rural and remote high schools don't have any or decent classes in computer science.

      Some high school students don't have access to computers outside of their schools.

      I am a third year comp sci student ( with over a decade of programming experience ) - I have been a teaching assistant for four different first year courses.

      The concerns are valid - the range of students we accept into CS is not based on their experience in programming. I have meet students whose started programming in C/C++/Java in grade nine and continued through to grade 12 because their high school math/science department hired a former programmer as a teacher. There were at least a dozen students in this past term who should not have had to take the first year CS courses because they were already taught the concepts and practices in high school. Then I have meet students whose math and science marks are excellent but whose school never had anything beyond html and basic javascript - oh and the students didn't have access to computers at home because many low income familes don't/can't buy them.

    18. Re:WHy are you majoring in CS... by JMJimmy · · Score: 1

      While I agree 100% that those high schools who have solid computing courses may give some a leg up over those that don't and that sucks, I do disagree with the overall sentiment.

      I've consulted on CS1/CS2 courses which were being combined at Queen's University in Kingston. They didn't know if they should make it easy for the engineering students or expect some previous coding knowledge so they could move the CS students along faster. The consensus was that due to the number of options available for self learning, peer learning, and the availability of introductory CS college courses there was really no reason for students not to know this stuff coming in or be able to pick it up easily along the way.

      When you think about it, how hard is it really to understand conditional statements, loops, and methods? That's all a CS1 course really teaches.

    19. Re:WHy are you majoring in CS... by Derek+Pomery · · Score: 1

      I started at age 11, mom sent me to local community college to learn pascal. Also wrote a lot of qbasic programs on my own before/after.

      Where there's a will...

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    20. Re:WHy are you majoring in CS... by stewbacca · · Score: 1

      Most people don't figure out what they like or what they are good at until later in life. I should be a graphic or web designer, but by the time I laid eyes on desktop publishing software and Photoshop, I was one semester from graduation (1992).

      My wife went back to college after getting a Masters and working in the real world for a decade. She's majoring in CS for the job prospects.

      Why would you go out of your way to question why somebody else would study a particular field in college, is the more pertinent question.

    21. Re:WHy are you majoring in CS... by stewbacca · · Score: 1

      I couldn't care less what my doctor's interests were before he became a doctor. I'm quite skeptical of people in general who can't separate work from life.

    22. Re:WHy are you majoring in CS... by jareth-0205 · · Score: 1

      If you didnt already begin in a high school class, or at the very least on hobby projects?

      Because we don't expect that of any other subject? You don't ask someone on a maths / physics / chemistry / psychology to have done it at home outside of a formal education system? And it's very easy to not have the chance to do it in school, I know that I didn't.

      Also, how many times do we hear professors claiming that they prefer their students not to know any programming so they haven't picked up any bad habits? Can't have it both ways...

    23. Re:WHy are you majoring in CS... by Ephemeriis · · Score: 1

      I started at age 11, mom sent me to local community college to learn pascal. Also wrote a lot of qbasic programs on my own before/after.

      Where there's a will...

      So, you're saying that you had the necessary resources. You had the money necessary to attend a local community college to learn pascal. And you had the time necessary to write a lot of qbasic programs on your own before and after.

      What if you hadn't had the money to attend a community college? What if you hadn't had the time to write those qbasic programs?

      Not everybody is as lucky as you were.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    24. Re:WHy are you majoring in CS... by stewbacca · · Score: 2

      Most of the obsessive "i've been coding for 10 years on my own" students bring bad habits and attitudes to class and don't succeed. The clean slate students, if they an think like a CS major, can be easier to train because they have no such bad habits. When I was in the Army, I fired the best at the range, because I was the one guy who had never fired a rifle before, and therefore had to pay attention to learn how to do it correctly, where as all my backwoods buddies were already set in their (incorrect) ways of shooting.

    25. Re:WHy are you majoring in CS... by stewbacca · · Score: 1

      People aren't born thinking a certain way. People indeed can be taught how to think "like a computer scientist", which is the whole point of a computer science degree.

    26. Re:WHy are you majoring in CS... by Derek+Pomery · · Score: 2

      We were far from wealthy. My mom just thought it was important enough to apply for. Helped that she was a friend of the instructor. As for the qbasic, all that required was access to a computer capable of running DOS. Even at the time that wasn't exactly a luxury.

      And as for the *time* to write programs. Most kids have at least a little free time after their 12 hour day at the sweatshop or whatever to play around...

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    27. Re:WHy are you majoring in CS... by SomeKDEUser · · Score: 5, Insightful

      CS is not programming, CS is a field of math, so taking all the courses in math is wayyy more relevant than anything else.

      Programming itself is just syntax, logic, and a good sense of structure and style. Which you can acquire in any engineering design course: there is more resemblance between a well-designed engine or structure and a programme than you'd believe.

      Also, if you are doing CS with the goal of becoming a code monkey/senior designer/something in between you must understand that the knowledge around the code, the engineering, science, accounting, etc. is what will allow you to code the things which do what they are supposed to. The requirements will not be in terms of programme structure, but in terms of require functionality in the relevant domain.

    28. Re:WHy are you majoring in CS... by CronoCloud · · Score: 1, Insightful

      We were far from wealthy. As for the qbasic, all that required was access to a computer capable of running DOS. Even at the time that wasn't exactly a luxury.

      Prove you weren't affluent. I don't know how many times I've seen on slashdot some guy saying they had their own DOS machine in the 80's and say they weren't affluent, and then mention their Dad was an engineer who got them a unix shell account on their workplace computer when they were 11 or something like that.

    29. Re:WHy are you majoring in CS... by johnlcallaway · · Score: 2

      What a bunch of BS. I started at the tender age of 18 by taking a calculus course and teaching myself enough BASIC to do an extra credit assignment. Then I discovered that you can just buy text books and learn languages without paying for the classes, and learned WATFIV in a couple of weeks. How many kids today have computers .. Java and other languages are free. Anyone with the slightest interest has far more access to programming tutorials and IDEs than I had when I was 18. Hell, I had to program on a text editor and punched cards for years. So don't give the that crap about no one having access to resources, kids today have far more access than I ever did. I don't have a degree, yet I manage to have a six figure income.

      If someone can't pick up basic programming skills, they probably shouldn't be programming. I've seen 'college level' programmers, and would prefer to hire a hobbyist over many of them.

      And what is this about programming having a strong mathematical foundation?? It's a list of things to do, about the only math needed is some understanding of Boolean algebra, which should only take an hour to learn. This crap about polymorphism and object oriented design being tough is even more BS. It's only tough to those that don't have the aptitude to learn it. (Hint .. Objects are containers. Polymorphism is just containers within containers. See .. pretty damn simple to teach the concepts initially. I've done it dozens of times successfully.)

      Kinda like me and music. Sure, I can play the saxophone. Studied it for 8 years. Yet no one is willing to pay me to play it because I'm just not good enough at it, and probably never will be. Yet they were willing to pay me to program after not having any formal education in it. Because I'm damn good at it and have the aptitude for it.

      Yet another professor who knows nothing about the real world, and just assumes everyone should be able to learn something, eventually. I know I'll never be a doctor or lawyer, I don't have the aptitude for it.

      Maybe Mr. Kurmas should learn that some students just don't have the aptitude for programming, stop blaming the system, and get over it.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    30. Re:WHy are you majoring in CS... by RogueWarrior65 · · Score: 1

      Actually, when my father was in Columbia (before it descended into ultra-left-wing radical land), he had an interview with the dean of the medical school. The dean told him flat out not to bother taking biology, chemistry, and similar hard sciences but instead to take as many humanities courses as possible. Why? The dean said "We will teach you what you need to know." Now, whether or not this is still true today is debatable.

      As for CS, IMHO, it's all about aptitude. My first jobs out of grad school was doing Mac programming. I had barely touched one let alone program for it. But the company thought I had the aptitude to learn it quickly enough to be productive.

    31. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      You might notice that there are many courses in programming, I'm pretty sure there'd be one in your area too.

      If I relied on my high school education only to prepare for my university degree, I'd have been fucked, indeed...

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    32. Re:WHy are you majoring in CS... by RogueWarrior65 · · Score: 1

      Nevermind comprehension. Being able to speak well and write well along with being able to communicate well is more important. I can't tell you how many paper presentations I've been to and walked out of there understanding the concept less than when I went in. "This is how you implement Euler integration...but nobody uses that so we used an adaptive fourth-order Runge-Kutta solver (which we won't tell you how to implement) and that is the key to everything else."

    33. Re:WHy are you majoring in CS... by XManticore · · Score: 1

      I'd rather think that CS degrees hone a mind that can already think logically and methodically.

      I'm a teaching assistant as well as being a student, and I mark coursework for younger students. I see this a lot, and my professors all agree –there are a few people who can be taught, if they're reasonably smart and willing to work hard. I'm not denying that there are. But these people are in the minority.

      That paper I referenced above refers to it as "the camel has two humps". With most subjects, you get a bell-curve emphasising that most students tend to get a C. With some subjects like CS and Maths, it's more like a double hump –a load of high achievers, a load of people who have no hope, and a few people in the middle. The really hard work is shoving the people in the middle up towards the higher hump; many of them can get there if they try hard enough. The top students can work it out by themselves; no amount of support is going to turn the bottom students into scientists. I hate to think that it's like this, but it's what I've observed pretty consistently.

    34. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      in most countries science and medicine requires physics or chem but _NOT_ bio, as a highschool level prerequisite.

    35. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      It's amazing that few people realize that. The complaint I heard the most was something along the lines "Ack! I didn't expect this to be so much math!"

      DUH?

      What else did you expect? What is CS but math and logic? I have seriously no idea what people expected from studying CS when they complain about having to "dig through" a lot of math. What did they expect? Learning how to program? That's pretty much what my university expected you to know when you started, what they taught you was, well, the math and logic to improve your algos, to know why certain things worked this or that way and to be more efficient. But basic programming is expected from you when you come in, it's nothing you may expect to be taught.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    36. Re:WHy are you majoring in CS... by modmans2ndcoming · · Score: 1

      Calculus is irrelevant?

      You obviously have no concept of any actual mathematics. (Learning to do calculus is different from learning about calculus). Computer Science is heavily Dependant upon mathematics...

      Want to write a better algorithm? Abstract Algebra is your friend.

    37. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      ITMB? The course for people too stupid for IT and too lazy for MB?

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    38. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      No, but I'd expect business majors to be able to calculate interest and a ROI given a formula, I'd expect them to have basic bookkeeping skills and a general financial math background.

      And nothing else is programming for studying CS.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    39. Re:WHy are you majoring in CS... by Derek+Pomery · · Score: 2

      Ok. This is getting ridiculous, but fine. Local community college, one trailer. Half of the town was, including our house. Mom worked as a dental assistant, dad deceased.

      And that wasn't the 80s. It was the 90s. DOS computers were relatively easy to acquire, although I did play around on the ancient computers at school, as well, writing programs on the tape drives.

      Fact is, access to stuff that you can program with is probably one of the easiest of the sciences to get into. Especially today. Kids going into college these days were exposed to computing all their lives, and had access to programming environments on any computer with a web browser more sophisticated than the qbasic I played with.

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    40. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      And not all prospective students have the kind of resources necessary for hobby projects.

      Now you must be talking about places where you have no electricity. Apart from that: you only need a computer, get a dumped one - somebody may even give you some money to get rid of it. The more primitive the computer is, the better. Then at least you can get a complete understanding of your system and everything that runs on it. Said by somebody who learned everything on a Z80 with a bare bones BASIC - as soon as I understood BASIC sucked, I wrote a hexloader in BASIC and switched to machinecode until I got a system which had an assembler and decent programming languages.

    41. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I was fortunate to have a programming class available in high school. Year - 1997. Operating system - Windows 95. Compiler - Visual Basic 1.0 for DOS. First quarter - 20 students. Second quarter - 2 students (most failing). There's a severe gap between those who can and cannot program.

    42. Re:WHy are you majoring in CS... by mikael_j · · Score: 1

      Uh, did you actually read my post?

      I wasn't complaining about math being required for CS, I was complaining about schools here in Sweden (at least in the past as it's been a few years, I wrote this in the original post but might as well repeat it since you obviously didn't read it) requiring the exact same things for every engineering and hard science program which leads to situations where high schools "compensate" for this by making it as easy as possible for students to pass their HS level chemistry, physics, math, psychology, social studies, etc. courses because lots of schools apparently think you can't study CS unless you've also got a working knowledge of organic chemistry, physics, social studies and psychology...

      --
      Greylisting is to SMTP as NAT is to IPv4
    43. Re:WHy are you majoring in CS... by DaMattster · · Score: 1

      If you didnt already begin in a high school class, or at the very least on hobby projects?

      That is oversimplified. Not everyone tries something in a high school class and decides that they want to major in that field in college. Part of going to college is career exploration. In fact it is not uncommon to change majors. Say a freshman is curious about computer programming and decides to take the entry level course. Expecting said freshman to be a software engineer at the end of a semester is ridiculous. Plus, CS courses are taught from a theoretical, academic perspective versus a real world one. CS should be taught by building a real world application over the course of two semesters - not this lab style, oh gee let's compute PI or whatever else gets a mathematics professor off. If it were taught by building real world applications, students would be much better programmers and better prepared for life beyond academia.

    44. Re:WHy are you majoring in CS... by Jedi+Alec · · Score: 1

      That's one way to look at it. Personally I prefer to look at it as a course for people who can then serve as translators between business people (unable to think) and IT people (unable to communicate).

      There's a distinct knack for getting managers and nerds around the same table in such a way that they don't end up wanting to kill each other ;)

      --

      People replying to my sig annoy me. That's why I change it all the time.
    45. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I got started on a computer that a teacher brought into the school on her own dime. That was 1981. I am almost positive that every school and library in America has a computer. And you can pick up an old used computer for free or for less than $20 from a yard sell, throw Linux on it and start learning away!

    46. Re:WHy are you majoring in CS... by IceNinjaNine · · Score: 4, Insightful

      What else did you expect? What is CS but math and logic? I have seriously no idea what people expected from studying CS when they complain about having to "dig through" a lot of math. What did they expect? Learning how to program?

      I do agree with you nowadays, but back when I was in school (late 80s) it was still unclear at a lot of universities what computer science was exactly. Some departments marketed themselves as programming factories, others as an adjunct to the math department, and still others got it right. As an uninformed high schooler back in the day it was easy to believe that programming == CS.

      If I could do it all over again, I'd have gone to a school with a very strong MIS program and minored in computer science. I think this would work for a lot of business developers as you'd get enough about how the machine works along with domain specific knowledge. The major nowadays that rankles me is "Information Technology," which evidently (where I live) means "drag and drop shit into Visual Studio then connect it via ADO.Net to SQL Server". I view that program as basically the equivalent to a BS in "Data Processing" from the 70s.

    47. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Take a remedial course or a qualifying exam.

    48. Re:WHy are you majoring in CS... by PRMan · · Score: 2

      I expected to be taught something that I would actually USE in my career. I haven't used Calculus or Physics since college. What a waste of time that could have been spent helping me learn to write a debugger, syntax highlighter, custom language grammar and parser, device drivers, robots, speech recognition, video recognition, OCR, simple OS, emulators, etc., etc., etc. You know PROGRAMMING stuff. All the stuff I had to learn on my own because CS is so out of touch with reality.

      CS as it is taught today is a joke unless you are the 1/10 of 1% going to work at NASA or the Jet Propulsion Laboratory.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    49. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Agreed. Schools need to start having a Software Engineering curriculum in parallel with a CS degree. There is a difference between Science and Engineering that many do not make a distinction for.

      Science is the investigation and research of the theory, Engineering is the application of said theory.

      Computer Science is the science end of the Electrical(as it applies to computer chips and hardware) and Software engineering fields.

    50. Re:WHy are you majoring in CS... by Grygus · · Score: 1

      The assertion that a human mind is fully formed and unable to learn completely new things and discover completely new interests at the ripe old age of eighteen seems a pretty specious one to me.

    51. Re:WHy are you majoring in CS... by ZeroExistenZ · · Score: 2, Informative

      This is how you implement Euler integration...but nobody uses that so we used an adaptive fourth-order Runge-Kutta solver (which we won't tell you how to implement) and that is the key to everything else."

      Translation: "I'm justifying all my time spent (and think I should've spent instead of partying) and show how I'm expert of my field. I assume everybody will have put the same (specific) effort into acquiring these obscurities that I pride myself with. Look at the size of my intellectual reproductional organ.

      This gets worse, once people also have to justify their time and their costs (wages). Welcome to the intellectual industry, where once you understand the field-lingo, you understand it's often just the game of acquiring the lingo and it's (lack of) signifance.

      --
      I think we can keep recursing like this until someone returns 1
    52. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      if you follow that path, I hope you are really good at algorithms and bullshitting managers with buzzwords ... because everybody I know who did this writes absolutely atrocious, unmaintainable, incorrect code

    53. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 1

      Some of us come to computer science from other disciplines. Linguistics, for example (which actually gave me a surprisingly good foundation for programming), led to my interest in AI which led me to both Computer Science and Mathematics when I was in my late twenties. There are reasons to be interested in moving toward CS later in our academic careers; an interest can arise well after high school.

    54. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      Hold it... your CS degree includes Physics? The thing that comes closest to Physics in my degree is hardware design (and only 'cause we had to know how capacitors charge and calculate what frequency is doable considering the charging/discharging times of our capacitors).

      Mine consisted of a LOT of math (mostly algebra and graph theory), logic and optimization.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    55. Re:WHy are you majoring in CS... by msuarezalvarez · · Score: 1

      SO you are saying that you took CS when you should have taken Software Engineering? Well, everyone makes mistakes.

    56. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Once you get to college it is too late to decide that you want to get into CS, engineering, science, or medicine.. You basically need to start thinking about it when you are a Freshman in high school. Otherwise you won't take the needed high school math and science classes and started getting into programming to decide if you really want to do that for the rest of your life.

      The problem is that people show up to college and need to pick a major and do it based on starting salary. That would be like me deciding that I should be a professional oil painter having never done it. I might have talent at it (but I kind of doubt it). Or going into architecture without having ever doodled buildings.

      There are a lot of degrees that you can get good grades showing up at college with some basic skills and working your way through it. Business, marketing, English, history, and philosophy come to mind. Art and music need prior work.

    57. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Because your high school didn't offer a programming course, doesn't mean you don't have a background in programming. My son's high school didn't have any programming courses either, BUT since he was interested he went to the public library, pick some books to read and then took a programming course at a local community college during the summer. Given the background from the community college, he taught himself Z80/68000/x86/sparc assembly language. The key point is that he was interested in programming, so he learned enough about programming to make a decision whether to continue or not. Your statements clearly show you aren't ready for college or job. You haven't got the skill set needed.

    58. Re:WHy are you majoring in CS... by durdur · · Score: 1

      It is true that CS is taught like it was a field of math, not engineering. I looked a while a ago at the MIT CS courses, which are available online. The lectures seemed accessible enough, but the course assignments were very difficult (IMO) and required considerable math skills (and I am not someone put off by advanced math). If you want to be prepared to do theoretical research in CS, like analyzing the running time of an algorithm, then they are preparing you well for that. But I've done very little of that in my 20+ year engineering career. IMO an engineer needs to know a programming language (really well), have a sold grasp of binary/hex and boolean algebra, and know enough about basic topics like concurrency to not be dangerous.

    59. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Holy shit, this is the first time I've seen that a blatant insult got modded up.

    60. Re:WHy are you majoring in CS... by Bengie · · Score: 1

      People aren't born thinking a certain way. People indeed can be taught how to think "like a computer scientist", which is the whole point of a computer science degree.

      Not sure about that. A lot of the best programmers I've met are natural "problem solvers" and are very inquisitive in information even outside programming. They prefer working with computers because computers are great at following a set of instructions, but they would've done well in almost any field.

      I've met two types of programmers in my life, those who were taught to program and those who were born to solve problems. The ones who were taught to program just regurgitated knowledge without the understanding of how and why.

      The problem with programming is there are many ways to solve a given problem. The person who was taught to program won't see the difference between a linked-list or an array or how it fits into their program design. They typically don't see the big picture, they just "solve" their current issue and don't think how that will affect other parts of the program.

      Their programs work, but don't work nearly as good. Sometimes you can see magnitude differences in speed and scaling issues.

      Programming is different than many other fields. Many times it's not just important to have a functional program, but a fast, scalable, secure, easily debugged, and expandable program.Design is just as important as functionality.

      I've met my share of computer science engineers with degrees from respectable colleges and great work backgrounds and recommendations, and they don't understand how their application interacts with the database back-end. They write code that would be a great design if all the data was stored in memory, but is horrible when you have a DB back-end. Again, they only understand the small part of the application that they're working on. A bit more understanding in how and why would create a much faster application. Faster application means fewer servers. Fewer servers means less power and fewer admins. It costs real world money to hire people who are "taught" programming.

      Now there's always exceptions, but my anecdotal experience has been more correct than not, in my life. I've worked with "taught" programmers and their still very nice, smart, respectable individuals, but you need to know what to expect from them. I've also worked with people who were more knowledgeable than me if not smarter than me, I recognized this and respected their opinions. I'm 100% sure that there are smarter people than me out there and I accept a good idea no matter who it comes from.

    61. Re:WHy are you majoring in CS... by rcastro0 · · Score: 1

      > Helped that she was a friend of the instructor.

      So what you are saying is that there was even more luck involved than whether or not you were wealthy. Look, I too learned Turbo Pascal in the eighties, when I was 15/16. I had learned basic before (on a Sinclair ZX 81) when I was around 13.

      However, I will promptly admit it has less to do with my will than with a set of fortunate coincidences including:
      1) I had the intellectual predisposition towards the theme;
      2) My parents had the philosophy of investing in education (if a child wants to study/practice, he/she will (be it music, languages, computers, sports, whatever)
      3) My parents were wealthy enough to go far in point number 2 above;
      4) My father was an engineer and brought home a computer at a time very few people did;

      I remember well the time. It was 1986/87, I was already crazy about computers when I went as an exchange student to the US. I met several american families. Not one (back in 1986/87) had an IBM PC XT at home. (if you want the stats, I saw two families with Commodore 64s, one with a TI-99, two with Apple IIc's (brand new at the time) and one guy with an IBM PC Jr. Several had no computer. Before retuning to my country I purchased an IBM PC XT (through Computer Shopper, how else?). I also got the Turbo Pascal 3.0 full package -- which included Turbo Tutor and a bunch of coding examples, such as Gameworks, Editor Toolbox, etc. Oh the memories, it looked like this http://bit.ly/lkxM6D or this http://bit.ly/is74Id

      Anyway, I would not be so blasè, and say "Where there's a a will..." I believe my experience and your experience are exceptional and the result of a series of factors that came together by chance.

      --
      Quem a paca cara compra, paca cara pagará.
    62. Re:WHy are you majoring in CS... by popo · · Score: 4, Insightful

      Frankly, you're missing the point.

      As a professional programmer, you will be learning throughout your entire career. You will be re-training yourself constantly and unendingly.

      Those who teach themselves to program (ie: the majority of good programmers) are the ones schools need to focus on, and teach them to program *really well*.

      If you haven't learned *any* programming because you say "There wasn't a class". Then you should probably forget about it. You're not going to make a good programmer, because you sound like the kind of person who only learns from classes. And that's likely to be a very major problem for you in your career.

      --
      ------ The best brain training is now totally free : )
    63. Re:WHy are you majoring in CS... by Tacvek · · Score: 1

      The big problm is that CS is meaningless.

      There is a field that would properly be named Computational Mathematics (or Theory of Computation, or something similar). That field includes concepts like Lambda Calculus, or the mathematical 7-tuple Turing Machine model.

      More specifically Computational Mathematics includes the study of:

      • algorithmic complexity
      • automata theory
        • finite state machines
        • cellular automata
        • the automata behind formal language theory, like DFA and NFA
      • formal language theory
        • languages
          • regular languages
          • context-free languages
          • context-sensitive languages
          • recursively enumeratable languages
          • etc
        • grammars
        • the various parser types
          • LR(1)
          • LR(n)
          • LL(1)
          • LL(n)
          • LALR(1)
          • etc
      • Quite a few other topics which are just not coming to mind at the moment.

      That is a field in its own right. Anybody programing computers could benefit from at least a passing familiarity with some of the concepts, although exactly which ones are important depend on the specific job.

      Universities (and 4-year colleges) though also feel the need to offer some other courses, which they often label as computer science. These include basic introduction to programming language X courses[1], an operating systems principles course[2], a software engineering course, and a variety of other courses.

      These courses can be worthwhile, but are not even remotely intended to replace on-the-job training, since they rarely cover such essentials as version control, and certainly don't deal with the art of cobbling together a bunch of nasty hacks in order to meet a deadline, or of having a Business Analyst in charge who will not yet ou go back and code the features correctly once the deadline passes. They most likely don't cover unit tests, but that's OK, since contrary to popular belief much (possibly most) of industry does not bother to have any unit tests. After all, Cobol does not lend itself to easy unit testing.[3]

      So what is CS? Honestly the way most schools teach it, it is a mixture of Computational Mathematics, and a variety of topics focused on programming itself, but that leave out many important concepts for actually working in the real world.

      [1] These are not unlike the same courses offered at a community college/technical school, except that they will often be a bit more rigorous at a univrsity or 4-year college.

      [2] This course covers what a kernel is, discusses virtual memory, covers scheduling algorithms, and introduces multi-theading programming concepts like critical sections, mutexes, semaphores, monitors, deadlock, livelock. It also discuss the difference between a thread and a process, some lower level details of filesystems (things like inodes, direct blocks, indirect blocks, doubly indirect blocks, and also concepts like the file allocation table of the FAT file-system family.) There are other concepts that may be taught in place of one or more of these. This course typically uses a texbook like Modern Operating Systems by Tanenbaum, or Operating Systems Principles by Bic and Shaw.

      [3] I jest. Through honestly, the giant legacy C++ program not designed with unit tests in mind does not make it easy to start using them, even in the most basic form of regression tests for fixed bugs.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    64. Re:WHy are you majoring in CS... by jpate · · Score: 2, Informative

      I haven't used Calculus or Physics since college. What a waste of time that could have been spent helping me learn to write... robots, speech recognition, video recognition, OCR... You know PROGRAMMING stuff.

      So, um, how do you think we write computer programs that deal with the uncertainty involved in robotics, speech recognition, video processing, and OCR? The most successful approaches involve optimizing various objective functions with respect to (possibly labeled) data, which almost always involves either climbing (or descending) a gradient to some optimum, or (in Bayesian approaches) integrating out certain parameters. How are you going to do these things without calculus? Your professors were trying to give you the foundation to do these cool things.

    65. Re:WHy are you majoring in CS... by PeeAitchPee · · Score: 1

      And not all prospective students have the kind of resources necessary for hobby projects.

      They don't have access to the internet so they can download their language of choice to a cheapo system and start playing? Nonsense. You can get that at the local public library, or any public school, and if you demonstrate you're curious and committed enough, someone "in the know" will eventually help you get started. And it's all for free (money-wise, anyway) -- the "prospective student" just needs to be interested in learning the stuff, and demonstrate that.

    66. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I disagree with CS being a field of math. I am horrible at math. Yet I was a better programmer than most of the people who did a double major in Math. To me math makes no sense yet programming does. Therefor, I do not see any correlation to math whatsoever.

    67. Re:WHy are you majoring in CS... by Alioth · · Score: 1

      The resources required are tiny. A cheap second hand computer (even a giveaway) and some kind of compiler or language is all you need. You can even get a full blown IDE with "intellisense" like features for nothing; Netbeans will run (albeit slowly) on older hardware. Find a second hand book store and you won't even need an internet connection to learn. If you have an internet connection, again most of the resources to learn a language and how to code are free.

      Kids tend to be cash poor but time rich, so time is generally not the issue. Motivation maybe.

    68. Re:WHy are you majoring in CS... by Blakey+Rat · · Score: 1

      So your mom paid the tuition, paid for your transportation, bought you an expensive computer you could use to write QBASIC programs on... and you're arguing that it doesn't take resources to do it?

      Here's a shocker for you, you might want to sit down for this one: many people are poor.

      Unless your philosophy is "fuck the poor", maybe you should be sitting this thread out, k?

    69. Re:WHy are you majoring in CS... by Sepultura · · Score: 2

      I know! Would you trust a doctor who, at the age of 15

      No way! At 15 he hadn't even left Gallifrey and he hadn't stolen a TARDIS of his own! I personally wouldn't trust a Doctor Who until he's at least the age of 400.

    70. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 1

      robots, speech recognition, video recognition, OCR

      Each of these requires a strong understanding of Calculus and Linear Algebra at a minimum. You'll also need a good background in statistics since you'll be approximating nonlinear physics in problem domains that are NP-Hard. For robot motion, you're approximating the first and second derivatives of the kinematic equations. In speech recognition you're trying to approximate the integral of the probability distribution function for the given problem. Ditto for video recognition with the added caveat that you're usually looking for the points in the picture with the highest second derivate as that coincides with edges. OCR is similar to video and speech recognition.

      If you don't understand the previous sentence, then you probably were too busy complaining about how you wouldn't use any of those things in your career. Congratulations, you are now the person I ask to do all the coding while I figure out how to get the robot/speech recognition/video recognition/OCR algorithm to do what I want it to do, reliably, with known time and accuracy constraints.

      I like to compare CS this to architecture. Those who only want to program are the equivalent of construction workers - highly skilled, very good at what they do, and absolutely necessary. Those who want a CS degree are architects - they design, analyze, and take responsibility for the program working correctly, but they don't get into the everyday drudgery of building the program because they need to focus on the algorithm itself which is entirely mathematical. Software Engineers these days are basically the tool manufacturers - they come up with ways to make the construction worker's lives easier and deliver a better product, but they don't design the algorithm, just the way that the algorithm will be implemented.

      BTW, if you're offended at being called a construction worker (for some reason many coders tend to get upset at that), I know many construction workers who are offended at their supposed inferiority to you.

    71. Re:WHy are you majoring in CS... by SomeKDEUser · · Score: 1

      Yes, this is perfectly normal. A well-rounded engineer (which a CS graduate ought to be) should have a basis in all those domains. Aside from the fact that passing seems to have become too easy, according to you, they are doing what should be done all around the world.

      A good engineering program (not one geared towards learning a job, but towards providing intellectual tools to do any job well after a small period of training on the specifics) should do precisely that. And If you are going towards CS rather than, say civil or mechanical engineering, you should get a bit more math (or perhaps slightly different math).

      If your university thinks it is their job to help its students fill all the check-boxes on some corporate job-requirement posting, they are a crappy university, and you are wasting your time (and money, if you are a North American).

    72. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Holy shit, this is the first time I've seen that a blatant insult got modded up.

      To be fair, his ability to take quotes out of context is worthy of Fox News.

    73. Re:WHy are you majoring in CS... by SomeKDEUser · · Score: 1

      Sorry to disappoint you, but analysing the runtime of an algorithm is not advanced math. It is rather easy calculation :)

    74. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Why didn't you just write your own parser and compiler and start programming in C? Lazy.

    75. Re:WHy are you majoring in CS... by shish · · Score: 2

      not all prospective students have the kind of resources necessary for hobby projects

      For the first couple of years of my programming life I didn't have a computer; I'd spend hours each evening writing code on paper, then head to the IT rooms during lunch to type it in - I think the habit of thinking before typing has served me well too :P

      Granted, the student could be unable to afford pen & paper, or the school might not have a computer, but I think in those cases there are bigger things to worry about...

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    76. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I don't think it matters or not that the good doctor operated on pets when he was 15. It matters more to me that he continues to fight off the Daleks.

    77. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      The problem with making CS degrees more "practical" is that they become obsolete very quickly. Imagine you studied CS in the 80s and are thus now in your 50s. Chances are good that, if you had a "practical" degree, your degree is completely worthless by now.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    78. Re:WHy are you majoring in CS... by mikael_j · · Score: 1

      PLEASE. Read my posts before replying to them.

      I'm not complaining about math being a requirement.

      [...]I was complaining about schools here in Sweden (at least in the past as it's been a few years, I wrote this in the original post but might as well repeat it since you obviously didn't read it) requiring the exact same things for every engineering and hard science program which leads to situations where high schools "compensate" for this by making it as easy as possible for students to pass their HS level chemistry, physics, math, psychology, social studies, etc. courses because lots of schools apparently think you can't study CS unless you've also got a working knowledge of organic chemistry, physics, social studies and psychology...

      My point was that students arrive at universities with grades that indicate that they know lots about several subjects yet in practice they don't know these things, they just ran through it on "easymode" in HS and think that because they got a passing grade in chemistry in HS they have what it takes to get a degree in chemistry, or math and CS, and so on.

      My second point was the other side of this coin, students who have the required math background who aren't eligible to study CS on a university level because the school decided to have a blanket requirement for all engineering and hard science programs (which means that they all require the minimum required for all the others, that is to say that if you want to study CS you need to have grades in chemistry and physics which are good enough to qualify for the chemical engineering and physics programs). And because of this situation a lot of high schools are causing the situation in my first point, they pushing students through with no real knowledge of the subjects because the schools know that a kid who wants to study CS won't need to know chemistry or physics, but he/she will need the grades to be accepted to the CS program at the university. The problem is that they do this with all subjects and you get a lot of students who aren't really qualified and others who are qualified but who didn't take the right package of courses in HS so on paper they are too stupid for CS because they didn't study chemistry or psychology in HS.

      --
      Greylisting is to SMTP as NAT is to IPv4
    79. Re:WHy are you majoring in CS... by JAlexoi · · Score: 1

      I would argue that programming is a subdomain of Mathematical Logic. On the other hand, given who were the first CS people, CS is essentially a field of physics.

    80. Re:WHy are you majoring in CS... by CptPicard · · Score: 1

      Well, programming language design and compiler theory and so on are a subfield of CS, but otherwise I'm in agreement. Personally I've learned a lot from the more academic languages such as Lisp and Haskell although I don't really use them in my day to day job.

      --
      I want to play Free Market with a drowning Libertarian.
    81. Re:WHy are you majoring in CS... by SomeKDEUser · · Score: 1

      So you are trying to say in a very convoluted way that the school system is inadequate preparation for university? I don't know of a single school system in the world which is an adequate preparation for university. Some get by by brutally selecting students from an early age -- of course, you get all the brilliant kids who would have made it through in any system, so it works. duh.

      But the point remains, the university requirements you describe are in fact correct. And unless the failure rate in the Swedish university system are abnormally high, it might well be that the high school does an okay job at preparation. But then, I also believe that exposure to subjects is valuable in and of itself, never mind that you pass the class. So yes, it might seem unfair that the guy who did so much math, and nothing else, doesn't get to enter the programme, but on the other hand, very narrow interests show him to be inadequate for university.

    82. Re:WHy are you majoring in CS... by SomeKDEUser · · Score: 1

      Ahh, this is interesting philosophically: the tools you used historically determine the branch of science you are in. But as we go forward, CS gets estranged from the bare metal, and becomes more abstract.

    83. Re:WHy are you majoring in CS... by JAlexoi · · Score: 1

      Is it news to you, that a lot of CS departments are closer to Physics dept than Mathematics dept? Didn't your CS education include robotics? Electronics? There is a shitload of Mathematics in Physics and CS has to deal with the Physical component of systems, unlike Mathematics.

    84. Re:WHy are you majoring in CS... by JAlexoi · · Score: 1

      Well.... Technically speaking many Universities start with reteaching everyone everything from scratch. Probably mathematics is the only one spared.

    85. Re:WHy are you majoring in CS... by HereIAmJH · · Score: 1

      SO you are saying that you took CS when you should have taken Software Engineering?

      Most universities don't offer a Software Engineering degree. They funnel you into a CS or CIS/MIS degree. CS, as has been pointed out, is a poor degree for someone who wants to be a software developer. CIS/MIS programs are better, they throw business courses into the mix in place of the higher math. But many of them still have a problem that they are being taught by morons. I had a C programming course at a state university in the mid 90s where the PHD professor taught C as it related to Cobol. And every main started with 'while 1=1'. Advanced Cobol in this program was the 'washout' course. A SENIOR level course. A hell of a time to tell a student that they have wasted the last two years on a program they can't complete. Oh, and that Advanced Cobol class started with JCL disk sort to physical locations on the disk. The class was so tough because you had to guess at all the assignment requirements because the instructor felt 'that's the way user requirements are in the real world'. In actuality, the way you passed his course was to talk to someone who already took it and get the 'real' requirements for each programming assignment. Maybe he was just promoting teamwork..... A decade later at another state university the advanced database class consisted of configuring a web portal in Oracle. The systems design course was building a simple web site that was never completed. My team spent the semester building 8-10 tables in MySQL and importing a couple dozen records. (We got A's, btw)

      I have evaluated a dozen degree programs in my local area, and I'm not sure I'd trust any of them for a career developing software in the real world, which is predominately business software. But you need that 4 year degree to get past the HR drones.

       

      --
      Another day, another update to a Google android app.
    86. Re:WHy are you majoring in CS... by ZeroExistenZ · · Score: 1

      how hard is it really to understand conditional statements, loops, and methods

      Or Design Patterns, Aspect Oriented Programming, decent polymorphism, process-methodology, Generics, ...

      --
      I think we can keep recursing like this until someone returns 1
    87. Re:WHy are you majoring in CS... by devincook · · Score: 1

      This is true. It's amazing what can happen in this field in just 4 years.

      I think what a lot of the good CS programs do is teach a fair amount of theory, the basic concepts of programming languages - control structures, functional programming, etc., and then basically try to teach you how to *learn* a programming language. This is much more useful than just "here's VB.NET, we have no idea if it'll still be in use when you graduate."

    88. Re:WHy are you majoring in CS... by Rennt · · Score: 1

      Slow down there wizz kid. They are talking about CS degrees. Programming is only part of it.

    89. Re:WHy are you majoring in CS... by oliverthered · · Score: 1

      question answered itself, I think.

      --
      thank God the internet isn't a human right.
    90. Re:WHy are you majoring in CS... by oliverthered · · Score: 1

      If a student doesn't need to take a web programming course in high school, then there just too good for school. Autodidactically any how.

      --
      thank God the internet isn't a human right.
    91. Re:WHy are you majoring in CS... by mikael_j · · Score: 1

      So you are trying to say in a very convoluted way that the school system is inadequate preparation for university? I don't know of a single school system in the world which is an adequate preparation for university. Some get by by brutally selecting students from an early age -- of course, you get all the brilliant kids who would have made it through in any system, so it works. duh.

      Wouldn't have been so convoluted had you actually read my original post instead of prattled on about some imagined post where I supposedly complained about there being too much math in CS or whatever it was you took away from it...

      But the point remains, the university requirements you describe are in fact correct. And unless the failure rate in the Swedish university system are abnormally high, it might well be that the high school does an okay job at preparation. But then, I also believe that exposure to subjects is valuable in and of itself, never mind that you pass the class. So yes, it might seem unfair that the guy who did so much math, and nothing else, doesn't get to enter the programme, but on the other hand, very narrow interests show him to be inadequate for university.

      The university requirements don't make sense because the swedish high school system (at the time anyway) worked in such a way that you chose a "program" with a set of courses and in practice there was only one program out of a whole bunch (including national and local programs for more specialized schools) that actually ended up with you being qualified for engineering or hard science university programs. I myself made the mistake at age 15 (when you choose your program for HS) to pick one which focused on digital electronics and computers, the school claimed that this program would lead to being qualified for CS programs except of course they didn't have any chemistry courses which meant most schools wouldn't take me because they had a blanket requirement that covered the minimum requirements for all the engineering and hard science programs, there was no legal reason for this, it's just easier for the school to go with "let's just use national template f.2.1, it covers math, chemistry, physics, social studies, english..." without considering that most students won't have taken all those courses and those courses aren't all necessary (sure, math is necessary for most but chemistry isn't necessary for CS, physics really isn't either, chemistry isn't really necessary for college-level physics and so on, they were really just being lazy).

      In the end I did find schools that had taken a bit more care in their choice of criteria for acceptance into their programs but many at the time didn't really differentiate between the criteria for various engineering programs and hard science programs, they all had the same very narrow set of qualifications.

      So yes, I've taken basic literature classes and all those things in HS and while I was a university student I also took some "artsy" courses (in fact I took over two semesters of image production courses because I ended up finding the subject interesting).

      Also, the purpose of university studies (at least as described in various legal documents here in Sweden) is not to make young people into well-rounded individuals, that's what HS is for. University studies are legally speaking meant to prepare students for further studies leading up to a career in research (of course, in practice most don't go that route but unlike in the US there is not nearly as much focus on making students well-rounded and exposing them to different subjects, that is something that is supposed to happen on a HS level).

      --
      Greylisting is to SMTP as NAT is to IPv4
    92. Re:WHy are you majoring in CS... by CosaNostra+Pizza+Inc · · Score: 1

      I know! Would you trust a doctor who, at the age of 15, wasn't operating on his pets?

      Nonsequitur. I would expect that a high school graduate has taken at least one Biology course. More than 23 years ago, when I was in high school, I already had computer classes and experience. In a world where cursive writing is being dropped from grammar school because everyone is expected to be typing, you'd better have some computer experience...and if you want to get into computer science, you'd better at least know BASIC, PASCAL or some other beginners programming language...better know what an array is, a for-next loop, if-else conditional branch etc...in other words, know some of the basics.

    93. Re:WHy are you majoring in CS... by Capt.+Skinny · · Score: 1

      I'm quite skeptical of people who draw a hard line between the two. It suggests that the person doesn't truly enjoy what they do, that it's just a means of income. There's nothing wrong with that in general (we all need to eat), but from the client/colleague/investor/employer perspective it's a real put off.

    94. Re:WHy are you majoring in CS... by billcopc · · Score: 2, Interesting

      Please reread the parent, he said "employ people who are competent to teach programming", and THAT should be a prerequisite [to employment].

      It is an all-too-common occurrence for some teachers to merely be "going through the motions", following a pre-written course guide that isn't in their field of expertise. I've seen used car salesmen teaching operating system fundamentals. I've seen accountants teaching SQL. I've seen a disbarred attorney teaching NT driver programming (not fucking kidding!).

      As a coder/sysadmin/hardware guy myself, who tried teaching for a few semesters way back, I can appreciate that it's often difficult to take what know and bastardize it for human consumption, especially when it draws upon multiple "layers" of other knowledge. I remember the first time I tried to explain variables to a friend (pre-teaching); to me, it was the simplest, most obvious concept, because I had learned it as a little kid fooling with 8-bit computers. To someone who either hasn't done much algebra, or had sucky math profs in high school, it's not always so trivial.

      It really takes someone who is good at picturing the student's perspective and what's going through their minds when all this foreign knowledge is being presented for the first time. I eventually got the hang of it, but man my first teaching class was brutal. I wished there had been some steps taken to prepare me for it, but no... the college just hired me on a whim, based on my technical qualifications. They asked me to produce a course outline by next week, and classes start the week after. It was all very slapdash and I can only assume the same thing happens in a lot of other colleges and universities. That's the business model...

      --
      -Billco, Fnarg.com
    95. Re:WHy are you majoring in CS... by CosaNostra+Pizza+Inc · · Score: 1

      CS is not programming, CS is a field of math,

      Yes and no. CS is not about what programming languages you know or how well you know them and its not about writing the most efficient code. It is partly about math but its also about topics like design patterns, object oriented analysis, etc that teach you how to program for different circumstances. If you just want to be a programmer for a living, these aren't necessary but for a software engineer or software architect, these are essential.

    96. Re:WHy are you majoring in CS... by sydneyfong · · Score: 1

      I can imagine still using C or some variants of C in 30 years. After all, it survived for more than 30 years, it should be able to survive 30 more.

      In these 30 years, how many times will you expect me to apply automata theory?

      And "practical" subjects do not have to be crappy trade school stuff. For one, if they could somehow hammer into students' heads how to tell "good code" from "bad code", common tricks to avoid code duplication, various dead ends in software design, how not to overarchitecture a project, etc... those would be very useful "practical" skills that likely would serve them for a very long time.

      Of course, don't ask me how to design a curriculum to achieve that.

      --
      Don't quote me on this.
    97. Re:WHy are you majoring in CS... by CosaNostra+Pizza+Inc · · Score: 1

      And not all prospective students have the kind of resources necessary for hobby projects.

      How about a $400 laptop, a $30 beginners programming book, a free Linux OS, free compiler (GNU C/C++, Sun Java, Python, etc), and a free IDE (Eclipse, Code||Blocks, NetBeans, etc). Broadband internet is optional.

    98. Re:WHy are you majoring in CS... by durdur · · Score: 1

      Sorry to disappoint you, but analysing the runtime of an algorithm is not advanced math. It is rather easy calculation :)

      No, not in general, not for all algorithms.

    99. Re:WHy are you majoring in CS... by timeOday · · Score: 1

      A Master's in CS is more along the lines of what you wanted. In an Bachelor's degree, you only end up with 1.5-2 years of courses within your major. A Master's degree doubles that in just two more years.

    100. Re:WHy are you majoring in CS... by HereIAmJH · · Score: 1

      bought you an expensive computer you could use to write QBASIC programs on

      Oh please. This is really dependent on when the events took place. I learned BASIC in highschool my senior year, on a TRS80. It was the first year my school offered a computer course. I quickly learned afterward that the PC computer lab at the local community college was open to anyone who walked through the door. IBM PCs, a TRS80, and some Apple IIs. It's been nearly 3 decades, but I seem to remember the Commodore 64s costing about $100, which was about a week's (40 hr) take home pay for me at the time. I couldn't afford one, but a friend's family had one. And just to start the 'get off my lawn' pissing match, I wrote my first Cobol program on punched cards.

      In today's world, how many here have a stack of working computers in the closet, basement, or garage that work perfectly fine but have no market value. I personally have 2 dual proc P2 Compaq servers, 3 P2 laptops (Dell and Gateway), and a dual proc Athlon (duron?) that are complete with OSs installed that I would probably give to someone interested in learning programming (or linux) and willing to pick it up. I also have at least one dual PII motherboard, loaded with memory and CPUs and enough spare parts to make it a full PC.

      When I was in highschool it was difficult to get access to a computer if you didn't have $$$, but not impossible. Today you could probably walk to your local library and put a posting on Craigslist and get something free that is capable of running a current linux release.

      --
      Another day, another update to a Google android app.
    101. Re:WHy are you majoring in CS... by Sir_Lewk · · Score: 2

      You're stuck in the wrong decade old geezer. All the kids in college and highschool these days were born in the 90s and grow up in the 90s/00's. Computers have been so prevalent their entire lives that they could literally jump onto a bus, head down to the local Salvation Army, and pick up a computer. All for about the price of one or two cheese pizzas.

      I would know: my previous computer, the one that I had since I was a child, cost me $50. Because I was feeling like Mr Moneybags at the time.

      Anybody currently in college or enrolling in college who says they never had the opportunity to hobby in computing is flat out full of shit.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    102. Re:WHy are you majoring in CS... by RobDude · · Score: 1

      Thank you.

      I'm sick and tired of people acting like college is an entry level task. College students are *adults* and they have spent (at least) the last 12 years preparing for their academic endeavors. It's not something to be taken lightly. Oh, and it's *really expensive*.

      College *shouldn't* be for the C- kid who didn't really do much in high school, who played a lot of World of Warcraft and decided to be a Computer Programmer. Because that kid is going to fail out of the entry level programming classes. Colleges will gladly accept his 15k for one year of Ds and Fs before he fails out. Now, some professor is advocating changing their program so that this kid can manage to pass?

      We already have a system that cover pre-college level material; it's called.....High School!

    103. Re:WHy are you majoring in CS... by Sir_Lewk · · Score: 1

      Wow, your CS program really must have been bad... ...You managed to get through it without ever even learning what CS is.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    104. Re:WHy are you majoring in CS... by RogueWarrior65 · · Score: 1

      Ah, yes, and then generally the more incompetent you are, the more likely you are to invent $20 MBA words to make yourself seem more important. "Webinar" is a pet peeve of mine. Every time I hear someone use that term, it makes me not want to attend. I get the same feeling when people use the term "gooey" to refer to a user-interface. Sorry, but "gooey" is trendy and you've just revealed that you know nothing about user-interfaces.

    105. Re:WHy are you majoring in CS... by RogueWarrior65 · · Score: 1

      "If these Vegans are so sophisticated, why the remedial math?"
      "Yeah, why don't they just speak English?"
      "Probably because 70% of the world speaks other languages, Senator. Mathematics is the only truly universal language."

    106. Re:WHy are you majoring in CS... by St.Creed · · Score: 1

      In The NEtherlands, the onliest CS courses where you get electronics (elective) and robotics (elective) as a mandatory part of CS is in the so-called Technical Universities that are oriented towards physics and hardware. I studied CS at a university that prided itself in being home to the national institute of Mathematics teaching standards. The faculty was called "Faculty of Mathematics and Information Science". So to me your CS sounds like its hardware-oriented and while you can certainly opt to go that route, it is by no means the standard.

      On that note: if I read about 200K debts: why don't American students come to Holland to study Comp Sci? Price is much lower, standards are higher in most cases (we have a lof of Nobelprize winners as well, even as recent as last year) and the country ranks as one of the nicest places to live in. If you study in Amsterdam you get taught by Andy Tanenbaum - which should certainly satisfy all requirements regarding learning more about operating systems, compilers and emulators :)

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    107. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      "Would you trust a doctor who went to university never having taken biology at school?"

      The article in question is from a professor plainly teaching in the UNITED STATES. Not the UK. To other /.ers that may not know this, in the UK and Japan, you go into medical school directly out of high school typically; there is no previous higher education necessary.

      So for the United States, yes, because the steps to becoming a doctor are licensed and practiced with many check steps in between where you need to show competency in the material (MCATs, USMLEs), not the time at which you learned it..

      As a person who got into a US med school and was trained in the US, besides the educational system disconnect, it's absurd if you think high school biology has ANYTHING to do with becoming a competent doctor. Our high school chem and trig classes have more relevant material. Not to mention the college intro bio courses are a complete rehash of high school biology for a quarter and then you move on to cell and molecular biology and genetics.

      btw, I taught myself programming in college. Never owned a computer prior except for a CPM (there's a dash in there somewhere) machine I used for writing my high school papers on 5 1/4" floppies. I would have failed the intro CS courses (knowing several CS majors at the U of Chicago). I knew C, perl, shell scripting, and html by the time I left and knew them very well for the times. CS classes back then sucked. I can see this professor's point, although I think people more closely related to the current teaching of CS classes can better comment.

      "Pretty much any medical degree in the UK"

      GVSU is in the US. We typically have 3-5 years of higher education before we even allow people into medical school, and that includes a host of college level physics, biology, and chemistry classes.

    108. Re:WHy are you majoring in CS... by St.Creed · · Score: 1

      Cobol survived for much longer than 30 years, so if that is the argument I expect most universities to teach Cobol. And I actually apply automata theory regularly because that's the way most workflows are modelled.

      But to put this in perspective: after 20 years, the thing that has been of most use to me is the fact that learning hard subjects expanded and trained my brains, so I could acquire everything else I needed to know on my own.

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    109. Re:WHy are you majoring in CS... by St.Creed · · Score: 1

      Yep. I remember vividly that I went into my first course (math, ofcourse) and the professor told us that we'd be doing 5 weeks of repeating all of the math we'd had at high school. Everything after would be new, and at the same speed. And he was right. If you hadn't done math, you were in a world of hurt.

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    110. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      In these 30 years, how many times will you expect me to apply automata theory?

      Depends on how well you actually learned it. If CRUD is all you know, CRUD is all you'll ever do.

    111. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Because such an individual is a criminally insane psychopath who would needs to be taken by social services due to the fact that his/her parents are allowing their children to cut up living animals.

    112. Re:WHy are you majoring in CS... by Cwix · · Score: 1

      I never said I didn't program already. My point is the parent said that a programing course should be a prerequisite for intro to programming. Please do me the favor of parsing that logic.

      --
      You are entitled to your own opinions, not your own facts.
    113. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I dunno, I am kind of glad I learned calculus and physics, just in case I decide to switch my programming career later on. I currently work as a web developer and am really happy I learned a bit of physics and calculus, because I do game design as a hobby in my spare time. I also apply that knowledge to miscellaneous visual javascript functions that i write on my own for fun. All of those classes I took that weren't directly related to web developing I am actually really glad I took help me now-a-days connecting (religion class, english classes, social science classes) with my co-workers and their hobbies and interests so we have more than a surface-level relationship.

      I can definitely see how one can see them as a waste of time, but maybe it is good to try and find a place for those skills/that knowledge?

    114. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      What quote?

    115. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      ... and the discussion was about washing out of intro CS1 due to lack of ability/experience.

      Programming is the part you should have already started looking into on your own.

    116. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      $400 laptop? How about a $50-$100 used desktop?
      At the $100 range you can go new desktop, if you can find a an old CRT monitor somewhere.

    117. Re:WHy are you majoring in CS... by Derek+Pomery · · Score: 1

      Didn't pay for my transportation, I biked.
      1 class at local college, if she paid for it, would have been a large part of her budget.

      And no, the computer was not expensive.

      We weren't dirt poor, but we were not middle-class.

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    118. Re:WHy are you majoring in CS... by Derek+Pomery · · Score: 1

      ... and to anticipate, seeing this thread is basically going to the point of focusing on the 5% or so of society who can't afford a bike, yes, she probably paid for the $50 or so for that bike once upon a time. It wasn't new either.

      Point being. You didn't have to be well off to learn to program, and that's even more so now, when computers cost about the same as a television, and exist in every library.

      And yes, you can program on a library computer. They have javascript web browsers.

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    119. Re:WHy are you majoring in CS... by HornWumpus · · Score: 1

      What's your ratio of talking/writing to listening/reading?

      Comprehension is a prerequisite for being able to speak and write well.

      I'll bet you that any person that gives an incomprehensible talk also listens for shit.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    120. Re:WHy are you majoring in CS... by 427_ci_505 · · Score: 1

      Sorry, but "gooey" is trendy

      Or, you know, a convenient term to refer to graphical user interface.

      and you've just revealed that you know nothing about user-interfaces.

      I don't see the logic here.

    121. Re:WHy are you majoring in CS... by DamnStupidElf · · Score: 1

      You seriously haven't used calculus and physics for controlling the motion of robots? You didn't use Fourier analysis when doing speech recognition? Discrete mathematics and linear algebra may play a bigger role in day-to-day programming but that's no reason to hate calculus.

      Of course the sad thing is that one can probably program a robot or a speech recognition system using libraries someone else wrote without knowing how they work. I think that makes one an "operator" rather than a "programmer", however.

    122. Re:WHy are you majoring in CS... by DavidTC · · Score: 2

      Actually, I think you're a bit off.

      Programmers are the equivalent of both architects and construction workers.

      CS is trying to teach engineering. Engineers are the people who try to figuring out how to translate physical science into usable designs to tell architects what to do, some of which will eventually get incorporating into architectural design taught to everyone.

      Likewise, CS is trying to figure out how to translate computer science in to usable designs to tell programmers what to do, some of which will eventually get incorporated into programming theory taught to everyone.

      Computer science is also, confusingly, physics itself. Just like engineers sometimes have to run scientific experiments themselves and figuring out some property of a material, sometimes computer scientists have to run scientific experiments to figure stuff out.

      programming = design using standards and materials + actual construction of that design
      CS = figuring out the rules of computers + using those rules to invent standards and materials for programmers

      Incidentally, the field of programming actually has figured out that it is both design and construction, and has come up with the title of 'architect' within itself.

      You do not need to know 'computer science' to architect software, you just need to know how to put together the stuff that the computer scientists have come up with, just like architects generally don't worry that their buildings will collapse...they just follow the rules the engineers invented.

      For both of those, with incredibly advanced designs, like a skyscraper or an AI, you'll probably need someone who is both an architect and an engineer. But generally you do not need an engineer to build a house.

      Of course, this means we're currently training a fuckload of engineers and sending them off to install plumbing in houses, which we have somehow decided requires engineers.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    123. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      How about a major in Software Engineering? Why doesn't that exist? 99% of us do not care about the math or CS theory, nor will we ever use it IRL. What else are we supposed to major in?

    124. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 1

      >CS is not programming, CS is a field of math

      and math, itself, is just a field of philosophy. After all, behind all that rigor (which is a smokescreen) you are really just applying arbitrary conventions (axioms). Regarding which axioms you actually pick, this is purely a philosophical question.

      So, math itself is just syntax, logic, and a good sense of structure and style, piled on top of philosophy, which you can pick up in a $1.99 Penguin Classics paperback.

    125. Re:WHy are you majoring in CS... by Hooya · · Score: 1

      I disagree with the assertion that CS is a field of math. This, after having gone through a BS that piloted a 'Formal Logic' approach to CS. We had to 'prove' program correctness using predicate calculus. Actual programming was just a thing we did to make sure we were grounded in, you know, stuff we'd actually end up doing after we graduated...

      How much of the predicate logic, probability theory, markov chains and simulation did I end up using? close to 0. the one application I found for what I learned in simulation turns out to be too complex and not enough ROI for the business types to approve. they'd rather farm shit out to {insert some other country where labor is much much cheaper} to some code monkeys because it's cheaper and have them bang shit out in .Net/Java/HTML.

      Hell, I've got the global head of IT demanding that we use MSSQL because MS has 'solved' the case of nested set (see joe celco's book) in a way that defies all mathamatical CS knowledge up to this point. (From the little that I know of MSSQL, they're using enumerated path as a special SQL data type, but the searching and the updating still takes time - but who the fuck am I to say that MS hasn't really 'solved' the fundamental problem beyond amortizing the costs elsewhere in other operations).

      The point of my rant here is that CS in corporate America has little or nothing to do with Math. Learn the frameworks, learn the dev tools - and at the most 'mathy' end of things, learn data structures and the run times associated with the various operations on them and you're set.

      P.S. I envy the bastards that have jobs that involves math - especially algorithms and fun with the big O.

    126. Re:WHy are you majoring in CS... by Missing.Matter · · Score: 1

      I haven't used Calculus or Physics since college. What a waste of time that could have been spent helping me learn to write ... robots

      Speaking as a Robotics Ph.D. candidate with a B.S. in Physics.... you're full of it. I use physics and calculus all the time in my work. Ever heard of a Jacobian, the thing we use to linearize nonlinear equations for an EKF? How exactly do you derive equations of motions without physics and calculus? It's just beyond me how you could ever do anything beyond trivial hobbyist stuff without these two important disciplines.

    127. Re:WHy are you majoring in CS... by DamnStupidElf · · Score: 1

      And what is this about programming having a strong mathematical foundation?? It's a list of things to do, about the only math needed is some understanding of Boolean algebra, which should only take an hour to learn.

      Formal mathematics is ultimately done with sets of symbols and rules for building formulas from axiomatic sequences of symbols. In essence it's string processing with a few special rules about the symbols that represent variables. Getting to arithmetic from that point is a long road, but once you realize that mathematics is just formal rules it's no surprise that a subset of formal mathematics is the context free languages used for programming. This is important when you need to prove things about classes of programs or transform programs from one programming language into another or prove that all programming languages can compute the same things as a Universal Turing Machine.

      Look at metamath for an interactive bottom-up approach to constructing mathematics and I think you'll see the similarity to programming.

    128. Re:WHy are you majoring in CS... by ZeroExistenZ · · Score: 1

      "gooey" in itself is a sticky (sugary) substance or appearance with a thick consistence. For me personally, it connects to someone's child-nostalgia (candy, goo, sugary, ...) and would be a bit hesitant to take this person too seriously if his or her universe still exists out of "gooey" things.

      GUI, is a clear and well understood acronym and services this purpose. Making it "gooey", is an attempt to be "cute" or "funny" in a universe where it doesn't necessarily belongs.

      Ofcourse, this depends on which level and with what sort of clients you work and which sticks well. But I can imagine you'll lose your pitch if you're aiming for a contract where money, timing and experience are a large factor. You wont convey your client you have the weight and expertise to pull it if you are talking about "gooey" things in your meetings.

      --
      I think we can keep recursing like this until someone returns 1
    129. Re:WHy are you majoring in CS... by betterunixthanunix · · Score: 1

      I expected to be taught something that I would actually USE in my career.

      Then go to a trade school, where you will be taught just that.

      --
      Palm trees and 8
    130. Re:WHy are you majoring in CS... by betterunixthanunix · · Score: 1

      How much of the predicate logic, probability theory, markov chains and simulation did I end up using? close to 0.

      Then you are not working as a computer scientist; it sounds more like you are working as a programmer.

      --
      Palm trees and 8
    131. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      In 1983, I recall taking a BASIC course (I believe with TRS-80 Model III's). That was in 7th grade.

    132. Re:WHy are you majoring in CS... by styrotech · · Score: 1

      Sorry, but "gooey" is trendy and you've just revealed that you know nothing about user-interfaces.

      Trendy? MBA word? Really?

      Can some bit of jargon that eventually spread to the mainstream and has been in use for decades really be called trendy?

      But I totally agree with you about Webinar - that would have to be the worst language crime - urggh.

    133. Re:WHy are you majoring in CS... by lennier · · Score: 1

      GUI, is a clear and well understood acronym and services this purpose. Making it "gooey", is an attempt to be "cute" or "funny" in a universe where it doesn't necessarily belongs.

      Er? I don't know about you, but where I come from, since the 1980s, GUI has always been pronounced "gooey" in the same way that SQL has been pronounced "sequel". It saves a couple of syllables. This isn't some new trend.

      Unless you're referring to literally spelling it "gooey"? If so, then that's something I've never seen.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    134. Re:WHy are you majoring in CS... by sycodon · · Score: 1

      You can bet your ass that your professor didn't take programming in High School.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    135. Re:WHy are you majoring in CS... by styrotech · · Score: 1

      I expected to be taught something that I would actually USE in my career. I haven't used Calculus or Physics since college.

      I'm not so sure. You probably have no way knowing how much benefit you got from them. You may not use the actual subjects any more, but you've probably subconsciously used their abstract thinking and problem solving. There is more to a field than just the subject matter details.

      I say that as a self taught developer who's only formal CS was a couple of filler first year papers during a Civil Engineering degree 20 yrs ago. As a developer now (who now wishes for more of a CS background) I still appreciate all the calculus and physics I did back then. I can't remember much of the details, but the way of thinking has stuck with me and I do feel they were good mental training for being a developer.

    136. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I find it terribly said how many CS students (and indeed, some professors) have the misconception that CS is a branch of Maths. They all miss out on the majority of what the subject has to offer. Yes, Maths is a big tool of CS and yes, there are many parts of CS that are very much mathematical in nature, but to call the whole subject a branch of Maths is nieve at best. Folks like you hold the discipline back. You like Maths and that's fine, but get off your high horse and realise that CS is so much more than it's pure maths part.

      What else did you expect? What is CS but math and logic?

      A lot. Go do some basic research, you'll be surprised. If all it was was maths and logic it'd be a year long course. Two at most.

    137. Re:WHy are you majoring in CS... by RogerWilco · · Score: 1

      If you don't know what a Runge-Kutta solver is, then you should probably not be listening to the presentation in the first place.

      I agree a lot of CS students have poor presentation skills though, as do their professors. It seems to be a general trait shared by a lot of people CS and related fields.

      --
      RogerWilco the Adventurous Janitor
    138. Re:WHy are you majoring in CS... by Culture20 · · Score: 1

      When you think about it, how hard is it really to understand conditional statements, loops, and methods? That's all a CS1 course really teaches.

      ... in the first day (or week) along with non programming concepts. If a beginning CS course takes a semester to teach only loops, conditions, and methods, then there's something seriously wrong.

    139. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 1

      It was like that when I started my CS course in 2003. Those people who had no idea about programming finished the course, some did very well, many of them are earning a lot of money working in finance/big city firms. So they got exactly what they wanted out of the course.

      Just because their reasons for studying CS are different from yours and mine, it doesn't mean they're wrong. Yeah, it may suck that they earn more money than I do, but I love what I do for a living, I enjoy going to work in the morning, and that's pretty much what I was aiming for when I took the course.

      You should also remember that the software engineering project you do next year will probable have little to do with programming, these people may excel at the project management side, something a lot of programming geeks suck at.

      Also, for my money, the students who started with too much programming knowledge had already had time to develop bad habits and a sense that they were better than others, it's a trap worth avoiding if you want to get on with people.

    140. Re:WHy are you majoring in CS... by russotto · · Score: 1

      In these 30 years, how many times will you expect me to apply automata theory?

      Lots. State machines are pretty common.

    141. Re:WHy are you majoring in CS... by Derek+Pomery · · Score: 1

      I'll agree that pascal course helped, but she only sent me there since she saw I was interested.

      She wasn't about to just throw money away.

      In short, while I made it through pascal - kinda hard for any kid, I could have also gotten by just w/ qbasic in DOS.

      But. Yes, like any other carrier, there's luck and parental involvement as well as desire. No different than if I'd gotten to college interested in track or biology.

      And again, if people don't have that desire, and they just took CS1 to get in it for the money, they probably won't have a fun time.

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    142. Re:WHy are you majoring in CS... by ajlisows · · Score: 1

      This comment hits the nail right on the head. If you don't know what you want to do by the time you are 15 years old you should be assigned a career to follow.

      My degree is in Biochemistry and I had done a lot of independent studying of the field while in high school. I mean, those three really fantastic teachers that went way above and beyond their jobs to provide me with some direction in advanced topics didn't help at all. It was my own passion, decisiveness, and talent that made all of that happen. I get to College and suddenly I'm sitting in class with a bunch of lackeys who have never done redox equations. They didn't even have the Kreb Cycle memorized. THESE are the future scientists of America? Damn n00bs.

    143. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Agreed, first oprotunty to take any programming class where I grew up was 7th grade and it was just a 4 week elective after that 10th grade was the next chance you got. By 7th grade I was programming basic and pascal and beginning to attempt to learn C...

    144. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      I've been teaching at the bachelor level (as well as working 40 hours for my degree job) for almost seven years now. It's no longer about the students, as a matter of fact going the extra mile will often get you into trouble or removed from a class entirely. I worked for one school that took a class away from you if you failed a single student. Another school made you fill out 20 minutes of paperwork for each student that emailed you. I typically got 20 - 30 emails a day. So I had to ignore the student's emails otherwise I was looking at 6-8 unpaid hours of paperwork a day to help them. The justification for all this was that since the emails are not monitored by the school, they had to be entered with accompanying forms into the registrars system so the guidance counselors could track the students and help the loan process. (Pure bullshit.)

      I've been given classes that I have no business teaching after losing a class in my life's work because a student missed 3 classes and failed. How can I do anything about that short of kidnapping the little turd? Turns out he "raided" a lot in WoW and was the guild leader so he can't miss the raids... he says. I lose a class I worked my life to be qualified for because he has to run a dungeon for the 450th time.

      Teachers these day are so constricted by the people running the show that I'd be scared to hire any recent graduate from 90% of the schools out there.

      It's no longer about learning, it's 100% about money. I once taught at a school that had software that was 4-5 years out of date, on computers that took 20 minutes to boot up due to overly restrictive preventative software that required constant reboots. Our network was also really slow and finicky, but that problem got resolved when a student have the nerve to complain to the main office in another state. They simply took the network away and laid off 75% of the IT staff. Now the kids turn in their homeworks on CDs. Often time less than 1mb of data, on a CD. Every time.

      And as the middle class stagnates they are going to find that the money is rapidly disappearing, and no amount of political hocus pocus or tuition increases can offset the damage. The people at the top of these schools cannot comprehend a tuition decrease, and the supply of people able to take out loans is getting smaller. We all have to adjust downwards, but it isn't happening. The students are often not close to qualified to get a job in the field, so paying back those loans is going to be a very long process, something I'm sure the school revels in as they get obscene interest and the loans cannot be bankrupted away.

      If globalization means the middle class having downward social mobility, then all the services and institutions geared toward them have to also adjust downward, or what we'll have is nothing but diploma mills. No students means no money, so they do anything and everything to keep the students, even if that means sacrificing academic integrity, which is the 1st thing to go. And almost every school I've seen is somewhat guilty. Perhaps not every department, but most every school.

      I have to post anonymously because my students know my login name. Don't waste any mod points on this post, just remember it. We're fucked.

    145. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      The equivalent to needing bio for medicine in the US is the mcat, entrance exams aren't that uncommon in the states, MCAT, Physics GRE, etc. Granted those sorts of things are generally used for graduate programs, but It wouldn't be too ridiculous to require additional leveling courses based on the outcome of an entrance exam.

    146. Re:WHy are you majoring in CS... by globaljustin · · Score: 1

      "If you haven't learned *any* programming because you say "There wasn't a class". Then you should probably forget about it. You're not going to make a good programmer, because you sound like the kind of person who only learns from classes. And that's likely to be a very major problem for you in your career."

      And a problem for YOUR career too...people are changing...geeks today are not like geeks of even 20 years ago and there are plenty of other outlets for their talent than developing

      If your profession is closed to noobs then you can never grow.

      I used to be a snowboarding instructor. Part of how snowboarding went from a garage project to multi-billion industry is the "cool" cachet that comes with the sport. Not unlike Programmers, snowboarders view themselves at the top of the food chain and have high barriers to entry.

      However, the key differences is, snowboarding (and skateboarding/surfing) has a well established informal mentoring program that basically takes the approcah: "If you have guts enough to try it then we can teach you the rest"

      Developers and programmers need to stop basing their self-concept on being superior to others and learn that only by encouraging noobs can you control your industry and filter out only the noobs you want!!!

      --
      Thank you Dave Raggett
    147. Re:WHy are you majoring in CS... by Zerth · · Score: 1

      My first formal programming class involved pencil, paper, and a flowchart template. Surely even the poorest student can find a patch of dirt and a stick.

      Nowadays, you can get a computer for nearly free, perhaps with some sweat equity, or failing that access to an IDE inside a browser in a library. If a modern day student in a 1st world country doesn't have enough drive to do at least pencil and paper programming and type it in maybe once a month at the library, computers aren't their passion.

    148. Re:WHy are you majoring in CS... by RogueWarrior65 · · Score: 1

      My point is that paper presenters usually gloss over a key element to reproducing their results. Every SIGGraph paper on fluid simulation I've ever listened to had the following phrase: "We implemented the Navier-Stokes equations and then we did thus and such and blah, blah, blah..." Um, yeah, no sh*t. Would you mind showing us some code for that implementation? I haven't seen symbols like that since APL. How do I know you didn't fake it in Photoshop and After Effects?

    149. Re:WHy are you majoring in CS... by DustDevil · · Score: 0

      I agree with you that "[a]s a professional programmer, you will be learning throughout your entire career."

      On that point, when I went to school they taught me pascal, fortran, c, c++, lisp, prolog, awk among other languages. I do not use any of those languages today. Since school I have worked with Java, JavaScript, .Net, PHP, Ruby, Perl, Unix Shell scripting among others. For each of the new technologies I learned (on my own), I was faced with a sink or swim problem in that in order for me to continue to be productive at what I was doing I needed to learn the new technology fast. If I sunk I would be either out of a job or making less that I otherwise could have been.

      Because programming is evolving at an break neck speed. Those students that would not have made it pass at a programming class are just setting themselves up for failure when given a second chance. I say this because, once they are our of academia, in the work environment they are going to be expected to pivot to new technologies with ease. This constant learning is required just to survive. Chances are if you did not survive the first sink or swim experience, you are not going to survive the lifetime of sink or swim experiences that await you.

      There are people that go to college to learn a set of skills that they can immediately apply to a job opportunity.
      Programming on the other hand requires that you master a number of fundamental concepts and later recognize when to apply those concepts while working with a new tool/language that you just may be learning,

    150. Re:WHy are you majoring in CS... by LWATCDR · · Score: 1

      Interesting question then. Should Programing be considered in the same category as Chemistry, Biology, and Physics? Where some basics are expected before you even reach College? Seems a shame because in so many ways I think High Schools have been moving from programing to using them as tools.
       

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    151. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Since when is school the only place to learn? Many people learn programming on their own from books and online information without the need for learning it in high school (I did this and know others who did the same). If someone really is into CS, there is no excuse for them to not have picked up the basics on their own. Even local libraries have books that are good enough to get a start. How could someone know they want to go into CS, if they haven't learned programming?

      I hate the mentality that education = school. Schooling can be a big help, but it should never be though of as a limiting factor.

    152. Re:WHy are you majoring in CS... by Maestro4k · · Score: 1

      This is a real problem when trying to design a curriculum. You can't expect the students to have been taught programming, because most schools don't have anyone who's competent to teach it. Some will have taught themselves stuff (and probably picked up some bad habits along the way), some will not. The ones who are self taught will be bored for at least some of the first year, since everyone else will be catching up. Worse, they often assume that the fact that they already know some of the material means that they already know all of it, and get a nasty shock at exam time.

      The real solution is for schools to employ people who are competent to teach programming, and for universities to make this a prerequisite, but I doubt that will happen.

      When I got my CS degree, the university I went to had a very nice solution to this. The introductory CS course was optional, and was also used by non-majors (even some business majors) who needed to learn programming basics. It was most definitely not a sink or swim class, and having non-CS majors in there helped keep it that way. But if you thought you had enough programming knowledge that you didn't need it, you could skip to the next class, which was harder and was for CS majors only. You didn't even have to test out of it, you just decided what you wanted to do.

      This worked just fine, so why don't other universities do something similar? The class wasn't required for the degree even, but it served to teach programming to those who didn't already know it prior to getting into the regular CS track courses. So it can definitely be done, even without it being a prerequisite, it's just that some universities (or at least their CS departments) don't want to bother.

      Now as to employing people competent to teach programming, there's a serious problem with universities and teaching competency across the board, in every class, in every department. The focus is on research and publishing for professors, knowing how to teach (at all, much less well) is more or less ignored. This is something that desperately needs to be changed across the board, perhaps universities should require some training in teaching for all professors.

    153. Re:WHy are you majoring in CS... by arth1 · · Score: 1

      if your school didn't offer anything, and you yourself didn't compensate by reading books on the subject and actually do some programming, yes, you don't belong in a CS class.
      Without an interest in the subject, you'll just do damage if you manage to graduate. And if you had a strong interest, you would have gone through the curriculum already.

      As for yuor names calling of the GP, I am sorry to say that you won't even land a job at Wal-Mart or McDonalds with that foul mouth and knee-jerk insulting. But good luck in life.

    154. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Ditto. I came to University in 1986 with experience in BASIC, 6502 Assembly, and Pascal in that order. We did have one highschool class that was taught in BASIC, but it was not my first exposure. I think I did far more programming on my own machine at home. The C-64 was $400 when my parents got it for me. Today's kids are carrying more computing power than that in their pockets... if they jailbreak it.

    155. Re:WHy are you majoring in CS... by Totenglocke · · Score: 1

      No. It's always been pronounced "gooey" because saying "Gee-you-eye" just makes you sound like a moron.

      --
      "The tree of liberty must be refreshed from time to time with the blood of patriots and tyrants." ~Thomas Jefferson
    156. Re:WHy are you majoring in CS... by Phoobarnvaz · · Score: 1

      The real solution is for schools to employ people who are competent to teach programming, and for universities to make this a prerequisite, but I doubt that will happen.

      I live in Idaho...where I hear that businesses will not move here because of lack of a decent educational system. In the next sentence from business and community leaders...you hear how not to increase taxes (claim they're too high all ready in a right-to-work state) and give every student a laptop to and force them to get their education by this method. This being the case (where I live in a state where it's still the 1970's without any of the benefits)...how are the students going to be anywhere close to competent when no one is willing to spend the time and money to make it so? Very simple answer...Americans love education as long as the students "feel great about themselves" and as long as they aren't being taxed for it. Means we're going to have narcissistic brats who can barely walk upright and talk...but they will have great feelings of their self worth.

      --
      Don't worry about the world coming to an end today. It's already tomorrow in Australia. - Charles M. Schulz
    157. Re:WHy are you majoring in CS... by Darinbob · · Score: 1

      Hmm, times changed. College was the first opportunity I had to do any programming. Those who already knew "programming" had to be untaught the evils of BASIC. We had 10 weeks, and that was plenty if you were serious about it.

      And as for "computer science", programming is just one small part of it. Each class basically had some simpler programming exercises but programming was rarely the point of the classes especially in upper division classes. So you did not get one single class to learn to program and then were tossed to the wolves, instead you learned how to program over the full 4 or 5 years. Some learned it faster, others took longer, and a few never caught on.

    158. Re:WHy are you majoring in CS... by jonadab · · Score: 1

      That's different, and you know it. Surgery has consequences. If you experiment with it and screw up, you can't just fix the silly syntax error and hit "compile" again and have everything be as if the mistake was never made.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    159. Re:WHy are you majoring in CS... by tophermeyer · · Score: 2

      Ofcourse, this depends on which level and with what sort of clients you work and which sticks well. But I can imagine you'll lose your pitch if you're aiming for a contract where money, timing and experience are a large factor. You wont convey your client you have the weight and expertise to pull it if you are talking about "gooey" things in your meetings.

      A key component to clear communication (especially from a contractor's perspective) is adjusting your language to suit your target audience and, as you say, to help convey whatever image you are trying to project. If the client organization uses terms like "gooey", then use "gooey". And to your point above, if your client uses really technical jargon then you should use it too. At the very least it lets the client feel hip and/or smart for having used the appropriate terminology.

      Neither the formal or informal voice are inherently better than the other, it only matters that you can communicate to your audience in a mutually understood language.

    160. Re:WHy are you majoring in CS... by Eli+Gottlieb · · Score: 1

      If I had mod points, you'd be marked -1, Troll.

      I'm sorry, but seriously? You complain about having to learn physics and calculus, and then you say you want to know about robotics and machine vision? Guess what goes into those? Physics, calculus, and linear algebra!

      As to your other topics... Syntax highlighters, grammars and parsers: you mean to tell me your university had no compilers course? Device drivers, debuggers and simple operating systems: you had no operating systems course? Emulators and device drivers: you had no architecture course? Where did you go to school, and what did they teach there?

    161. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Learning to understand the problems in a given natural language and translate them into an algorithms should be learned in the summer after high school (may be a community college for skill development). Problem solving, creating algorithm, coding, and storage structure is a prerequisite for CS. A simple BASIC language could be used and then show the students that Object Oriented Language like C++ (no Java in the beginning) allows to define a programmable object along with its defined data structure and methods(procedures similar to BASIC subroutine) can be easily taught. Data Structure course then should be taught for efficient storage and retrieval and so on. No text book is written that makes a students to crawl, walk and then run as an efficient programmer. Almost all authors copy the same style of an already published book. No creativity or originality is found in text books. Good teachers do not write text books and good writers do not teach. Publishers do not care nor understand that they are sitting on a gold mine only if they can find the super teacher-author of text books. 99.9% books are junk. So, teaching CS is difficult. Every one can learn to program a computer but every programmer will not become a CS professional similar to any one can learn to play a musical instrument but not become an expert unless the person has innate talent and dedication to become one.

    162. Re:WHy are you majoring in CS... by jonadab · · Score: 1

      Indeed.

      Is it absurd to expect students who don't have any prior reading experience to be well prepared to study Literature after a single 15-week course (i.e., LIT 1)? Is it unreasonable to tell students who have never bothered to read a book before they enrolled in college that maybe their complete lack of any apparent interest in literature is an indication they should select a different field of study?

      I mean, come on. Of all the different courses of study available in college, computer programming is one of the *easiest* for kids to experiment with on their own before they get to college and have to decide whether they really want to major in it or not. It's easier to get started on your own with programming than with foreign language (unless you happen to live near a community of native speakers), biology or chemistry (unless one of your parents has a quarter-million-dollar lab in the basement), performance music (again, unless one of your parents has built a semi-pro studio in your house), or even horticulture. You can get all the equipment you need to get started for less than the cost of one semester's worth of college textbooks, and the available documentation, EVEN if you don't have internet access and must rely on the public library, is better for computer programming than for almost any other major field of study.

      Also, computer programming is very much a *thinking* field (as opposed to a rote field like accounting, which basically anyone can do if they can stomach the tedium). You can't just go through the motions. You have to be genuinely interested, or you won't be any good at it.

      A *lot* of junior-high kids fool around with (simple) programming in their spare time just to see what it's like. If you *didn't*, maybe you don't have such a strong interest in computer programming, and maybe you should rethink whether majoring in it is such a good idea.

      Before I got to college, I had experience doing several different kinds of simple programming (including text processing, basic text-based user interfaces, graphics, and sound) in a couple of different languages (three if you count batch programming as a language). I had spent *hundreds* of hours playing with programming, learning to make the computer do different kinds of stuff.

      My computer was more than ten years old when I got it used, so my total investment was $400. (I know, I know, you'd never pay $400 for a ten-year-old system today. This was a few years ago, okay? It came with PC-DOS 3.3, and Kris Kross was singing about making people jump right around the time I bought the thing.)

      And I didn't even end up going into application development. I'm just a network administrator. Most of the code I write is system automation, glue code, or basic web stuff.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    163. Re:WHy are you majoring in CS... by superwiz · · Score: 1

      More like, "would you trust a translator who never spoke the language from which he is translating until he got to college?" Not everything is learnable at every age.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    164. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Would you trust a doctor who went to university never having taken biology at school? Well, maybe, if he managed to graduate, but I wouldn't expect him to pass. Pretty much any medical degree in the UK will require A-level biology (no idea what the US equivalent is).

      As someone who has applied for med school in the UK, very few universities require Biology as an A2/AS level subject a lot were more interested in Chemistry since this can be better applied to medicine than biology can.

    165. Re:WHy are you majoring in CS... by sjames · · Score: 1

      That's exactly it. CS does not prepare a person for realities of change management, maintainability, error conditions, testability, or even allowing for a coherent bug report. It assumes perfect and well defined systems operating in a vacuum. It doesn't prepare a person to learn enough about whatever they're programming to make an application useful in that field.

      If you want a disaster of near biblical proportions, have a physicist do your wiring, a mathematician handle accounts payable, and a computer scientist handle programming.

      That's why often enough, EEs make better software engineers than CSs.

    166. Re:WHy are you majoring in CS... by cthulhu11 · · Score: 1

      Maybe because not everyone can attend a rich high school that offers worthwhile computing classes -- or afford a computer at home with a compiler.

    167. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      Yeah, CS is as much about computers as music is about violin making ;)

    168. Re:WHy are you majoring in CS... by dbIII · · Score: 1

      You only need the calculus or physics when CS comes in touch with reality. If John Carmack did not know anything about calculus or physics we would never have heard of him.
      For sorting through lists of words or popping up pictures it is not so important, but for other things where there is a need to model aspects of reality, determine a good technique for compression and other problems to solve it becomes important. Take a look at the paper for getting high definition range photos with software on a Nexus 1 phone for an example. Someone without even simple high school calculus would not even be able to understand the paper let alone write the software.

    169. Re:WHy are you majoring in CS... by Opportunist · · Score: 1

      Should it? C++ has become a niche product, only used where other, more RAD-adapted languages, can't reach. Given the way computers get more and more powerful and hence the need for efficiency declines, I'd predict that within 10 years there are only very few areas where C++ will still play a key role. Most will have been taken over by easier to write and debug languages with frameworks that take overhead out of your hands.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    170. Re:WHy are you majoring in CS... by Pseudonym+Authority · · Score: 1

      He just wanted to be a disposable tool who could be replaced by ww2.hireprogrammerscheap.ru apparently.

    171. Re:WHy are you majoring in CS... by CodeBuster · · Score: 1

      Having completed an undergraduate CS degree some years back now, I am of the opinion that one of the best ways to do this is for the universities to make appropriate prerequisite courses available to interested or promising high school students through their extension programs (i.e. the courses that are offered to non-enrolled students). Another possibility is for CS to move towards a more formalized 5 year course of study, as many other engineering and science majors have already done, where the first year is spent preparing to study primary material, but not really making progress towards a degree.

    172. Re:WHy are you majoring in CS... by Black+Parrot · · Score: 1

      Well id be fucked because my high school didn't offer any programming besides "Web Programming".

      From what I hear, NCLB doesn't specify testing on any CS topics, so high schools have virtually quit teaching it.

      --
      Sheesh, evil *and* a jerk. -- Jade
    173. Re:WHy are you majoring in CS... by Bacon+Bits · · Score: 1

      I did fine. And if I hadn't.... isn't flunking an intro class usually a reliable sign that it's not a good subject for you?

      This is the exact question TFA is asking. The status quo answer is "yes," but it's useful to question that from time to time. The real underlying question is "How do we start teaching computers?" A person might have an interest in computers, and find they can succeed in Software Engineering, or Systems Analysis, or Computer Engineering, or Network Engineering, or Systems Administration, or Web Design, or Computer Information Systems.

      How, exactly, does someone discover what they like and what they're good at if the introductory course is a weeder course for Software Engineering? What class do I take to figure that out? "You just know" is a bullshit answer. It's not teaching, it's not educating, and it's not helpful to students.

      Computer Science has changed a lot since the 1990s, and even more since the 1980s, yet in many universities the coursework hasn't changed all that much and they still treat it as a generic computer degree. Time was, you took Computer Science and it was a theoretical science because most computers couldn't do the things in the books you were reading. Now, there are such disparate careers which require extremely technical knowledge which is specific to just one area that most everyone is a specialist. You cannot be a true computer Renaissance Man any longer. You can't read half a dozen books and be up to speed on the entire field of computing anymore. You'd have to read about 50, and you'd probably still need to pick and choose. The field is too complex, and there are too many areas of specialization.

      Look, they don't expect a Chemical Engineer to know how to build a bridge, or expect an Cardiologist to do neurosurgery. Why does everyone in computing have to know how pointers work? Unless you're a Software Engineer, you really don't need to know that. It's a waste of time for most people. There is a need for all computer students to understand how programs work and Software Engineers need to know about pointers, but that level of understanding should not be necessary in a 100 level introductory class.

      It's not a question of "can you willingly learn on your own". That is what college itself is about. That's what any Bachelor's Degree is supposed to show. This is about "are we alienating students who might otherwise succeed in this field?" and "are our expectations of introductory student knowledge realistic?"

      --
      The road to tyranny has always been paved with claims of necessity.
    174. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      WHy are you majoring in CS... If you didnt already begin in a high school class, or at the very least on hobby projects?

      Not all high schools have computer science-y classes. And not all prospective students have the kind of resources necessary for hobby projects.

      Ok, this argument keeps coming up. Go to Barnes and Noble. Purchase an "Introduction to Programming for Complete Fucking Retards" or some similar title.
      Using pen and paper, read and work through the first half of the book. Do it several times, until it looks familiar even if it does not make sense.
      Now you have the equivelant of a 1st semester CS course under your belt, and the actual course will mostly be review and some hands-on work.

      Seriously, this argument is only used by those who think they should be able to show up with NO knowledge or background in science or math, and have the teacher magically beam knowledge into their skulls. If you can't be proactive about learning on your own, you simply will NOT ever be any good in the CS or Programming industries.

      And just FYI, all you need in order to start learning programming is a fucking WEB BROWSER. Between high school computer labs, public libraries, smartphones, and home computers, there really isn't anybody who can claim they don't have access to the resources needed to start programming.
      Stop waiting for someone to hand you things on a silver platter, and go get them on your own. The quality of our CS grads is already going down the shitter, the last thing we need is to have the courses dumbed down to accept even more half-assed code monkeys.

    175. Re:WHy are you majoring in CS... by Black+Parrot · · Score: 1

      Calculus is irrelevant?

      You obviously have no concept of any actual mathematics. (Learning to do calculus is different from learning about calculus). Computer Science is heavily Dependant upon mathematics...

      Want to write a better algorithm? Abstract Algebra is your friend.

      Calculus is only marginally relevant for general computer science. You do need to understand the log and exp functions for computational complexity theory, and IIRC those are usually introduced in calc or pre-calc. But there's no reason they couldn't be introduced in a math-for-CS class.

      Other than that, continuous mathematics is not useful to general CS: you need discrete math and logic.

      It's true that you need calc for some application areas, but you also need business math, genetics, phonetics, etc. for other application areas. It's not the job of CS (or any other degree) to teach you everything you need to know for any arbitrary specialization you might end up in when you get a job. CS programs should stop wasting students' time on calculus (except as an elective), and start them heavily into discrete math during their first semester.

      --
      Sheesh, evil *and* a jerk. -- Jade
    176. Re:WHy are you majoring in CS... by Narcogen · · Score: 1

      Why are you assuming that CS1 is only for majors? Don't IS and IT majors also take CS1, as TFA mentions?

      Why would one assume that an interest or aptitude in CS that justifies a major (or indeed a minor) must be discovered before high school graduation or else doesn't exist?

      Have you never discovered, or had someone close to you discover, something they didn't previously know they had a like for or interest in, even beyond the age of 30, and even in cases where the individual in question was aware of the existence of that thing, but had simply never tried it?

    177. Re:WHy are you majoring in CS... by Black+Parrot · · Score: 1

      Heck, when I took Comp Sci 101 my freshman year in college, it was 1983 and there were no high school programming classes. I did fine. And if I hadn't.... isn't flunking an intro class usually a reliable sign that it's not a good subject for you?

      Yeah, I think it would be folly to major in music if you didn't know anything about music when you started, but off hand I can't think of any other fields I would say that about.

      One potential problem for CS is if the school deliberately pitches CS I for students with nontrivial background. In that case you would need to take some remedial classes, or maybe go to a different school.

      Students with some existing knowledge/skills aren't entirely unproblematic either. Some need to un-learn some misconceptions and/or bad habits, which for some personality types can be harder than learning from square one. And of course, some self-professed hot-shots are just blowhard idiots -- same as in any other area of learning.

      My idea of a good program would be to pitch CS I at noobs and provide a reasonable mechanism for placing out of it. Or shift everything by one semester, pitching CS I at non-noobs, and offering a "pre-CS" class to get noobs ready for it.

      As for the view stated by various parties in this thread, that you should be a "good" programmer as a freshman, that's nonsense. You should be investing in life-long learning, so that in any year of your life you would say "I was a crappy programmer five years ago". For school-aged types, sophomores should think they were crappy programmers as freshmen. If they don't, they aren't learning anything.

      --
      Sheesh, evil *and* a jerk. -- Jade
    178. Re:WHy are you majoring in CS... by n+dot+l · · Score: 1

      Are you a troll, or do you genuinely fail to realize that a good half of the problems on your list are best solved using techniques based in calculus? I mean seriously, physics is a waste of your time, but you'd like to program robots. That's...that's just dumb.

    179. Re:WHy are you majoring in CS... by CAIMLAS · · Score: 1

      Then the CS programs are horribly flawed, obviously. You're not allowed to take 2nd-year courses before you finish first year; why allow someone to do the rough equivilent of taking graduate level courses in a topic before at least proving competency in prerequisites?

      By "prerequisites" I'm talking about proving a basic core competency. You need the mental facilities to even approach most CS or IT principles, just as an engineer has to understand structural properties of a myriad of materials before he's able to effectively engineer something - permeability, rigidity, compression rating (and so on and so forth, depending on the specific discipline). For CS, it should be something along the lines of: more advanced algebra (linear algebra?), geometry, statistics, and so on. Importantly, they need to be able to think orthogonally. These are important for IT oriented study too, though physical engineering/material sciences are more appropriate here as well. Unfortunately, what's learned in middle school is often forgotten.

      CS is a 'hard' discipline, unlike the 'soft' disciplines where "eh, OK, he took Freshman English and has two other language courses under his belt" is a sufficient intellectual qualifier for admittance. If you want to make a click-and-design developer, sure, go the humanities route. If you need someone who's able to do something hard, by the book, and to think like an engineer... you'd better not. Honestly, there are too many people who enter IT /CS because they want to make video games (or like playing them) to the exclusion of knowing anything about the techncial side of things. If professors try the "trial by fire" approach it hopefully prevents them from fucking up someone's project to the point of not being salvagable 6, 7 years down the line. With a "science" field, the degree should mean something fairly discreet. That's what you're working with, after all -discreet principles, mostly.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    180. Re:WHy are you majoring in CS... by chrismcb · · Score: 1

      My High School had a computer programming class since the high school opened in 1968. At that time they used to take punch cards down to the mainframe at the school district. By the time I was a freshman in 1982 we had a pdp-11 to use. In 8th grade my eventual high school teacher taught an afterschool program in my junior high on Apples and Trs80s

    181. Re:WHy are you majoring in CS... by lee1026 · · Score: 1

      To be fair, even when you are doing that, knowing how to actually do the calculus is pointless - you can just punch the function into a CAS and get the answer back.

    182. Re:WHy are you majoring in CS... by jpate · · Score: 1

      maybe, once you know the form of your function. But it takes at least basic knowledge of calculus to e.g. know why and how conjugate priors can make Bayesian methods easier

    183. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      In Finland happened last year a "funny" thing. It was when someone noticed that there were a doctor who were never in medical school and was pretending to be a last year medical student. He worked almost few years in different hospitals. He were focused to help people, very focused.

      No other doctor even noticed anything wierd when he asked some questions about medicines or operation types in normal discussions as they know he is "last year student" whos do not know all things and is typical that experienced doctors guides and gives tips to them.

      The funny thing is, all the people who he was assigned, liked him more than real doctors. And they definetely liked that he was very effective doctor and toke care of all typical problems as best as the patient needed. When the whole "face doctor" was brought to news, his patients wanted to have other doctors as he, doctors who listen and actually helped people.

      As in Finland the public healtcare has been driven down in last 10 years and rised up more and more the privat hospitals, the healtcare quality has gone down faster and more radically than the public > privat transaction. Mainly as well that privat companies rents the public hospitals operation rooms and overrides their schedules for doctors. Same time healtcare system expensives has rised almost 4x and in last 15 years there is just 1/3 of doctors and 1/2 of nurses left in whole country for jobs. In Finland, it is not unusuall that there are experienced doctors (etc) working as janitors in different places. Most people are over-educated, hired with almost minimium salary and economy prices (in EU) have rised that there is same situation in Finland than in Portugal (in statics viewpoint) but still Finland is there to back loans for Portugal, even that Finland has as huge problems itself as that country as well.

      The privat healtcare has been just one great example how things goes bad when someone gets idea "lets make it privat".
      It is not funny either to see that every year there are tens of thousands new engineers (etc) who can not do job what they were educated but need to search alternative, "low level" job.

    184. Re:WHy are you majoring in CS... by Drethon · · Score: 1

      That's why the university I went to (both for undergrad and graduate) required a prerequisite intro to programming course. If you felt confident about your skills you could skip the course but if you failed the first real programming course it was strongly suggested you go back to the intro course.

    185. Re:WHy are you majoring in CS... by Drethon · · Score: 1

      I did almost no programming before college. Got about a 3.8 GPA for my programming classes as an undergrad, was one of only about 30 engineering graduates from a starting class of over 300 and just finished a CS Masters with a 4.0. Your point is what?

    186. Re:WHy are you majoring in CS... by oh_my_080980980 · · Score: 0

      *sigh*

      Hate to break it to you but most kids graduating from High School do not know what they want to do when they enter college. They have some vague idea.

      A kid who took biology versus a kid who did not take biology in high school is not more likely to succeed at medicine considering THERE'S NO MEDICAL PROGRAM AT THE UNDERGRADUATE LEVEL, it does not matter what kid took in high school. Medical School is post undergrad.

      So an indicator of how well a person will do medicine, is how well they do in college, not high school.

      Moron.

    187. Re:WHy are you majoring in CS... by TheRaven64 · · Score: 1

      Kids here have to apply to do a specific subject at age 16/17. They apply to specific university courses, they don't apply to the university and then spend a couple of years faffing about trying to pick their major. I take it that you missed the bit in my post where I said quite clearly that I was in the UK? There are a lot of medicine undergraduate programmes here although, as the other poster pointed out, the requirements are more likely to be chemistry than biology (depending on exactly what you're studying).

      --
      I am TheRaven on Soylent News
    188. Re:WHy are you majoring in CS... by Kamiza+Ikioi · · Score: 1

      How about expecting a mathematician who has no experience in algebra? Should college "sink or swim" and just expect college students to know algebra! Obsurd! College should dumb it down so much, we teach students how to count! /sarcasm

      --
      I8-D
    189. Re:WHy are you majoring in CS... by mlush · · Score: 1

      If you didnt already begin in a high school class, or at the very least on hobby projects?

      I understand that for the British Airways pilot training program, prior flying experience is a disadvantage. They don't want have to untrain flyers with bad habits.

      Now granted CS majors don't graduate totally free of blemish, but someone new to CS at least starts as a clean slate ...

    190. Re:WHy are you majoring in CS... by the_hellspawn · · Score: 0

      I agree, but I think he was saying something along this line; like English courses a person scores low on the entrance exam they would take a remedial course like College English. After the successful completion of this course the person will be allowed to take English Comp 1. Same would go for CS, the student would take a test to determine their level and if the student fell below a preset standard then the student would be required to take Introduction to Program. Those that don't need this course would be allowed to take CS1.

      --
      "The laws of science be a harsh mistress." --Bender
    191. Re:WHy are you majoring in CS... by Veretax · · Score: 1

      Then it must come as quite a shock to you, to know that many High Schools, still to this day, do not offer calculus to their students. If you want it, you have to double up on Math somewhere, and then take it as a College Course, which has its pluses and minuses. My first exposure to basic was very early in my life, before I ever reached high school, but it wasn't till I got to HS and took the course that I began to realize how much I loved Programming. Up until that point I was leaning Chemical Engineering, and the programming course, the single one I took, convinced me I wanted to work with Computers.

      If I hadn't done that, would the very basic C they taught us in our Engineering 2 Courses have been sufficient to point me that direction? I honestly can't say for sure.

    192. Re:WHy are you majoring in CS... by Anonymous Coward · · Score: 0

      well said. I have a degree in Electrical engineering and am fairly young, but already manage a team. I hardly knew java when I started my job but it was easy to pick up after having been taught discrete mathematics and system design. It's easy to tell who the engineers are and who the comp sci grads are, the engineers are usually the ones thinking about the system as a whole and the interfaces, the comp sci grads are the ones looking at whats in between the interfaces. What's important to remember is that a good team will have both who can work together, and those random things people look into on their own time usually seems to be a skill set we need at some point.
       

    193. Re:WHy are you majoring in CS... by Agent0013 · · Score: 1

      I learned programming back in the early 80's on a TRS-80. If you turned it on without a cartridge in it, you had access to Basic. So, you didn't even need DOS to program. There is always a way.

      --

      -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
    194. Re:WHy are you majoring in CS... by jschottm · · Score: 1

      As a professional programmer, you will be learning throughout your entire career. You will be re-training yourself constantly and unendingly. ...
      If you haven't learned *any* programming because you say "There wasn't a class". Then you should probably forget about it.

      It's one thing to start from the background of a CS/Software Development degree and teach yourself a new language or programming techniques and another for a high school student without a good mentor to try to learn their first language well on their own. I'm not saying it's impossible, but they are very different. I can learn new languages with relative ease because I've studied and learned the classic algorithms in several languages; I have the experience to read online sites and forums to spot who is offering good advice and who doesn't know what they're talking about. That high school student doesn't have those advantages and while it's certainly possible to do so, it can also lead to many bad techniques and cargo cult approaches as well as utter frustration and failure.

    195. Re:WHy are you majoring in CS... by dev.null.matt · · Score: 1

      Sorry, but "gooey" is trendy

      This term was being used 11 years ago when I was a freshman majoring in Computer Science. I'm pretty sure would disqualify it as being trendy.

  2. Is IT/CS/... not easy enough already? by kju · · Score: 5, Interesting

    I can speak only for Germany but during my studies I noticed quite a number of students which had no background (beside having played computer games all day in earlier days), had absolutely no talent (everyone can learn how to program, but most people won't become good at it), no clue and struggled a lot. Yet most of them made it through the finals, have now a B.Sc. and compete with people who really know the shit on the job market, negatively influencing hourly rates and reputation of IT. In my professional life so far I had to work with many many idiots who nethertheless had a degree.

    So I believe I disagree with this professor. Yes, not everyone might be willing to achieve the results in that time frame. But I honestly believe that most people who don't deserve to be there in the first place. Either you have what it takes or you don't. As said: You can train nearly everything, but training does not make you good. Programming is very often a task which included creativity (figuring out how to solve a problem in the best way) and if you don't have that ability, you will produce bad results. It's as simple as that.

    Don't make IT/CS easier. Make it harder, please.

    1. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      Amen. The earlier your realize you're no good at CS, the better. Hard classes help this.

    2. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      That's not CS, that's IT. IT is easy - learning to program and whatnot - CS is in the same category as Physics, Maths, etc.

    3. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      "Make it harder, please."

      Yes! When I was at univ, about 20 years ago, CS was considered a joke major - far, far easier than EE, ME, or even CE. It was a few steps above the liberal arts majors, sure, but it was a very easy program compared to most engineering majors. From what I've seen, it's even *easier* now.

      Like "kju" says, it needs to be made HARDER, not easier. Let's stop with the dumbing down of every single thing for the least common denominator. It does no service to anyone.

    4. Re:Is IT/CS/... not easy enough already? by macraig · · Score: 1

      ^ This. Yes, please do make it harder.

    5. Re:Is IT/CS/... not easy enough already? by obarthelemy · · Score: 1, Insightful

      But, not everyone can be brilliant. Isn't one of the purposes of education to teach people, even so-so ones, a job ? To paraphrase my friend cap. Obvious, not all programmers can be above average.

      --
      The Cloud - because you don't care if your apps and data are up in the air.
    6. Re:Is IT/CS/... not easy enough already? by lucian1900 · · Score: 1

      I also disagree with him. Most of my classmates can barely program, if at all.

      I've also had to waste an entire year with silly introductory courses that didn't teach me anything new. That should be done in high school.

    7. Re:Is IT/CS/... not easy enough already? by kju · · Score: 1

      I honestly believe that much of what I said applies to CS as well, only with different topics and terms.

    8. Re:Is IT/CS/... not easy enough already? by ThePromenader · · Score: 3, Interesting

      After having RTFA, I can understand that the author has no solution for the problem, but because many topics covered in CS2 should be part of CS1 - or in other words, students should be introduced to the ~context~ of programming before being thrown into the code itself.

      Coming from both a creative and academic background, I can say that programming (that I learned on my own) is a mindset completely different from any other course or trade I have learned - it is a trade of ~method~ more than anything, but classes today are putting the language before the method. Yes, I know I'm repeating myself.

      The best way to learn programming is to ask a student "what do you want to do - what is the goal of the program you would like to make?". Only after he is able to draw a logical schema of what he wants to do, and identify the types of input/data that he would like to treat in his program, can he fully understand the purpose and syntax of the language he is going to be programming in. Better still, a student using this method will more quickly understand the capabilities and limitations of the language he is programming in, and this will allow him to think constructively, if not creatively, about the task he has at hand. What's more, once he has the 'goal, step and method' logical mindset down pat, learning yet another language will be much easier for him.

      --

      No, no sig. Really.

      ThePromenader
    9. Re:Is IT/CS/... not easy enough already? by wisnoskij · · Score: 2

      CS is too easy, but it is also way too time consuming. With my other classes I do not have 50+ (I have had 90+) hours to work on your insanely time consuming assignment.
      So yes make it harder, but also make it shorter and less time consuming so I have time to site back and think.

      If you want us to produce big interesting programs then supply half the code.

      --
      Troll is not a replacement for I disagree.
    10. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      I completely agree. I attempted CS not once, but twice in two different institutions. My experience? It was completely numbed down so the masses could get a passing grade. I lost all motivation seeing people struggle with basic concepts. Some, never even touched a computer! Every single day I wondered why these people were attending these classes. In the end, I quit out of pure despair. My second attempt was absolutely the icing on the cake as those in charge of providing education were reassigned from Phys.Ed. and Economics due to staff shortage. I spent an entire year being accused of hacking, downloading, breaking policies, rules and so forth. Why? I knew more than they did and therefore stood out. They had to enforce their power thus they pulled every dirty lie they could.

      I still remember making a Tetris clone in Javascript out of pure boredom (yes, we had no access to compilers whatsoever). Couple fellow students were in awe and wanted a copy as well to keep themselves entertained. Several weeks later someone saw my clone being played and I got called into the director's office. They accused me of hacking their firewall and downloading games... I was grilled for half an hour and could only think how stupid these people are. There was a whitelist-only proxy in place and that machine physically separated our network from the rest. Downloading was impossible. Nobody ever asked where I got the game from or showed me any proof of their accusations. I left the next day, leaving a small going away present... every printer in the building was set to print out 1000 copies of all usernames and passwords on the network. Yes, giving students administrator rights is always a good idea.

      Fast forward 10 years... I do production/lab work... cellular phone repairs... My workstations are the only virus-free computers in the building. Those that knew nothing when they entered the course are now working for multinationals... I feel sorry for their employers.

      Lessons learned? Obedience counts, not creativity or talent.

    11. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      I think the guy has a point. At the same time education turns out bad results not because it is too hard. Rather it turns out bad results because schools and educators are incompetent and can't distinguish between the interested and not interested. I was not interested in a degree. I am an exceptional individual in the subject matter (generally speaking). I flew by my classmates when it came to learning the material. Though I "struggled" to get through the material because I simply wasn't terribly interested in education. My classmates and my professors were there because they needed a job. I was there because I wanted to be. I took classes without regard for the requirements and more than I needed. I didn't put much effort forth in most cases and my grades suffered toward the end when some of the classes were over my head and I honestly did put too little time into them. When you can fly-bye earlier courses without studying and shit out code to get an A it really doesn't encourage learning. At the same time neither does making things harder. I am to this day learning. Not because of the system but despite it. I'm picking up new tools and technologies constantly. I may not be doing "computer science" technically although that is mostly due to my discontent over the educational system and the fact very few jobs actually need a C.S. degree. My passion doesn't require it. Not really. Even if every job I ever get has it as a prerequisite to filter out the unqualified. The problem with this approach is most of those who really are qualified don't have said degrees.

    12. Re:Is IT/CS/... not easy enough already? by Culture20 · · Score: 1

      Isn't one of the purposes of education to teach people, even so-so ones, a job?

      That's the purpose of vocational education, not university education.

    13. Re:Is IT/CS/... not easy enough already? by Ritchie70 · · Score: 2

      No.

      That might be the purpose of a degree in information technology or MIS or something like that. And perfectly respectable four year public universities have those.

      This is computer science. It isn't supposed to be as tightly coupled to a real world job. It's about learning the theory and mathematics of computers. Do you learn some programming skills along the way? Sure. But it isn't supposed to be the focus.

      --
      The preferred solution is to not have a problem.
    14. Re:Is IT/CS/... not easy enough already? by martin-boundary · · Score: 5, Insightful
      If people want a job, they should go to trade school. What is it with this idea that universities are job placement firms?

      Universities are there to preserve and advance the knowledge of humanity.

    15. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      "Yet most of them made it through the finals, have now a B.Sc. and compete with people who really know the shit on the job market, negatively influencing hourly rates and reputation of IT."

      So it's easy to get a degree in CS, but not so easy to actually learn to program. I think the latter is the point that this prof is making.

      "Don't make IT/CS easier. Make it harder, please."

      Making it harder to get a degree isn't the same as make the course harder.

      I'd say make it easier to actually learn how to program (a 15 week course for that -is- absurd), and increase the requirements to obtain a degree. That way the job market won't be flooded by people who do have a degree but don't know the shit.

    16. Re:Is IT/CS/... not easy enough already? by mjwalshe · · Score: 1

      Because employers want a degree as an entry point - Ironically I work in a consultancy role for a large internet publisher as both of the techie members of the team are self taught programmers diagnosing and proposing solutions for the other developers.

    17. Re:Is IT/CS/... not easy enough already? by TheLink · · Score: 1

      But, not everyone can be brilliant. Isn't one of the purposes of education to teach people, even so-so ones, a job ?

      Sure, here you go for your education: http://www.aboutmcdonalds.com/mcd/careers/hamburger_university.html

      Think I'm joking? Maybe, but think also about this: compared to "programming jobs" a McD manager/burger flipper job isn't going to be outsourced to India so easily for the same cost.

      Yes, you don't have to be brilliant to be a programmer. Most of those Indian programmers are FAR from brilliant (after all most programmers are far from brilliant). BUT the big difference is if you're not better than them, are you cheaper than them? Are you faster than them?

      If you're not better, cheaper or faster than them, where's your job? Should you be spending tuition money on what you'd be better off doing as a hobby?

      People in rich expensive countries trying to encourage people that are "not competitive enough" to go into easily offshored jobs are doing them a great disservice.

      In the rich countries there is always room for the best. They'll keep getting the big bucks. But for the "dailywtf" bunch? You can get those for quarter the "average" price or less elsewhere.

      A good Indian/East European programmer though not "elite" level will be much better than the average US programmer, still cheaper and might even spell better!

      --
    18. Re:Is IT/CS/... not easy enough already? by tchernobog · · Score: 1

      But, not everyone can be brilliant. Isn't one of the purposes of education to teach people, even so-so ones, a job?

      Actually, no, it isn't. Well, it's an half truth: let's say that as far as higher education is concerned, you are wrong. It's better that untalented or disinterested people go immediately to work on less-qualified jobs (clerks, factory workers, etc.) because: a) we need someone to do also that, and b) it will make life easier for the rest and c) we don't have the money to pay everyone as if it were a graduate.

      Access to classes up to high school should be open to anyone, and they should teach everyone how to tackle a job on generic terms (as well as understand your rights and duties as an effective citizen). From there onwards, it's only an extra burden on your taxes to maintain who has no talent.

      People with merit, however, should be able to access the higher levels of education independently from their income. That's why you have scholarship (I am not claiming the system works right now, mind you, just that the mechanism is there).

      --
      42.
    19. Re:Is IT/CS/... not easy enough already? by Lord_Jeremy · · Score: 1

      In my institute (private engineering college) there are a metric fuckton of CS majors who have absolutely no background nor interest nor ability in computer science. You ask the majority of them why they're in that major and you'll either hear something about high-paying jobs or wanting to work for (insert company name) and write video games... Now I'm dualing the Computer Systems Engineer and Comp Sci majors. Thankfully, I AP placed out of CS1 because absolutely everyone who takes the class (all sections are taught by the department head) has informed me that the professor is too dim-witted to teach anything or realize that practically the entire class copies all the homework and labs from a handful of older students. Hell a number of friends I had in Data Structures (CS2) pestered me constantly for help with their labs and passed their classes only due to the intervention of people like me that actually know what they're doing and also can't say no to pleas for help >:(

      Point of this rant is that these people (I'd say a good third of the CS major as a whole, probably like 9/10s of the students in CS1) have no business in this department and amount to nothing more than a waste of resources. It angers me that many of these students are burning their time at a very expensive school, while I'm struggling to both maintain my sanity (dual majors suck, btw) and pay tuition. Bah, end rant about privileged kids that have no direction and should make room for people with actual talents and goals.

    20. Re:Is IT/CS/... not easy enough already? by petes_PoV · · Score: 1

      For most students, university IS the "trade school". Most colleges offer vocational courses. They ALL promote the success rate of graduates as the proportion who leave with a job (amongst other things, but not many other things).

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    21. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      Though I don't completely agree with how he worded it, I don't think he's talking about so-so programmers. Even if he is, I am not.

      Programming is a discipline where it is relatively easy to learn like a parrot. You learn a bunch of words you can use to impress people, but you have no idea how to put them together into a sentence, much less write a book that makes sense. Students without much motivation to learn try to take the parrot route. Poor colleges let people like this pass. Good colleges either force them to do what's necessary to learn it or weed them out. Hiring one of these "parrots" can cause so many problems that it can take a software company a long time to fully recover from. It can cause smaller software companies to go out of business. For larger companies, it can still cost a lot in time and money and reputation (either from shipping products very late or very buggy).

      Among those who really learn how to program (i.e. who can write a book), there is a wide variety of skill-sets, quality levels, creativity, and raw speed. Some can write code quickly but end up with a lot of bugs to fix. Some are more slow and careful. Some can very quickly write high-quality code, but may have certain deficiencies or blind-spots. Some are good at creating stylish UI's while others are good at optimizing back-end code. No one is perfect and all of these programmers, whether brilliant or not, have places they fit well in the job market. But any college that gives parrots a degree should be shunned.

    22. Re:Is IT/CS/... not easy enough already? by microbox · · Score: 1

      It is not about being brilliant, but rather, having expectation that you can actually do something useful. I noted that a lot of naive CS students would try to learn the course work by reading and taking notes, and spending as little time as possible in front of the computer. WTF?

      If you cannot stand the heat, stay out of the kitchen. We either need two /different/ degrees, or tepid luke-warm water which is meaningless.

      Something to consider next time you are using a buggy government webpage that probably cost millions of dollars.

      --

      Like all pain, suffering is a signal that something isn't right
    23. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      Programmers are the only specialists that can be self taught, not like doctors or accountants or lawyers. For programmers you can do it from your basement with a crappy internet connection and nothing else.
      The reputation won't really matter, if you want good code you hire by results not the glittering paper they got at graduation. But this is bad for western civilizations where the really smart people will choose something else because of that, and you'll be forced to pick from abroad.
      Right now, this isn't gaining that much attention, but it will be hard, if not impossible to correct later.
      Maybe Windows 12+ will be written by chinese?

    24. Re:Is IT/CS/... not easy enough already? by PRMan · · Score: 1

      But in high school Pascal, projects that took other people 2 weeks took me 20 minutes. One time the teacher caught me playing a game (Ultima IV or Return of Heracles) and so I spent the next 3 days having him give me custom programming assignments until he finally declared I could go back to playing games because he didn't want to come up with 2 programming assignments a day.

      It's not time-consuming for all of us...

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    25. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      What is it with this idea that universities are job placement firms?

      To be fair, it's been that way for a long, long time. Some time long before I was born (or likely anyone on slashdot), degrees became just a mostly-mandatory requirement for employment opportunities. The issuing school and program can change your pay grade a bit, but they're still just expensive certs. Pretending otherwise is an idea for a long lost generation, or those delusional folks who already have theirs and think it's because they're exceptionally bright.

    26. Re:Is IT/CS/... not easy enough already? by Ritchie70 · · Score: 1

      The average US McDonald's restaurant is a business with over $2 million in annual sales. Since it's an average, there are some doing a lot more. Probably places like Times Square, Smithsonian, Las Vegas and Disney.

      They usually pay people running a business of that size (the restaurant manager) pretty well.

      Most restaurant managers started as crew.

      Most McDonald's corporate leadership started in the restaurants, too. I imagine Jan Fields gets paid pretty well.

      And there's pretty much zero chance of getting off-shored.

      So working for a clown might not be the worst plan ever.

      --
      The preferred solution is to not have a problem.
    27. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      Should you be spending tuition money on what you'd be better off doing as a hobby?

      Probably. Otherwise, how can you explain history and English majors? Or almost any "Insert MInority Group Here Studies."

      A good Indian/East European programmer though not "elite" level will be much better than the average US programmer, still cheaper and might even spell better!

      I have little experience with the eastern Europeans, but I apparently have yet to meet a good Indian programmer. In my experience the median Indian programmer is awful by professional US standards, and the good ones tend to be adequate on a good day.

      Add in the lack of business/domain knowledge, no understanding of colloquial American English or American culture, and you tend to get barely functional spaghetti.

    28. Re:Is IT/CS/... not easy enough already? by jareth-0205 · · Score: 4, Insightful

      You can train nearly everything, but training does not make you good.

      Errr... yes it does. Or were you always a good driver / writer / programmer? Training is exactly the process of making someone good at something!

      Don't make IT/CS easier. Make it harder, please.

      Ah, the predictable "pull the ladder up after you've climbed".

    29. Re:Is IT/CS/... not easy enough already? by wisnoskij · · Score: 1

      High school is not equivalent to university.

      --
      Troll is not a replacement for I disagree.
    30. Re:Is IT/CS/... not easy enough already? by TheLink · · Score: 1

      my experience the median Indian programmer is awful by professional US standards, and the good ones tend to be adequate on a good day.

      Sure but we're talking about the ones the Professor is trying to salvage... How well do you think those will do? Will they be better/cheaper/faster than the median Indian programmers? Or should they be encouraged to go into other areas? Like the aforementioned Hamburger University?

      We've got plenty enough crap out there. No need for more.

      --
    31. Re:Is IT/CS/... not easy enough already? by fermion · · Score: 2
      At some point secondary education became compulsory, not only because of unemployment and political issues, but because industrial employers needed workers who could get to work on time, stay in one place for long times, and learn simple routines. A person with basic training can learn the skills needed for the job. The jobs were low paying becaue a complex management structure was needed to supervise and create the simple structure needed to makle minimally educated people productive.

      A person who completes higher education should have basic abilities beyond the secondary education. Specificalluy such a person should be able to look at problems and with minimal supervision and prompting solve the problem. Think The Devil Wears Prada. A college educate person should be able to, when thrown into a pool, learn to swim before they drown. Everyone who can't should not have a college degree as they should have drowned, i.e. dropped out.

      What is happening is an oversupply for colleges is driving a desire for more and more students, which is reducing the minimum standards. This results in mores students who are not qualified problem solvers or qualified creative persons to attend. This itself is not bad, but, at least in the US, such students are often recruited with the offering of federally guaranteed student loans which they can use to pay tuition, books, and living expenses. Since the student does not pay for school directly, there is no downward pressure on prices. Since the loans are guaranteed, there is no incentive of the loan companies to insure the school is preparing the student, that the student is a good risk, or to insure the student pay back the loan. OTOH, these loans can never be settle with bankruptcy or any normal debt removal procedure.

      So what we have are local colleges like GVSU desperate for students and a seemingly free source of money to fund these students. The school does not care that 10% are going to default and even more are going to have their lives ruined because they did not receive the education needed to succeed to pay for the loans. The univeristy has the money and all risk is placed on the kids to pay or suffer. Weeding out the kids in the first year, before the debt is huge, is a favor to the kid, but costs the university huge sums of money. The alternative is to have a more selective admision proces, which I digree with since all kids should have an opportunity to gain an edcuation.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    32. Re:Is IT/CS/... not easy enough already? by TheLink · · Score: 1

      So working for a clown might not be the worst plan ever.

      It's definitely better than what the Professor proposes. And many of the skills they learn can be used in reasonable paying jobs in other areas. Whereas what people learn in CS will mainly benefit the elite[1].

      There's more than enough crap out there, no need to add more. They'd be wasting money and time (theirs and/or someone else's) on their "education".

      I don't live in the USA, but IMO if there are too many crappy US programmers about, they'd make more bosses think that if they are going to get crap they might as well get cheaper crap from India. The bosses who can tell the difference won't be hiring crap, whether US or not.

      [1] Much of CS is like trying to teach advanced driving concepts to student drivers. Trouble is only the best drivers will be using all those skills and concepts in their eventual day-jobs (race drivers). The rest would be better off being taught how to drive (code) safely and defensively (how to prevent SQL injection, dealing with UTF-8, catching exceptions, logging, all in X different languages). I know CS isn't about programming, but what job options are there for those who do CS and don't do brilliantly? Yes I know some of you have had to write your own sorting/XYZ algorithm, blahblahblah, but most people are better off using a library/module written, documented and debugged/supported by someone who is a much better programmer than them.

      --
    33. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      I took CS at a small four year engineering university just north of Colorado Springs. The CS curriculum was, and still is, considered the hardest degree in the school. Everyone knows that declaring CS means that if you work as hard as Aero major, you'll graduate with a GPA a full point below his. Consequently, they emphasize the theory and math aspects. Programming was basically taught as a way to prove you understood the theory by applying it correctly.

    34. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      Harder?

      Perhaps you've put yourself into a position where you aren't challenged enough. YOU should work on that since there seems to be plenty of highly complex programming projects going on. My guess is, you aren't part of any.

    35. Re:Is IT/CS/... not easy enough already? by Reservoir+Penguin · · Score: 1

      Oh Gods! I do not know if I should laugh or cry really, American CS program is such a cakewalk that making it any easier would qualify it as a paraolympics sport.

      Compare the the typical CS curriculum to one taught in Russian universities, In classic schools CS is still treated as branch of mathematics and specialization does not come until the third year, until then future theoretical mathematicians and CS people study together. So let's say starting the first day of their first year a future CS person would start - Analysis (as in Real Analysis, what you call Calculus is covered in four lectures, because Calc I and II are review material), Abstract Algebra, Number Theory, Mathematical Logic, Analytic Geometry, Theory of Algorithms (mostly state machines and their mathematical invariants) and Methods of Programming (this is similar to what is covered in Cormen's book)

      I'm not saying this curriculum is ideal, there is a consensus building that ToA was only showed into the first semester because they could find a spot fir it later on, likely due to unhealty emphasis on equations of mathematical physics which is rather silly considering MPh is by itself a 3rd year specialization and imho everyone should not be forced to suffer through quantum electrodynamics unless they choose to specialize in this stuff.

      --
      US-UK-Israel: The real Axis of Evil
    36. Re:Is IT/CS/... not easy enough already? by demonlapin · · Score: 1

      Ah, but universities are just trade schools for academics.

    37. Re:Is IT/CS/... not easy enough already? by kju · · Score: 1

      You can train nearly everything, but training does not make you good.

      Errr... yes it does. Or were you always a good driver / writer / programmer? Training is exactly the process of making someone good at something!

      All the training will not help if basic ability is lacking. If you can't sing a bit, it's very unlikely you will get good even if you practice all your life.

      And if you lack ability in analyzing, you will have a hard time in CS or IT. Some people just don't get it, that is simply a fact.

    38. Re:Is IT/CS/... not easy enough already? by demonlapin · · Score: 1

      No, you should have placed out of them. Many high schools - even many good high schools - lack any kind of introduction to programming.

      I'm not a CS guy, or a programmer. But I did take the intro CS course as a senior in college, mostly to amuse myself. I learned that I already had some of the mindset for the actual CS part of it - thinking about the algorithms was pretty easy for me, although since it was a freshman course I'm not trying to claim any brilliance. But what I had to learn was how to code (in C++, for that course). Sometimes that was easy, sometimes it was hard, but it was definitely something that needed to be taught. If I had tried to piece it all together by myself, I would have learned some atrocious programming habits.

    39. Re:Is IT/CS/... not easy enough already? by Tamran · · Score: 1

      But, not everyone can be brilliant. Isn't one of the purposes of education to teach people, even so-so ones, a job ? To paraphrase my friend cap. Obvious, not all programmers can be above average.

      The "drink from the firehose" approach in the first year isn't to weed out the "so so" people. It's to weed out the people that don't have the commitment to stay the course. They used to do this to us the first two weeks of wrestling season and they called it "tryouts." The funny thing was, if you stuck around after all the "run until you puke" sessions uninjured and willing to continue, you made the team.

      If you give it your all and still can't cut it, then there's probably a great two year diploma type technician school in your area that you'd find more to your liking. Or, perhaps a different degree program all together. Not all great mathematicians make good engineers for example.

      I agree with the parent poster, make it harder. It'll only make the degree more valuable.

    40. Re:Is IT/CS/... not easy enough already? by donscarletti · · Score: 1

      But, not everyone can be brilliant. Isn't one of the purposes of education to teach people, even so-so ones, a job ?

      By current industry demands. No, probably not.

      It seems that we universities are outputting graduates at more than a sufficient rate to fulfill what is needed to fill white collar jobs. If universities were to up their quality and teach people how to do their job better, that would be great, but we have no great need for more so-so university graduates.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    41. Re:Is IT/CS/... not easy enough already? by obarel · · Score: 1

      Come on, these people were programming in the womb, and that's only as a side-hobby for their scientific research into P=NP.

      If you come into the world without profound knowledge of at least 5 programming languages, several tree balancing algorithms and intuition for good user interface design, you're pretty much done for - it's cleaning the factory floor for you until you retire.

      "I learned to read when I was 4. If you need to go to school for that, reading is probably not for you - didn't you have any curiosity before that about what these symbols mean?"

    42. Re:Is IT/CS/... not easy enough already? by butlerm · · Score: 1

      That's the purpose of vocational education, not university education.

      If that were actually believed to be the case, every public university in the country would have to close its doors for lack of funding. The only reason why public universities get non-grant related funding is because they are believed to improve the economic prospects of the students and the community.

      To start with, they would have to cut the schools of law, medicine, business, engineering, and every graduate program in existence. What is a masters or doctoral program good for other than preparing someone for a profession? If you cut out all the professional stuff out of a university, what you would be left with would be a high end monastery.

      Not that pure academic subjects aren't interesting, they just aren't the sort of thing legislatures are going to fund completely detached from professional training. Divorced from professional training, even private universities would largely cease to exist.

    43. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      The problem in Germany is grade inflation, and an unwillingness of professors to actually let people fail. There are a lot of reasons for this, but they all have the same outcome. Lots of people who never should have graduated got even good grades.

      Among the many reasons are: a prof failing people who would have graduated with a different prof is seen by everyone (including himself) as perpetrating injustice. A prof that fails a student in a written exam probably has to sit through an oral one with the same guy/gal. Additionally, if a prof lets too many students fail, he will find that nobody visits his courses. The way German university politics works, this is a huge risk for the profs career.

      Yeah it is a fucked up system.

    44. Re:Is IT/CS/... not easy enough already? by skine · · Score: 1

      Based on your anecdote, I don't think you're really supporting the argument that CS courses and degrees are too easy. Instead, it seems that you're implying that CS degrees are useless, since they don't generate individuals who understand CS.

      I think that this is the professor's point: by making the barrier for entry too high, you only get (a) people who are already good at CS and (b) people who are good at passing tests, regardless of whether they understand the material.

      And you wonder why so many CS grads you know fall into category (b).

    45. Re:Is IT/CS/... not easy enough already? by omb · · Score: 1

      You are right, it is a shame, what kind of degrees to these bozos get? I thought that D. Ing. was still beruflich versichert?

      But you are right loads of idiots writing pedestrian code gets you things like DISQUS.com and many corporate web sites.

    46. Re:Is IT/CS/... not easy enough already? by lucian1900 · · Score: 1

      I suppose it might be a national thing. Where I come from, one chooses a specialisation in high-school.

    47. Re:Is IT/CS/... not easy enough already? by jareth-0205 · · Score: 1

      You can train nearly everything, but training does not make you good.

      Errr... yes it does. Or were you always a good driver / writer / programmer? Training is exactly the process of making someone good at something!

      All the training will not help if basic ability is lacking. If you can't sing a bit, it's very unlikely you will get good even if you practice all your life.

      And if you lack ability in analyzing, you will have a hard time in CS or IT. Some people just don't get it, that is simply a fact.

      Balls. All those skills are taught.

      I'll agree that you may not become a star singer without natural talent, but you can be taught to sing, and you can be taught to program. Not everybody will become (or needs to become!) the ace-number-one software developer. Programming and programmers are not special. Like engineering, like social professions, like anything, the skills can be learned. There are very few professions that we claim are completely out of possibility for some people to learn (brain surgery / rocket science-type things) and frankly, programming is just not that hard.

    48. Re:Is IT/CS/... not easy enough already? by sycodon · · Score: 1

      People in IT are programmers who face consequences....

      When you screw up, many things can happen:

      People don't get paid
      Products don't ship
      Raw materials don't get purchased
      Production lines come to a halt
      Potential customers are not contacted
      Existing customer issues may not be followed up on
      Manager don't have the information they need to make good decisions

      A bad ERP implementation can literally ruin a company and put people out of work.

      Who cares if your fancy galaxy collision simulation is wrong or if you switch a top quark for a bottom quark? People will find the error and you'll look like an idiot, but so the fuck what?

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    49. Re:Is IT/CS/... not easy enough already? by urusan · · Score: 1

      Errr... yes it does. Or were you always a good driver / writer / programmer? Training is exactly the process of making someone good at something!

      I may be a good programmer...but despite all my training I'm still not a good driver. I'm not bad enough to be a serious danger (no crashes yet), but when I compare my driving to that of my friends there's a world of difference.

      I can't wait for robot cars.

    50. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      I agree, but only after I finish my CS degree.

    51. Re:Is IT/CS/... not easy enough already? by ub3r+n3u7r4l1st · · Score: 1

      exactly. Since I switched to CS for the doctorate after getting a masters in EE, the amount of time spend on work increases dramatically, every day including weekends I only get 5 hours sleep, compare to 7 while back in the EE program.

    52. Re:Is IT/CS/... not easy enough already? by Anonymous Coward · · Score: 0

      You can train nearly everything, but training does not make you good.

      Errr... yes it does. Or were you always a good driver / writer / programmer? Training is exactly the process of making someone good at something!

      NO. You are utterly, absolutely incorrect. In the words of my Piano teacher: "Practice makes better ." Not "perfect", but "better". Training makes people "better", it does NOT make them "good".

      I spent 12 years playing baseball. I still can't bat, throw, run, or catch to save my life even though I love playing the game. Sure, I was better when I got done playing, but I was not even sub-average, let alone "good" at it.

      Don't make IT/CS easier. Make it harder, please.

      Ah, the predictable "pull the ladder up after you've climbed".

      Followed by the predictable out-of-context quotation and Flame.
      When a Degree does not guarantee a certain minimum level of skill, it becomes effectively worthless, which was the point. And the other point was that when he (and myself) climbed up, there wasn't even a fucking ladder. We had to freeclimb and drive our own pitons into the rockface. And now you're bitching because nobody installed an express elevator with heating and a bellhop to wash your balls while you wait.

    53. Re:Is IT/CS/... not easy enough already? by Black+Parrot · · Score: 2

      That's the purpose of vocational education, not university education.

      If that were actually believed to be the case, every public university in the country would have to close its doors for lack of funding. The only reason why public universities get non-grant related funding is because they are believed to improve the economic prospects of the students and the community.

      Actually, there's a competing view that the purpose of education is to give you a broad background and teach you to think critically - and that those can do as much - or more - for the individual and the public than mere job training can.

      Sure, companies want universities to teach people vocational skills, so that it can be done on someone else's dime.

      But I read somewhere within the past few months (maybe here?) that some of the highest-paid non-managerial people in business and industry are people with degrees in the Liberal Arts, because they were trained in working with facts and ideas, in organizational skills, in communicating and supporting their arguments, etc., with the result that they can move into (or create) ad hoc positions that fill a company's needs for which no vocational training program exists.

      I read somewhere, long ago, that the chief of national-scale logistics for one of the major players in WWII (USA or UK, IIRC), was educated in the ultra-traditional liberal arts - Greek and Latin, Aeschylus and Aristotle, kind of thing.

      --
      Sheesh, evil *and* a jerk. -- Jade
    54. Re:Is IT/CS/... not easy enough already? by Black+Parrot · · Score: 1

      It's not time-consuming for all of us...

      I think programming assignments are unlike any other field in this regard. For an English or Math assignment, it may take a C student three times as long as an A student, and they may get half the questions wrong, but it's still a time-bounded assignment. But when writing a program, the C student takes three times as long and has half the program wrong, and it still doesn't work, and they go back and try to fix it, but they lack the skills, so they go back again, and again, and again... the assignment is no longer time-bounded, and the C students can't believe the prof would assign 50 hours of programming per week. But the A students are spending 2 and the B students are spending 3-5.

      I don't know of any other field where this happens. So perhaps the premier question for CS I curriculum design is, how can you design assignments that a C student can finish in a bounded amount of time and still get a C on them, without dumbing down the course until it's useless?

      --
      Sheesh, evil *and* a jerk. -- Jade
    55. Re:Is IT/CS/... not easy enough already? by drb226 · · Score: 1

      I believe the saying is: "It's easy to train someone smart, but it's hard to smart someone trained."

  3. Reading, counting to 100 and other difficult tasks by Rakshasa+Taisab · · Score: 2

    What next, CS students get slack for not knowing how to read and write, addition and multiplication, and all the other skills you're expected to have when entering a high-level field of study?

    Computer science isn't a vocation education... You're there to learn the theory and techniques of programming, amongst other things. If you haven't taught yourself the basics of programming by the time you enroll then you deserve that F.

    --
    - These characters were randomly selected.
  4. it's actually useful. by Anonymous Coward · · Score: 0

    It's a useful way of separating the people who are motivated an interested enough to do it from those who aren't.

    Those with a genuine and deep interest will find a way. They always have. Why is this some new issue? Are people dumber now than they were in the past, or what?

    1. Re:it's actually useful. by hedwards · · Score: 4, Insightful

      OK, so because we've always done it that way, it must be a reasonable way. Nice appeal to tradition. Perhaps we should admit that it's unreasonable to expect that students taking an intro course to have experience. Call me naive, but I always assumed that introductory courses were intended for those without experience to gain some before getting into the more difficult coursework.

    2. Re:it's actually useful. by Anonymous Coward · · Score: 0

      In theory thats all fine. But in the reality you can observe that next to none of the students with no prior experience become good. Many make it through university but in the end they are still untalented. Yes, it may be elitist, but it should be a understandable concern of knowledgeable IT people that such people DON'T make it through because they will take away customers, provide bad service and - due to their lack of skill and thus the inability to demand higher - drag hurly rated down. The only one winning in such a scenario is the talentless idiot who somehow got his degree. Everyone else looses, including the customer - even low hourly rates are still to high for many of these clown.

    3. Re:it's actually useful. by icebraining · · Score: 1

      It's not really elitist - (almost) anyone in the developed world can learn to program if they want to. I did years before I had a computer at home.

      It can be said that not everyone has the same motivation to learn to program, but you need motivation to pass a CS course too.

    4. Re:it's actually useful. by wootest · · Score: 1

      But in the reality you can observe that next to none of the students with no prior experience become good.

      In ("the") reality, there are bad teachers and bad curriculums. To make a good curriculum, you have to go back to what makes people interested. Very few people start programming because they hear of the theory of hashtables, linked lists or dereferencing pointers.

      You have to hook the bait, pull them in and engage them, at which point you are mentally prepared to start learning the harder stuff. You have to present a bigger picture; so much of programming education is just running down the language specification table of contents without providing context for anything, without answering the question "why am I learning this?". Not only do you have to solve real problems repeatedly, you have to learn how to apply patterns to solve parts of problems, not just learn the name and basic function of a few design patterns in order to rattle them off at the exam.

      None of this is new or revolutionary. It's how many of us who did learn programming learned it, but it's startling how few of us did it in school.

      You might say "OK, but Computer Science *is* really about hashtables, linked lists and dereferencing pointers, so these points don't apply". Bullshit. It's as if carpenters had a course where you learned what a hammer looked like and how it behaves aerodynamically, but not how to use it to drive nails into a wall. Even if you intend to spend your life becoming an authority of hammer design, you're going to have to ground that in experience.

      I agree with you that having people exit education who do not really know the first thing about building programs ("these clown" "drag hurly rated down") isn't a good outcome. But rather than keeping the existing structure going and asking the part of the class that's scratching its head to leave, why not fix the course instead? No, they don't turn out good programmers. Let's fix the process that's supposed to turn them into good programmers and stop blaming them. It doesn't require physique or genetic predisposition, it just requires enthusiasm and conditioning.

    5. Re:it's actually useful. by Lost+Race · · Score: 1

      Introductory courses (at the college level) are not an introduction to the major for future professionals; they are an introduction to the topic for future dilettantes.

  5. Re:Reading, counting to 100 and other difficult ta by hedwards · · Score: 1

    There's a difference between somebody flunking out of a potential major in a computer related area because they don't know how to work a computer and flunking out because they haven't been adequately prepared by the intro course.

  6. Sorry to sound elitist, but... by Anonymous Coward · · Score: 1

    Sorry to sound elitist and all, but if you have no prior exposure to programming and computers, then perhaps you should not be studying it in the first place?

    Analogy, who can become a building architect? Anyone, through training? No. Suppose a person who has never drawn stuff, doesn't like it, has not done any sculptures out of e.g. clay or whatnot - do you think that person will become an architect? Maybe someone will, but generally the answer would be: no.

    It's the same with computers! You gotta start early.

    So parents, when your kid is playing all day, encourage him to start programming. Get him to go outside sometimes, but don't nag "now you sit at the computer again blah blah". Let him sit there, but encourage creative pursuits instead.

    1. Re:Sorry to sound elitist, but... by jenn_13 · · Score: 1

      I agree that getting an early start at programming is beneficial, but I don't believe it's necessary. I expect I'm quite a bit older than you, but when I was growing up, having access to a computer wasn't common. Maybe some of the more wealthy families had one, but not ours. I simply wasn't exposed to computers much in high school. After high school, I spent 6 years in the military, to earn some money to pay for college (even though I wasn't sure what I wanted to do yet). While I was in, I got a little more exposure to computers, and became interested. So, when I started college in my mid twenties, my first CS course was my first exposure to programming. There were some students that seemed to have a hard time, but I wasn't one of them. Some people have the thinking skills/talent necessary, even if they never had the exposure to the technology, and once they get that exposure and the opportunity to try, even if they're older, they do well. Even with no prior experience or exposure, I did very well, and finally graduated (Magna Cum Laude, even), and now I'm working as a developer, quite successfully. Sure, there are people who aren't cut out for CS, generally the ones who struggle in the intro courses. However, just because you didn't get an early start at programming, that doesn't mean that you can't be inclined toward it and excel at it.

  7. Re:Reading, counting to 100 and other difficult ta by pro151 · · Score: 1

    Why not? We don't seem to have a problem with "Dumbing Down" the requirements for every other job field in the U.S. Just look at the number of cities that have been forced to lower their testing standards for law enforcement officers as one example.

  8. I'm inclined to disagree by davidbrit2 · · Score: 1

    I can understand his concern, but really, the university level should not be your first exposure to your area of study. And if you can't cut the mustard in a particular discipline, would you rather find out during the first semester, or after pissing away several years, and all the tuition and other expenses along with them? So, my opinion is that hitting the ground running - or at least at a brisk jog - is definitely the proper approach for a university level science/math discipline.

    (GVSU alumnus myself. They had a pretty solid CS program when I was there a few years back.)

    1. Re:I'm inclined to disagree by Anonymous Coward · · Score: 0

      Yeah, I completely agree with you about finding that out in the first semester. I wonder though, how many people out there would hate an intro CS class that taught java, but would extremely enjoy an intro CS class that taught PHP or ASP? Do you think language would matter all that much at such an early point in a person's CS experiences, or would it be more about the concepts?

    2. Re:I'm inclined to disagree by petes_PoV · · Score: 1

      university level should not be your first exposure to your area of study

      So how would that work for doctors? Personally I would any REQUIRE pre-med school student to never have tried to diagnose or operate on people before they get into a well-supervised hospital environment. (And playing "doctor" as a child doesn't count.)

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    3. Re:I'm inclined to disagree by Arlet · · Score: 1

      It's not necessary for doctors. To be a successful programmer you need a certain way of algorithmic thinking that takes a certain talent to master. It's about truly understanding something, and applying it in new situations.

      To be a successful doctor, you need to be able to memorize lots of things, but there's nothing to 'understand'.

    4. Re:I'm inclined to disagree by mjwalshe · · Score: 1

      that's why medical school is 7 years.

    5. Re:I'm inclined to disagree by davidbrit2 · · Score: 1

      I don't know, grade school biology/physiology classes maybe? I wasn't writing multi-user n-tier applications in the 9th grade, either, but I was certainly dabbling in CS.

    6. Re:I'm inclined to disagree by Anonymous Coward · · Score: 0

      To be a successful doctor, you need to be able to memorize lots of things, but there's nothing to 'understand'.

      Bollocks! What causes you to think doctors merely remember things without understanding? Is that even possible in any field of science?

    7. Re:I'm inclined to disagree by Anonymous Coward · · Score: 0

      You arrived at the right conclusion through sheer idiocy. Doctors are exposed to doctoring throughout their lives, as the get sick, heal, injure themselves, get better, take asprin for headaches, find out that shit doesn't work for hangovers, etc... Further, they take biology in high school. You're a flaming idiot if you think they only have to memorize. Don't worry, the poster you're responding too is also a flaming idiot.

    8. Re:I'm inclined to disagree by RightwingNutjob · · Score: 1

      Same here. I was programming TI 83's in high school and dabbling in Javascript, but the first honest-to-God programming experience in a real programming language I had was first semester Intro to Programming in my EE curriculum. I can guess that I would have had more unpleasant surprises had I not gotten my toes wet.

    9. Re:I'm inclined to disagree by not-my-real-name · · Score: 1

      university level should not be your first exposure to your area of study

      So how would that work for doctors? Personally I would any REQUIRE pre-med school student to never have tried to diagnose or operate on people before they get into a well-supervised hospital environment. (And playing "doctor" as a child doesn't count.)

      How about some basic biology classes and then get into more advanced stuff like anatomy and physiology? I suspect that most people going on to med school get a biology or chemistry undergrad degree. Medicine doesn't spring fully formed from the head of Zeus. It is based largely on biology and chemistry which are covered in high school.

      --
      un-ALTERED reproduction and dissimination of this IMPORTANT information is ENCOURAGED
    10. Re:I'm inclined to disagree by Missing.Matter · · Score: 1

      So it takes a special gifted individual to become a programmer, but any old schmuck can be a doctor because it's just a matter of memorization? I know this might be silly, but I'm honestly wondering if you know what a doctor does.

    11. Re:I'm inclined to disagree by Anonymous Coward · · Score: 0

      Quite frankly, I wouldn't want someone with *just* 7 years of medical training to be a doctor to "practice" on me. Let them practice on a few thousand patients before I "hire" them (sorry Dr. Doogie, I want a doctor with a few grey hairs, but not too many).

      Sadly the doctor monopoly disagrees with me and doctors seem to be considered somewhat "interchangeable" by insurance companies (as long as they accept the same amount of reimbursement) so all I get to see are Dr. Doogies until I'm so sick the insurance companies will pay for a *real* doctor so I don't start costing them more money by developing some sort of chronic condition. Ironically, even if I wanted to pay myself for something better on a one-off basis for a particular problem, that will doom me to paying out of pocket pretty much for the duration of the problem (as doctors seem to not want to see patients that went to see other doctors first, apparently some combination about not wanting to be the last person to see them before they die and wanting to steer all lab billing to their personal side investments in lab companies).

      Oh well, I guess we are all collectively the practice targets when it comes to medicine.

    12. Re:I'm inclined to disagree by tibit · · Score: 1

      Ha ha ha. You are not serious, I hope? In case you are serious: I think I've run into a couple doctors who seriously, just as you claim, have no clue what they have memorized. They know it all, they are proud of all the work they put into memorizing stuff, yet they understand nothing. My wife got almost killed by such doctors, and I don't wish them upon you either.

      In medicine, memorization is pretty much overhyped. They forget plenty of what they memorized for the various courses they took. Supposedly it trains their brains or something. It's bullshit as far as I can tell. In medical fields there's plenty of specialization, and star doctors are usually stars because they are great researchers, or because they are extremely manually skilled in their craft, they of course can be both. A surgeon has to remember surprisingly little of the medical school curriculum. I think that a vet has to remember way more stuff than, say, a transplant surgeon does.

      --
      A successful API design takes a mixture of software design and pedagogy.
    13. Re:I'm inclined to disagree by Black+Parrot · · Score: 1

      It's not necessary for doctors. To be a successful programmer you need a certain way of algorithmic thinking that takes a certain talent to master. It's about truly understanding something, and applying it in new situations.

      I agree that program takes a certain way of thinking that isn't what ordinary people use for anything else they do before they finish high school. And I think the ability to write programs isn't a matter of "smarts", but rather a matter of switching to a new mode of thinking that you haven't ever used before.

      In my experience, some newbs pick it up immediately, some have to struggle with it, and some never catch on. And IMO, CS programs should try to serve both the first two categories, not just people who have already made the leap before they start. (Alas, the third category is going to flunk out or change majors no matter what you do in CS I.)

      To be a successful doctor, you need to be able to memorize lots of things, but there's nothing to 'understand'.

      Frankly, I hope my doctor understands a *lot* of things about the physiological processes that my health depends on.

      --
      Sheesh, evil *and* a jerk. -- Jade
  9. So? Do we really need more CS majors? by Anonymous Coward · · Score: 0

    Most of those intro courses are deliberately designed to be filters. They aren't supposed to teach the students, the are supposed to filter out the ones who haven't put the time and effort in already. At our school they had even lower level courses for students to take if they weren't ready for the weedout class; of course those lower level prep classes didn't count towards credits for graduation. So it was really a way for the University to say, "you didn't put in the time in high school, but if you're willing to do it now, here's your opportunity, but now it's going to cost you an extra semester of tuition."

  10. Excludes Some Good People by Hergio · · Score: 1

    I agree -- it is quite ridiculous to expect that. My first CS course, my professor told me to look at each person on either side of you, and realize that they will not be here when you graduate. And I think thats obviously because the material is difficult, but also because the way they taught the entire major was most definitely sink or swim. Quality people who may be more creative may get left behind because they don't come up to speed as quickly, and so the industry as a whole may miss out on good people.

    --
    ~Hergio
  11. Expect it? by Haedrian · · Score: 4, Insightful

    We had a particular course module at uni, which after 3 weeks expected us to be experts enough in C (and in *NIX type systems) such that we could properly start the actual course which was about Systems Programming in *NIX.

    I think it's expected especially in this vocational line that you have to pick up the pace and learn stuff quickly enough. If you're starting a new job and they use a technology which you never heard of - you need to pick it up.

    So I disagree. The faster they get to the idea that you're going to be thrown into the deep end - the better they'll be in the end.

    1. Re:Expect it? by Culture20 · · Score: 1

      We had a particular course module at uni, which after 3 weeks expected us to be experts enough in C (and in *NIX type systems) such that we could properly start the actual course which was about Systems Programming in *NIX.

      Three weeks? That's just asking for pointer mis-use and memory leaks. I would expect no less than a full semester as a prerequisite to teach students all of the things they shouldn't do with C (and *NIX systems).

    2. Re:Expect it? by Haedrian · · Score: 1

      That module was widely considered to be the hardest thing we ever got. It also included two rather difficult assignments.

      But still most people got through the experience without too much permanent damage. Its the sort of 'learn this really quickly' thing we learnt to expect.

    3. Re:Expect it? by Anonymous Coward · · Score: 0

      Operating Systems at Glasgow University? That course had a 3 week intro before uni had even started to get you up to speed. It was a hideously difficult course but also one of my favorites.

    4. Re:Expect it? by syousef · · Score: 1

      The trouble is people saying that tend to have been writing BASIC at age 8. The first few fundamental steps learning to code can take a bit of time to sink in. Not grasping them quickly doesn't necessarily mean you should never get the opportunity to code again.

      --
      These posts express my own personal views, not those of my employer
    5. Re:Expect it? by Anonymous Coward · · Score: 0

      Our programming courses had that embedded into the regular work. Any bugs (sometimes including the most minor ones) and ugly code were enough to get your assignment returned for improvement. As the programming became more difficult (that is, after the "sink-or-swim"), the teachers became picky about all the high-level stuff too such as which algorithm/datastructure one chose (even if the course was not about those), using the wrong arrow in a UML, etc.

      Of course, to give us a chance, the teachers explained common problems in the language at hand, for example pointer errors in C and incorrect aliasing in Java. All assignment returns also came with explanations of the problem with the code, such as using "static" too often in an OO program.

    6. Re:Expect it? by Black+Parrot · · Score: 1

      Was this a freshman course?

      For a systems programming course taught in the 4th year, learning C in 3 weeks should be a non-issue. By that time they should have enough basic programming skills and conceptualization to make picking up another imperative language be a pushover. (In fact, I think a good CS curriculum would *make* students pick up a new language on their own at least once per year.)

      And I would question the wisdom of teaching a systems programming course any earlier.

      --
      Sheesh, evil *and* a jerk. -- Jade
    7. Re:Expect it? by HazMathew · · Score: 1

      Right on. In University and in life no one is going to hold your hand. Do you want that CS degree? Then you better be ready to put in the time you require learn what you need to learn. If it takes you 168 hours a week, so be it.

  12. It's not the Curriculum!!! by Secret+Rabbit · · Score: 5, Insightful

    The problem isn't the program, the problem is the students. Essentially, they come to University ill prepared and pay the price (i.e. high-schools are no longer doing their job).

    However, when it comes to CS, there is a specific issue that must be brought up. Namely, that students think that Computer Science equals computer programming. Anyone that has studied both can say that they aren't even remotely the same. So, it's no wonder the students fail. They think they'll be learning to be programmers, and then get nailed with an Applied Math.

    The solution here isn't to change the curriculum. But, rather to inform students what they will learn at a University (Academia) v.s. Applied Colleges (they're called Colleges in Canada, not sure what they are called in the US) v.s. trade schools, etc. Then send them in their desired direction.

    In other words, University professors, stop becoming part of the education problem, think and become part of the solution.

    1. Re:It's not the Curriculum!!! by Anonymous Coward · · Score: 1

      Or to rename computer science to Mathematics of computation, so the students know what they are getting into.

    2. Re:It's not the Curriculum!!! by Frequency+Domain · · Score: 2

      Except that Kurmas was talking specifically about the intro programming course. Having taught intro programming dozens of times myself, I sympathize deeply - sometimes a student with no prior background ends up doing great, but in this day and age it usually means they are people who have actively avoided learning anything about how computers work. Given how readily available computers are, if an incoming student hasn't shown enough interest to read up on and play around with VB or a scripting language I suspect that a CS degree is not going to be a happy match for them.

      There are also the students who consider themselves computer literate because they know how to use MS Office and a web browser but couldn't think logically if their lives depended on it. I can't begin to communicate how heartbreakingly frustrating it is to deal with the 10% or so who seem incapable of mastering the difference between a loop and a conditional. If they can't grasp fundamental concepts in logic and algorithms they're never going to make it in CS.

    3. Re:It's not the Curriculum!!! by RightwingNutjob · · Score: 1

      It's the Cargo Cult creeping into Western civilization. There's this magic box, and if you learn the correct incantations and click in the right spots, a miracle happens and the knowledge of the world (that is, $TEEN_CELEBRITY photos/gossip) are at your fingertips. How does the magic happen? Well, you just have to recite the incantation, nevermind the damn thing's unplugged.

    4. Re:It's not the Curriculum!!! by Anonymous Coward · · Score: 0

      There is no distinction between Applied Colleges and University in the USA. English and philosophy majors study at the same schools as engineers and doctors.

    5. Re:It's not the Curriculum!!! by Anonymous Coward · · Score: 0

      I would have to say that applied math is a very large part of programming. Not just of computer science. You have to be able to both create elegant algorithms and implement them properly. I take pride in being able to do both.

    6. Re:It's not the Curriculum!!! by Eli+Gottlieb · · Score: 1

      Do you prefer the old-style Beit ha'Miqdash model, in which highly-trained kohanim with knowledge of the Holy Rites leave everyone else at their mercy?

    7. Re:It's not the Curriculum!!! by Anonymous Coward · · Score: 0

      Can we admit that some students do better because they are born smarter?

    8. Re:It's not the Curriculum!!! by nhaehnle · · Score: 1

      Actually, the curriculum is part of the problem, and at least the first semester really is all about programming at many universities. So CS is really hurting itself by turning a lot of people off in the first year or so, while those who do survive the programming bootcamp will later be totally shocked when they learn about all those other things.

      I found this Education@Google talk about the redesign of the introductory CS course at Harvey Mudd College interesting: http://www.youtube.com/watch?v=HF_Gkxqf158

      Don't be fooled by the "Women in Computer Science" title. A lot of the talk is about this issue, but at least the curriculum redesign part of what the speaker talks about was originally not motivated by women issues. It just turns out that it helps make CS attractive to people - whether male or female - who have not spent their childhood and teens teaching themselves how to program. When you watch the talk, you will also see that by "attractive" they don't mean "dumb it down to make it accessible". Rather, it means "remove stupid obstacles and rituals, and care about the things that truly matter instead".

      Their situation is special because their students only choose their major after having taken introductory CS courses, but similar lessons could certainly be applied at other universities anyway, as well as at highschools.

    9. Re:It's not the Curriculum!!! by Anonymous Coward · · Score: 0

      If they can't grasp fundamental concepts in logic and algorithms they're never going to make it in CS.

      Most definitely this.

      I took the classes from TFA - not with Kurmas, although I did have him for other courses - and after 15 weeks nobody who belongs in the CS program should be struggling with basic Java syntax, conditionals, and basic loops. The CS2 course he's referring to goes up to simple recursion, sorting algorithms, etc.

      If you can't hack CS2, you're definitely not going to pass Kurmas' architecture class 2 years later.

  13. Seems like the more you know by BroadbandBradley · · Score: 1

    The less competent everyone around you becomes. Are you sure you're not just getting too smart to teach CS 1?

  14. The bozo filter by AnotherScratchMonkey · · Score: 2, Interesting

    I went to MIT in the early 80's, when interest in CS was exploding and the CS department was heavily oversubscribed. The introductory class taught LISP and Algol and was used to weed the applicants for a CS major down to something the department might have some hope of coping with. Additionally, if you switched majors, this was the only department that didn't allow you to switch back.

    Towards the end of my stay there other departments started operating their own basic CS class so that one could learn the rudiments needed to function in other engineering disciplines without having to devote one's life to CS arcana. This helped to take the pressure off the CS school.

  15. Frankly I agree by improfane · · Score: 1

    In the UK we had a Java exam module that you had to pass to continue to the next stage. Apparently a third failed.

    I doubt these people actually practiced programming, after lectures and at home. In many subjects you don't have to practice a skill constantly, you cram facts. Computer science is not one of those subjects, it takes practice. That's why it was quite easy if you have coded as a hobby. I still think it's unfair to undergraduates to be expected to code well in 15 weeks. You go to university to learn, without expecting to know it already...

    --
    Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    1. Re:Frankly I agree by JSBiff · · Score: 1

      In truth, with today's academic programs at most university's, anyone wanting to specialize in a technical field (and this might apply to many other fields as well), should probably try, during their junior high and high school years to get "early exposure" to that field. If you already know basic programming in two or three languages, know some basic data structures and algorithms, etc. You will be far, far more prepared after that 15 week course.

      It has become common in a lot of high schools to offer 'electorates', or after school clubs, which will give some early exposure to engineering and computer programming. Probably would be worth extending that concept to as many topics as possible (although schools also face budgetary and classroom-availability limitations, and god forbid anyone cut the football, basketball or cheer-leading budgets at most schools).

  16. southern hillarians must take tablets in capsules by Anonymous Coward · · Score: 0

    it could be the other way around? at least it's good that they were prepared? more inclimate climate expected?

  17. Learning is a life-long journey by Anonymous Coward · · Score: 0

    Kind of surprised by how many comments there are about people not cutting it.. Are you comments directed at people who go to school for 4ish years, get a computer science degree and believe they are adequately prepared to be programming, or are they directed at the system pumping graduates out that are making them think they are adequately prepared?

    Computer Science is no different than any other field where you need experience and exposure to higher levels than college offers in order to be useful in a work place setting, but I don't think it is right to make people think that if you haven't been studying for years before you enter college, you have no chance at it. People just need to that they are at a SEVERE disadvantage, and your earlier life (after college) getting into programming jobs is going to be REALLY rough as you hit literally EVERY single wall out there in your struggle for direction and skill. If you want to succeed in it, it is really a necessity to keep reading, learning, refining your skill and trying new projects with a variety of people. And you are definitely correct, kju, creativity is a HUGE plus.. actually, I think computer science actually helped me to work my creativity muscle, so don't think just because you are not labelled "creative" that you can't do it. Know that, just like every other profession out there, you are going to have to bust tail to even be able to utter the phrase "I can program, but I am bad at it". That is why resumes aren't about how good you are at programming, they are about what kind of experience you have.

    1. Re:Learning is a life-long journey by kju · · Score: 1

      No, it's not absolutely necessary to have those years of experience before attempting CS/IT. It helps however.

      But it is absolutely necessary to be capable of learning new stuff in a very short time period AND be able to do something good with that knowledge. As others pointed out IT more than many professions requires life-long learning.

      If you are not willing or able to absorb new technology in next to no time, you will never be a good or competent IT person. Thats the simple truth and therefore it is good when such people are sorted out at university entry level already so that they can choose are more appropriate profession for them instead of some how making it through and then suck at work life.

  18. An odd analogy by Kijori · · Score: 4, Interesting

    I'm not sure that I really agree with the Professor's foundational analogy between studying programming and playing orchestral music. I'll explain why.

    The students who played in the university orchestra back when I was at university were phenomenally good. Many of them played professionally or intended to. That is where the analogy with computer programming becomes strained. There is no room, in professional music, for someone who is not very good, or just learning, or who lacks experience. The musicians who play in orchestras at anything approaching a high level have a degree of musical ability that I find absolutely astounding; the difference between a very good hobbyist musician and a professional or semi-professional is like night and day. That ability is normally the result of spending 30 hours or more a week, every week, practising or learning under the tuition of an excellent player for 15 or more years. And the competition is such that that is effectively the minimum level of ability required to play in a good orchestra. Many of the musicians will be far better and far more experienced than that.

    In contrast, programming is a career in which a person can grow on-the-job not only from "excellent" to "phenomenal" but from "not particularly good, but promising", to "good", and then on to "excellent" and "phenomenal" after another 10 or 20 years. There are plenty of roles for people who can code slowly but proficiently, especially if they have the potential to get better. Comparing those students to others in a far more competitive area just is not helpful - one could equally compare computer science students with lawyers being sponsored through college by White-Shoe firms. Of course the computer scientists will, on average, be less developed, less well-rounded, even less competent. But it's not a useful comparison.

    I don't know what approach the Professor's university takes but I did not, when I was studying, encounter a sink-or-swim approach to computer science coding. That approach, it seems to me, crops up when the expectation is that computer scientists, on completing the course, will have a level of competence beyond what is reasonable - an expectation that is encouraged by making unreasonable comparisons. On the other hand there were, as the Professor notes, a good number of people dropping out or changing course. I would ascribe that, rather than to a course that makes unreasonable demands, to a factor that he notes - computer science is not taught at schools. It is one of a number of courses that students choose without really knowing what it will involve. I suspect that in all those subjects there is a high initial drop-out rate as students realise that the course is not what they had expected, or is not for them, or simply that a particular aspect is more interesting and that they would prefer to specialise in, for example, mathematics.

    1. Re:An odd analogy by archer,+the · · Score: 1

      *nod* If I may make a car analogy, this professor's analogy is like most of the car analogies seen here.

    2. Re:An odd analogy by charlener0 · · Score: 1

      I think a point can be made that today's orchestras are rarefied places. If you consider orchestras and classical musicians, say, during the 17th-19th centuries - when the market was much larger, perhaps more like today's computer science field - it may be a more apt analogy re: depressing the market with a flood of sub-par graduates.

    3. Re:An odd analogy by jasmusic · · Score: 1

      Not all music graduates are in orchestras. Many are average and simply play in local bands, if they even continue on with music that is.

    4. Re:An odd analogy by Kijori · · Score: 1

      True, but I'm afraid I don't quite see your point. Care to elaborate?

    5. Re:An odd analogy by Velex · · Score: 1

      I think there's something else lurking in that comparison. When you look at it, people who are really good with music have been doing it since they were small children. In my school district, if you wanted to join orchestra, you had to make the decision in 4th grade. Band or choir didn't start until middle school in 6th grade. Even then, the folks who joined jazz band when that opened up had been playing music before they joined regular band in 6th grade anyway.

      Along those same lines, I've been programming since I was very little, too. I have an intuitive understanding of how programs work that at times simply flabbergasts people I'm working with. I have some shortcomings, too, because of the informal nature of being self-taught.

      Perhaps being a professional programmer should be like being a professional musician. Most can't just start when they get to college. You have to be dedicated to it from an early age.

      On the other hand, if I could do my life over, I would have picked music instead of programming. One gets you laid, the other makes girls run away.

      --
      Join the Slashcott! Stay away entirely Feb 10 thru Feb 17! Close all tabs to prevent autorefresh!
    6. Re:An odd analogy by sydneyfong · · Score: 1

      And after reading your objections to the orchestra analogy, I think I agree more with the analogy.

      You said:

      There is no room, in professional music, for someone who is not very good, or just learning, or who lacks experience. The musicians who play in orchestras at anything approaching a high level have a degree of musical ability that I find absolutely astounding; the difference between a very good hobbyist musician and a professional or semi-professional is like night and day. That ability is normally the result of spending 30 hours or more a week, every week, practising or learning under the tuition of an excellent player for 15 or more years. And the competition is such that that is effectively the minimum level of ability required to play in a good orchestra. Many of the musicians will be far better and far more experienced than that.

      Replace "music" with "software development", "musicians" with "programmers" and you'll still be correct. Let's try:

      There is no room, in professional software development, for someone who is not very good, or just learning, or who lacks experience
      Of course this just begs the question what is "professional" software development -- but ask anyone who managed a software project that didn't fail, I think all of them will say they key to success is finding the best developers.

      The programmers who work on software projects at anything approaching a high level have a degree of ability that I find absolutely astounding
      I'm sure most non-techies will find us absolutely astounding when we stare at apparently gibberish and understand it.

      the difference between a hobbyist programmer and a professional or semi-professional is like night and day
      I think this is well settled. Of course, I do count "hobbyists" such as Linus Torvalds as professionals.

      That ability is normally the result of spending 30 hours or more a week, every week, practising or learning ... for 15 or more years
      Programmers normally don't take apprentices, but most good professional programmers have quite a few years of experience -- just perhaps not as much as 15.

      And the competition is such that that is effectively the minimum level of ability required to work in a good software company. Many of the musicians will be far better and far more experienced than that.
      We all know how hard the interview questions are for the big name software companies, particularly the one starting with G.

      -----
      With regards to your other points:

      In contrast, programming is a career in which a person can grow on-the-job not only from "excellent" to "phenomenal" but from "not particularly good, but promising", to "good", and then on to "excellent" and "phenomenal" after another 10 or 20 years

      Perhaps I don't know as many programmers as you do, but I have *never* seen a programmer improve substantially after a few years on the job. Sure, they will become more experienced and knowledgeable, but from "not particularly good" to "execellent" or "phenomenal"? Doubtful. Perhaps you really haven't seen the good programmers. As I've mentioned, they are like night and day when compared with the mediocre.

      There are plenty of roles for people who can code slowly but proficiently

      Absolutely. But if you look at the rants by people in the software industry, none of them complain about how *slow* people code --- most of them complain loudly about how *crap* the code is. If only the "less talented" CS students were only slow.

      --
      Don't quote me on this.
    7. Re:An odd analogy by Anonymous Coward · · Score: 0

      I'm not so sure.
      I bet in 15 weeks you could teach someone to play the triangle in an orchestra, maybe even the cymbals.
      That is the expected proficiency people expect from the average graduate in CS. Give them 10 years of work at programming and perhaps they will become adept

      The guy teaching the course should be as good as the first chair violin and has the unreasonable expectation that everyone will be 'first chair violin' proficient upon graduation.

    8. Re:An odd analogy by Kijori · · Score: 2

      I'm sure you're right regarding the level of ability needed to get in to Google or the like being exceedingly high - I remember having a look at one of their tests once and not having a clue how to even begin to understand it, let alone solve it. But my point is that the vast majority of programmers don't work at Google, or anywhere nearly so demanding - if they did then I would absolutely accept your point. The difficulty, I think, with the analogy the author tries to draw between college-level or college-graduate programmers and musicians of orchestral ability is that in music, to draw a similar analogy, Google is all there is. There's little money in being a professional (non-pop) musician even at the highest levels, and effectively none at a lower level, so to be a professional musician you have to be the best of the best. I know a number of people who are at the very bottom of the ladder, struggling to make it as professional orchestral musicians, and the level of ability they have with their instruments is far greater than the technical ability of any programmer I have met. That's not to cast an aspersion on programmers - it's simply that the industry is so competitive that anyone who gets in at the bottom is already among the elite.

      The same can't be said of programmers. I used to be a professional programmer - I'm not any longer. I was reasonable but not amazing, and I was the best of the department everywhere I worked. Simply put, if you're reasonably bright, and have a reasonable grasp of the basics, there are plenty of jobs that need doing that don't require an incredible grasp of C++ - or even a particularly good one. You can start as a junior programmer doing bog-standard, simple work (that gets reviewed by someone else) and get better over time. We hired a fair few graduates like that. None of them were great programmers when they arrived, but now, years later, they're apparently pretty good. (I don't know if you work as a programmer yourself, but I find that when I look at thedailywtf I see a fair few things that I've done at some point myself - as, to judge from the comments, have a lot of people. That code's awful, but it's being written by professionals, and the only thing that meant I was no longer writing code like that was experience I got on-the-job)

      There's a massive gap between the great programmers, and the merely good, and the mediocre. As you say that difference is, indeed, night and day. But there are plenty of mediocre programmers who still make a living from it. And since a big part of why a lot of the great programmers are great is the experience they got as hobbyists when they were at school, there's no reason why someone who comes to the profession later can't go from mediocre to great by getting that experience at work. Of course, in that time the guy who was already great has got even better, but great is still pretty darn good.

    9. Re:An odd analogy by Kijori · · Score: 1

      I think there's something else lurking in that comparison. When you look at it, people who are really good with music have been doing it since they were small children. In my school district, if you wanted to join orchestra, you had to make the decision in 4th grade. Band or choir didn't start until middle school in 6th grade. Even then, the folks who joined jazz band when that opened up had been playing music before they joined regular band in 6th grade anyway.

      Along those same lines, I've been programming since I was very little, too. I have an intuitive understanding of how programs work that at times simply flabbergasts people I'm working with. I have some shortcomings, too, because of the informal nature of being self-taught.

      Perhaps being a professional programmer should be like being a professional musician. Most can't just start when they get to college. You have to be dedicated to it from an early age.

      But why? How often do you do something that actually requires absolutely outstanding levels of skill, rather than just average levels, or good levels? I remember when I was working in programming - and I was by no means a virtuoso programmer - a lot of my time was spent making small changes that took no great skill but did take a lot of time. Could a brilliant programmer have done them better and faster? Yes, of course; but not much better because it was so basic, and it would have been a tremendous waste to get an A+ programmer to do C- work.

      If you want to be a professional musician (or a number of other, generally similar, careers) you have to start early. That's not because you can't get to be very, very good if you start at 40, though. It's because there's not much money in professional music so if you want to make a decent living you have to be right up at the top in the elite. To recycle an analogy I made use of in another comment, music is like if the only tech jobs were at Google and there was no demand for anyone of less than stratospheric talent.

      In programming, unlike in music, though, there are plenty of jobs that don't require very much skill. There's no money in playing scales, but there's a fair bit to be made writing simple code to solve simple problems. And just like practising music makes you better at playing music, practising programming makes you better at programming. The guy who starts programming at 10 is probably always going to be better than the guy who starts at 20, but who cares? There's plenty of simple work that needs to be done (and the expert programmers don't want to work for small companies doing boring, routine work), and in 10 years time he'll be a lot better.

    10. Re:An odd analogy by LS · · Score: 1

      As someone who studied both orchestral music and computer science, I have a few comments. The equivalent of a "good orchestra" in computer science would be a good research lab or a good product team. These are also quite rare, but don't get the same fame that a "good orchestra" would. There are a few exceptions, such as the iPhone team, MIT media lab, and some others. Also, there are a lot of musicians out there that didn't make the cut. The difference is, in CS, if you don't make the cut, you can still get a job and learn the trade, because the massive amount of computer work out there. The same is not true of music, so if you want to make a living at it, you have to be extremely good - there just isn't a lot of work out there. Mind you, there are gigs that don't require a lot of talent - making music for commercials, cartoons, shitty video games, etc, but the amount is still much less than the amount of computer work. Also, the purpose of CS work is usually quite pragmatic, whereas music is usually quite aesthetic.

      My point is just that you can't directly compare the two, because the differences are great.

      --
      There is a fine line between being a cultivated citizen and being someone else's crop. - A. J. Patrick Liszkie
    11. Re:An odd analogy by NoSig · · Score: 1

      On the other hand, if I could do my life over, I would have picked music instead of programming. One gets you laid, the other makes girls run away.

      I'll give you a little tip that helps immensely: When you say that you are a computer programmer, I'm guessing right now that you have in the back of your mind that she's going to count that as a minus. That's the main problem right there. When you say you are a programmer, what should matter to you (to be attractive) is what you think about programming, not what she thinks about it. State that you are a programmer using your voice, face and body in a way that makes it clear that you are proud of being a programmer. Don't overdo it and don't say that you are proud of it, and don't try to get her to approve of you for being a programmer, just be proud of it for yourself and let that be sub-communicated when you talk about you being a programmer. Say it like it's your favorite topic of conversation and you are so happy that she brought it up (but don't go on to actually talk about it if it isn't your favorite topic)

      She may try to challenge you on that by saying something like "isn't that really boring? I've always hated computers". At this point your thinking should reflect that she's being a little weird instead of thinking that she's rejection you. She's probably not rejection you, she's trying to learn if you are for real (and doing it in a rude, weird way, but oh well - let's forgive her for now). You can just respond for example "I love programming and I wouldn't want to do anything else." Say it in a good, upbeat mood as though it never occurred to you that she might have been rejecting you, or if she was, as though it never occurred to you that that might be bad or important to you. The conversation about whether programming is exciting or boring is now over - don't continue it unless she asks more about it. It's not important that you make her think that programming is exciting, it's only important that you stated that you think it is exciting and that's why you do it. And it's only important to state that if she questions it - otherwise it should just be assumed from the non-verbal way in which you said that you are a programmer. Just make sure that you can keep up a positive internal state of joy about being a programmer even if she curls up her face in disgust and starts looking around the room to avoid eye contact (won't happen, but let's suppose). She's being weird, but you forgive her, you're amused - that is all. For example in that case you might laugh and say "I get the feeling you don't like programming very much." Don't let it put you in a bad mood - she's being weird, not you. In fact, a woman who would behave like that is probably not going to ever be pleasant to be around for anyone, so she's probably not what you are looking for even for a one-night stand.

      Your position is that programming is exciting to you and that's why you do it - it is no concern to you if other people don't like it (obviously don't be aggressive about that attitude - that would imply that you are concerned). But don't say that, just behave as a person who believed that 100% would behave (it helps a lot if you actually believe it). If someone told you that they hate walking, you wouldn't be self-conscious about how you are an unlovable loser for even making use of your legs, it wouldn't really be natural to defend walking, you'd just perhaps be a little amused. In interactions with women (and really people in general) it's not so much about what you do, how tall you are or anything like that. It's about what you believe and how you behave. It's not about facts, it's about the social interpretation of those facts. If you believe that women won't love you or have sex with you because you are a programmer, then they will believe it too. Now there may be other things you are doing that is unattractive to women, but just being a programmer by itself really doesn't have to be any kind of a problem unless you yourself make it one.

    12. Re:An odd analogy by webbiedave · · Score: 1

      "There is no room, in professional music, for someone who is not very good"

      Wow. Someone doesn't listen to the radio very much.

    13. Re:An odd analogy by Kijori · · Score: 1

      I'm sorry, perhaps I wasn't sufficiently clear; I was referring to professional orchestral music. I mentioned that in the first line of my comment and adverted to the difference between traditional and "pop" music in my follow-ups but I should perhaps have been more explicit.

    14. Re:An odd analogy by Velex · · Score: 1

      True enough. A friend who I tried to get to program also kissed me when we were 10. I could have gotten laid when I was 10 instead of being alone all my life. I didn't understand that she wanted to fuck me, so I turned out to be a faggot. I can't blame my choice to program for a living on that or vice-versa. C'est la vie.

      --
      Join the Slashcott! Stay away entirely Feb 10 thru Feb 17! Close all tabs to prevent autorefresh!
    15. Re:An odd analogy by Velex · · Score: 1

      Damn it, I forgot to mention she was also 10 at the time. Or 11. I don't remember exactly. On the other hand, in this modern society, I suppose I should have been hauled off to a gulag for getting a kiss from a 10 year old girl. Child Porn! C'est la vie times a million.

      Stupid puberty not happening until two years later. Stupid me for being attracted to men instead of the gender I'm supposed to be attracted to.

      --
      Join the Slashcott! Stay away entirely Feb 10 thru Feb 17! Close all tabs to prevent autorefresh!
  19. Programming isn't a requirement for CS by Walking+The+Walk · · Score: 1

    CS students don't need to know that a stack is implemented differently in C++, Pascal or Java. They do need to know that a stack is a first-in last-out structure, that most stacks don't allow random access, that a stack is a linear structure, and that it's how procedural languages track the calls.

    Programming languages come and go, but what a CS major learns should enable them to make the right choices when learning/using languages.

    --
    A recursive sig
    Can impart wisdom and truth
    Call proc signature()
    1. Re:Programming isn't a requirement for CS by Haedrian · · Score: 1

      Programming languages come and go, but what a CS major learns should enable them to make the right choices when learning/using languages.

      While I do agree with you to a certain point, programming isn't just about turning ideas into code.

      It also gives you a particular mindset which will greatly help your understanding (and appreciation) of the topic. I was talking to a person the other time who was in a CS course without any programming experience and couldn't understand why they were being taught data structures. You only get that sort of appreciation once you've messed around with their use a bit.

    2. Re:Programming isn't a requirement for CS by vlm · · Score: 1

      CS students don't need to know that a stack is implemented differently in C++, Pascal or Java.

      what a CS major learns should enable them to make the right choices when learning/using languages

      Please select one side of the argument or the other.

      If I had what was inherently a stack-problem, I would not select Pascal, and intelligently selecting C++ or Java has a lot more to do with scalability than implementation.

      In an IT curriculum it doesn't matter, you'll simply be trained on what the hiring managers are hiring for this year, doesn't matter how it works or how well it works. Knowing how to use it is apparently somewhat optional in the industry today, also.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  20. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    there are standards?

  21. Bah humbug. by raehl · · Score: 3, Insightful

    Programming is easy for people who will be good at programming. It requires being able to take a solution to a problem and arrange it into a set of instructions. If you can't do that by the time you get to college, and especially if you can't do that after 15 weeks of intro, you're not going to learn it in college, because the problem isn't that the student doesn't have CS experience; the problem is the student doesn't know how to solve problems and write down the solution.

    That's not something that a HS grad who doesn't know it already is going to learn.

    1. Re:Bah humbug. by vlm · · Score: 1

      the problem is the student doesn't know how to solve problems and write down the solution

      Any ideas what to do with those people, other than let them flunk out of "intro to Java"? I'm not looking for micro solutions but much larger scale...

      Its not a programming problem. The same ailment affects some wannabe draftsmen, wannabe machinists, wannabe construction trades, wannabe car mechanics, etc. I hang with some of those people, and they have almost exactly the same reaction toward the failing noobs as the CS people, although obviously expressed much more illiterately due to their cultural requirements not to sound too smart.

      So don't make the mistake of thinking the magic bullet is starting with the new language of the week, because the solution will inherently also apply to teaching welders, tool and die machinists, and plumbers, and I don't think they're going to buy the idea that teaching the first class in Scheme instead of C++ will teach the FNGs how to arrange sub tasks in the correct order.

      Is it just and applied IQ test thing? Some folks just have brains that can plan, and some don't, and that's just how its gonna be?

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:Bah humbug. by PRMan · · Score: 1

      To a point, yes.

      And not to be mean, but somebody has to serve you coffee, repair streets, and be a politician...

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    3. Re:Bah humbug. by RightwingNutjob · · Score: 1

      By that reasoning, the solution would be to weed out the dumb-dumbs earlier than trade school/college. The problem is that to do that, having vs not having a high school diploma should be a meaningful distinction. But hell, I went to a reasonably good (suburban) public high school and even they let everyone graduate eventually.

  22. A Better Way to Look at That Angle by eldavojohn · · Score: 4, Insightful

    If you didnt already begin in a high school class, or at the very least on hobby projects?

    I think this is the wrong way to approach a defense of these practices. Computer Science (CS) gets made fun of a lot ... or at least it did when I was in it. "What's the matter, couldn't you handle an actual engineering major like Computer Engineering or Electrical Engineering?" And, you know, those course paths are tighter in the electives area (I should mention I went to school at the U of MN in case it's different elsewhere). Anyway, CS has many dimensions to it. The foundation is mathematics, statistics, algorithms and logic to name a few without getting into theory like automata. After all that, you have what I'll call the "cosmetics" (for lack of a better word) which are what the flavor of the year is for most popular language. Now it's either Java or Ruby but when I was in undergrad, it was C++ and Java. And there was PHP for web, MySQL for Databases, etc. And I think the reason we need to keep the weed-out course structure is that it was fun for me to learn Ruby on Rails on my own. It was an adventure I enjoyed (albeit a ridiculously easy adventure). And if you're going to be in CS, you need to have the attitude that the cosmetic stuff either comes naturally to you or is something you do in your free time. When I took my Java course, I had already worked through java.sun.com's tutorial "pathways" online and knew what all the keywords were in the language and why we use them ahead of the course. To learn recursion with this background was fairly trivial. Honestly, I don't remember learning much else in that course. And I think that's why it's important to keep that minor level of entry. Because people who have a passion don't want to have to go through course after course of learning a language or basic programming so that they can get to the good stuff.

    And those languages are a dime a dozen and they could change at the drop of a hat. As time goes on, there's only more implementations to choose from. When I went through college, functional languages were almost dead. And now Ruby is more functional than object oriented and I use it daily. So I'm glad I got to the theory instead of ever being forced to take a course on how to code PHP or how to set up JDBC connectors. But in my later courses, they demanded that implicitly in order to fulfill understanding the functionality of a transactional RDBMS.

    I think it's actually a very kind thing to say after 15 weeks: "Hey, if you don't play around with this stuff in your free time, what are you going to do when we teach you Java and five years later you need to sink-or-swim learn Ruby?" Because that's exactly what happened to me and sometimes I come across much older developers that say "Pshaw, Ruby, who the hell would want to code that? I can write the same thing in C and it's fifty times faster." And they're right but they fail to see that my manager doesn't care about speed, they care about maintainability (it's often running on top of a VM anyway) ... and I have no clue if that developer learned C in college and thinks they'll never need to know another language. A lot of my free time is spent experimenting with new languages that I'll often never use professionally and I think it makes me a better programmer. To try to identify an unwillingness to do this in 15 weeks might be saving a lot of people a lot of time and money. And maybe even protecting them from unemployment later in life.

    When you're a CS major, your learning should never stop or you will be quickly unemployed. That might be true with other majors but I've heard people brag they haven't picked up a book since college. Did I find it wrong or unfair for my university to engage in these practices? Maybe when I was in college or maybe if I had only ever been in academia but now it doesn't seem so harsh.

    When people tell me they want to code as a hobby I usually say: "T

    --
    My work here is dung.
    1. Re:A Better Way to Look at That Angle by JMJimmy · · Score: 0

      Computer Science (CS) gets made fun of a lot ... or at least it did when I was in it. "What's the matter, couldn't you handle an actual engineering major like Computer Engineering or Electrical Engineering?"

      See this is hilarious to me, at my uni it was the Engineering students who got made fun of because they thought CS1 was a challenge.

    2. Re:A Better Way to Look at That Angle by PRMan · · Score: 1

      And they're right but they fail to see that my manager doesn't care about speed, they care about maintainability

      I tell the other programmers at work this all the time. Working, modifiable, maintainable code is #1.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    3. Re:A Better Way to Look at That Angle by syousef · · Score: 1

      Once you have half a dozen languages under your belt, picking up another is a breeze. Getting started in programming is not.

      --
      These posts express my own personal views, not those of my employer
    4. Re:A Better Way to Look at That Angle by phantomfive · · Score: 1

      A lot of my free time is spent experimenting with new languages that I'll often never use professionally and I think it makes me a better programmer.

      ok, now I'm curious. I'd really like to know, since you know a lot of programming languages, which is your favorite? Or favorite in a particular class, etc.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:A Better Way to Look at That Angle by Theovon · · Score: 2

      I like your comment about Ruby. I'm an "older programmer", and yes, I can make a C or C++ version that's 50 times faster. But oh my god is Ruby so much easier to program in. People like to use Perl for parsing stuff; I learned Ruby instead, but the principle is the same. The amount of coding (and thinking) requires is a tiny fraction of what's necessary to do this stuff using STL. So, when I'm doing scientific computing, and something's going to run for days, yeah, use C... or even Fortran. But when it's time to parse some results, I hack together a Ruby program. That program is going to be mostly I/O bound anyhow, so C won't be much faster, and even if it were, I'm just going to go on to some other aspect of the problem while waiting on the parsed results. Or have a break. Or think about the problem I'm trying to solve, rather than wasting brain energy on how to code something ancillary. This is particularly applicable to one-off programs, where the development time is a substantial portion of the time required to get to an answer.

      I actually have chronic fatigue syndrome (with gradual improvement over the last 15 years), so I really have to actively budget my energy. Part of my success as an engneer (and now as an academic) has come from finding least-effort solutions. When solving a new problem, my first goal is to find a minimal solution that meets the requirements well and correctly. There's always time later to make a faster revision, where optimizations are made based on actual user feedback, rather than just guessing.

    6. Re:A Better Way to Look at That Angle by O('_')O_Bush · · Score: 1

      Maybe gen-E, but at the uni I attended, most CPE/EE courses that are shared material with CS courses were actually two CS courses combined, in both workload and theory. That is, CS majors cover in two semesters what the CPE/EE's did in one. I started as a CS and switched to CPE, and the difference was staggering.

      This is for good reason though. While you can learn numerous design patterns and algorithms fairly quickly (the icing on the CS cake), it's difficult to cover a whole branch of circuit design, signal processing, and electronics in the same amount of time. This is reflected in the number of credits required for each, 120 credits of classes for CS vs 132 credits of classes for CPE/EE, and typically the latter had more dense material and workload.

      That being said, the discrepancy you saw probably stemmed from novice programmers wanting to get into CS to be "game designers", "web programmers", and the like, rather than wanting to do something else and learning programming as an accessory. If programming isn't your primary focus, it'd be no surprise that you'd probably not have much experience doing it.

      --
      while(1) attack(People.Sandy);
    7. Re:A Better Way to Look at That Angle by luke923 · · Score: 0

      When you're a CS major, your learning should never stop or you will be quickly unemployed.

      As a contractor, that's seems moreso. The funny part about all this is that I normally don't take a contract unless I can grow while doing it. I really think CS is for people who more want to be on the cutting edge for much longer than the average bear. It's like surfing -- gotta get in front of that wave, or get gobbled up by the coming tide.

      --
      "Good, Fast, Cheap: Pick any two" -- RFC 1925
    8. Re:A Better Way to Look at That Angle by Anonymous Coward · · Score: 0

      University is there to teach you the boring stuff you otherwise would skip because you consider it as not important. The rest should come naturally.

    9. Re:A Better Way to Look at That Angle by elastic_collision · · Score: 1

      Depends on the industry, I think. Embedded stuff puts more emphasis on performance, so you can't just get away with "it works". If you're lucky, that'll be the minimum requirement. Often times not.

  23. I nominate the above post ... by Anonymous Coward · · Score: 0

    I nominate the above post to the "Two Bit Opinion of the Year' award.

  24. Wht do a CS degree? by petes_PoV · · Score: 1

    For a lot of people the answer is because no other course will take them - or the entry requirements for the course they DO want is too high. Most universities don't have a great deal of competition for CS places, so they're willing to take pretty much anyone who can spell compooter. It's no longer the calling or aspiration it was 20 or 30 years ago. These days, for most (not all. most. Not you: most. Most CS types haven't even heard of slashdot. You are not the norm) graduates, a CS qualification is merely an entry into a lowish level support job.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    1. Re:Wht do a CS degree? by HereIAmJH · · Score: 2

      I'd be willing to bet they are channeled into college by their parents and advisers so they can have a 'better life'. The myth is still out there that IT is a high paying white collar job. In some cases that is true, you get professional pay and professional respect. In a lot of cases though, you are a salary exempt pager slave. Those patches aren't going to install themself, son.

      Ironically, good plumbers can earn $70k, go into business for themselves with a few $k in tools and a pickup truck. All of which they can purchase with the money they'll save going to a VoTech school instead of college. They may have to spend as much time learning their craft, but most of it will be working under a master craftsman. Earn while you learn. And no fear of being outsourced.

      --
      Another day, another update to a Google android app.
    2. Re:Wht do a CS degree? by timeOday · · Score: 1
      I think you guys are getting too caught up in negativity. A CS degree is still valuable:

      Majors in the engineering field dominated the association's list of top-paying degrees for the class of 2011, with four of the top five spots going to engineering majors... Chemical engineers were offered the highest starting salaries this year -- an average of $66,886. Mechanical engineers received salary offers averaging $60,739... The only non-engineering major among the top five was computer science, which earned graduating students average starting salary offers of $63,017.

    3. Re:Wht do a CS degree? by Black+Parrot · · Score: 1

      For a lot of people the answer is because no other course will take them - or the entry requirements for the course they DO want is too high. Most universities don't have a great deal of competition for CS places, so they're willing to take pretty much anyone who can spell compooter.

      Where are you getting these "facts"? CS programs still face *dreadfully* high attrition in the CS I classes.

      It's no longer the calling or aspiration it was 20 or 30 years ago. These days, for most (not all. most. Not you: most. Most CS types haven't even heard of slashdot. You are not the norm) graduates, a CS qualification is merely an entry into a lowish level support job.

      I've actually spoken to CS classes, and asked whether they read various Web sites, including Slashdot. In lower-division classes I find 50-80% are familiar with Slashdot, in upper-division it's always near 100%.

      --
      Sheesh, evil *and* a jerk. -- Jade
  25. Re:Reading, counting to 100 and other difficult ta by TheRaven64 · · Score: 1

    What next, CS students get slack for not knowing how to read and write, addition and multiplication, and all the other skills you're expected to have when entering a high-level field of study?

    Good example. If someone came to university without being able to read or write, then they'd fail quickly. There would then be two questions asked:

    1. How was the person admitted in the first place?
    2. How did their school manage to fail to teach them these skills?

    The second question is more relevant. You wouldn't expect someone to undergo 13 years of education and not be able to read or write. It is, however, entirely possible for pupils to avoid ever being taught to program in this time. So easy, in fact, that most do it without trying. I was lucky - my school had introduction to programming lessons when I was 7, and enough books in the library for me to teach at least most of the rest to myself. I got to university having been programming for a decade, and already familiar with about a dozen programming languages, yet many of the people arriving at the same time had either never programmed before, or had only started within the last two years at school (and most of these had been taught spectacularly badly - imagine being taught English by someone who never read books outside of class time).

    The headmaster at a school where my mother taught said (about 15 years ago), that we were headed for a two-tier society, comprised of people who used computers and people who programmed computers. Frank Herbert wrote about this even earlier, saying that the people who allowed computers to do their thinking for them ended up controlled by the people who programmed the computers[1]. Programming, at least at some level, is a fundamental life skill. Even a secretarial job requires writing macros to be done efficiently. A school that fails to teach programming to children shortly after they learn to read and write is doing them a massive disservice.

    [1] His son somehow interpreted this as 'evil robots took over the world'

    --
    I am TheRaven on Soylent News
  26. A Valuable Lesson? by Nukedoom · · Score: 1

    In high school, the only physics class I had was taught by a guy who failed the test required to teach the class twice. They didn't offer AP Physics or Physics Honors at my school. He was the only teacher for that course, though he was originally a chemistry teacher and a bad one at that--apparently my school is laying him off in a couple weeks, because he can't teach chemistry either.

    So, I wasn't prepared at all when I went to UC Berkeley and tried to do the first physics course in the major series. I had fallen so far behind in trying to learn the basics, that when it came down to the first midterm, I completely funked it.

    Mind you, I graduated high school with a 4.2 GPA overall and the lowest grade I got during my four years of study was a B+ in AP Calculus.

    I can't honestly blame all of my failure on the school (I could've studied a physics course in a nearby community college), but I feel like in someways I've been let down by both my high school and university.

    At the same time, however fucked up my situation was, I knew that it wouldn't simply fix itself no matter how much I bitched about it--failing made me push myself harder than I've ever been pushed in my life. That's why I changed the class to a P/NP grade and I'm doing it again over the summer.

    Moral of the story? Yea, I could've been better prepared and it would've helped if my high school or university had a program to prepare me, but just because I flunked once, doesn't mean I'm never going to walk again. Maybe there's something larger to be learned from a system that is bound to fail some kids, like learning to not pussy out when the going gets rough.

    1. Re:A Valuable Lesson? by vlm · · Score: 1

      but just because I flunked once, doesn't mean I'm never going to walk again. Maybe there's something larger to be learned from a system that is bound to fail some kids, like learning to not pussy out when the going gets rough.

      How would that fit in with the modern near-omnipresent educational philosophy of "everyone gets a participation trophy" and social promotion and all that other social engineering stuff?

      I can not think of many inherent positive attributes of sports in school, but when all OTHER areas of K-12 education have removed the option of failure, school sports might be the only time K-12 students are taught how to face failure.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  27. It is GOOD they won't be ready. by houghi · · Score: 3, Insightful

    This is not about "No student left behind". This is not about "People must be able to get the degree". This is about setting a standard and if you get that standard, you pass and if not, you fail.

    Sure it is almost impossible for people without the proper knowledge to pass. That is the whole point of it all. To see who is ready and who is not. Some will pass and some will fail.

    People who are better prepared will have it a lot easier then those who are not. News at 11.

    --
    Don't fight for your country, if your country does not fight for you.
    1. Re:It is GOOD they won't be ready. by the+eric+conspiracy · · Score: 1

      People going into STEM degree programs should have a strong interest and aptitude in the subject material, and have already done significant coursework in the area in secondary school. AP courses, lots of math, investigations and reading on their own time. Weed out courses like introductory college physics, thermo and organic chem are their to filter out those whose who would be wasting both their and their professor's time.

      If all this didn't happen the degrees granted would be meaningless.

    2. Re:It is GOOD they won't be ready. by syousef · · Score: 3, Insightful

      Funny, I thought the course was suppose to help you learn the material, not assume you'd already learnt it and fail you if you haven't. Silly me.

      --
      These posts express my own personal views, not those of my employer
    3. Re:It is GOOD they won't be ready. by Anonymous Coward · · Score: 0

      Is the university there to teach people or to fail people? The reason for taking a course is to teach people the material - if people are failing because the instruction is bad, that is different from watering things down until anyone can pas it. (Though an excellent teacher can make challenging material seem easy, which is, exacty what they are paid to do.)

    4. Re:It is GOOD they won't be ready. by Anonymous Coward · · Score: 0

      Funny, I thought the course was suppose to help you learn the material, not assume you'd already learnt it and fail you if you haven't. Silly me.

      Agreed. Why am I dropping $1000 on a course that simply expects me to already know the material? If that were the case, why the heck would I take the course?

    5. Re:It is GOOD they won't be ready. by Anonymous Coward · · Score: 0

      You're either a troll or you fail at reading! You only known if have passed or not when you do the final exam(Or project, or whatever) of each course, if you fail even after you've been exposed to more than enough material to pass it is only your fault.

      The point of universities is not to get everyone with a degree but give a degree to those who have shown to know a bare minimum about the field they're getting a degree of.

    6. Re:It is GOOD they won't be ready. by Anonymous Coward · · Score: 0

      Hmm?

      Someone compared it to music. Well, we have undergrad and grad courses on music in Brazil. It doesn't work the same way (with majors and minors), more like you only have ONE major, which is the main theme of the course. Music takes three-five years to undergrad, and two more to graduate... about the same as any engineering. Being very proficient at playing one musical instrument, and a solid knowledge of basic music theory is a prerequisite to be accepted in the undergrad school. It is that simple. If you don't know that much, you need to learn it BEFORE you can take the undergrad course: nobody expects you to learn a musical instrument and enough music theory (which includes realtime reading of music notation) in MU101, it is pretty much impossible... it takes at least two years of hard work (or a genius) -- we're talking classic guitar, violin, flute, orchestra-level drums, the piano. We're not talking "chord-based guitar or rabecca playing").

      The difference is that nobody even tries to join an undergrad/grad music school without knowing how to play music (and play it *well*) first. While people who never even tried to understand how a computer works expect to join a CS school.

    7. Re:It is GOOD they won't be ready. by Eli+Gottlieb · · Score: 1

      Well that's the issue of weed-out courses all over again, isn't it? They serve two masters: weeding out the unready like an exam, and teaching the ready like a course.

    8. Re:It is GOOD they won't be ready. by Anonymous Coward · · Score: 0

      Funny, I thought the course was suppose to help you learn the material, not assume you'd already learnt it and fail you if you haven't. Silly me.

      That IS silly of you. The course is there to do two things: Present a standard set of information, and assign a grade indicating how well you were able to perform the task of learning that material. The learning itself is completely on YOU... this isn't high school. If the course is not helping you out enough, it's up to YOU to go and find the additional time, resources, etc.

      Your attitude is why your generation really ought to be called the "Entitlement Generation".

    9. Re:It is GOOD they won't be ready. by Black+Parrot · · Score: 1

      This is not about "No student left behind". This is not about "People must be able to get the degree". This is about setting a standard and if you get that standard, you pass and if not, you fail.

      Yeah, but you aren't expected to have mastered the degree before you start.

      The purpose of the early classes in CS - or any other major - should be to ensure that the people who want to study the subject and have the basic aptitude for it, are taught the foundations.

      Sure, in CS - or any other major - some students will be way ahead of others on Day One. So you need remedial classes for the noobz and/or a mechanism for the more experienced to skip a class or two. But you can't require people to enter their freshman year with the knowledge and skills of a sophomore.

      --
      Sheesh, evil *and* a jerk. -- Jade
    10. Re:It is GOOD they won't be ready. by syousef · · Score: 1

      The point of universities is not to get everyone with a degree but give a degree to those who have shown to know a bare minimum about the field they're getting a degree of.

      Why the fuck are you posting as AC? I know, because you're trolling. (I've removed your crappy ad hominem attack).

      YOU are the one that fails reading. The course has to teach it before it can test it. Clearly teaching at a rate that can only be grasped by those that already know the material hardly qualifies as teaching at all.

      --
      These posts express my own personal views, not those of my employer
    11. Re:It is GOOD they won't be ready. by syousef · · Score: 1

      Being very proficient at playing one musical instrument, and a solid knowledge of basic music theory is a prerequisite to be accepted in the undergrad school. It is that simple. If you don't know that much, you need to learn it BEFORE you can take the undergrad course: nobody expects you to learn a musical instrument and enough music theory (which includes realtime reading of music notation) in MU101,

      Another fool posting as AC for no reason.

      If it's a publicly stated pre-requisit (possibly even examined beforehand) it is not the same as a course the promises to teach you a profession from scratch (like most undergrad degrees). Performance arts have always been competitive and required prior work and so they are different to vocational or academic courses.

      --
      These posts express my own personal views, not those of my employer
    12. Re:It is GOOD they won't be ready. by jonescb · · Score: 1

      You're right, but computers are so common these days that anyone thinking about majoring in CS can easily teach themselves the basics just by doing tutorials online and asking questions on sites like StackOverflow. CS isn't like doing Chemistry which requires a bunch of expensive, specialized equipment. Everyone has the resources to put Visual Studio Express, Python, or Linux on their machine and mess around. They may not get all the theory, but they'll at least know the basics. If you're not interested in CS enough to type a measly "print 'Hello World'" into a .py file before declaring your major then maybe CS isn't for you.

  28. Speaking of Absurdity... by Fantom42 · · Score: 1

    Maybe it is absurd to be a music performance major if you are coming out of high school not knowing how to play an instrument. See where I am going with this?

    1. Re:Speaking of Absurdity... by canajin56 · · Score: 2

      "But that punishes those students who didn't have the resources to practice music on their own! Instruments are expensive! THIS IS CLASS WARFARE!"

      --
      ASCII stupid question, get a stupid ANSI
  29. Crappiest analogies ever by andsens · · Score: 1

    "[...] who argues the up-or-out, one-size-fits-all rigid pace approach to learning set by teachers and administrators is as absurd as telling a toddler, 'You have ten weeks to walk'" " I believe that expecting a student to learn to program well enough to study Computer Science in a single 15-week course is almost as absurd as expecting a student with no instrumental musical experience to be ready to join the university orchestra after 15 weeks" Jesus Christ, how long did it take them to make up those analogies?!?! They seriously suck! Yes of course. Lets give every CS student as much attention as a toddler, that sounds practical. We can have individual courses for every single student. And yes, joining the university orchestra is entirely on par with being expected to program well, WTF? 15 weeks is a _lot_ of time to learn the basics in programming. Come on, they are not expected to be able to design they most beautiful architectures or code extremely efficient. This sounds like a lot of exaggeration. Oh and he mentions BlueJ. Why the hell are they not using that already? I mean, *duh, of course BlueJ/Greenfoot is the best way to learn OO, you cannot teach a CS introductory course without a tool like that.

  30. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    Yeah, used to be you had to know how to plant evidence and beat people. Now if you know one or the other, you're hired, and you can learn the other on the job.

  31. Hearkens back to when kids were prepared by sarlos · · Score: 1

    The way university curriculum is set up, at least in the hard sciences and engineering paths, expects that those who enroll in those programs have done some legwork on their own and are actually interested in the material. I don't think anything needs to change. As it is, college is already becoming a forum to teach kids what they should have learned in High School but didn't. Less reliance on college for kids who really don't need it is the answer, not dumbing down the curriculum. I dare say much of the folks who enroll in college would be better off at a trade school or two-year tech school.

    --
    Government's view of the economy: If it moves, tax it. If it keeps moving,regulate it. If it stops moving, subsidize it.
    1. Re:Hearkens back to when kids were prepared by vlm · · Score: 1

      I dare say much of the folks who enroll in college would be better off at a trade school or two-year tech school.

      Talk to them about what they want, and they demand training, and make fun of education. To some extent the administrators cater to them. For cultural reasons we'll never get rid of the idea of paying six figures for a 4 year degree between ages of 18 and 22, HOWEVER also note that McDonalds Hamburger U is the future of modern education, not an anomaly.

      I expect that very soon, "Universities" and "Colleges" will start offering four year $150000 BA / BS degrees in plumbing, welding, drafting, and other traditional "votech school" programs. Dorm buildings not full of architecture students, but bachelor in science of carpentry students... As a general rule, if it involves taking money from or otherwise destroying the middle class, that's the way the country goes, so it seems an inevitable outcome?

      I'm not entirely certain this would be bad, of all votech programs you'd think carpenters would be the most familiar with geometry and trig, yet I've heard some real whoppers from carpentry friends, mostly along the lines of "we'll just have to build it and see if it fits" or "there's no way to figure that out, other than building a model or making a diagram using rulers".

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:Hearkens back to when kids were prepared by erockett · · Score: 1

      I observed this in my design major as well – students who read online about their topic and spent a lot of extra time learning the material not only came in better prepared to absorb the material but also came out ahead at the end. The classes certainly improved everybody, but it became clear that independent learning was at least as helpful as the class instruction. One girl I knew came in expecting to be hand-taught everything she needed to know, with no prior experience, and she was consistently one of the worst students in our year –despite dedication to all her classwork. She was clearly aware of what happened and was trying, but didn't get enough guidance from the teachers. I know I struggled with incorrect expectations some as well, though at least I came in with some prior knowledge.

  32. Just like Math, Literature ... by vlm · · Score: 1

    I believe that expecting a student to learn to program well enough to study Computer Science in a single 15-week course is almost as absurd as expecting a student with no instrumental musical experience to be ready to join the university orchestra after 15 weeks.'

    I believe that expecting a student to learn to program well enough to study Computer Science in a single 15-week course is almost as absurd as expecting a student with no arithmetic experience to be ready to earn a Fields Medal after 15 weeks.

    All the guy is really saying is the intro work MUST be done before university. Just like you cannot expect to graduate on-time with a degree in math if you enter uni not knowing how to count to 5 (athletic scholarship, have enough money, etc) then you cannot expect to graduate with a CS degree on time if you have never touched a keyboard before your first freshman class.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    1. Re:Just like Math, Literature ... by Anonymous Coward · · Score: 0

      It is rudimentary to learn programming, if you want to.

      I learned programming by going to the *library* when I was 12 and picking up a few books and failing to understand them primarily because they were written for University level. Then I picked up C for Dummies volume 1&2 - yes, at the library. The book was easy to understand and I picked up elementary programming within a few weeks.

      Borland Turbo C 2.0 on a 386 25MHz, at the time.

      If someone says today people have no "resources" to pick up basic programming before entering University, they are deluding themselves. Today, you can get a new computer for $250 and complete, free world-class development tools like GCC. Then a trip to local library gets you all the basics you ever want.

  33. What part of higher academic education is straight by unity100 · · Score: 1

    anyway ? if you delve into specifics, you will see that current higher education is not too changed from its roots in spirit back from its start in 13th century.

  34. Wrong by Anonymous Coward · · Score: 0

    The intro courses are designed that way to weed out students who can't cut it. If you can't pick up intro programming in 15 weeks, then there's no way you'll make it through operating systems, data mining, statistical machine learning, etc. What is truly absurd is that this professor thinks that someone who requires more than 15 weeks to learn basic programming would suddenly be able to learn the more advanced concepts in under 15 weeks.

  35. Except they are allowed to try again by Anonymous Coward · · Score: 0

    They can take the course again.

    But as others have pointed out, a significant part of the problem is poor preparation in school *before* university. I struggle every year with the choice between lowering standards and trying to teach students basic high-school math. It's frustrating. Why should I be teaching students trigonometry, for example? It's not that I can't teach it. It's not that I'm unwilling to help. Goodness knows I have spent time with students to help them with that basic stuff after class time. But it's not what I'm supposed to be doing at university level in class. They're supposed to already know it. And so on: composing basic English sentences and paragraphs, solving simple algebraic expressions, basic scientific principles. I can't fix all that in a single course, let alone one on a completely different subject. The best I can do is recommend they take remedial courses.

    Fact is, the students facing the most serious challenges in these introductory courses have difficulties because they have been crippled by poor teaching earlier in their career. And in the case of computer programming, they often haven't been exposed to the subject at all. They may know about computers, but nothing about programming. The author of the article dances around the issue of pre-university education, but he's right: it takes a longer-term commitment to do programming well, and the implication is obvious. Students should be told that if they are interested in computer science in university they should be doing it in high school, and public school programs should think about "university preparation"-style course programs like there are for math and other sciences. The problem he's describing is real, but the solution isn't in the university unless you propose a "pre-intro" course that isn't a requirement, but will give students another term or two of "remedial programming" practice before jumping into the big pool. Call it "CS0". Many universities have "pre-calculus" courses for students who didn't get enough math in high school to face calculus with a decent chance of success. Why not for computer programming?

  36. Are they starting with easy stuff visual basic? or by Joe+The+Dragon · · Score: 0

    Are they starting with easy stuff visual basic? or are they teaching more of a theory of codeing at the start?

    Ken Silverman's made the build engine but sucked at school when he started it so he dropped out and did codeing / game makeing work for some time before going back to school.

  37. don't let them join the course in the first place by darkeye · · Score: 1

    the simple solution is:

    create a clear set of acceptance criteria for students, which reflects the required background knowledge to complete the courses

    don't let students with no required prior knowledge enter the CS course. and then you don't have dropouts.

    for these students, organize preparation courses, etc.

  38. and the solution is...? by darkeye · · Score: 1

    with all the complaining in the article - is there a viable solution suggested? like, "let them pass, even if they don't know enough" doesn't sound like an idea that would solve anything...

  39. This! by DeadCatX2 · · Score: 4, Interesting

    Thisthisthisthis!

    I tutored programming when I was an undergrad. They call those "weed out courses" for a reason. Some folks are just not capable of CS. I had to tutor one kid who could not understand arguments and function calls. I spent over an hour trying to explain it to him with five different analogies and sketches on a chalk board and lots of emphatic hand-gestures, and yet he had absolutely no clue how to read

    int multiply(int x, int y)
    {
        return x * y;
    }

    Some people just don't cut it, even as code monkeys. And universities shouldn't be flooding the job market by giving idiots a degree.

    --
    :(){ :|:& };:
    1. Re:This! by Kozz · · Score: 2

      Interestingly, it's possible that this individual may have been a perfect fit with functional programming -- something I've only read about, but seems confusing to me (despite all my years of mathematics courses).

      --
      I only post comments when someone on the internet is wrong.
    2. Re:This! by sydneyfong · · Score: 1

      That thing posted by OP is equivalent to

      f(x,y) = x * y

      in functional languages. Suppose he really used an hour and five analogies (which I presume involved an analogy with mathematical functions), I can't see the perfect fit.

      I too, never got functional programming. Most real world problems that I'm interested in are too I/O intensive, and when I come across problems that are well solved by functional languages, I can still use python/ruby/etc as a poor but acceptable substitute.

      --
      Don't quote me on this.
    3. Re:This! by Blakey+Rat · · Score: 0

      Because it's not about expanding a student's mind and teaching them new skills, it's all about THEY'RE STEALING OUR JERBS!!!

      Nah, that's harsh on your post, but it does bug me how whenever these topics come up, the topic always turns towards "we don't want our jobs to lose value!"

      Well, you know what, tough shit-- I'm sure the thousands of employees made redundant by computers in the first place felt the same way. In fact, I'd go as far to say it's extremely hypocritical for a computer programmer to argue in favor of artificially increasing their worth.

      (And, seriously, if your company hires people based solely on degrees-- then you have a *lot* of incompetent programmers. And accountants. And managers. Because that's rock-stupid.)

    4. Re:This! by NoSig · · Score: 1

      If you go for it all-out, functional programming will seem totally alien to you for a little while. The reason for that is that you need to relearn your vocabulary of small structures such as loops and how to change state. At some point you'll wake up and realize that once you can do the small stuff in functional programming, it's actually exactly the same as any other kind of programming at a higher level. The set of limitations and possibilities are just a little different. The main initial stumbling block to functional programming is this: you can't change variables (or anything), but you can call a function with different parameters (with x=3 instead of x=2) and that achieves the same thing. The call stack isn't limited by stack space and tail recursion is used so that you don't get in trouble with nesting function calls very deep.

    5. Re:This! by Anonymous Coward · · Score: 0

      or (\lambda xyz.x(yz)) in lambda calculus....

    6. Re:This! by phantomfive · · Score: 1

      To be honest, that's actually a fairly complicated piece of code. There are a lot of things you have to understand before you can ever get to the point of understanding that function.

      You have to understand variables.
      You have to understand assignment.
      You have to understand passing variables in
      You have to understand returning stuff.

      I'm going to bet that your guy failed the basic understanding of variables as containers, and you didn't diagnose that and instead were trying to teach him more advanced concepts. That's why he couldn't understand it, no matter how good your analogies were. He just didn't have the basic knowledge necessary to understand more advanced knowledge.

      --
      "First they came for the slanderers and i said nothing."
    7. Re:This! by kwerle · · Score: 1

      To be honest, that's actually a fairly complicated piece of code. There are a lot of things you have to understand before you can ever get to the point of understanding that function...

      No it isn't. And that's part of the point, isn't it?

      You have to understand variables.
      You have to understand assignment.
      You have to understand passing variables in
      You have to understand returning stuff.

      All of which is Algebra 1, or maybe 2, with the possible exception of passing variables. But even that should not be a stretch.

      And that's all there is to it. CS1 should be very doable if you have mastered basic algebra. If you have not mastered basic algebra, I would question your presence in a university - let alone a CS class for majors.

    8. Re:This! by phantomfive · · Score: 1

      See, you are a clear example of someone who doesn't get it. Have you never talked to a beginning programmer in your life? Have you not noticed that the way they think of variables in math is completely different than the way they think of variables in programming? Programming variables are containers, and math variables are constants. If you don't realize they are different, you will have trouble teaching people how to program.

      --
      "First they came for the slanderers and i said nothing."
    9. Re:This! by kwerle · · Score: 1

      See, you are a clear example of someone who doesn't get it. Have you never talked to a beginning programmer in your life? Have you not noticed that the way they think of variables in math is completely different than the way they think of variables in programming? Programming variables are containers, and math variables are constants. If you don't realize they are different, you will have trouble teaching people how to program.

      Not only is that not true, it's also sometimes not true.

      f(x, y) = x^2 + 2y + 3
      or
      z = x^2 + 2y + 3

      Is that math or programming? Hard to tell? That's because it's hard to tell. That's math. Algebra. And/or maybe some geometry, trig, whatever. If you can't take a math problem that is "solve for x" and see the next math problem that is also "solve for x" and start to get the notion of a variable, then you just don't belong. Every graph has the notion of variables that are used for every point of the graph.

      As to it also sometimes being not true: you need to do some functional programming. The "Seven Languages in Seven Weeks" http://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X book isn't a bad one. In some languages, variables simply are not variable.

    10. Re:This! by phantomfive · · Score: 1

      OK, I can see you're set in your ways, convinced you are right, and it appears you believe you are right based on things you've read, not by actually talking to people to see how they perceive math.

      There is a difference between the way people, and by 'people' I mean beginning programmers, not those who've already mastered functional programming like you. Go talk to some people, you'll see.

      Furthermore, there's a difference in the way YOU think of math and programming too.

      This equation: z = x^2 + 2y + 3 means two different things, depending on whether it is math or programming. In math, it is expressing a relationship between the variables that is true for all (valid) values of x,y, and z. You're expressing the entire solution set. In programming, it's an assignment statement. If you try to think of it as an entire solution set, you'll just get confused. It means take the values stored in x and y, do some math, and store the resulting number in z. These are single values at a single point in time.

      It becomes even more obvious with an equation like this: x = x+1 which clearly has no real solution in algebra. There is a reason some language designers prefer the token := for assignment instead of =. It's because they have different meaning.

      --
      "First they came for the slanderers and i said nothing."
    11. Re:This! by phantomfive · · Score: 1

      By the way, that seven languages book looks really interesting. Have you read it? Does it really fulfill its promise to teach you seven languages in seven weeks?

      --
      "First they came for the slanderers and i said nothing."
    12. Re:This! by kwerle · · Score: 1

      I disagree on several points, but mostly I think it isn't a very big leap from the differences of iterating over word problems to iterating over variable assignments. Even more so as the math gets (just a little) more advanced:
      Sigma(x -> 1..100) f(x) = ...

      And I think if you can't make that leap in a 15 week course, then you'd (and we all) would be better off if you lept in another direction.

    13. Re:This! by kwerle · · Score: 1

      By the way, that seven languages book looks really interesting. Have you read it? Does it really fulfill its promise to teach you seven languages in seven weeks?

      I did the book a little different - in a group of 4 over the span of several months. We did a chapter a month. Some of them were not strong programmers (recursion was a difficult concept). But they were reasonably strong at math, so it wasn't a huge leap...

      It was an interesting experience in several respects: interesting to see the programming strength of several folks who did (or did not) refer to themselves as professional programmers. The book itself is not bad. I use one of the languages professionally (Ruby) and have done an overview course that included another (Prolog), and have had varying exposure to others, from none to some (via lisp). I would not say I came out of it "knowing" the 7 languages, but it certainly gives you a taste of them. Kind of like ordering a flight of beers. You'll get a good notion of whether or not you'd be willing to drink a pint, but even if you don't care for it, you'll probably be able to choke down a taste of something icky.

      I did not complete the last chapter: Haskell Monads. It *was* too icky. I felt it was the weakest chapter (and he more or less introduced it that way). Mostly, though, there are other functional languages I liked so much better that I didn't feel I was really missing anything.

    14. Re:This! by phantomfive · · Score: 1
      It could just be a commentary on the sad state of math education in America that many people don't quite understand what they are doing when they put algebra puzzles together. For that is how they think of it, like putting a puzzle together, lacking understanding. In their defense, I had trouble understanding it as well, until I took a physics course and saw how it could be applied and used. Too bad physics isn't required.

      And I think if you can't make that leap in a 15 week course, then you'd (and we all) would be better off if you lept in another direction.

      Indeed, however, often this is a problem with the teacher, and not with the student.

      I don't really care since I no longer teach programming. But if someone were to ask me, that's what I'd say.

      --
      "First they came for the slanderers and i said nothing."
    15. Re:This! by Anonymous Coward · · Score: 0

      Functional programming is what you do in a spreadsheet. I'd think most people out there can easily get a feel for how to use a spreadsheet with simple calculations in it. That's precisely how functional programming works, monads excluded.

    16. Re:This! by ShakaUVM · · Score: 1

      >>Some folks are just not capable of CS.

      My roommate absolutely could not get it (programming, that is). I was an undergraduate TA for an intro computer science class (CSE12 - second quarter CS) for a couple quarters at UC San Diego. Despite his attendance in class, and extensive sit-down time with him helping every step along the way, he failed the course two quarters in a row. It was like a mental block was preventing him from understanding programming. (Despite me failing him, we're still friends.)

      Fast forward a few years, he retakes it and suddenly everything makes sense to him and he did swimmingly well. He went on to become an AP Computer Science instructor at a high school. I'm not sure what changed in the interim, but it does mean there is hope.

      That said, from a CS department point of view, I could generally tell who'd be successful in the program just by asking the incoming freshman who had tried programming or modding in their free time before. Not because of the experience, but because of the mindset.

    17. Re:This! by tibit · · Score: 1

      Oh boy. Just because two dogs are named the same doesn't mean they are the same dog.

      Variables in algebra have nothing to do with variables in programming languages. In algebra, variables are syntactic sugar. They are used when we don't want to use fixed values. Such variables have no temporal aspect, they encompass the whole problem, there is no notion of them changing value, and there's no notion of any sort of storage being associated with them. A variable in algebra denotes a particular but perhaps unknown yet member of a particular set (of numbers, vectors, matrices, etc). It's something that comes up relatively naturally as you teach algebra. First you do everything with set numbers, and eventually you can do without set numbers once there is enough understanding of how numbers interact in algebraic expressions.

      In imperative programming, a variable is a symbol denoting a storage element of some sort. The storage element is stateful, there's a temporal aspect to it -- its state evolves in time. Suddenly a variable can take on different values at different points in time, and other variables' values may depend on it not only algebraically but also sequentially. That's why compiler writing is hard: such imperative variables are very hard to deal with in general. Explaining all of their intricacies to a demanding student is almost like doing an impromptu compiler writing tutorial.

      In algebra, when you write x = y and claim it as a true statement, it means just that symbols x and y can be used interchangeably. In imperative programming, it means no such thing of course. If = denotes assignment, then x=y means that at a particular point in time (perhaps a recurring one, too!) value stored in y is copied over to x. If = denotes equality, then x=y means a boolean expression whose value is true if the values stored in x and y are somehow equal, again -- at a particular point in time.

      The notions of assignment, passing and returning are equivalent, the latter are syntactic sugar for the former, but assignment by itself is hard because it exposes the temporal nature of imperative variables.

      Side nitpick: since this is an international site, it'd help if one wouldn't use very localized terms such as "Algebra 1". I went to elementary and high school where we didn't assign any such names to subjects. All of this material was taught under the subject of Mathematics, and I don't think we used the word algebra much if at all. I vaguely remember hearing "algebraic equations", but that's perhaps it. The first time I really heard it used to denote a subject was in college, when we had a course named Linear Algebra. We never had a stand-alone "algebra" course ever. Even in countries where you assign such names, it's not exactly obvious how the material would be split across courses. So Algebra I to you may well be something very different than Algebra I to someone else. Heck, students often speak in shorthand, and in college we dropped the word Linear from Linear Algebra. You'd hear physics undergrads going "how was your algebra" when they would speak of Linear Algebra.

      --
      A successful API design takes a mixture of software design and pedagogy.
    18. Re:This! by kwerle · · Score: 1

      ...

      Variables in algebra have nothing to do with variables in programming languages. In algebra, variables are syntactic sugar. They are used when we don't want to use fixed values. Such variables have no temporal aspect, they encompass the whole problem, there is no notion of them changing value, and there's no notion of any sort of storage being associated with them. A variable in algebra denotes a particular but perhaps unknown yet member of a particular set (of numbers, vectors, matrices, etc).

      Really?
      As I said in another post:
      Sigma (x: 1..100) f(x) = ...

      It's something that comes up relatively naturally as you teach algebra. First you do everything with set numbers, and eventually you can do without set numbers once there is enough understanding of how numbers interact in algebraic expressions.

      So:
      puts "Hello World"
      then later
      s = "World"
      puts "Hello " + s

      In imperative programming, a variable is a symbol denoting a storage element of some sort. The storage element is stateful, there's a temporal aspect to it -- its state evolves in time. Suddenly a variable can take on different values at different points in time, and other variables' values may depend on it not only algebraically but also sequentially...

      Look, I'm not saying it is identical, but I'm am saying the concepts are not a huge leap. I am saying that if you can't make that leap, then you're probably better off pursuing something else. State is a big concept, but if you've mastered some algebra and geometry it really shouldn't be a hard one. Performing matrix transformations, solving algebraic problems, heck - any non-associative math is a good example of state; all these things should provide a basic grounding that would let a student conquer an intro CS course.

      In algebra, when you write x = y and claim it as a true statement, it means just that symbols x and y can be used interchangeably. In imperative programming, it means no such thing of course. If = denotes assignment, then x=y means that at a particular point in time (perhaps a recurring one, too!) value stored in y is copied over to x. If = denotes equality, then x=y means a boolean expression whose value is true if the values stored in x and y are somehow equal, again -- at a particular point in time.

      I'm thinking I would avoid saying 'point in time' and go with 'for a given scope'. And I'd avoid re-using variables within scopes, which is just good practice, anyway. Once you have the concept of scope and the notion of variables being passed into that scope, then it feels a lot more like algebra.

      int multiply(int x, int y)
      {
              return x * y;
      }

      f(x,y) = x * y

      How is that not a function? How is that not algebra? If you can understand the algebra and not the code, then I'm thinking this is a mountain you should not continue trying to climb.

    19. Re:This! by Sarten-X · · Score: 1

      There's more to it than that, even.

      I'd argue that the most important (and often-missed) concept for an introductory programming course is understanding program flow. If I ever were to teach an introductory course, this would be my first example:

      PRINT "Cats"
      PRINT "run"
      END
      PRINT "quickly"

      Yep, that's good ol' QBASIC. C++ or any such "better" language is not as good a choice, because of the extra braces, includes, and other potential for cargo-cult programming. Every character in this example can be explained easily to someone with no knowledge of programming.

      The example illustrates very plainly that the program starts from the top, and goes down. Certain actions (like ending the program) alter the flow, so further statements don't take effect. Eventually, when branching and loops are introduced, this example would be revisited.

      To explain functions, you simply point out that that name, which you've defined elsewhere, tells the processor to jump elsewhere to follow the next instructions, and later "return" with some result. After that, you point out the similarity to algebra's f(x) notation, and mention the ability for code reuse.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    20. Re:This! by Veretax · · Score: 1

      I also tutored as a Freshman Undergrad. They required all Engineers to learn some basics in C as an introductory course, so there were about 3 or 4 classmates that I tutored. I didn't do the work for them, I tried to help them learn how to think through the problems, and find a solution before they started writing the code. The sad part was our professor was a Civil Engineer, who really had no exposure to C before, and his idea for a Sort Algorithm made my eyes bulge. I coded up three better solutions I knew off the top of my head, and ended up having to present them in class. So I can understand some people's frustration there.

  40. yes it's absurd but consider the purpose by Adayse · · Score: 1

    Schools and Universities have several roles. Partly you go there to learn stuff and be sorted, partly they are holding pens where you are stored while your parents work and partly they hide unemployment by getting the least powerful group in society to pay money to do unwanted work that other people are paid to consume. Do we badly need CS graduates? Giving someone an F and telling them not to come back teaches them a very important lesson.

  41. Not That Hard... by DigitaLunatiC · · Score: 1

    Coming out of high school I was a computer geek with all the street cred but knowledge of programming. I thought computer science would be interesting. I took it. I passed it. I changed majors to it (from chemistry). I don't know about everywhere, but they did a good job of teaching us things in the first few semesters of computer science at Clemson. A lot of the 400 level courses were more along the lines of, "Here's an assignment. Figure it out." I'm pretty sure that's what documentation is for, though.

  42. Alice @ CMU by Anonymous Coward · · Score: 0

    Alice (www.alice.org) is being used at Carnegie Mellon for some time to teach basic programming skills to non-majors in Computer Science, with very good results. Alice was initially developed by late Randy Pausch. It is a 3D virtual world where students have the chance to visualize basic computer science concepts. It provides a very smooth, seemless transition from a blocks-based, drag-and-drop syntax-free kind of programing into a fully fledged Java environment (integration with NetBeans). I had the chance to follow one of these courses in this last semester at CMU, and I was really impressed with the progress of students throughout the semester.

  43. My anecdote disagrees by stewbacca · · Score: 1

    My wife is a non-traditional CS major (she has a Masters degree already, has real-world experience, children, and in her 40s). She is a CS major and had never typed one character of code before this past semester. She was the best student in the class. Sink or Swim is an efficient way to weed out those who don't have the discipline to come to class, or the capacity to grasp computer logic (I'm in that group).

    as almost as absurd as expecting a student with no instrumental musical experience to be ready to join the university orchestra after 15 weeks.

    There is no such expectations at the University of Texas from its CS majors. My wife was expected to go to class, learn the material, and then move on to the next class. She'll be ready for the "orchestra" in a couple of years, not after one semester, and nobody expects her to. What they did expect, however, was that the students in the class grasp the concepts of basic computer logic and the structure of coding in Java. Doesn't seem very unrealistic to me.

    Berklee School of Music is one of the most renowned institutes on the planet, and many of their applicants come to the school with no music experience. A clean slate and no bad habits are sometimes more preferable than trying to teach somebody with expectations and habits that will slow them down.

    1. Re:My anecdote disagrees by jeffporcaro · · Score: 1

      Just a quibble on the Berklee comment - Berklee famously accepts anyone who will pay them - there are no entry barriers other than ability to pay. The music students who come with no musical experience do not last long, do not play in the higher level groups, and do not end up making an impact in the music industry. For this reason, many of us with experience in music education (I'm a graduate of the University of North Texas, so I'm biased) find the statement that "Berklee...is one of the most renowned institutes on the planet" to be - well - inaccurate.

      In fact, one might say that Berklee is a great illustration of the topic of this post, by way of analogy. Because it is a famous (I'll make a distinction vs "renowned"), many talented and experienced musicians do enroll, and they go on to have successful and important careers in music. So the experience the students bring to the college are (at least anecdotally) the primary factor in their success. Much like the programming students.

      Trying to make inexperienced Berklee students play in the orchestra in 15 weeks (or 4 years, for that matter) is ridiculous.

      --
      It is not the doing of things that is difficult. What is difficult is getting in the right mood to do them. ~~ Brancusi
    2. Re:My anecdote disagrees by stewbacca · · Score: 1

      Berklee has produced some of the greatest session drummers on the planet, and the faculty consists of some of the best drummers and guitarists on the planet. UNT is even better than that (Keith Carlock!).

  44. Forget the trees, the forest is burning. by Concern · · Score: 5, Insightful

    Cramming 150 kids into a lecture hall with a "mathematician" who wasn't smart enough for the math department, who has never written software for a living and doesn't natively speak the language of most of his student body, and who disappears at the end of the class, shoving his students towards some grad students when they have questions... Where the "teaching" involves reading pages from a badly written $300 book, and then having exactly two interactions with the class: "Midterm" and "Final..." And where in many schools the dirty little secret is that the curve takes the average "D" or "F" up to a "C..."

    Aside from a few top schools (who do their best filtering with the SAT, or heaven forbid, other parts of the application), this is the reality of undergrad CS (and these in particular are all true stories). I don't see why you'd waste time on the finer points.

    The entire academy in the U.S. is collapsing. Yes, the pipelines for the few moneymaking careers left in society are still somewhat functional (finance, law... medicine, somewhat), but in many other places, the tornado of American societal collapse has passed through. More and more of the marginal schools and departments have essentially opted to become high-gloss degree mills rather than go gently into that good night. The scam is the educational equivalent of shitting where you sleep - only one generation of undergrads is going to get themselves bilked for $200k of student debt for the experience described above, let alone when most of their degrees "prepare" them for a future career lacking any hope of paying it back.

    Computer science is still a white collar job in the West for a little longer, but it lacks a professional trade group giving licenses and setting educational benchmarks. And that leads us to the punch line. The C.S. degree isn't even needed for finding work. Anyone with good code to show from their own efforts, especially success in the open source world, will get a job today, and with a few resume lines no one is looking further down. And that, by the way, is because (aside from those top schools, and often even then), they know a degree is worthless as a predictor of quality.

    I guess you can ignore all this and still decide philosophically whether you think CompSci is like medicine or even like plumbing, where there is some effort to make it difficult and filter out the riff-raff... or it'll stay just another joke degree.

    --
    Tired of Political Trolls? Opt Out!
    1. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 1

      You are partly correct. There are lots of legitimate licenses and certifications available, but it is quite common for bs corporations making up their own bs "educations". Also, because of how common computers are nowadays, there are a lot of exceptionally talented individuals with no formal CS education who are still on the same level. Those people are, of course, outnumbered by the people whom have learnt hacking some Java/C#/vbscript and think they are any good.

      In short, comp sci is good, but you basically have to be good at it yourself to judge the quality of someone elses resume.

    2. Re:Forget the trees, the forest is burning. by wonkavader · · Score: 5, Insightful

      "The C.S. degree isn't even needed for finding work." You are partly correct.

      What you should have said was "A C.S. degree, unless it's from a fairly well regarded program, has nothing to do with you getting hired for a programming job." Any good shop will make you code as part of the interview, and most people from lower-end schools CS programs come out not being able to code at all.

      I would say that it in fact hurts you in your attempt to get a job, but not because people see it and are repelled. The problem is that CS is a job degree. It's not science. It's like going to a technical school and studying wielding or diesel truck repair. It implies that
          a. you were worried about getting a job after college, which implies a lack of self confidence in the first place, which is an indicator (though not a perfect indicator) that you were substandard in the first place.
          b. you spent 4 years in a college or university, where you should have been learning to think and write and popping around subjects learning about the world, and instead you spent the bulk of your classes learning about something which comes easily to people who do well in the field. That wasn't very clever, and points back to item a, and means that in the interview, you're not a very interesting person.

      CS is a white-collar job, and so it's important that the people who do it go to college. Instead, CS grad from lower-tier schools come out with "a college degree" which is only really a third of a college degree.

      You're right that the forest is burning. The problem is that we're trying to turn colleges into vocational schools. They're not. They're supposed to tech you to be a Renaissance man, or at least to be smart and to think and write and know about a lot of things in the world. Vocational schools are different. Primary education is a vocational school. The fact that we're destroying our colleges and universities is directly related to the collapse of our primary education: we're expecting higher ed to pick up the slack, which means that it can't do what it's supposed to do.

    3. Re:Forget the trees, the forest is burning. by IceNinjaNine · · Score: 2

      Cramming 150 kids into a lecture hall with a "mathematician" who wasn't smart enough for the math department, who has never written software for a living and doesn't natively speak the language of most of his student body, and who disappears at the end of the class, shoving his students towards some grad students when they have questions..

      While not exactly the same thing, my issue was that when I took two courses in discrete mathematics that it was taught by a statistics professor who had never written code in his life nor studied computer science. The particular courses in question were indeed the "CS" math courses and not a course for math majors, and as such I completed the course having no idea what I should have learned in preparation for some of our more theoretical CS courses that came later.

      The comp sci department actually got so irritated with the math department that they nixed the discrete math requirement and brought it into the CS department under a different title that skirted the math department having any control or say over the matter. It really was for the best, since our department is like many in that quite a few computer science faculty have a heavy duty math background. The Comp Sci folks still require calc, linear algebra, and stats through the math department though.

    4. Re:Forget the trees, the forest is burning. by PRMan · · Score: 1, Interesting

      Worse than worthless. I was at a job where we routinely threw Masters and PhD CS resumes in the trash. The candidates are completely worthless at real-world tasks and are so arrogant as to believe that they don't need to know about CSV files or FTP, regardless of what the other side of the transaction wants.

      At my current job, it's almost to the point where advanced degrees are automatically 1 strike against you, for the same reasons.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    5. Re:Forget the trees, the forest is burning. by samkass · · Score: 1

      If all you want is someone to churn out code to a spec, I guess you have a point. But who writes the spec, or turns users needs into practical products, or writes the libraries you use to accomplish your tasks, or even intelligently evaluates the libraries? Programming is only part of a computer science degree, and if you don't have the rest of the fundamentals it's going to take you an extra decade of industry experience before you can hope to be more than a coder.

      I agree you should try to get into a "top school" as you term it. There's definitely value in it disproportionate to how much it costs. The US still has the best CS schools in the world. But you shouldn't expect to do well at one of those top schools if you haven't already immersed yourself in the subject. If your high school doesn't offer it, take it as independent study or go online and find materials. Because if the first time you've sat down in front of a compiler (or a whiteboard with some algorithm analysis on it) is when you hit the university, expect to be washed out-- and I don't think that's unreasonable.

      --
      E pluribus unum
    6. Re:Forget the trees, the forest is burning. by Concern · · Score: 1

      My point is that the "pedagogical technique" of 80-90% of US undergrad programs is worthless, for preparing people to code to a spec or any other purpose. CS classes are not alone in it. Arguing over the CS1 curricula is arranging deck chairs on the Titanic. The whole system is fucked. As you say, the top schools are the only places left with value, and it's not as if the CS programs run like medical schools at MIT, Berkeley, RPI, CMU, etc. Yet all these schools generally cost the same (notwithstanding in-state tuition). As the victimization of young people by the non-top schools (200k in debt for 20k of value) is fully realized, many if not most of those schools will collapse, and we'll complete our journey back to the 19th century, where a few elite universities will cater to the children of the aristocracy, who are already lucky in having had a functional but expensive private primary and secondary education.

      --
      Tired of Political Trolls? Opt Out!
    7. Re:Forget the trees, the forest is burning. by ZeroExistenZ · · Score: 1

      In short, comp sci is good, but you basically have to be good at it yourself to judge the quality of someone elses resume.

      This is true: around 2000, alot of "people interested in computers" were quickly trained to fix millenium bugs.
      When 2000 passed, you had a pile of developers with very limited knowledge (2-week VB course etc)

      So, Microsoft and other big vendors saw $$$ in it; creating certifications to verify a programmer is in effect decently trained and can do what he claims to be able. (2 years of experience in .NET can range from poking around with VB code, cleaning to enterprise systems.)

      These certifications are losing in value as well though, as their engine needs to run: "Create methodology", "Hype it with sales", "make devs enthousiastic and sell books, do roadshows, make sexy demo's" "sales have reached HR, to get the sexy devs, new keywords are added to HR-lingo, companies want to draw people who can do this stuff", "people want to get certified, employers begged to invest a few K to get said dev certified". It's a circle at the moment but intrinsic value is getting lowered.

      --
      I think we can keep recursing like this until someone returns 1
    8. Re:Forget the trees, the forest is burning. by stanlyb · · Score: 1

      Or, there is more simpler solution, more H1B visa.

    9. Re:Forget the trees, the forest is burning. by spiffmastercow · · Score: 4, Insightful

      Eh, my CS program actually included a lot of discrete math, graph theory, algorithm complexity, and even a little number theory. There was a lot of crap in there too, but it was no job training degree.. In fact, the complaint I heard most often is that all this theory wasn't going to do us any good in the "real" world.

    10. Re:Forget the trees, the forest is burning. by Concern · · Score: 5, Insightful

      Ah, the H1-B. Purpose-designed to destroy the US skilled labor market, by ending the centuries-old "give me your skilled, your intelligent, your yearning to be economically productive" liberal immigration policies that made this nation great, and replacing them with a regime that allows smart foreigners to come to the US for education and a few years of on the job experience, then forces many who would gladly stay in the West to return to their currency-debased homelands, where they compete more effectively for the same work, at pennies on the dollar.

      You can thank the brass at IBM, Oracle, CA and a few other leading tech companies for this ingenious economic ass fucking. We used to brain drain the world. Now it's yet another group of American senior managers shitting where they sleep, since the only thing that makes the U.S. any different from a chillier northern region of Mexico is the economic and social policies they're happy to undermine for a decade or two of quick bucks.

      --
      Tired of Political Trolls? Opt Out!
    11. Re:Forget the trees, the forest is burning. by Malenx · · Score: 2

      Perhaps the students should pick the school based on, what, I don't know, the quality of the program that they will major in?

      What your describing is an idiotic program that results in the creation of poor students. If someone is actually willing to pay for this program, it's their own fault. Your right that just because someone has a degree, that doesn't make them qualified. When I step out of school however, my finely tuned resume will have 4 years in the Air Force as a 2E2 (electronics / computer technician), a 4.0 GPA at a great private school where my max class size in CS has been 17, multiple contributions to open source projects, solid coding skills, research assistant experience, my own apps, and 12 years of working at diverse jobs, many of which were computer fields, all with 0 debt.

      Guess what, I shifted my life and made the sacrifices to get where I am. These people going through school don't have to bury themselves in debt over crappy classes. It's their own fault if they screw themselves over.

    12. Re:Forget the trees, the forest is burning. by JAlexoi · · Score: 3, Interesting

      I experience* exactly the opposite. Colleges and universities create a curriculum of high academic standards and simply fail to explain why. As a result, none of the students end up interested in their field because they weren't "hooked". The ones that were "hooked", were "hooked" somewhere else.
      So in the end you get students that didn't get enough practical experience and sure weren't interested enough to go deeper into the academic part. And as a result, academia looses a lot of potential geniuses to transform the industry and businesses bitch about how those same people are not prepared to work in the field.
      Basically universities are failing at CS all over the world, the fact that it's a global problem is seen widely in India. Because in India people don't really have a choice of career after graduating with BSc in CS.

      * - I have lead summertime recruitment drives a.k.a programming and systems engineering contests

    13. Re:Forget the trees, the forest is burning. by RightwingNutjob · · Score: 1

      I'll agree that good thinking is a must, but I'd still prefer my coders to have studied something related to software, science, engineering, or mathematics in undergrad. I wouldn't trust a 22 year old fresh out of school to have taught himself the finer points of not making spaghetti code, no matter how innately bright he may be if most of his mental energy was used up trying to become a Renaissance man instead of an engineer.

    14. Re:Forget the trees, the forest is burning. by Concern · · Score: 1

      First of all, congratulations on having, by all appearances, crafted an outstanding career!

      Philosophically, who could disagree with anything you've said. You are responsible, in the end, for your own success. Those who fail will suffer. This is the way of the world. But, before you go, consider an analogy.

      "People going to restaurants and getting food poisoning are a bunch of suckers. Eating dinner without knowing the details of sourcing, preparation, proper management of staff and facilities, and ensuring that they are applied in your kitchen, let alone conducting a survey of other patrons to see how often they got sick from eating there? Suckers I tell you! Of course if you lazily skip these steps you will get poisoned. I haven't gotten sick yet, because I was lucky... I mean, skilled enough to guess... I mean choose the correct restaurants based on my natural ability to know who will make a tasty meal without poisoning me."

      The answer, of course, isn't for each restaurant to "self regulate" and each diner to become an expert in restauranteur best practices and each conduct their own kitchen inspection. It's to have an FDA and a Health Department. Follow the rules and uphold the standards, or you can't be a restaurant. It's well established, elementary economics- er, I mean, it's well known liberal propaganda that big gubmint enforcing food safety produces vastly better results and stimulates the entire food services economy, as fewer people cook at home rather than take on the effort and risk of being their own Health Department.

      The situation is exactly the same with schools and the various accreditation authorities (who are all utterly abdicating at this very moment). With one exception: the education system's customer is a student, who without the luck of a skilled parent, must by definition navigate the purchasing process at a disadvantage. When your product is an undergraduate degree, there is very little reason to believe the majority of your customers will be informed ones. Rather, your customers are a bunch of yokels who rely on things like the Princeton Review's rankings; the type of people who probably put their 401k's in Enron stock and buy Option ARMs.

      Hence the scale of the scam now underway across the US, as the last act of the Reeds and Kenyons and South Dakota States of the world is to sell out their heritage for a few more years of existence as a degree mill, leaving a legacy of thousands of victims with the worst class of debt in the U.S. and little hope of relief, ever.

      --
      Tired of Political Trolls? Opt Out!
    15. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      I had exactly 1 undergrad CS class that was larger than 20 students, and it wasn't taught by a 'mathematician' but rather a multi-multi-published systems security researcher. Apparently I went to a good school?

    16. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 2, Insightful

      The candidates are completely worthless at real-world tasks and are so arrogant as to believe that they don't need to know about CSV files or FTP, regardless of what the other side of the transaction wants.
      No, they just disagree with the suggestion that they aren't competent at parsing CSV files until they've got a couple years' experience at it (or the general notion HR has that a prospective employee can't do anything he hasn't already spent years doing).

    17. Re:Forget the trees, the forest is burning. by Grishnakh · · Score: 1

      Cramming 150 kids into a lecture hall with a "mathematician" who wasn't smart enough for the math department, who has never written software for a living and doesn't natively speak the language of most of his student body, and who disappears at the end of the class, shoving his students towards some grad students when they have questions... Where the "teaching" involves reading pages from a badly written $300 book, and then having exactly two interactions with the class: "Midterm" and "Final..." And where in many schools the dirty little secret is that the curve takes the average "D" or "F" up to a "C..."

      This sounds a lot like my experience getting an Electrical Engineering degree (BS) from one of the top-tier State schools. Professors I actually couldn't understand speaking (esp. the one guy from Vietnam), and ridiculous curves that turned people who got a 30 on an exam into C or B students. The students really just didn't understand the material at all, especially stuff like Electromagnetic Fields; they just tried to find equations to fit the problem and then plug-n-chug.

      I don't know where the blame lies, but I don't think it's any one thing. Our public education system is a dismal failure, and isn't preparing students for any serious mathematics when they get to University. Our professors just concentrate on writing papers and doing "research", not on educating students (esp. not undergrads). The whole college textbook industry is just a giant scam. And tuition costs keep rising much, much faster than the rate of inflation.

      Note that I graduated back in 1997, so this stuff is nothing new. The only good thing I can say about my education, compared to now, is that I only had about $30k in student loans when I finished, and I borrowed as much as I could. I was able to pay it off in just a few years. Nowadays, a student's bill is unlikely to be less than $100k from what I hear, but engineering salaries are certainly not 3x what they were in the late 90s.

    18. Re:Forget the trees, the forest is burning. by rtb61 · · Score: 2

      A computer science degree has had it's day and is long overdue for a revamp. Really computer programming , computer systems administration and computer security should all be separate degrees. That lump sum approach barely covers what are becoming far more important and complex parts of computer systems infrastructure.

      Computer science degrees are struggling for relevancy because they are just too general, too out of date (changes in computer systems are hard to keep up with) and barely touch on far more currently relevant areas.

      --
      Chaos - everything, everywhere, everywhen
    19. Re:Forget the trees, the forest is burning. by roman_mir · · Score: 1

      1987-89 - 'programming' on paper, I lived in former USSR and didn't own a computer.
      89-91 - college in Ukraine, finally got to use actual hardware and even a network. Won a number of programming contests there.
      92 - technical school of electronics in Israel. Got my own IBM 386, it was wonderful, was building anything, programming nightly, since I had to work as well.
      94 - Dawson college (cegep) in Montreal - we had 'computer' classes there, mostly touch typing. Worked for a prof there on some fax drivers and a drawing app, all built in C and Assembly
      1995 - UofT, went for comsci and astronomy.
      1996 - first job in the chosen profession at a company called 'Davinci Technologies', was second person hired, built Bell Mobility's 'Invoice on Line' and 'Instant Activation' systems, and then 5 years more of various stuff for various projects and companies from Davinci. Davinci is now defunct, was bought out by CSG.
      Got the degree in 2000 and moved on to contracts, working anywhere that paid a minimum of 75/hour (sometimes getting to twice that much, but that's rare.)

      Last 1.5 years working on my own completely, no salary, nothing, trying to build a business based on a set of systems I built for retail management, supply chain management, store management, warehouse management, integration of all the systems between stores, warehouses, main offices, suppliers and manufacturers.

      I may or may not succeed in building a profitable business, but my systems are now used by a small store chain and 50 suppliers.

      --

      Now, what I wanted to say is this: the path one takes does not have to be exactly the same as everybody else's. There is nothing wrong with going to university (for me it was useful, because I was an immigrant and needed to learn the culture and communications skills most of all), but I also enjoyed nearly half of my courses at the university.

      But if I had to do this over again, given the current environment of debt slavery, I would not continue past the second year of university if I did find the job in the field by then (which in my case did happen, I got lucky, since the company hired me out of 88 other applicants, but apparently I showed the most interest in the field and that became the deciding factor, not to mention that I was raking in an amazing 12.50CAD/hour then, so offering my services at that low low price helped me to get that first real job in my chosen field).

    20. Re:Forget the trees, the forest is burning. by DamnStupidElf · · Score: 1

      Apprenticeship is the only way to create competent programmers. The "somewhat functional" careers you mentioned; doctors, lawyers, and financial managers; all spend several years during and after their education in a highly controlled and structured apprenticeship where their responsibilities grow with their experience. Programmers fresh out of college are lucky if they find an actual programming job, and even luckier if they experience worthwhile guided apprenticeship. There are probably two main reasons: The software industry is so fast-paced that investing several years in a programmer is virtual suicide and the historical nature of programming is to be mostly self-taught.

    21. Re:Forget the trees, the forest is burning. by HornWumpus · · Score: 1

      Except the soft end of the CS world doesn't require much math at all.

      Calc for business majors is common. Hell some CS programs are taught out of the god damn business school.

      If you were a CS major that was good at math why you not upgrade to EE or ComputerE?

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    22. Re:Forget the trees, the forest is burning. by DavidTC · · Score: 5, Insightful

      Indeed. It's exactly the same trick with using powerless illegal immigrants, except the H1-B visa is legal.

      I'm nearing the opinion that we should create a constitutional amendment that says anyone under the jurisdiction of the US for more than six month becomes an American citizen. Period.

      Because the entire scam is to keep those people powerless. White collar, blue collar, migrant workers, it doesn't matter, it's all the exact fucking scam to one end:

      Keep the workers powerless. At least, keep them powerless in America.

      If they need to physically be here, make sure they're here illegally, or make sure that their employer can send them home at a whim. If they don't been to physically be here, well, don't have them here, or just have them here for their education and then send them home.

      And this, of course, doesn't just fuck over those people, it fucks over citizens, who have hypothetical 'political power', but no actual money.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    23. Re:Forget the trees, the forest is burning. by happyhamster · · Score: 3

      Your arrogance illustrates a lot of what is wrong with the state of CS in the U.S. today. A bunch of arrogant, uneducated, "self-taught" "web developers" running around creating one crappy useless tech after another. You will go away like the "VB programmers" of the 90s, so enjoy it while it lasts.

    24. Re:Forget the trees, the forest is burning. by Concern · · Score: 1

      Wow. That was very well said. Thank you.

      --
      Tired of Political Trolls? Opt Out!
    25. Re:Forget the trees, the forest is burning. by Khashishi · · Score: 1

      Talk about exaggerations. Yeah, there are some bad professors, but you assert that this is the norm for the entire U.S.. Pretty much any university has this thing called office hours where one can talk to the professor on a one and one basis. And most professors are open to scheduling another period of time. Of course, it does require some effort on the student's part. And what's wrong with utilizing the grad students to answer questions? The grad students should be qualified.

      Is it a dirty little secret that most profs aim for a raw score of less than 0.70? I fail to see the problem with this. If the median score is around 0.50, then that leaves the most room for distinguishing a good student from a bad one. (Now if the median score is 0.10, then that's a problem.)

      The CS curriculum is geared toward theoretical concepts rather than practical knowledge applicable to the industry. This kind of bias is expected, since the professors are all academics! The point of a CS degree is to train you in more difficult problem solving, not the basic programming that you could train a monkey to do.

    26. Re:Forget the trees, the forest is burning. by Concern · · Score: 1

      you assert that this is the norm for the entire U.S.

      Yes, I do.

      Pretty much any university has this thing called office hours where one can talk to the professor on a one and one basis.

      And pretty much any university won't fire a tenured prof for hiding from his students and organizing his grads to cover his office.

      The CS curriculum is geared toward theoretical concepts rather than practical knowledge applicable to the industry.

      One of the smaller problems with it, but yes.

      Look, if you're a believer that paying a mid-tier school $200k for a CS Bachelor's degree is a good deal for you or anyone, that means you probably don't have a finance background, and I have a great mortgage backed security to sell you.

      --
      Tired of Political Trolls? Opt Out!
    27. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      How is this insightful?

      I mean, some comp. sci programs are better, or worse, than others, but just because it isn't in a white-coat lab doesn't make it not a science. You overlook all the theoreticals and mathematical non-programming aspects surrounding the field and build upon a faulty premise as if it were entirely true. What about all the work that makes computers faster, able to do more on less circuitry, and more efficiently to boot [for example]?

    28. Re:Forget the trees, the forest is burning. by lennier · · Score: 1

      Really computer programming , computer systems administration and computer security should all be separate degrees.

      Great, so then we'll get coders who no nothing of security or how to deploy their software, administrators who can't customise anything, and "security consultants" who do nothing productive to help except point and laugh?

      So same as now, then.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    29. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      "I know because I've taken well roundedness classes from fucking Harvard."

      You didn't manage to graduate, uh?

      (and it must hurt, since 2 out of 3 starting at Harvard get their degrees).

    30. Re:Forget the trees, the forest is burning. by TapeCutter · · Score: 1

      I also started "programming" with pencil and paper. It was the mid-eighties, I lived in Oz and didn't own a computer, I read about Conway's "Game of life" in SciAm and spent an unatural amount of time using my head as the computer and drawing the output on paper. I was hooked and a couple of months later bought a second hand Apple2.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    31. Re:Forget the trees, the forest is burning. by russotto · · Score: 1

      I would say that it in fact hurts you in your attempt to get a job, but not because people see it and are repelled. The problem is that CS is a job degree. It's not science. It's like going to a technical school and studying wielding or diesel truck repair. It implies that a. you were worried about getting a job after college, which implies a lack of self confidence in the first place, which is an indicator (though not a perfect indicator) that you were substandard in the first place./blockquote A +5 Insightful for a blatant troll. Well done.

    32. Re:Forget the trees, the forest is burning. by luke923 · · Score: 0

      Colleges and universities create a curriculum of high academic standards and simply fail to explain why.

      That's not 100% accurate -- the explanation comes when you take Numerical Analysis. All the math that you've taken up to that point no longer seems irrelevant. Unfortunately, I've worked with a number of excellent coders who couldn't tell the difference between Simpson's Rule and a Bezier Curve (oftentimes, ignorant to both) -- and, they have degrees in CS from very prestigious northeastern universities. If I had a penny every time I heard a denigrating comment regarding mathematics from a programmer due to his/her lack of understanding of the subject matter, I'd be richer than Carlos Slim. I suppose the first-tier schools don't bother teaching their students Numerical Analysis; yet, my fourth-tier college somehow managed to. Go fig.

      --
      "Good, Fast, Cheap: Pick any two" -- RFC 1925
    33. Re:Forget the trees, the forest is burning. by luke923 · · Score: 0

      Sys admin and computer security, although useful for a programmer, have been in their own track (generally under MIS) and not part of comp sci.

      I don't know first hand if CS degrees are out of date, but they're supposed to be general in that the person with the CS degree will be able to quickly adapt and program in new technologies and new languages that come up without being hampered by the learning curve associated with the ever changing technological landscape. Otherwise, if a CS student spends his/her time just learning what's hot, that person will be as relevant as a COBOL programmer in a few years' time.

      --
      "Good, Fast, Cheap: Pick any two" -- RFC 1925
    34. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      There is no logical reason to believe that just because someone has a Master's degree or a Ph.D. that they don't know how to code and are deaf to client demands... because almost all employees are deaf to client demands, this is not unique to people with higher degrees. I hope you don't actually expect someone to put "ftp" on a resume though, otherwise you're getting nothing but complete morons who put shit like grep and chmod on their resume too.

    35. Re:Forget the trees, the forest is burning. by ajlisows · · Score: 1

      I'm just curious, what part of the curriculum do you have a problem with? General Requirements or the actual degree track? What could they do differently?

    36. Re:Forget the trees, the forest is burning. by Aighearach · · Score: 1

      Typically, and systems administration is only a two year AAS degree.

    37. Re:Forget the trees, the forest is burning. by Khashishi · · Score: 1

      Even if I agree with your conclusion, I object to the exaggeration. When you call out all these exaggerated problems, you draw attention away from real problems. I doubt if your problems were all fixed in all universities, it would solve any issues with a discrepancy between university education and professional requirements.

    38. Re:Forget the trees, the forest is burning. by superwiz · · Score: 1

      BS! I've been exactly that mathematician. The problem with your description is that I did have 5 years of programming experience before going back to doing math. You don't want a professional programmer teaching people who never did any programming. I did the most reasonable thing possible: I told the students that they could only learn to program by programming. So 60% of their grade came from the projects. When I took my 1st programming class in college (yes, in the US; no, not half a century ago or even quarter of a century ago), submitting a project which didn't compile meant an automatic F. If I had 1 student whose projects compiled, they would already be smarter than everyone else in the class and had to be given an 'A'. No, you can't fail the entire class. Your students are not required to have any programming experience. They are just not the brightest bunch. If they were arrogant and gutsy, they wouldn't be trying to learn to program. They would be trying to become doctors.... unless they love to program and those students who love to program wouldn't be in any need of such a class. So an introductory programming class in a non-top university is not full of "nerds". It's full of low-esteem rejects who think that a 'B' is a passing grade. It's not, by the way. If you get a B in an introductory class which ends up being just a notch above baby-sitting, don't bother taking the follow up class.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    39. Re:Forget the trees, the forest is burning. by superwiz · · Score: 1

      Wow! Well, at least it's good to see who these numb-nuts are thinking. I am talking about you, by the way -- not your candidates. Yes, I took a programming job after getting a PhD in math. No, most of the other kids in the place who became "project managers" didn't know what the hell they were doing when they wrote code. It was unreadable and unmaintainable. The code they wrote was only good for demos. It had to rewritten from scratch to be turned into a working product. The sheer degrees of magnitude (not magnitude -- degrees of magnitude) of what they didn't know and assumed that they did know was staggering. Looking down at a programmer because he doesn't know what is a CSV file is somewhat akin to disqualifying a professional marathon runner because he doesn't know what to do with Velcro sneakers (because he is Nigerian and he is used to running in sneakers with shoelaces). Hint: you, numbnuts, will not produce anything useful for the next 5 years. Do you know why? Because all you know how to do is code. That was a good skill to have 10 years ago. Today that's a bit like expecting to get a political writing job because you've mastered grammar. Oh, and that job which I got and which I quit even before I found a new job... I heard people there actually make the argument that I good because I knew how to "code". That's pathetic. That was my least valuable skill (my understanding of the business was more valuable as far as I am concerned). I am seriously getting to the point where I don't want to do any business with millennial. They all think that what they know is the most important thing in the world. They fail to recognize people who are smarter than they are. And not because they don't know how, but because they can't fathom the possibility.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    40. Re:Forget the trees, the forest is burning. by superwiz · · Score: 1

      I think you are giving gp too much credit. He thinks knowing what can be learned in 2 minutes is a skill, while writing a thesis which shows something heretofore unknown is nothing to brag about. You know what else people working for him can probably expect? Awkward moments after an original idea gets rejected with an argument "I've never heard of this before"; expectation that researching something means googling it; silent treatments after you reduce some of the stuff he wrote by half and speed it up by a factor of 100 all while simply fixing his crashes. The difference between someone who's done actual research and someone who just hacks code is that researchers don't just always follow the nose. While those who just hack some code throw more people at a problem in the hopes that the ever-expanding and at-some-point-unreadable code base can be made to do what it needs to do if only more people are thrown at it.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    41. Re:Forget the trees, the forest is burning. by Black+Parrot · · Score: 1

      Really computer programming , computer systems administration and computer security should all be separate degrees.

      s/degrees/tradeschool programs/

      If you're majoring in CS in order to learn one of those things, the problem isn't with the degree plan.

      --
      Sheesh, evil *and* a jerk. -- Jade
    42. Re:Forget the trees, the forest is burning. by Black+Parrot · · Score: 1

      Worse than worthless. I was at a job where we routinely threw Masters and PhD CS resumes in the trash. The candidates are completely worthless at real-world tasks and are so arrogant as to believe that they don't need to know about CSV files or FTP, regardless of what the other side of the transaction wants.

      The PhD is a research degree, so if they were applying for run-of-the-mill application development/maintenance jobs, the trash is where their CVs belonged.

      OTOH, how long do you suppose it takes someone with a PhD in CS to learn everything they need to know about CSV files?

      --
      Sheesh, evil *and* a jerk. -- Jade
    43. Re:Forget the trees, the forest is burning. by Black+Parrot · · Score: 1

      My point is that the "pedagogical technique" of 80-90% of US undergrad programs is worthless, for preparing people to code to a spec or any other purpose. CS classes are not alone in it. Arguing over the CS1 curricula is arranging deck chairs on the Titanic. The whole system is fucked. As you say, the top schools are the only places left with value, and it's not as if the CS programs run like medical schools at MIT, Berkeley, RPI, CMU, etc. Yet all these schools generally cost the same (notwithstanding in-state tuition). As the victimization of young people by the non-top schools (200k in debt for 20k of value) is fully realized, many if not most of those schools will collapse, and we'll complete our journey back to the 19th century, where a few elite universities will cater to the children of the aristocracy, who are already lucky in having had a functional but expensive private primary and secondary education.

      You don't inspire a lot of confidence that you have a clue what you're talking about. There's a CS program at the university where I live, probably third-tier if not fourth, tuition is vastly less than the big-name schools, and the graduates don't have any trouble finding jobs.

      --
      Sheesh, evil *and* a jerk. -- Jade
    44. Re:Forget the trees, the forest is burning. by CodeBuster · · Score: 1

      Having completed a CS degree myself, including a course in numerical analysis, it's my opinion that part of the problem stems from a general lack of agreement on what constitutes the essential upper-division coursework. When I was completing my CS degree it was possible to take several different tracks in the upper division courses and still qualify for the degree. For example, one could choose to concentrate in compilers, languages and formal grammars, automata theory, algorithms and complexity theory, AI and several other niches (the exact choices escape me now). However, there wasn't enough time to take all of them and still finish in 4 years and because some upper division CS courses were only offered once per year or even once every other year (for niche or less popular areas) the choice of which upper division series to pursue was often limited at best. This subject has already been beaten to death here on Slashdot, but eventually CS must really become more of a school, like engineering or other sciences, with distinct and separate majors within the school to allow proper focus on specific areas of inquiry rather than offering a hodgepodge of generalist CS-related knowledge all rolled into one degree program.

    45. Re:Forget the trees, the forest is burning. by rtb61 · · Score: 1

      Of course what you are immediately doing is, system administration which includes associated legal principles, psychology of users, network infrastructure, project management, procurement and distribution, is nothing trade compared to computer programming which is a university degree. Similarly keeping a nations infrastructure secure and a corporations infrastructure secure, the laws, hardware analysis, network transmission analysis, code analysis, is a trade compared to computer programming.

      The reality is system administration and system security are a moving target which is much harder to teach, them a programming language that was popular two two years ago.

      --
      Chaos - everything, everywhere, everywhen
    46. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      " You will go away like the "VB programmers" of the 90s" Nope. Still here doing C#, thanks. I'm employed. How about you?

    47. Re:Forget the trees, the forest is burning. by slyrat · · Score: 1

      Eh, my CS program actually included a lot of discrete math, graph theory, algorithm complexity, and even a little number theory. There was a lot of crap in there too, but it was no job training degree.. In fact, the complaint I heard most often is that all this theory wasn't going to do us any good in the "real" world.

      This was what I felt too from my CS degree. Any college that has CS programs that focus classes on particular languages rather than on the core concepts is just a computer programming degree rather than Computer Science. I think part of the problem is that there are quite a lot of IT jobs and not many Computer Science jobs. An IT job can be done by someone without a degree or someone with one. The Computer Science jobs let you actually use the more complex parts of the field. Finding one of the latter jobs, though, can be impossible in some areas of the country and difficult otherwise.

    48. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      Yeah, we're arrogant enough to fly "crappy" choppers into a country, undetected, take out the world's the most dangerous terrorist, crash the chopper, and still get out undetected. All while your sitting comfortably in your chair drinking English Breakfast tea.

      Yeah we have debt up to ears, have an economy on that shifts more the San Andrea's fault line, race problems that will never go away; but you know what?

      We have something no other nation will ever have and that's....better yet, why even tell you. It's a US thang, you'll NEVER understand.

    49. Re:Forget the trees, the forest is burning. by HazMathew · · Score: 1

      These are your opinions and assumptions, not reality.

      Getting a CS degree does in no way imply "a lack of self confidence in the first place, which is an indicator (though not a perfect indicator) that you were substandard in the first place."

      Any respected university is going to have liberal arts/humanities requirements for CS undergrads.

    50. Re:Forget the trees, the forest is burning. by HazMathew · · Score: 1

      Good for you, they probably didn't really want to work there anyway. Educated people do not want to work for a prejudiced good ol' boy club of uneducated know-nothings. You actually did them a favor.

    51. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      A proper computer science program, from what I am gathering, is not specific towards programming, or engineering - but remains focused on the theoretical, including that which builds computer architecture, programming concepts, discrete mathematics, et cetera.

    52. Re:Forget the trees, the forest is burning. by Anonymous Coward · · Score: 0

      Tell me, how could some guy who knows 10 languages (natural, not computer) could have enough time and brain to learn at least boolean algebra?

      Straw man.

      Don't bother to answer me, there is simply no way.

      Argument from ignorance.

      Btw, don't tell me about the exceptions, because, as you (maybe) know, the exceptions are the prove for the rule.

      Proof by adage is not proof of anything. Further, the logical intent of that phrase has been reversed in modern parlance. The exception to the rule would be something like, the android SONY-ONE knowing many languages. It's not really a 'guy' so the rule doesn't apply.

      The existence of someone who knows ten languages and Boolean algebra would not be an exception, as you assert such a person cannot exist. It would be a simple disproof.

      Generally, the 'exception proves the rule' idiom means your statement of the 'rule' is flawed.

      tldr; Your post was 'a tale told by an idiot, full of sound and fury, signifying nothing.' Go back to Reddit.

    53. Re:Forget the trees, the forest is burning. by ub3r+n3u7r4l1st · · Score: 1

      "OTOH, how long do you suppose it takes someone with a PhD in CS to learn everything they need to know about CSV files?"

      Not sure about the answer, but probably will take days if not weeks.

      Our university IT departments are filled with Chinese/Indian Masters/PhD students in EE/CE/CS and most of them couldn't code in Java. One of them assigned to our department, only show up in our workplace and play WoW, and we couldn't kick him due to regulations. The domestic undergrads have much better work ethic, and they get paid only half of what the grad student made.

      It is not the degree that gives the problem, it is the mass issuance of student visas and H1-Bs are the problems. Ban them already.

    54. Re:Forget the trees, the forest is burning. by smellotron · · Score: 1

      ...in many schools the dirty little secret is that the curve takes the average "D" or "F" up to a "C..."

      How is that a "dirty little secret"? There is social and administrative pressure for grades to have a specific distribution; said distribution is very wasteful of any reasonable numeric range of scores. Fitting grades to a curve allows a professor to be very liberal about scoring—providing more information for training/fitting/learning, depending on how they score—without imposing a permanent "grade" penalty. If anything, the dirty little secret is that grade inflation is expected by American culture.

      Or did you skip your AI courses? You know, the ones where you learn that feedback is required for learning, and poor feedback (i.e. A/B/C grades) results in slower training/fitting/learning for the best candidate students. Thinking that a curve exists to bump a "D" up to a "C" is the wrong way to analyze a curve, because letter grades are an artificial result of the learning process.

    55. Re:Forget the trees, the forest is burning. by wildstoo · · Score: 1

      A superiority complex compensating for an underlying inferiority complex?

      You're right, I don't understand.

    56. Re:Forget the trees, the forest is burning. by alexo · · Score: 1

      "Computer science is no more about computers than astronomy is about telescopes."
      -- Edsger Dijkstra

    57. Re:Forget the trees, the forest is burning. by Concern · · Score: 1

      Few of us have the luxury of seeing many schools to compare. All of the problems in my original post were observed first-hand. That's every single specific one, with no exaggeration or hyperbole. And tuition inflation is obviously a matter of public record. So you have a different anecdote. I'm sure it's true, but who's "right"? The only useful thing in between would be a survey, statistic, or etc. and in lieu of that the answer can't be "silence!" Rather, we just each give our experience and our opinion about it.

      As an informal survey, this forum itself isn't so bad; after days, you seem to be in a minority of commenters who appear to have the thesis that the average CS undergrad education isn't so expensive, or bad, or bad as a deal. Most here don't seem to feel the way you do on the subject. That's probably telling you something right there.

      I will give you this: CS programs are taught badly, and undergrad is wildly expensive - but the two problems do not always meet. There are definitely cheap government-funded schools left in the US - that is, if you are paying the insider tuition rates. Keep in mind - there are fewer of these deals every year (also a matter of public record), as all levels of U.S. government are going broke, and American voters have largely seemed to prefer politicians whose solution is tax cuts for the very wealthy, and cutting every public expenditure but defense.

      --
      Tired of Political Trolls? Opt Out!
  45. Yes, it is absurd Prof. Kurmas, and here is why by luis_a_espinal · · Score: 1

    I simply do not have a good answer. I really don’t see what we can do (practically) at the college level to make Computer Science more accessible to the majority of students who don’t already have either programming experience or a strong aptitude.

    To Prof. Kurmas: The problem is that most universities only have CS1 and CS2 before sending students down to Analysis of Algorithms and the like. From personal experience, my first two years were not in a 4-year college, but in a community college (Miami-Dade College in 1991 to be precise.) This is what I went through:

    100x-level courses: Introduction to Micro-Computers, BASIC (that included a discussion to Bohn-Jacopini's Structured Program Theory right of the bat), Introduction to Turbo Pascal (with discussion on pass-by-value and pass-by-reference, pointers, differences between the stack and the heap and addressing modes) , Introduction to C (pointers up to the wazoo);

    200x-level courses: Intermediate Turbo Pascal (first run into Object-Orientation), Intermediate C, A full 15-week course in x86-Assembly, C++, Delphi Programming, Introduction to Expert Systems.

    This was the common way of doing things among us CS students at that community college at the time. To be honest, we were just required to take half of those courses, but the fact was that we had a variety to choose from (which we did to our everlasting benefit.)

    When I transfered to a 4-year college, I was shocked to see students having just two meager programming courses when going their first junior-year programming course. I mean, you gotta be kidding me. There is no sufficient practice to ensure the student will focus on the actual subject matter (instead of still struggling with basic control structures and problem analysis.)

    It doesn't help that universities now don't even teach a full-assembly language course (see here for exhibit A). We have universities that are teaching C++ and Java within the same course!

    Yes, indeed CS1 and CS2 are not sufficient, but then again, what else does your university (and universities in general) provide? Do they provide 1000-level courses in 3 different programming languages? Does your university provide a full 15-course in Assembly language? Do they still teach C? And do they teach Python/Ruby and/or Lisp once a year, or at least, say every other year? I mean, do you provide variety for your students to sink their teeth and flex their programming knuckles before moving on to harder subjects?

    Or is your school a predominantly Java workshop? Using BlueJ to top it off? Speaking of BlueJ, no other language requires an ed-taylored platform for teaching it. Do you see one in Python? Do you see on in C? I've been working in Java for 12 years now. It is an excellent tool for doing work.

    It is also an atrocious language for teaching programming. It is a great language to introduce at the junior and senior level, in particular if used in the context of teaching enterprise computing (an excellent 4000-level topic.)

    But for introductory/intermediate programming? It is stupid. Plain and simple. Yes, there are people out there teaching it like that and writing books on it since it came out Gosling's mind. It is still stupid. It does not make it the right tool. It is a disservice to use it in Academia like that.

    And it is even a greater disservice when schools are predominantly mono-lingual at 1000/2000 course level. If a student is not exposed to a multitude of programming languages - both Algol and non-Algol like, and within the Algol family, both C-like and non-C like (.ie. Pascal or Ada), that student is not being served right.

    That is the root of the problem, and anything short of fixing that is simply fidgeting around. Like trying to cure cancer with ibuprofen.

  46. Weed out courses are necessary. by ErichTheRed · · Score: 1

    I don't agree with this. First, anyone interested in CS has probably at least had some rudimentary exposure to programming. Either they taught themselves, or had high school courses that touched on it. The weed-out course serves as a first-pass filter to make sure those who really don't belong in CS don't waste their time on more courses and switch to something more suited for them. It's also a "last-chance" for those who didn't have any prior experience but may be talented to try this field out.

    I'm on the IT side of things, and given both my exposure to new IT hires and freshly-minted CS grads, I wish there was a stronger weed-out system for both sides of the house. From the IT side, we have technical certifications (Cisco, Microsoft, Sun, etc.) instead of degrees in most cases. There is a huge difference between someone who is truly suited for IT work and the person who just barely passed a certification course and can't figure things out once they go "off-manual."

    I ended up studying chemistry in school, and our weed-out class was organic chem. Same for the medical and pharmacy students...if you couldn't pass that class easily, it was pretty much a given that you wouldn't be successful. Engineering students had a combination of the higher-level math courses and (in our school) thermodynamics. Business majors had accounting. In the chemistry case, the 101-level course gave enough background for all the non-chemistry majors who needed a grounding in chem for the rest of their studies. Soon as you hit the next course though, the expectations ramped up. Especially in a subject like CS where you have millions of people trying to get in on the action because they're "good with computers," there needs to be a filter to drop out everyone who can't understand basic logic, how a loop or conditional works in a program, etc. Otherwise you get more grads that write stuff that ends up on thedailywtf.com.

    1. Re:Weed out courses are necessary. by luis_a_espinal · · Score: 1

      I don't agree with this. First, anyone interested in CS has probably at least had some rudimentary exposure to programming. Either they taught themselves, or had high school courses that touched on it. The weed-out course serves as a first-pass filter to make sure those who really don't belong in CS don't waste their time on more courses and switch to something more suited for them. It's also a "last-chance" for those who didn't have any prior experience but may be talented to try this field out.

      I'm on the IT side of things, and given both my exposure to new IT hires and freshly-minted CS grads, I wish there was a stronger weed-out system for both sides of the house. From the IT side, we have technical certifications (Cisco, Microsoft, Sun, etc.) instead of degrees in most cases. There is a huge difference between someone who is truly suited for IT work and the person who just barely passed a certification course and can't figure things out once they go "off-manual."

      I ended up studying chemistry in school, and our weed-out class was organic chem. Same for the medical and pharmacy students...if you couldn't pass that class easily, it was pretty much a given that you wouldn't be successful. Engineering students had a combination of the higher-level math courses and (in our school) thermodynamics. Business majors had accounting. In the chemistry case, the 101-level course gave enough background for all the non-chemistry majors who needed a grounding in chem for the rest of their studies. Soon as you hit the next course though, the expectations ramped up. Especially in a subject like CS where you have millions of people trying to get in on the action because they're "good with computers," there needs to be a filter to drop out everyone who can't understand basic logic, how a loop or conditional works in a program, etc. Otherwise you get more grads that write stuff that ends up on thedailywtf.com.

      I agree with everything you said there, except for the line in bold. It is very common for people getting in CS without having any knowledge or exposure to programing. Me for example. I've never had any exposure to computing or programming before I enrolled in my first programing course back in 1991. The only thing I ever saw before was a glimpse of an IBM mini-computer running an RPG program at an expo back in 1986, and I was "man, I wanna do that." I did quite well up to grad CS education, and I'm now back in grad school pursuing a MS in CE.

      Even now with computing being so ubiquitous, there are students that get into CS without having any exposure to programming in HS. It's all about talent and dedication.

  47. Give 'em all trophies! by Anonymous Coward · · Score: 0

    Here in the U.S., any child under the age of 15 who signs up for a sports team (a) is allowed on the team, (b) is given some playing time every game, and (c) is given a trophy at the end of the season, whether they won or not. Education in this country has just become an extension of that mentality/philosophy.

    You have to understand, "Higher Education" is a business. The primary goal of any business is to make money. "Put asses in the classes." Public primary education began as a way to train people to work in factories - sit in rows, perform repetitive tasks, and wait for a bell to tell you when to eat. Today, education doesn't even do that much. Today, if you fail a class, it's because the teacher didn't cater to YOUR "learning style." Schools are now all about babysitting and raising your self-esteem. Any yahoo with enough money (yours or the government's) can find his or her way into a college of some sort. Sure, they have to throw some of the most egregious slackers out to maintain an air of elitism, but you really have to work hard to get yourself thrown out of college. Then everyone graduates and the sh*t hits the fan.

    Believe me, I don't like any of this, but that's the way it is. I have a master's degree from a "respectable" institution, graduated summa cum laude & I haven't been able to get a job for 2 1/2 years!! ANY job. Time was (long ago) when you could walk into any building, slap down your college degree, and be given a chance at just about any job you wanted, regardless of what your major was. OK, that may be a slight exaggeration, but I feel like my "education" is useless. No one I ever interviewed with cared the slightest about my success at school. And the funny thing is, I heard a report not too long ago that only 39% of adults in the U.S. have an Associates degree or higher.

    So to that professor and those who side with him, I say (with great sarcasm), "Go ahead - dumb it down some more. It doesn't really matter because China will own us all soon enough."

  48. I agree and disagree.... :-) by Anonymous Coward · · Score: 0

    I teach undergrad comp sci courses as an adjunct professor, and I'm also an app dev system architect "in real life".

    I recently went through a round of interviews at my real job (15 in 2 days, which I can tell you is pretty exhausting). One of the questions we ask every recent college grad is: "How did you get into programming?" The reason we ask this is that it's been a fairly good predictor of success for entry level programmers. Those who tell us they got into it in high school, or as a hobby, prior to going to college are often gifted programmers when they get out on the floor. Those who switched majors while at college to get into comp sci seem to be less able to make the transition from college course work to real-world problem solving. That's not to say of course that there aren't exceptions to this general rule, but it's definitely one of the indicators we look at. Certainly we'd consider someone with a high grade point whose eyes light up when they describe changing majors and finally finding what they love, but if we get sort of a "ho-hum, I changed majors because math or physics was too hard" and they've got a 2.0 GPA, we'll probably look elsewhere.

    So, all that said, I disagree with the professor to some extent. Difficult CS classes at the beginning can weed out the folks who aren't already committed to making CS a career. There's value to that for me as an employer.

    From the opposite perspective, I can put my mortarboard, and understand fully what the good professor is saying. Since every student comes to us with a different background, it's probably not fair to weed out the ones who are just learning basic concepts due to some factor beyond their control.

    I would say that perhaps each CS program ought to have 2 tracks. One for those with more high-school / hobbyist experience, and another for those who did not have that experience. I guess, in a way, that distinction already exists: CS degrees and MIS degrees, but I don't think most people look at it from that perspective.

  49. HR Dept. Needs Some Work, Too by Gunfighter · · Score: 1

    If you look at the process that starts with a freshman's first CS class in college and ends with that individual starting a paying job at a company, there is another kink in the process: the HR department. Companies need to stop saying they want to see a CS degree for jobs that focus on networking, information systems engineering, computer hardware help desk support, systems administration, CTO / CIO positions, etc. The two just don't match up.

    One other comment mentioned that CS is not a "vocational" degree. I agree. I dropped my CS degree and went with an IT-oriented business degree instead. The CS professors weren't teaching me anything I did not already know and use regularly at work. From what I see, just about everything you need to learn regarding programming and math can be learned for free off of the Internet. Teach people to learn and educate themselves.

    When I interview programmers, I approach CS degree holders with an abundance of caution. We had a handful work for us in the past, and only one proved to be worth the money we were paying them. The rest had no idea how to take an idea and turn it into a working software product. I would rather hire a self-taught programmer any day of the week (and have on many occasions).

    --
    -- Stu

    /. ID under 2,000. I feel old now.
    1. Re:HR Dept. Needs Some Work, Too by DaMattster · · Score: 1

      CS is quintessentially an academic degree designed for people who want to go into high level academic research. You are correct, it is not, in the purest sense, vocational. Maybe CS needs to be split into separate academic and vocational majors, depending upon the students' interests.

    2. Re:HR Dept. Needs Some Work, Too by Anonymous Coward · · Score: 0

      It depends on the program, the skills, thought processes and knowledge covered by a computer science degree are important tools for the programmer, at the same time, programming skills are an important tool for the computer scientist to test and communicate their research. SDE;s that don't have a CS degree have, IME, nasty blind spots scattered throughout their skill sets that will bite them at some point. At the same time, if a CS program doesn't have some strong practical courses (ex. compiler design/implementation; os design; instruction set design/simulation) you can make it through a CS degree without the ability to actually implement any of your research.

      Leaving either of these issues for on the job correction is somewhat dangerous as some people will be unable to correct them; they should have been weeded out before they got this far, when they still had the resources to do something else or work at some underlying cognitive issue without it having already corrupted their entire skill set.

      There is nothing quite so heartwarming as a TA for a weeder course as seeing a student have an epiphany about how they are thinking and finally see the baggage they need to throw out in order to actually understand what they are doing (even if they decide CS isn't for them at this point, at least they now have what they need to make that choice). Seeing that same epiphany in a coworker you have been helping can be heartbreaking as they realize their "understanding" was a delusion and they have to make a mad scramble to salvage and re-frame the past 5 years.

    3. Re:HR Dept. Needs Some Work, Too by Missing.Matter · · Score: 1

      Companies need to stop saying they want to see a CS degree for jobs that focus on networking, information systems engineering, computer hardware help desk support, systems administration, CTO / CIO positions, etc. The two just don't match up.

      This is the biggest problem with CS departments as I see it, and for some reason it seems to be unique to them. Why don't automotive body shops ask for a BS in Mechanical Engineering? Yet companies continually require a CS degree for work that is only tangentially related to CS in the same way Electrical Engineering is only tangentially related to what an Electrician does.

      This was most apparent to me a couple weeks ago at a lunch with the advisory board at my University. On the board was a CEO of a local company who likes to hire CS grads from my university. His position was that the CS department should move away from developing in UNIX and start teaching courses about .NET and Windows development (since that's what his company does), and he was tired of training students to do this once he hired them. He basically wants the CS department to be an employee factory for him! This is CLEARLY the role for a vocational training school.

      And the worst part is the University cannot ignore his point because the very first thing parents ask when the visit is "What are the employment statistics and average salary for graduates?" I see it every week when tours come into my lab, without fail, that's all they want to know. Luckily our graduates are proficient enough that they find jobs without explicit training in .NET, but if that ever changes I expect we'll see a course for it in the future.

  50. Sink-or-swim is great, how it should be by hsmith · · Score: 1

    I went into CS "way back" in 2000, hadn't ever touched a compiler, never written a line of code, but knew I'd enjoy it. First programming class was C, I worked my ass off to learn and figure it out. Before the 1st semester was over, I had picked up a book on OOP (Java) and taught myself OOP and Java over winter break. Came back for CS2 already prepared and ready to go.

    You either have the aptitude to learn it or you can go off and get your "Business Information Technology" degree. Do the work or leave, which is what it boils down to.

  51. Shouldn't it be given some more time? by yang5 · · Score: 1

    Peter Norvig questions "Why is everyone in such a rush?" and he suggests "Teach Yourself Programming in Ten Years" here http://norvig.com/21-days.html

    1. Re:Shouldn't it be given some more time? by DaMattster · · Score: 1

      +1 Mod Parent Up

  52. Scare them away! by Bromskloss · · Score: 1

    I was involved in teaching introductory mathematics to the newly arrived students. Some time into the course, the professor in charge scratched his large, grey beard, stared into the distance and told me that "There are still too many students [having not dropped out]. We'll have to scare a few more of them away.". :-)

    I suspect he was only half joking and planning on increasing the pace on the next lecture. It seems they count on a significant fraction of the admitted students to carefully assess the situation and come to the conclusion that "AAARGH! I'M STUDYING NIGHT AND DAY AND STILL HAVE NO CHANCE OF KEEPING UP. ABANDON SHIP!".

    --
    Swedish plasma phys. PhD student; MSc EE; knows maths, programming, electronics; finance interest; seeks opportunities
  53. Work Ethic by Anonymous Coward · · Score: 0

    Bunch of whiners. I never did any real programming before hitting the university. I learned the theory from class and taught myself the programming side of it while working on homework. I often would assign rules to myself that made the assignment more difficult because I wanted to learn something in particular; e.g., I required of myself that all of my Artificial Intelligence assignments had to be a GUI program, not just a console program. I also chose classes that would require me to actually program; e.g., choosing Compilers over Software Engineering (It puzzles me that Compilers is an optional course, but I digress. That is a different rant.). So the real answer is work ethic. Your instructors are required to teach you certain topics. It is your job at the college level to fill in the gaps yourself and to choose the courses that will get you what you want. In summary, buck up, quit whining and if you get weeded out then you don't belong. Now get off my lawn.

  54. Do you agree with spock? by Anonymous Coward · · Score: 0

    That the good of the many outweighs the good of the few? And how will we define the good of the many?

    I went from picking faults in High School, to finding flaws in my post secondary education. Then I went on to teach at the high school level, and then on to teach post secondary. I haven't yet grown a white beard, and I can remember what it's like on both sides.
    Education systems (at least in north america) don't work exactly as most students think. They don't work as most parents think. And they don't work as most politicians or administrators think. For all the rules and regulations and tweaks you put in place to try and make the system as clean as your code, you're still dealing with human beings at the end of the day. All you really need are *eager* teachers and *eager* pupils. Such a situation would produce fantastic results.

    But alas, that is rarely the case (for innumerable reasons), so we have to decide where we'll focus our energy:
    A) on the individual; leave no one behind because everyone deserves to succeed
    B) on society; apply a particular standard to admissions and certification that assures a certain quality of graduate. You will get good programmers, engineers, etc. But not everyone will succeed.

    But, you say: "Can't we do both?"
    Yes, if you want to disenfranchise those students with intrinsic motivation as well as prospective employers. Everyone pays (financially) for option A, while our inevitable failures pay for option B. So decide where you want to lay the liability.
    Ask yourself:
    Should education better society? Pass everyone, no matter the cost!
    Should education better society? Pass only the best, no matter the cost!

  55. Exactly wrong by petes_PoV · · Score: 1

    Computer science isn't a vocation education

    CS is most definitely a vocational course. Most people use it only as an entry into a programming job and realise from looking at ALL the job adverts that it is the only thing that will get them a position.

    If you haven't taught yourself

    So far as "self-taught" programmers go they're the worst sort. They learn the syntax and the hacks and they think they're professionals. They can (sadly) get past interviews but have no discipline or clue that 75% of the job of a programmer is NOT programming. It's testing, documenting, retesting, standards compliance and more documentation and testing. Just look at the difference between an amateur/hobbyist piece of open-source stuff and professional quality work.

    if anything, people who have taught themselves programming should be excluded from CS courses. All professionals have heard (and some believe) the old saying: ""It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration." Except now, yo can replace BASIC with pretty much any language.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    1. Re:Exactly wrong by sydneyfong · · Score: 1

      Perhaps you come from a slightly different background, where you do all the dull work. There are different worlds out there.

      It's testing, documenting, retesting, standards compliance and more documentation and testing.

      I'm a software engineer by trade, and I most certainly don't spend most of my time testing. I spend time designing and implementing software -- usually correctly. We certainly test our stuff, but having programmers do the testing is really a bad idea. I hope where you work, the QA team are not the same people who developed the system, right? It's like asking a company to do its own auditing.

      Just look at the difference between an amateur/hobbyist piece of open-source stuff and professional quality work

      "Amateur open source stuff" like Linux, and "Professional quality work" like Windows? Yeah right.

      if anything, people who have taught themselves programming should be excluded from CS courses. All professionals have heard (and some believe) the old saying: ""It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration." Except now, yo can replace BASIC with pretty much any language.

      I had at least 5 years of programming experience before university. By your standards, I must be doomed beyond redemption. Perhaps I really am.

      Perhaps you're the kind who insists having a complete spec for a login screen, then a hundred unit tests for the password validation routines, 10 pages of documentation of what constitutes a valid user name, UML diagrams for all the classes (two hundred of them, including AbstractUsernameValidatorFactory), then you start writing the code.

      Of course, this takes your team three months to do it, while my brain damaged soul completes it in two days. "What about testing?" -- well, every engineer in my team is expected to be able to write a login page without serious bugs.

      And I didn't even major in CS, nor any IT related discipline.

      --
      Don't quote me on this.
    2. Re:Exactly wrong by Black+Parrot · · Score: 1

      So far as "self-taught" programmers go they're the worst sort. They learn the syntax and the hacks and they think they're professionals.

      I think there are both pros and cons to hiring self-taught programmers. In my somewhat limited experience, a lot of the self-taughties have more self-confidence, initiative, and creativity than a lot of the school-taughties. But those attributes can cause problems at times too.

      One thing that is (in my experience) always a minus with the self-taught types, is that I've never met one who knew the first thing about computational complexity, and their idea of a good program tends to be one where they introduce a trick to shave a microsecond off a loop (not realizing that a modern optimizing compiler will do far better without their help), and as a side effect makes the code incomprehensible to anyone else. Meanwhile, their program uses an exponential-growth algorithm, so that towards the end of a month the business-process types enter a query and take the rest of the day off, knowing that they will be lucky if they have the answer when they come back tomorrow.

      Even if you're hiring some to be "just" a programmer, they need to know a lot more than the syntax and semantics of the language de jour. IMO the CS curriculum that business whinge so much about (because it doesn't teach all the languages and middleware de jour) is actually pretty darn close to what those businesses really need their new-hires to know.

      But then, not many people in HR know anything about computational complexity theory either.

      --
      Sheesh, evil *and* a jerk. -- Jade
    3. Re:Exactly wrong by Black+Parrot · · Score: 1

      Of course, this takes your team three months to do it, while my brain damaged soul completes it in two days.

      If you don't have to work to specs and standards, it should take a lot less than two days. Just write a "Hello, World!" program for every programming job that's assigned to you.

      --
      Sheesh, evil *and* a jerk. -- Jade
  56. CS is NOT a programming course! by Opportunist · · Score: 1

    No, nobody can be expected to learn how to program in a 15 week course. But I don't see this as a flaw of the CS course. Just as studying mathematics doesn't start with learning how to add and to subtract, studying CS needn't start with basic programming. I'd expect that from someone who wants to study CS.

    We expect medicine students to know latin, we expect students in some foreign language to have a basic knowledge of it, we expect history students to have a basic knowledge of history and that human history didn't start with Columbus crossing the ocean. Why can't we expect CS students to know how to program?

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:CS is NOT a programming course! by DaMattster · · Score: 1

      No, nobody can be expected to learn how to program in a 15 week course. But I don't see this as a flaw of the CS course. Just as studying mathematics doesn't start with learning how to add and to subtract, studying CS needn't start with basic programming. I'd expect that from someone who wants to study CS.

      We expect medicine students to know latin, we expect students in some foreign language to have a basic knowledge of it, we expect history students to have a basic knowledge of history and that human history didn't start with Columbus crossing the ocean. Why can't we expect CS students to know how to program?

      You have to be able to walk before you can run. You have to be given the opportunity to learn to walk.

    2. Re:CS is NOT a programming course! by Opportunist · · Score: 1

      So I guess a math degree should start at teaching elementary school math, correct?

      If you don't expect a certain foundation to build on, you either end up with a worthless degree or one that takes 8+ years to attain.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  57. Re:Reading, counting to 100 and other difficult ta by microbox · · Score: 1

    How did their school manage to fail to teach them these skills?

    It is a modern myth that we can teach most anybody any skill. We can do it, but only to a very rudimentary level. Programming takes specialised brain processing that many people (most) will never have. I saw a paper a few years ago that looked at predicted whether someone could /learn/ programming from how well they did on a psychological metric that tested specific types of reasoning.

    Every human brain is different, and that is not the schools responsibility, although mushy feel-good progressives want to make us think it is so. Students require high expectations, or alternatively, they must have an attitude that they will get out of their education what they put in. That so many students explore so little of their potential points to the key pedagogical problem. The solution isn't making class more entertaining, or coming up with new gimmicks.

    At a certain point, students must know that these are the expectations, and if you cannot or will not do it, then go do something else. You cannot make a cat interested in watching TV (the brain doesn't function that way), and you can lead a horse to water but you cannot make it drink (cannot force a student to work appropriately).

    --

    Like all pain, suffering is a signal that something isn't right
  58. Principals of a good Computer Science Curricula by Anonymous Coward · · Score: 0

    Students have to learn to program and model and describe problems in formal notations or even come up with suitable formal notations themselves. To do so it is not sufficient to train them in one or two languages in a short course or over a semester or year. It has to be an integral part of the studies itself.

    In the first or second semester students should be introduced to a language which is then used extensively in all other courses. The same applies to UML or other modeling techniques. And as conclusion this results in a project based study. Classes are therefor only supplementary to give students new input. We have seen in certain universities here in Germany that this results in students which are better prepared for CS-jobs even when they drop out with a bachelor.

  59. I think the issue is the students by jdkramar · · Score: 1

    At the university I went to, it felt like a lot of the students who didn't know what degree they wanted, would pick CS because it "had to do with computers" and they had no clue what it would actually entail. Hence large amounts of them failing CS 1. And as for some pre-CS1 course. I went straight into CS1 without any previous experience programming. I managed an A in it with ease. If you are dedicated, read the silly book, do the homework, it doesn't matter if you knew nothing coming into the class.

    --
    "One can not truly appreciate Shakespeare until you have heard it in it's original Klingon" -Star Trek
    1. Re:I think the issue is the students by DaMattster · · Score: 1

      Getting an A in a formally structured course does not necessarily equate to being a good, real-world programmer. It simply means that you can learn along a linear-logical fashion. I took CS101 and CS102 and did miserably yet I am a UNIX admin and fairly competent at perl and bash scripting. Teaching of CS desperately needs to be revamped.

  60. Get an "F" and still want to code? TAKE IT AGAIN! by Anonymous Coward · · Score: 0

    Why do people have to pass the class the first time through? If they failed to understand the concepts then take it again! That's the whole purpose of an education. But is the problem that the diploma mills that our colleges and universities have become only care about getting the cattle through as quickly and with the least cost possible to themselves? Fail, try again, and again and again! If you don't want it, then you will not try. Some may never get it no matter how hard they try, but one semester or even one year is not reason to give up.

  61. I Hate to Say It by CrazyDuke · · Score: 1

    But, am I the only one that noticed that University technical and engineering curriculum are designed more around breaking intelligent people and teaching them their place in preparation for entering the workforce? Seriously, 3AM projects, professors that change assignments whenever they feel like it to make sure they have your undivided attention, double standards, ambiguous rules, incoherent professors and TAs, political axe-grinders of all stripes, it's not what you know, but who you know and how much you can bullshit, etc...

    Don't get me wrong: It's not all like that. But, the cut classes are. Cram all the in majors into the same class sessions, curve the grades, then fail anyone that makes less than a C. Partying? Girlfriends? Networking? What are those? When you get a 39 on the mid-term, get curved to a C, and the "perfect score" kids are having emotional breakdowns in the corners of the lecture halls, you know something is up.

    Oh, and do I really need to take 4 semesters of writing asinine "Hello World!" command line, ASCII text file based databases? ...nine lines of comments per line of code in addition to the function diagram, really? God forbid they actually instruct us to do it in a industry standard format that we can use later on, or at least give us some theory so we can apply it to those standards.

    Eventually got fed up with the grind, educated myself, got a two year and jumped into the workforce for my "how to deal with bullshit" training. I plan on going back to finish up. But, I won't be suffering under the delusion that it will be for any sort of intellectual gratification this time around. It will merely be so I can get my "Well adjusted for the corporate environment." certification. It helps to have a baseline to fill in the gaps as well. It is too bad that appears to be more of a secondary objective.

    --
    Any sufficiently advanced influence is indistinguishable from control.
    1. Re:I Hate to Say It by DaMattster · · Score: 1

      And even then, University has left me pretty unprepared for the workforce. I got an excellent theoretical background which would serve me well for a Masters or Ph.D but does little to help in the corporate grind. I went to college for a degree in Criminal Justice and I work in IT as a UNIX Admin. I started as a lowly help desk guy and moved up the ranks. How is that possible? Self taught. I learned more on my own through trial, error, and curiosity. Learning does not necessarily require a formal classroom structure with an "expert" teaching you. It is always better when you learn yourself through your own experience. Knowing I hated Windows, I set up OpenBSD and Linux, broke in, repaired it and practiced installing software, upgrading, and compiling from source. When you learn for the pure enjoyment of it and on your own, it is much more fruitful and productive.

    2. Re:I Hate to Say It by CrazyDuke · · Score: 1

      I honestly am not sure anymore that that is not part of the deal. Without launching into a rant, I'll just say this: Just because it conditions you for the benefit of your future employer does not mean it conditions you for your benefit as an employee. It's more about knowing your place as opposed to how to make due with it. Empowered non-management employees are a threat...oh...here I go, never-mind...

      --
      Any sufficiently advanced influence is indistinguishable from control.
    3. Re:I Hate to Say It by Eli+Gottlieb · · Score: 1

      Workers of the world, unite?

    4. Re:I Hate to Say It by CrazyDuke · · Score: 1

      I'm talking about individual empowerment, not unions. Extremely subservient employees are not as much of a threat to substandard managers. And, they give The Game players almost unlimited leeway to do and get away with whatever until audits or the law get involved. Most managers I have met are fine. But, it only takes a few since they don't necessarily have to be your immediate boss to make your life hell. Some regular grunts try to pull this sort of crap, too. But, usually the damage is limited unless (until) they get a hold of the gonads of a manager.

      --
      Any sufficiently advanced influence is indistinguishable from control.
  62. I wonder what % take it to fill a requirement by NotSoHeavyD3 · · Score: 1

    Like my title says, I wonder what percentage take these courses to fill some stupid requirement.(I know, I'll probably lose some karma points for stating this.) I mean I look at how it was when I went to university. We had a 4 semester foreign language requirement. So a great many of the students in those courses weren't taking these courses because of some "love of language" but because some nitwit just had to shove his pet area of study down our figurative throats regardless of any real results. (Yes, I'm very bitter about the undergrad torture requirement. Before anybody chimes in it completely screwed up my education and has brought no benefit to me which you'd think it would have by now, I graduated almost 20 years ago.) Anyway my point is that I wouldn't be surprised if quite a few of the students in CS101 and CS102 are there to fill a requirement my yet another pencil pushing faculty member who had a stupid idea of "Wouldn't be great if all our students were interested in modern technology, lets shove it down their throats."(Since this amounted to a 2 semester math/science requirement if you weren't a math/science major. I be some of the students in my CS courses were there because they didn't want to do a lab or a math class. Of course this screwed me over as a math/science guy because I ended up having to do 6 semester of humanties and social science which I were also worthless. I just didn't hate them as much as the undergrad torture requirement.) They might take the first one because "Maybe it could be cool." and then figure "I might as well do the second semester and get this claptrap out of the way." Basically creating their own problem and then turn around and complain about the problem they caused in the first place. (But hey, I'm cynical.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  63. BS by Anonymous Coward · · Score: 0

    Learned to program within a few weeks when I was 12. Learned to play an instrument in a few months when I was 10. I am no prodigy and had to practice like most. Coddling people is not the answer. Sink or swim is.

  64. Coding is not CS by QuickBible · · Score: 1

    Coding is just an application of CS. The two disciplines just need better separation. CS can be taught classically using pen and paper, or tablets and stylus' if you prefer.

  65. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    Everybody who can do math with variables can learn programming. It's one and the same, just with different notations. Programming is also a fundamental human skill. It's formalized planning, no more, no less. Finding the structure of a problem to be able to approach it systematically is something we do every day, even when we're not in front of a computer. Computer science just takes this aspect to the extreme. Nobody is expected to become an excellent programmer in 15 weeks, but if you can't read and write simple programs after that course, then you're not really trying.

  66. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    Yeah I had zero experience going into comp sci and I got a ~96 avg after my first two algorithm development classes... ...the people who struggled seemed to me people I wouldn't trust programming something important.

    Sink or swim = good!

  67. CS = Sophomore Level Classes by bill_mcgonigle · · Score: 1

    and completely omit things like graph theory that are absolutely fundamental. ... Some will have taught themselves stuff (and probably picked up some bad habits along the way), some will not. The ones who are self taught will be bored for at least some of the first year, since everyone else will be catching up.

    Right on. Why not start CS classes at the sophomore level? To a large extent Engineering does this already.

    Freshmen can take the relevant maths, logic, etc.. Those who want to be CS majors can place out of the freshmen programming classes (or maths even) or take that year to learn how to program well enough to get into the meat of the coursework. Sure, they can't finish their major by Junior Spring, but neither do engineers.

    A five-year program for those with no prior experience is also a possibility.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  68. +1 by Concern · · Score: 2

    I'd say that was perfectly put. I can add nothing.

    --
    Tired of Political Trolls? Opt Out!
    1. Re:+1 by cherry-blossom · · Score: 1

      Yep. Well said.

  69. If you can't handle CS1 without hand-holding... by intx13 · · Score: 1

    Frankly, if you can't handle CS1 without hand-holding, maybe you're just not cut out for Computer Science. I've found that professors are much happier to take extra time on concepts once you get into the later undergrad material and grad school research-oriented topic - the hard stuff - but have little patience for introductory courses.

    After all, why should a professor dumb down a relatively easy course for 200 students when he or she could accelerate it for 100 students? Prove your ability on the easy stuff and the professor will spend more time on you when you get to the difficult stuff.

  70. Re:Reading, counting to 100 and other difficult ta by Lawrence_Bird · · Score: 1

    I have to disagree with both your reply as well as the original question by the professor. Previous programming should not be a prereq for a CS1 class. Afterall, that is why it is a CS1 class and it may well be required for non-CS majors as well (though some schools have intro CS classess for engineering majors only.)

    I think what the professor is seeing is a two part problem. The first is a general problem. Students appear to be (in general) less well prepared for college, less motivated and more distracted than ever. For instance, when I was a freshman we just had drugs, booze, sex and incredibly basic cable as distractions. Now in addition you have hundreds of tv channels, the web, social media, gaming. I'm not going to search for the reference but recently I read that the time students spend on things like homework is at an all time low. Hmmm...In addition, there were times when learning to program before college was not an option - no home pc's, none or very limited number at school. Yet people still got through those initial courses ok.

    Second, is Java really the best language for very basic introduction to programming? Perhaps it would be better to start with a simple procedural language which still teaches much of the basics without getting bogged down in a lot of concepts from object oriented programming. Java could the be tought in CS2 where students would be better able to understand why using an object oriented language such as Java is preferrred.

  71. Some of us... by Anonymous Coward · · Score: 0

    treat CS as a job, NOT as a religion or way of life. Actually, many talented people are scared away from CS because of the piss poor (for normal people) life-style connected with CS.

  72. I found it fun and easy by MpVpRb · · Score: 1

    I took first semester CS without any previous programming experience.

    I knew immediately that I had a talent for it.

    Went on to finish my degree with straight As.

    Maybe it's good to weed out the untalented.

    1. Re:I found it fun and easy by stinerman · · Score: 1

      Same here...only I was atrociously bad. I'd get Ds and Fs on the programming assignments and As on all the written exams.

      I understood the material...I just couldn't translate it into code for whatever reason. That's why I changed after 2 years to Math and got my degree there. Modern Algebra was a hell of a lot easier than Operating Systems, that's for sure.

  73. Re:Reading, counting to 100 and other difficult ta by PRMan · · Score: 1

    I taught a CS101 BASIC class as an adjunct professor at a school with no CS department. It was a requirement for HS teachers and our school was great at churning out teachers. Some other people took it just to "find out about computers".

    So I am teaching people QBASIC to avoid $500 for the students. I had a guy who didn't know how to type and had never touched a computer before. I gave hard assignments, too, programs that actually did things like a menu system to launch all the standard programs on the lab machines, solving 8 queens, etc. Most of my students got As and nobody failed. (I was using a strict points system and showed everyone weekly where their letter grade was.)

    The shocking part? Almost all of them went into computer-related fields. The teachers became the programming teacher at the HS, even though they "didn't think they were good at it" (they were). You CAN teach people CS, even if they don't know programming, have little interest (at the beginning), have never touched a computer, etc.

    Now, one of the school cheerleaders was taking the class and asked me whether I thought she should drop it. I told her yes, because we both saw that there was no way she would do well. It just wasn't her thing.

    --
    Peter predicted that you would "deliberately forget" creation 2000 years ago...
  74. Re:Reading, counting to 100 and other difficult ta by syousef · · Score: 5, Insightful

    That is moronic. You deserve an F for not learning what the course aims to teach you in advance of taking the course? FUCK THAT. Why take the course then?

    --
    These posts express my own personal views, not those of my employer
  75. How do "smart" people manage to be so dumb by nedlohs · · Score: 1

    You have ten weeks to walk, and if you can't, you get an F and you're not allowed to try to walk anymore

    No it's like giving them ten weeks to walk and if they can't then they can try for ten weeks again. We don't stop them from trying to walk anymore, we stop them from trying to run until they get that walking thing down.

    Or does he seriosuly not let people who fail a course try it again next semester?

  76. Sink or Swim? Sink! by florescent_beige · · Score: 1

    If CS is anything like engineering, the administration doesn't want everyone to swim. They count on 1/2 of each undergrad year to drop out so the tuition of the unsuccessful can be used to subsidize the university's other programs.

    --
    Equine Mammals Are Considerably Smaller
  77. Why does this surprise you? by Anonymous Coward · · Score: 0

    I find this perfectly acceptable. Using the professor's own analogy of music students, do you think any of those music students who being college with no musical background graduate with a degree in piano performance? Such disciplines require an outside drive, desire, and experience that you won't pick up in a scant 4 years.

  78. Teach Intro to Programming in HS by gatkinso · · Score: 1

    There is no reason at all why students can't learn the fundamentals of a programming language (this is how to edit a text file, this is a string/float/integer variable, this is a function, this is the "main" function, this is "Hello World", this is how to read from a file, this is how to write to a file), some practical knowledge (this is a compiler, this is a linker, this is what they do), and how to use an elementary build system in high school (this command runs the compiler, this command runs the linker, here is your executable, here is how to run it, here is how to use tar to submit your work).

    The above could literally be a syllabus for a high school class which if taught, would dramatically increase college into to CS pass rates.

    I am not talking about "science" here at all, simply how to program using a programming language which frees up the professors for the more advanced topics. Preferably a language that:

    1) is vaguely relevant
    2) is taught in the intro to CS courses at that states university (which sadly could very well conflict with 1)
    3) is free both in beer (not all kids are rich) and speech (the talented ones may want to look at the compilers code or some geeky thing)

    And... professors reading this: with regard to Number 2.....your Intro to LISP/Smalltalk/ALGOL class is stupid. Here is a hint: C. Java. C++ if you are sadistic (I love C++ BTW but teach them C first). While other languages are relevant, the above 3 encompass 90% of what the student will encounter after college.

    --
    I am very small, utmostly microscopic.
  79. I was in the middle by Anonymous Coward · · Score: 0

    I was one of the first crop of students to start the CS program at a school which had changed the entrance requirements in an effort to recruit more women. Instead of looking at CS experience in high school, or emphasizing grades and SATs, they looked a lot more at extra-curriculars.

    I almost flunked out of first year CS. The first part of it didn't click until after my first year. I didn't get really comfortable with programming until the last semester of my senior year. Of course my grades sucked, but the grades have been completely irrelevant; I've managed to do rather well since then. I'm rather sympathetic to the argument that it shouldn't be sink or swim.

    -kevin
    Incidentally, I'm one of those that went into the field not because I really knew what I was getting into or that I had a calling, but rather that I wasn't going to major in music (which is where my actual talent is).

  80. CS1 is hard? by Anonymous Coward · · Score: 0

    Are you kidding me? CS1 was the most boring and easy course I've ever seen in my life. Anybody who gives even the tiniest shit about their CS major could pass it without ever attending a single lecture. This is a variable. This is an if statement. This is a for loop. Oh look, a function. Fuck me.

  81. A Better Analogy by grumling · · Score: 2

    Having been a music major, a film/television major, and someone who hangs around with computer-oriented people most of his life, I think a better comparison would be film and television students. Some of them come into programs with experience in photography and video, some have even done some work that has been on the air, but most have never been near a video camera and can barely press record. The first television production course I took had 50 kids. It was all about hardware and a lot of people were totally lost. It was designed to weed out. The next had 20, and the last had 15. Since I had been taking stills for years, I had a basic understanding of exposure and composition. I also had a fairly strong background in electronics so that helped too. But there were other kids who had no background in either who were able to tough it out and get through it, one I remember was an excellent videographer even though he'd never done it before. Some of us would hang out in the studio and work on each other's projects. Some would attend class and disappear. But I'd say we all were competent enough to get an internship when we graduated (or some other entry level job).

    Music, on the other hand, is much more about honing your skills. The system just isn't at all about teaching the basics of your instrument. You have to audition to even be accepted. But there's already an infrastructure in place to accommodate that. I'd been playing since the 4th grade, all though high school I'd been in various bands, orchestras, chorus and choirs, and small ensembles. I'd also been in private lessons all through high school. How many comp-sci majors can say they have similar training?

    I'm sure this professor would like to see more students like Linus Torvalds and WOZ (who designed computers over summer vacation), but it isn't going to happen. I'm sure the instructors in the film department would like to see more Steven Spielbergs too (he had been making films since he was 10 before attending USC). The fact is, the field isn't set up that way.

    I'm really fascinated by what has happened to video in the past 5 years or so. Now that high quality cameras are cheap, desktop video editors are free, and anyone can publish short pieces easily, we should see a general improvement in the craft. It is going to take time, after all the first round of high school filmmakers is just now entering film school, but I would think we will see some amazing stuff on the horizon. The only thing that I see missing is the one-on-one instruction at the high school level.

    The same thing could be happening in comp-sci. If you subscribe to the idea that it take 10,000 hours (sort of the point of this post), the highschoolers today need to have programing tutors. There are a few, but not nearly enough to get kids beyond the "hey that's cool, I'd like to try that" through the tough stuff where most will give up.

    --
    "Well, good luck finding a judge that doesn't run a bestiality site."
  82. After having worked a uni help desk for 4 years... by Anonymous Coward · · Score: 0

    ... and having helped hundreds of students as they struggled through the assignments for both introductory and later computing classes, I long ago came to the conclusion that weed out classes are there for a reason.

    Once you've accumulated a large enough sample set, and watched different people progress through a curriculum (or not), you start to be able to tell who's going to "get it" eventually, and who won't. In my experience, admittedly 25 years ago ("get off my lawn, 7-digit /.ers!" ;-), it's fairly rare for someone who doesn't "get it" at all during the intro class, to "get it" later. If they're determined enough, and diligent enough, to bang their head against a difficult concept until they get it in the first semester, and ask intelligent questions beyond "what do I need to change in my program to get it to run?", they're probably going to be able to cut it later in the curriculum and out in the workplace. If all they express interest in is WHAT to do to make some code produce correct output, and not WHY it's done that way, it doesn't bode well for future comprehension of CS studies like discrete math, simulation, OS, changes in programming patterns as hardware and networks evolve (multi-threading, map/reduce, etc.), all of which involve comprehending they why's of new problem domains.

    Making the intro class simpler may be a kind gen-y "everyone's a winner, got to be mindful of the students' self esteem and give them every chance not to fail" way to go, and might help schools with the falling numbers of CS graduates, but too many universities already graduate BS degree and even MS degree students who have neither academic research or practical workplace skills in CS. I'm all for giving those who are working toward understanding and who show improvement over time as much help as possible, but draw a line at handholding everyone. Students without the appropriate aptitude and personality (and passion) for CS are best off finding that out so that they can try something else while still early in their studies.

  83. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    The overarching mandate of universities is, as someone else has already stated, to advance the state of human knowledge (I'll add: "through research"). But at the first year and indeed arguably the entire undergraduate level, the mandate is to teach. I don't think it's as simple as "well if you're not already a programmer, don't bother showing up". Of course, we can't reward no effort. But effort + desire to learn should earn a complete neophyte a B, in my opinion. After that, the ones whose interest was piqued will go on, and the ones who just wanted to check this CS shiz out or needed a science elective will move on.

  84. So wait, I'm confused... by Blakey+Rat · · Score: 1

    It's ok for the Orchestra to do it, but not the CS program?

    I don't understand what I'm supposed to be getting from his analogy. "Music programs do X all the time, it's well-established and there's no debate about it. Which is why CS programs should under no circumstances do X." Huh?

  85. weed out classes by slashdotjunker · · Score: 1

    The sciences and engineering programs tend to have intro classes that weed out the weaker students. This is at odds with one of the primary goals of teaching. However, I think these weed out classes are ultimately a good thing because society pays a cost when poor students get science and engineering degrees.

    Bad science creates a burden on society by undermining our efforts to advance knowledge. Every poorly conducted experiment and incorrect published paper creates extra work for everybody. The erroneous results must be refuted or else the misinformation spreads. In addition, peer reviews don't come free. A poor scientist cannot contribute useful reviews but they can submit papers which need review (moreso than better scientists). They are a constant burden on the community.

    Bad engineering also creates extra work for everybody. Engineered systems are susceptible to the weakest link paradigm. A broken part cannot be ignored; it could bring down the whole system. Good engineering teams quickly identify poor engineers and remove them. Engineering teams made up of poor engineers dump broken products on end users which causes problems for everyone. Even if the engineers are held accountable, the problems don't go away naturally. Society has to waste time and effort cleaning up their messes.

    It is always saddening to fail a student. However, in my experience, students are not expelled from school for failing a weed out class. They are simply encouraged to change majors. Universities have enough departments of varying difficulty that any student can graduate with a degree. It is up to the student to make the effort to get their preferred degree.

  86. You're either cut out for it or you're not by EmagGeek · · Score: 1

    First of all, CS 1 is not hard. Hello World. Some if and switch stuff. Some for and while loops. Basic functions. None of CS 1 is designed to make you a good programmer. It is designed to find out if you have the mental capability to be a programmer.

    CS1 is about your ability to design very basic algorithms. Case in point: The Calendar. Printing a calendar for an arbitrary month and year is not hard. The algorithm for deciding when the leap years occur is not hard. Almost anyone can come up with some kind of algorithm to print a calendar. What the assignment reveals is whether you're going to sit down and think about it first, draw some charts, think some more, and understand what is going on before you code; or if you're just going to sit there and mindlessly churn out 4000 iterations of trial and error code.

    The students who do the latter will not finish the assignments on time, not learn anything, and flunk out of the class. That's a good thing.

  87. Missing a big issue. by Anonymous Coward · · Score: 0

    The difference between CS and most other degrees is that being a good programmer requires being able to think a certain way logically. This thought process is a skill which can neither be taught nor learned, it has to be realized by the student. Some people get it right away, some take a while, and others will never understand it. The classes can only take you so far, and then it's sink or swim. If the student doesn't come to this understanding, he can only learn by rote memorization, which we all know doesn't work for anything but passing tests.

  88. there is a reason why college students don't learn by superwiz · · Score: 1

    Most of them nowadays don't have adequate high education. So they end up "catching up" in college. But certain subjects can be studied at a young age much more effectively than at a later age. The idea that someone can master high school curriculum and college curriculum while in college after not being able to adequately master high school while in high school usually doesn't work out so well. There are, of course, exceptions which prove the rule, but they don't tell much about how to improve the education system. Those exceptions would do well with or without the system.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  89. It's video games and IPhones by callmehank · · Score: 0
    The observations of the article are basically correct.

    But it's the fact kids are brought up on game consoles and social-networking phones now instead of raw computers which is part of the problem. These intentionally-sealed entertainment devices don't encourage you to get under the hood and program. Thus, you gain no appreciation for things you don't know - no thirst for knowledge about things like pointers, interrupts and computer architecture.

    Back in the 70s and 80s the only "tech toys" you could play with were things like the Timex Sinclairs, Amigas, Heathkits and KIM-1s. That stuff was all new and exciting, and a lot of people got into that and started programming on their own. Many of these computers had BASIC hard-wired into the machine, and decent instruction manuals. You could learn enough to be dangerous, but not much more.

    It doesn't take that much time using BASIC on a Timex-Sinclair to develop a sense of appreciation for classical problems you'll encounter in programming. Running code in 1.5k of memory on an 8 MHz machine serves as an adequate introduction to runtime efficiency issues. And when all you've got is a floppy disk or tape to write to, trees and sorting techniques have relevance when you learn about them later. When you play with slow and incapable hardware enough, you begin to become acquainted with the names of techniques and principles you don't know, which could speed up your programs.

    So going into a CS program with curiosity about pointers and data structures will motivate you to grasp these concepts more eagerly. A lot of students typically have problems understanding the purpose and mechanics of pointers in CS 101. "Getting" pointers (not only their mechanics, but their purpose and utility) is a very important step in moving through a typical first CS class. Understanding pointers leads to "getting" the idea of passing data by reference, creating data structures, and lays the groundwork for talking to peripherals.

    I kind of think that the advent of game boxes like the Xbox have led to an overall sense of computer illiteracy. People have to have their appetites whetted for things like sorting and data structures because it's so damn boring otherwise...

  90. Re:Reading, counting to 100 and other difficult ta by sydneyfong · · Score: 1

    FYI, I just discovered that paper a few weeks ago.

    http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

    As for the GP's claim that:

    we were headed for a two-tier society, comprised of people who used computers and people who programmed computers

    I can only say, it's really a three-tier society. The people who *programs other people*, the people who programs computers, and the rest.

    I write software for a living, but these days I'm actually much more interested in "programming people".

    --
    Don't quote me on this.
  91. Not necessarily lowering the bar by DragonHawk · · Score: 1

    In fairness to TFA, there is a difference between allowing for the idea that some students will need more/different education, and the idea that we should make it easier to pass a CS course.

    Some people are smarter than others, some learn faster, some grasp CS concepts easier, some will learn differently. Just as not everyone is a genius, not everyone is a clod. Perhaps someone could still be a perfectly good -- not outstanding, but perfectly good -- programmer or sysadmin if they studied longer or had more intensive coursework. At the same time, I breezed through my CS classes, so it isn't fair to me to make me sit through hours of classes I could just as easily skip.

    We both should have to pass the same exams, though. We should have to demonstrate knowledge and understanding of the subject, even if we took different routes to get there.

    As others have suggested, this discussion may really indicate that lower schools are not doing a good job. Or rather, that some (significant number of) high schools are doing a poor job. Maybe my high school did a better job prep'ing me for CS than that other guy.

    --

    dragonhawk@iname.microsoft.com
    I do not like Microsoft. Remove them from my email address.
  92. But why? Why? by Anonymous Coward · · Score: 0

    "Students who don't have any prior programming experience" study computer science? Why on earth would they? How would they know it's what they want to do if they haven't even tried it? There's no excuse. They should go back to Mama.
    I had plenty of programming experience when I started studying CS, and so had everybody else I studied with. And that was back in 1986 when not every teenager owned several general-purpose computers.

  93. No high school prerequisites for CS? by LittlePud · · Score: 1

    Maybe the problem is that there are very few or no HS prerequisites for CS? I can't imagine university Physics not having HS Physics as a prereq, or Chemical Engineering not having HS Chem as a prereq. Why shouldn't CS have a basic programming knowledge (any language, knowledge of loops, conditionals, etc.) as a required foundation?

  94. I am also a CS prof... by CDPS · · Score: 1

    I have taught our CS 2 class (in Java) and our third programming course (C and Linux/UNIX system programming). While it is reasonable to think that perhaps "the problem" is that some people just need more than 15 weeks to pick up basic programming, I have seen absolutely no evidence that this is true. For example, I have never become aware of even a single student at our school that has gotten a C in the CS1 class, but then by the CS3 class ended up with even a B let alone an A. What typically happens is that those that make it through CS1 with a C, will fail the CS3 class (two semesters later). The requirements to pass the CS1 class are frankly extremely minimal these days (due to enrollment issues). If you cannot end up with even a C in that class after 15 weeks, I believe there is effectively no hope that you can ever be taught how to program well enough to make it through a CS program. Even if it might be possible for some such people to gain these skills, it would probably require a level of intense, personal instruction that universities do not pay faculty for (and students do not pay universities for).

  95. As someone who went through the process by shellster_dude · · Score: 1

    I find it absurd to believe that someone who can't pick-up basic programming concepts and write half decent applications, at the end of 15 weeks, is going to make it a programmer out in the field. Maybe there exists nice plush programming jobs were you never have to learn new languages, hardware, or concepts, but I've never met one. As a professional programmer, my language, environment, hardware, and software constantly must change and evolve. I must constantly be learning new things to keep a competitive edge. If you can't hack that, you shouldn't be a programmer. This professor fits right in with a nice long line of academia who seems intent on giving students another excuse to fail at life.

  96. Unfair requirement by Anonymous Coward · · Score: 0

    Saying you should have a programming background to even take the first CS class is completely backwards. It is not unlike saying you can't major in Russian if your high school didn't have Russian as an option or you don't already speak it. People enter universities from all kinds of backgrounds and other schools and until programming is a requirement of entry into the school in general it is unfair to penalize those that didn't have that chance. American universities should only assume students have the minimums they impose on entry, usually good English skills, math at the trig/geometry/pre-calc level, some level of analytical skill and most of the time a foreign language.

    A sink or swim intro to programming course is not a bad thing but it should be just that, a programming course. The basics, much like Calc 1, something that people that have the basics can skip but those that don't can take.

  97. news flash: weak students struggle by Anonymous Coward · · Score: 0

    If you haven't heard of Grand Valley State or don't know what state it is in, you are excused. It is a regional "university" and Google's autocomplete comes up with Grand Valley State: university/football/athletics/baseball even though their football team is not remotely competitive. Students there are not well prepared for material requiring critical thinking (such as programming) and you can't make up for weak background and/or weak ability in 15 weeks. It's in Michigan and students who are better prepared and more capable have much better options:

    Grand Valley State profile:
    Test Scores -- 25th / 75th Percentile
    SAT Critical Reading: 490 / 610
    SAT Math: 520 / 640

    University of Michigan profile:

    Test Scores -- 25th / 75th Percentile
    SAT Critical Reading: 590 / 690
    SAT Math: 640 / 740

  98. Observation of a Rising College Sophomore by shadowthunder · · Score: 1

    I just finished my first year as a Software Engineering major, and was somewhat shocked at how many people were unable to understand the core of CS and SE after a slew of relevant classes. A few observations:

    - Many students are in these majors because they felt they were "good with computers" in high school. This really just means they were spending more time than is healthy on the internet (ha, don't we all?) and playing video games, and probably being third-hand distributors of memes. Playing lots of video games != being good with computers != being smart != being a good programmer.

    Okay, a good percentage of students aiming for a CS degree are misguided in their abilities coming out of high school. How can that be fixed?

    - Students need to crawl before they walk. Given that most students going into computing degrees have no or negligible experience programming or solve logic and reasoning problems, they need to taught to truly think before they're allowed to write a single line of code. In this regard, courses such as Precalculus (rotation of axes) Multivariable Calculus (change of order of integration and coordinate systems), Linear Algebra (abstract thinking in many dimensions), and Discrete Math (algorithm-oriented thinking) are not only extremely valuable, but - I argue - ought to be required before even marginally complex code.

    - Grade schools (and parents) need to push math at a more accelerated rate, and earlier (I'm talking about the US now). The human brain develops most significantly between four and six years old (preschool to first grade). Why, then, is it standard practice to not teach the absolute basics of multiplication and division until the end of second grade at the earliest? Not only would the students have greater mental capacity once fully developed, but they'd also have the necessary practice using their brains to solve significantly-complex logical and mathematical problems by the time they reach college age to program by thinking algorithmically. Students are severely limited on the upper end in what courses they can take in high school. Most high schools don't offer anything past Calculus (many don't even have BC, the latter half of Calculus, at their school), or more than a single entry-level programming course. These students are only marginally better-prepared for a CS degree than the rest.

    - I don't think the issue is that the courses are designed to weed out students who aren't going to be capable of the material. "Weeding out" is necessary for any field - sometimes, people aren't good at what they enjoy - but way too many students are unprepared for their college majors because their high school curricula weren't focused in their favor. In my hometown's school district, a typical 7th-12th grade year consists of one science, one math, one English, one social studies, one language, and two electives. Somewhat balanced at first glance, but then you realize that the only elective courses available are more rote- and literature based courses. I am not "poo-poo"ing liberal arts - they are important in understanding the evolution of cultures - but so few of them are actionary and forward-looking.

    TL;DR:
    - "Plays lots of video games" does not equate to "will make a good programmer"
    - Colleges are trying to teach programming before teaching the ability to critically think through a problem.
    - Grade-school-aged students aren't getting the necessary background in technology or logical reasoning at either school or home.
    - Having a degree in something ought to mean that you're completely competent (not just in a base-line capacity) and ready for anything the workplace can throw at you, not that you struggled through four years of classes in an area, and mastered only 75% of the material.

  99. Not as easy as it looks by npsimons · · Score: 2

    We hear all the time that "any trade school code monkey could write that software" or "my nephew could program that" or "it's a small matter of programming". Yet here we have a prime example that it's not that easy, is it? I think people (both individually and in aggregate) *still* don't really understand software. It's understandable, because it really is different. Name another product where the design /is/ the product.

    As for "dumbing down" courses, or not expecting people to learn to program in X weeks, maybe we should just admit that most people cannot learn to program, no matter how long you take trying to teach them. Maybe sometimes some children *should* be left behind, or better yet, directed to things they can actually learn to do.

    1. Re:Not as easy as it looks by Darinbob · · Score: 1

      This problem exists in all fields though. People come to university unprepared to learn. It's a massive culture shock for most.

    2. Re:Not as easy as it looks by Anonymous Coward · · Score: 0

      Interestingly my wife has looked at the example question on that page:

      nt a = 10;
      int b = 20;
      a = b;

      Her answer was that both a and b would be 15, to make them equivalent.

    3. Re:Not as easy as it looks by Drethon · · Score: 1

      Code is easy, low maintenance, good working software is difficult.

  100. From A First Year CS Student by Anonymous Coward · · Score: 0

    I am currently studying at Lancaster University in the UK and I see that there are a lot of people in this thread saying that CS should not be about the programming and that this should be left to other courses. The truth is that without being an at least competent (by first year Uni standards) programmer you WILL NOT pass a course here.

    Out of the 17 modules that are taken as the base modules for the year a total of 7 of these are based on the ability to program (Java and C, Web Technologies and Assembly Language). If a person coming to University with no experience does not pick up the essential skills to pass these unit's they will almost certainly not pass the course. Personally, when I came to university I had a basic knowledge in PHP and Web Tech but nothing of any full programming languages and I did struggle for the first while, luckily the Uni was very helpful in assisting students who were new to field and I can now happily say that I am confident with the basics of Java from a start of not knowing even the most basic of syntax.

    As too whether sink or swim methods should be enforced or not I suppose I am not in a position to say. But I know a good few people on my course that I will not be seeing next year despite that they fully grasp the mathematics behind the course and are almost certainly going to do well in exams...

  101. How to gain an edge by CosaNostra+Pizza+Inc · · Score: 1

    If you are a CS student, gain a certificate and/or get involved in some open source programming project. This shows prospective employers that you have initiative besides completing your curriculum with X.XX GPA. A certificate also shows you know something well. Participation in an OS project gives you programming experience to combat the Chicken-or-the-Egg problem ("I need a job to gain experience but I can't get a job without first having experience") when searching for your first job after graduation.

  102. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    If you haven't taught yourself the basics of programming by the time you enroll then you deserve that F.

    Odd. I had zero programming experience when arrived at college, yet I excelled and now have a full computer science degree (and a math minor, too). Several students who DID have prior programming experience failed that first class. Maybe it's not all black and white?

  103. Bad analogies abound by The+Man · · Score: 1

    Different skills take differing amounts of time and experience to master. In general, professional musicians start playing in or even before high school. No one shows up at a university with no experience and expects to become a concert pianist or cellist. The expectation is that it takes at least 5-10 years of experience to become a top-notch musician. The counterexample offered of a surgeon having been expected to operate on his pets in high school is also silly; while the expectation is that experience with musical instruments is gained starting in the early teens, that same ten years of experience for surgeons begins in college and extends well beyond, into medical school, internship, and then residency. So it's incorrect to compare the three fields.

    Part of the difficulty these academics are having is that "computer science" encompasses many different fields. Some academics are really borderline mathematicians. Some students really belong in a vocational school, because the general knowledge of computer science most university programs teach is not needed nor useful if your plan is to go write business logic in Java for some megacorporation. Those students would be much better served by a 1- or 2-year program that focuses on the specific technologies they'll be using. And there are other students who plan to make programming a career in any of several different fields, each involving its own specialised tools, terminology, and mixture of theory and practical knowledge. All of this lives under one roof in most universities. Complicating matters further, students show up with many different levels of experience; some may have grown up with little access to computers, while others may already be accomplished programmers in the open source community looking for a degree and the opportunity to gain advanced knowledge of theory. It will never be possible to come up with a plan for the first two semesters that works for all of these cases. In that sense, the one-size-fits-all approach is indeed broken. But that is completely different from insisting that "up-or-out" is wrong, or that the basics need to be introduced even more slowly or in even more courses.

    Students in most programs get 2 semesters of extremely basic instruction. This covers things like what variables, expressions, and functions are, the concepts of sequence, decision, and iteration, the basics of syntax in one or two languages, what memory is, and maybe some simple data structures like arrays and structures. Anyone who comes in with any programming experience at all, in any language or context, already knows at least 90% of everything taught in these courses. Forcing everyone to take them constitutes a tax. Value is given in the form of tuition and time spent but none is received in the form of increased knowledge. Students with no experience may well benefit from these courses, however. To suggest that they're "too fast" is ridiculous, however. In those two semesters, students will receive about 80 hours of lecture instruction, 2 300-page textbooks, usually at least 1 textbook with practical exercises in it, at least 15 hours of structured practical instruction from teaching assistants, generally unlimited access to computers, compilers, interpreters, and other tools as needed, unlimited access to a library with thousands of relevant documents ranging from trivial to cutting-edge research, access to a peer group, and dozens of office hours with the instructor and teaching assistants. It's silly to suggest that in 8 months a committed student with access to all those resources cannot pick up the basics of computer use and programming in at least one high-level language. And that's really all that's expected; there are separate courses for computer architecture, advanced data structures, operating systems, compilers, graphics, linear algebra, logic, calculus, programming language theory and features, algorithms, networking, databases, and so on. No one is expecting a student completing those two courses to be a maste

  104. analogies by roman_mir · · Score: 2

    I don't know what analogies you used and what your tutoring abilities are, but I knew a number of people, who excessively used analogies in every day lives, always trying to describe the most mundane things with these analogies, which most of the time were terrible, and by using analogies they made things worse, not better.

    --
    Anyway, if somebody asked me to explain that piece of code (a function takes in 2 parameters, returns a value equal to the multiple of the two, has no effect on scope of global variables, has no side effects on the values of the parameters to the function), I would not use any analogies beyond this: a = 1 * 2, and everything else has to be explained precisely, without any analogies.

    The concepts are many: there is the 'int', so data structure must be explained, there is the '*', so the operator must be explained, there are the '{' and '}', so the scope must be explained, there is the 'return', so this has to be explained (it's equivalent to the '=' in math.)

    int - an integer between lower and upper bound

    * - a multiplication operator, this should be understood from math and use of calculators (if nothing else)

    {} - are scope, which is equivalent to () in math

    return - equivalent of '=' in math.

    --
    If the student was struggling with different notations, that's one thing, if he was struggling with understanding of math, that's another problem altogether.

  105. Isn't this every field? by ktrnka · · Score: 1

    The gripe is that some students are less prepared than others, making it difficult to design courses? You're always going to have that problem. In the third-semester CS course I just finished teaching, there were 25% CS majors that took the prereq in Java, 60% or so CPEG or EE that took it in C++ two semesters ago, and the rest took prereqs at community colleges or abroad. Depending on what they took and their background, they were unprepared or overprepared. You can't teach to the least common denominator; you end up balancing the curriculum so that it's sub-optimal for almost everyone, but equally sub-optimal for many students.

    The music analogy is awful - it's reasonable to expect prior music experience for a music major and unreasonable to expect them to place well in the orchestra right away. The "CS is not programming" comments aside, maybe they don't have any background due to their highschool (although that shouldn't stop a hobbyist). So you solve the problem by having an "intro to programming" first semester and placing many students out of this course (that's what happened to me in undergrad and it was fine). Or you have them take remedial courses first because they're behind.

    Getting back to CS1 - passing the course doesn't mean you can program anything. Depending on the school, it means you can write toy programs, typically with awful readability/performance and typically it doesn't indicate that you understand recursion, pointers, complex data structures, etc.

    The most important thing is that every school is different and struggles with different problems. Some schools prepare you for a PhD in CS, some schools prepare you for the workforce, some schools prepare you for nothing at all, some prepare you just to learn and deal with strict requirements, and some mix a little of it all. It's absurd to try and make a general claim about computer science in general.

  106. What about the unprivileged kids? by GodfatherofSoul · · Score: 1

    You know, the one's growing up without 8-core machines in their bedrooms and broadband pipes. I guess someone has to wash the dishes at the country club.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
  107. Re:WHy are you majoring in GCCCS... by colinrichardday · · Score: 1

    Yeah, why not just download gcc?

  108. Weed out classes - low end schools only by Animats · · Score: 1

    The sciences and engineering programs tend to have intro classes that weed out the weaker students.

    That's a property of low-end schools. If you can get into MIT, you have over a 90% chance of graduating. (Cal Poly engineering, 45% - 50%)

  109. Degree not needed? by br00tus · · Score: 3, Interesting
    I have looked at job listings over the years on Monster.com, Hotjobs and Craigslist. Many have said "Bachelors in Computer Science" required. I applied for a nice position at Google once and the HR girl told me that almost all of the people working in that position at Google had a Masters, if not a Doctorate. Even on interviews for jobs that didn't say Bachelors required, Human Resources would ask me for my education background, how many credits at college I had, if and when I planned on graduating and so on - from their questions and reactions, it was clear they would have liked to see a Bachelors.

    I just took a list at Craigslist, and a number of adds said "BSCS required" and the like, go look yourself. What does that mean? It means when if things get shaky at your company and the economy gets shaky and you're applying for jobs, that's a job you can't apply for. Well you can apply, but they've said up front they don't want you.

    You're right that there are bad schools and bad professors and bad textbooks - so go to a good school. Find out which professors are good via ratemyprofessors, internal school rankings and the grapevine.

    I also think there is an inherent worth to four (or more) years study of computer science that four years of reading books on C++ is not going to get you. You lay the foundation with a study of discrete and continuous mathematics, then you study computation and complexity, as well as other topics. By the time you get to practical applications, you have a full, rich understanding of everything going on, are familiar with algorithms, data structures, machines etc. in a more complete way and so forth. You can do this study independently, but why not go to a good local public school - some of your professors will know a lot, and working with other students is helpful and you'll get a degree out of it to boot.

    1. Re:Degree not needed? by Concern · · Score: 1

      I have looked at job listings over the years on Monster.com, Hotjobs and Craigslist. Many have said "Bachelors in Computer Science" required.

      I knew someone would say this. I also knew they would not give a percentage of software developer job postings that require a degree; a hint, it's not 100%. In fact I doubt it's 50%. And what's funnier is that even when they say it matters, it usually doesn't.

      Yes, there are some non-technical hiring managers (mostly HR professionals) who are taught to put the degree requirement on every job posting they send out, just as a reflex. Try applying to those jobs anyway. If you have experience, they will not even notice or care that you lack a degree. We put it at the bottom of the resume for a reason - and most people don't read that far. If you do not have much experience, that's your problem and no degree, unless it's from a top 10 school, and preferably with honors, will fix it for you. Those hiring for junior positions know best of all how little age or a bachelor's degree matters versus the ability to demonstrate skill. Take your laptop to the park every day and code something cool, son. For bonus points, release it to the world in addition to your future employer.

      Most importantly, what you don't do is give some sociopaths at a lower-tier school a $200k IOU for pretending to teach you "computer science." Not if you want to be a developer, anyway.

      I was hired as a first year undergrad - so obviously whatever training I would eventually receive didn't matter to my employers. In fact, I was asked to drop out and come full-time repeatedly over the years before I graduated. No one cared if I finished and in fact, they argued that it wouldn't make any difference in my future career. I didn't believe them at the time.

      The majority of places I've worked, over many years now, never cared about degree. The large majority. And I never pay attention to degree when hiring, unless someone has i.e. a Masters or PhD in something completely unrelated to CS. Then I take a little note, because you don't tend to switch careers unless you're passionate about what you're switching to.

      And if you think Google cares about the degree, ask that "HR girl" how many pre-bachelor's positions they fill every year. They pay $6k/month even for 18 year old summer labor from the top schools, along with Microsoft, IBM, and all the bigs.

      --
      Tired of Political Trolls? Opt Out!
    2. Re:Degree not needed? by SageMusings · · Score: 1

      In some organizations the only resumes the Developers get to see are the ones picked by the HR staff. And they are not passing along anything that does not have a BS or the right mix of buzz words. We don't even get to write the requirement!

      --
      -- Posted from my parent's basement
  110. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    [1] His son somehow interpreted this as 'evil robots took over the world'

    Wow, never thought of it that way before.. suddenly I understand the entire original series.

  111. Test. by carpefishus · · Score: 1

    It should be easy to test, verbal and written, each student and fail those, requireing a retake of the course, that don't measure up for continuation.

    --
    Facts take all of the premium out of arm waving - T. Reynolds
  112. It's not the Curriculum ... It's the Advertising. by GrantRobertson · · Score: 1

    I agree. Most of the CS programs, I have seen, advertise that they will get you a job as a computer programmer. But then they teach all math and theory while expecting you to pick up the actual languages on your own. At no point do they ever get to things like how to really read an API or how to find the info you need to make an application work properly on a particular platform or even how to build a complete application that can be installed and used by non-programmers. It is all theory and just enough code to show you understand the theory, regardless of how crappy the code itself is. The universities aren't preparing you for a job as a professional developer; they are preparing you for a job as a computer science researcher.

    I feel this is a massive case of false advertising. Universities are essentially tricking students into massively expensive CS majors when what the student actually asked for - and was told he/she would get - is training to be a developer.

    And then the industry wonders why there are so few qualified developers around.

  113. Re:Reading, counting to 100 and other difficult ta by drsmithy · · Score: 1

    Everybody who can do math with variables can learn programming. It's one and the same, just with different notations. Programming is also a fundamental human skill. It's formalized planning, no more, no less. Finding the structure of a problem to be able to approach it systematically is something we do every day, even when we're not in front of a computer.

    If the number of people who now have mortgages worth more than their homes, that they can't easily pay, won't convince you that not everyone can "plan" propertly, nothing will.

  114. As someone who learned under Kurmas as a freshman by Anonymous Coward · · Score: 0

    I have to say that I cannot agree with his comments. I am a very lazy person and I have even dropped out of GVSU for an extended period of time. I didn't do any real programming on my own out side of class either. I STILL go to my cs classes every day wondering when it is going to get hard, and when I will finally start doing something that feels like college level work. I felt wholly unprepared for my internship. I don't blame the school entirely though, as I said, I am a lazy person.

    I do not know about other schools, but GVSU CS classes are hardly 'sink or swim'. If anything, the people attending the college are not the quality of students that should be there, and the standards have fallen because of it. I can't tell you how many people in my freshman CS course came off as typical college freshman who thought that, since they played a lot of X-box and knew how to use Napster, they were prepared to be programmers.

    I will say though that the professors try very hard to help in every way. They aren't always the best teachers but it is clear they all care a great deal and probably know their stuff a lot better than the class allows them to teach it.

  115. Music or CS - consider both a test by Anonymous Coward · · Score: 0

    For music students, there's a test before admission to the school/university.
    For CS students, such a test beforehand would be very impractical.

    So, you just filter the bad students out in the first 15 weeks. You have plenty of students left after that, and hopefully the good ones.

  116. More like sports then a trade skill. by Anonymous Coward · · Score: 0

    Software development is similar to professional sports in that it requires both "talent" and "education". A student with "talent" should be able to program after 15 weeks IMHO; he/she may lack the "education" (as in algorithms, diverse languages etc). But the ability to walk through a program and determine the outcome requires talent. It has to feel natural to think about multiple execution threads, state machines (i.e. event-driven programing), or recursion. Also, those with the "talent" tend to enjoy software development and are motivated to become more educated about it. They are the people who move the ball forward.

  117. CS no different than other sciences by chemist_dave · · Score: 1

    As a science educator/researcher with 20+ years experience teaching chemistry at all levels, I have seen the following: If you let more people through an introductory course they will just wash-out at some later point. This is true no matter what type of teaching methodology you use to teach your science (lecture, lab, cool projects, fancy inquiry-based stuff). I have seen students that have only marginally passed CHEM1 course fail miserably in organic chemistry or physical chemistry because I or competent people in my department have made an effort to (pick one: make our subject more accessible, provide alternative assessments, have peer-led sessions, etc.), Do your students a favor. Show them what the reality of their chosen area of study is going to be like. If they rise to the challenge, great. If they quickly change their major to business, that will be best for everybody involved. It took me about 10 years to realize this - and it required teaching many upper-division courses (highly recommended for you). Not everyone is cut out for the sciences and you can correct their chosen path early on. I agree with many of the other posters here, by the way. If a student is not doing science (or computer science) in their spare time and before they get to college/university they are not going to make it in these areas. This is an excellent indicator for success. (Goes to interest, see below) Success in the sciences depends equally on innate ability, interest, preparation, and hard work. If you are deficient in any you will struggle until you either correct yourself or change your major.

  118. boils down to this: by buddyglass · · Score: 1

    At the end of the day the question is this: how likely is it that someone who can't hack it in an introductory computer science course has the capacity to eventually become a "net positive" in industry or academia. If you answer that question "not likely" then the status quo is optimal. If your answer is "quite likely" then you should agree with the two professors cited in the original article. Having been a teaching assistant for such a course, I probably fall into the "not likely" camp.

  119. CS = Trade skill by Xeranar · · Score: 1

    Thus it isn't a core subject offered by High Schools routinely. The job of secondary education is to generate well-rounded, educated, individuals. It is not their job to churn out trade school kids. Thus things like CS, Shop, automotive repair, are all additional subjects that may not be covered. Arguing CS should be added before the other two is arguable in larger school districts but as it stands CS is a highly skilled trade that requires a college degree so offering it as a basic skill in secondary schools is difficult. That being said, why are professors assuming kids know anything when they enter CS 101 or really any 101. I grate my teeth when I teach US History 101 and 102 because they largely walk in knowing a rough outline and I have to start over from scratch but that is how they work. 101/102 are introductory classes, asking people to really excel ahead is difficult.

    I've advocated across the board aptitude tests for colleges, drop the SAT/ACT all together and replace them with a more realistic aptitude tests based on their chosen path. Math and Reading clearly are required but a third and fourth section would aid in defining if certain kids need a 101/102 setup or can move up to 110/120 or similar premise. Offering a two-tiered opening year is more effort (and I know more cost on the universities) but I would gladly teach my three specialties and two lower level classes each semester if it would help balance the incoming student body.

  120. Intro courses give a taste of real world work by Anonymous Coward · · Score: 0

    It's a broad statement, but it's been my experience at least. The two-quarter into to programming class at the University of Washington expected a ton of hours spent in the computer labs doing coursework. One specific benefit was that it weeded out the people who came in starry-eyed during the dot com bubble and thought they could earn zillions with no real effort. I'm not in favor of crushing students with work just because of tradition or whatever, but showing people that hey, coders in general, tend to work a lot of hours.

  121. I go to GVSU by twocows · · Score: 1

    As a CS major at GVSU, I have to say that Professor Kurmas is one of the better professors there. However, I have to disagree with him on this issue. The courses he talks about (CS 162 and 163) are, as he says, very much sink-or-swim. I disagree with how they're taught in a number of ways (for starters, I think teaching an intro to CS course entirely in Java is a poor idea). However, in terms of preparing someone for either the CS or the CIS (a more business-oriented degree with less focus on programing) curriculum offered at GVSU, they do a fantastic job. There's certainly more to either of these degrees than programming, but as an introduction to the remainder of the degree, I think they work fine. For most of the CS courses, an understanding of programming is the only thing required going in, the rest is taught in the class itself.

    As a side note, Professor Kurmas also sometimes teaches Computer Architecture (CIS 451). This is one of the few courses in the CS degree where having a good understanding of programming (and especially Java programming) isn't really going to be helpful. There's a reason that course has Computer Organization (a course primarily about assembly) as a prerequisite. It doesn't really surprise me that he sees CIS 162 and 163 as not particularly helpful, but they're much more useful in other courses.

  122. Programming -v- CS by omb · · Score: 1

    Having taught CS at a British University, a Real one, for 25 years I make these points:

    - You can not teach people how to program, to misquote Yoda, They can, or they can NOT, there is NO TEACH.

    - 2 to 5 % can program, they teach themselves and it takes 6 monthe to 2 years elapsed, that is because ideas, experience and knowledge take time to mature and set, same in all the creative arts.

    - Computer Science is not about programming, it is Applied Mathematics.

    - Computer Engineering is, and hardware + software, it is properly a PG engineering discipline.

  123. Re:Reading, counting to 100 and other difficult ta by Anonymous Coward · · Score: 0

    So do you mean genetic engineering or politics?

  124. Translation by EmagGeek · · Score: 1

    It is absurd to expect this generation's crowd of entitled morons, who have never been "wrong" at anything, to put in the work to learn to be a Computer Scientist. The solution, of course, is to just hand everything to them on a silver platter like they've had done for them for the first 18 years of their lives.

  125. Computer Science Faculties have Lost Their Way by echusarcana · · Score: 1
    If you are going into CS and you haven't done high school computer classes and hobbied in the field you shouldn't be there. Its a low barrier to entry profession. Do the prep work or You Deserve To Fail.

    But let me say that based on years of hiring experience, Computer Science faculties have lost their way. Sure you get some guy who can whip up a really fancy structured program using indecipherable container thingies. But the code you get is unreadable. The design you get is unmaintainable. The person you get can't communicate with other team members. I'm tired of arguments about what object factories have to have what member functions. It's garbage. The results of Computer Science grads tend to be crap.

    I'll always hire an engineer (software, electrical, whatever...) to design computer code. Sometimes physicists do a fine job too. The result you get you can live with. Often it even has documentation. And you get a team member who sometimes can actually get along.

    Maybe my luck has just been bad, but this has been my experience in two decades of hiring talent.

  126. Good Video Lectures by Anonymous Coward · · Score: 0

    I believe that professors should deeply consider recording their lectures for students. That way, struggling but willing students can actually refer back to key points rather than referring back to their own sketchy and potentially erroneous notes. Additionally, it would allow for evaluation of the teachers themselves by people other than the students. There is no sense in hurting people's confidence as a result of poor teaching.

    Make teaching and learning more effective through the use of video lectures and the systematic evaluation of exercises. For example, the Khan Academy has a model for teaching that is very applicable towards teaching programming or anything, really.

    http://www.khanacademy.org/
    (i am not affiliated)

  127. Re:Reading, counting to 100 and other difficult ta by mbkennel · · Score: 1

    "We were headed for a two-tier society, comprised of people who used computers and people who programmed computers."

    Use your empirical observational skills. Which tier is on top?

    "Frank Herbert wrote about this even earlier, saying that the people who allowed computers to do their thinking for them ended up controlled by the people who programmed the computers[1]."

    DelusionalRevengeOftheNerdsFanatasyX1000!

    The ones who are doing the controlling are computer users who use people who program computers.

    If you are somebody who programs computers you are NOT in the top of the 2 tiers---you just have delusions because you aren't in the bottom of the bottom tier.

  128. Remedial classes by erice · · Score: 1

    You want universities to not accept CS students because they didn't take a programming course in high school?

    Well id be fucked because my high school didn't offer any programming besides "Web Programming".

    So if a student comes from a school that cant afford a real programming course then they just aren't good enough for you? Fuck you. Prick.

    Other programs, like Electrical Engineering, start at a level that not everyone is ready for. If you aren't ready for calculus, then you will have to take remedial classes to bring you up to speed on algebra, geometry, and trigonometry. The majority of students, who *are* ready, don't need to waste time being taught what they already know.

    I don't see why a Computer Science program could not start assuming that students already know the basics of operating computers and have rudimentary experience writing programs. Those who are not ready can take remedial classes outside the degree program or even outside the school. Why should the students who are ready have their time wasted?

  129. More sink or swim please! by measure · · Score: 1

    I have long thought that "sink or swim" classes were the only classes worth attending. The possibly to "sink" comes from the classes actually trying to teach something hard. They cover material that requires time and practice to learn. This is a great thing. Algebra is one such class. CS 101 is another. This isn't to say you need to just smite everyone who can't understand what a function is right away, but the reason these classes seem so hard is because they actually ARE hard. How awesome.

  130. this just in by rpillala · · Score: 1

    University professor just now realizes some very basic things about education. What this means for your weekend at 11.

    --
    When the axe came to the forest, the trees said, "Look out - the handle was once one of us."
  131. It's Introductory for a reason, right? by Anonymous Coward · · Score: 0

    If they've had no exposure to programming beforehand, and they fail, there's nothing wrong with that. I took an intro to economics at school. I didn't fail; but I hated it and was glad we only had to take one semester. I took intro psych. It was fun, but I didn't major in psych. A lot of people dropped out of E-school. Maybe it was intro CS that weeded them out. Maybe it was calculus. Who knows.

    The point is, if they are taking an introductory course and can't hack it or don't like it, they can and SHOULD just drop it.

    After all, you get introduced to a lot of people in college too. You don't like all of them. You don't sleep with all the hotties. You still have to get introduced to them.

  132. Not absurd at all by Anonymous Coward · · Score: 0

    I don't think it's unreasonable to expect a student to be able to pass an entry level class. I am about to graduate with a MS in Computer Science and when I took my first CS class, I had absolutely NO programming experience. I wasn't a complete computer idiot, but I had never written a single line of code (except maybe on my TI-85). The entry level courses are (should) be designed exactly for people who have no or little programming experience. We had 3 basic programming classes that were specifically designed to get everyone on the same page. I didn't feel at all like the course expectations were overkill.

    Except for all the stupid general required courses, it's up to you to choose the courses you want to take. If you aren't interested in CS, then you shouldn't be taking the classes. Someone mentioned earlier that there are the introductory courses for the purpose of weeding out the people who can't hack it. If you are interested and apt enough, you can pass the classes easily. If you cannot pass a class or just can't get a grip on the concepts, it's probably because 1) You're lazy and aren't putting forth the effort you should be, or 2) you simply are not capable of the logical thinking required for computer science. Yes there are bad teachers. Yes there are poorly designed courses. Guess what. In the real world, there are bad bosses and bad jobs, and you're probably going to have one or both and you're going to have to deal with it.

    The analogy of a person never playing an instrument and expecting them to perform in the university orchestra is ridiculous. It's not like that at all. It's more like, giving someone and instrument at the beginning of the course and expecting them to be able to tell you what the parts of the instrument are, maybe know a scale or two, play twinkle twinkle little star on it by the end of the quarter. Unless, of course, your university's orchestra only plays elementary school music. If your intro CS courses are set up in such a way that you expect a student to come in with no prior knowledge and then, after 2 15-week classes, expect them to be able to write an entire operating system, then there is something very very wrong with your course design. Also, I would certainly hope my doctor wasn't operating on his pets at 15. I would, however, have maybe expected him to be interested in medicine and maybe have read an anatomy book. You guys are making some completely insane analogies.

  133. Re:Reading, counting to 100 and other difficult ta by Darinbob · · Score: 1

    Not everyone has the ability or even opportunity to pick this up in highschool where you usually have to be self taught. Being able to teach yourself is a great skill but it should not be a prerequisite for basic intro classes.

  134. By Neruos by Anonymous Coward · · Score: 0

    You fall into one of these areas

    Programmer
    You write code based on ideas or designs of someone else while using learned skills and methods to make the most out of the code, the hardware it is based to run on and the functions it will perform.

    Program Designer
    You design the over all structure of a program based on the requirements given to you. You know the limitations of the code based on the infrastructure that the code will run or opporiate on. You structure the design in a way to maximize the overall work the program will do and layout the application in a way that programmers can understand.

    Program Architect
    You design infrastructure, processes, practices and methodologies that are used by program designers and programmers based on the needs of the work that needs to be done. You interact with all areas that have a impact with the program and design, use or change methods of practice in accomplishing the required work.

    Program Engineer
    You design the tools and systems required for the program to function at the highest result. This can also including working with other engineers in areas of hardware and systems to design, use or change current resources used to accomplish the task. You take input from all levels in creating perfect work enviroment for the program to be created and run.

    Program Manager
    You are the bridge between all levels of the programs life. You keep track of all elemetnts related to the programs creation and life.

  135. Bullshit! by bjk002 · · Score: 4, Insightful

    How is CS, true CS, any less of a science than Biology, Chemistry, Anthropology, or any other "ogy" you want to throw out there? Yes, there are many who end up working in the private sector, working for financial services firms developing apps, but how is that any different from the chemist working on drug manufacturing?

    Much ground-breaking research has come out of the CS community. What IS science by your definition? Do not be so dismissive of the "science" in CS.

    --
    Opinion:=TMyOpinion.Create(Me);
  136. CS degree vs. everything else. by f16c · · Score: 1

    I'm one of the folks that didn't get a CS degree but had lots of programming experience and ended up in the field regardless. My degree is IS and programming was a definite requirement. But I also had to learn Java and ADO.NET, C#, LabVIEW and how data acquisition systems over real-time systems work. I was an engineering technician that finished a degree part-time over the course of a career. My employers paid for my degree and I could not see leaving that tuition money on the table along with a pretty decent promotion at the end of the process. My parents tapped themselves out to send me to a local community college for an A.A. in electronics that I never finished. I finished the BS at the behest of my employer. I've worked in the defense industry since 1981. The difference amounted to a pretty decent pay raise along with more interesting work.

    Do I think I had it easy? Up to a point. I was curious, had the hardware around to play with (using automated test equipment for 1984 onward may have helped) and wanted to spend more time programming than fixing hardware after a time. I still use the hardware skills making sure that our lab industrial sensors work and that everything is hooked up OK which is hard when the local union won't let me use a screwdriver. I'm not in the union since I'm engineering staff.

    C programming took a while to make sense of. If not for the incredible amount of time and effort to actually understand how this stuff worked on my own I would not have figured any if it out. C++ was the '90s version of OOP and for the most part didn't use for the first two semesters of practice - data structures and algorithms. I ended up taking a specific course in OOP later on and the time was right but it required practice. Lots and lots of practice. Programming is not a natural way of thinking in some ways. It takes a long time to understand the the use of the tools and it takes longer to be good with them. Unless the student is a genius, as I am certainly not, the student really has to want to know how this stuff works. Without being driven to learn this a student of CS, Informations Systems or anything else requiring programing is very likely to fail. Should it be easy for everyone? Or should only it be easy for those with the advantages or need that I had?

    --
    bob@Osprey:~>
  137. Another take on the music analogy by Anonymous Coward · · Score: 0

    I took an 'Intro to piano' course in college. It taught me the basics of reading music, and making that happen on a piano. At the end of the semester, we could play 'the entertainer'. There was no way in hell we were going to become great musicians.

    Several of you have taken this as an opportunity to comment on how people who can't complete a degree shouldn't pass CS101 anyway. But most students (at American Universities at least) have electives, and requirements that they take courses outside of their field. In theory this makes them more 'well-rounded'. I would much prefer a CS101 class that puts out people who at least have a basic understanding of what real CS people do, than a class that weeds out all but the most competent. If even one help desk person is saved from banging their head against a wall, the change will have been worth it. Given how much damage can be done by people opening every attachment that comes their way, society at large would probably benefit from a class of this nature.

    Don't get me wrong - I'm not actually talking about remedial computer classes. But having a bird's eye level view of what the hell all of the various parts and processes that make up 'CS' would be useful for a lot of people who will never write another line of code once the class is done. We don't expect every person who takes a history class to become a historian - we just hope that at the end of the day they think a little more about history (before they repeat it).

  138. WTF is wrong with the schools? by dbIII · · Score: 1

    Well id be fucked because my high school didn't offer any programming besides "Web Programming".

    That's probably enough.
    Simple programming was taught right across all levels of maths classes in the 1980s in a lot of schools even if they only had a single computer for the school. My brother did it in the 1970s when the high school had no computers and the cards were sent to the local university. There is no excuse now.
    Introductory CS used to be the bludge subject for easy credit that engineering students would take. Looking at the books now it still appears to be the case for the first semester subjects.

  139. Another reason why we need gov regulation by ub3r+n3u7r4l1st · · Score: 1

    From the earlier post :

    " a. you were worried about getting a job after college, which implies a lack of self confidence in the first place, which is an indicator (though not a perfect indicator) that you were substandard in the first place."

    And then the parent post:

    "I was at a job where we routinely threw Masters and PhD CS resumes in the trash. The candidates are completely worthless at real-world tasks and are so arrogant as to believe that they don't need to know about CSV files or FTP, regardless of what the other side of the transaction wants."

    So being lack of self-confidence or being over-confident will not land you a job. This is why the USA is going down.

    The only way to save this mess is tax credits and even affirmative action for those that have advanced degrees. Mandate that companies who do contract work to have at least x% of their workforce to have advanced degrees. Also ban H1-B program while we are on topic.

  140. Re:It's not the Curriculum ... It's the Advertisin by ShakaUVM · · Score: 1

    >>But then they teach all math and theory while expecting you to pick up the actual languages on your own

    "All" math and theory? I doubt it, unless your CS program was radically different from mine (at UC San Diego), which offers intro classes and labs on actual programming. All theory isn't much use if you can't code your theory into an executable. Generally speaking, while most intro classes aren't marketed as "programming" classes, but rather "intro to data structures" or something like that, in practice they're going to be teaching their students the language of choice, and proper coding techniques.

  141. Pseudocode by Anonymous Coward · · Score: 0

    I think the issue is that they're trying to teach a language instead of how to communicate. When I took my first programming class, half the semester was spent just doing pseudocode. And even after that, the teacher would not let us enter anything in to the compiler till we had the pseudocode done. Thanks to that I can practically program in any language. Once you learn the basics, everything else is just syntax. And for that I keep a desk reference of whatever language I'm working with to find out if I need a //, /*, #, or -- to make a comment. The other great thing about pseudocode is that all you need to know is how to read and write any language. So if you fail at pseudocode, then CS is definitely not for you.

  142. Weed-out courses are evil. by Eli+Gottlieb · · Score: 1

    The problem with weed-out courses is the way they serve two diametrically-opposed functions. On the one hand, they need to "weed out" the students who simply lack aptitude for a given major and/or career-path. On the other hand, they need to take the students who do have the aptitude and teach them enough to make them functional beginners in the field.

    if you couldn't pass that class easily, it was pretty much a given that you wouldn't be successful.

    My girlfriend aced her organic chemistry class, but it was still bloody difficult and one of the most intensive courses she ever took. Coming from her, that means it probably violated several of the major anti-torture statutes.

    There really ought to be a difference between a course and an exam.

  143. Differentiation of CS from IT would be better by LostMyBeaver · · Score: 1

    There was a time where IT was basically CS. You had to actually understand how a computer worked in order to fix minor problems with it. While I'd love to say this was in the good old days of mainframes, in reality, it was much more recent than that. A guy fixing a 486 generally would just swap out parts until the reported problem went away or reinstall DOS and Windows 3.1 to start from scratch. A much better IT guy would instead track down a motherboard which was put together by a legitimate electronics organization that understood wave reflection (the #1 problem with boards of the generation) and dump the run of the mill organizations which sold cheap hardware during a time which PCs were being commoditized. At that time, all you needed to design a motherboard was a CAD program and a general understanding of how to connect pins together into the bus. To develop something good required an engineer who understood the important of trace length tolerances.

    These days, the IT group at a company can be made up of teir 1 (high school flunkies who like installing windows and complaining about the members of their organization who know even less than they do), teir 2 (people who might have studies computers at some point but lacked the talent for anything much more complex than basic network design) and teir 3 (guys who may or may not have a real education, but their certifications are more important than their degrees anyway, they install servers, configure routers etc... they might even be able to use WireShark or Network Monitor to solve problems).

    CS on the other hand, was really watered down during the era where IT and CS were really the same thing. CS stood alone and no longer required an understanding of electronics engineering. A guy who would configure a router and a guy who would design a router took the same courses, but the problem is, the world needed A LOT more guys who could configure a router than design one, so the programs really dulled down towards the IT level. As a result, the CS program now spews out people with learned skills instead of problem solving abilities.

    Now that the programs are separated, I see IT as a purely vocational skill. IT grunts should be educated either by vocational schools or even certification courses (like those from Global Knowledge Network) and CS should remain what the name implies, computer science. Database and Web developers should be somewhere in-between. They're just grunt coders who structure databases and link fields on the screen to field in the tables. Electronic engineering should be reintroduced as a requirement to CS students. It's important to understand HOW the hardware works. a CSEE grad should be able to bridge the gap between hardware and software development. A CS grad, while not necessarily an guaranteed to be an expert in assembly language programming should understand machine level programming well enough to just pick it up and handle it effectively. They should be able to understand the system call architecture of the operating system.

    MOST IMPORTANTLY!!! A CS GRAD SHOULD BE AN EXPERT ON ALGORITHMS (DATA STRUCTURES).

    I am furious that in most companies where I have worked, I am the only one who implements data structures more complex than linked lists. People show up at my desk and ask me to implement a new node based storage/recall system because they managed to get a masters degree in computer science without understanding this MOST IMPORTANT TOPIC well enough to implement it. Data structures is the absolute minimum requirement for anyone who wants to be called a computer scientist. ALL OTHER TOPICS of computer science stem from data structures. Sure, there are algorithms which act on a single type, but in reality, the logic involved in algorithms will allow the developer to produce an optimal implementation of it. For a beautiful example of the difference between a real computer scientist and a hackish one, look up CRC32 and see the difference between the brute force methods of arithmetic(as well as logical) implementat

  144. Follow the money... by Anonymous Coward · · Score: 0

    There is a profit motive to be careful of here. Large lecture hall classes, otherwise managed by graduate student slaves who live in continuous fear of their doctoral adviser, herding clueless freshman, are comparatively cheap to operate compared to higher level classes. So there is the desire to weed out the weak early, balanced against the desire to fund the higher level facilities and research.

    A similar situation occurred during the mid 90's at the Georgia Institute of Technology. There was a lecturer whose name started with a G who was notorious for running the freshman level weed-out class, and he had a cadre of sadist teaching assistants who gleefully assisted. There is an old story of one TA in particular who was so notorious that when 18 students of his 20 student section discovered he was their TA, they dropped the course immediately. He failed the remaining 2. Unfortunately, the university began to get a bad reputation due to "killing the dreams of bright and hopeful Georgia students", so the compromise was to shift the weed-out course to the sophomore year, and milk the weak students of money while they attended easier general lecture courses during their freshman year. Eventually the school forced the lecturer out by not renewing his contract, as an oblique PR move.

    Unfortunately, there are no easy fixes, short of requiring entering freshman who have not taken a programming course in high school to take a remedial concentrated/focused short course during the summer after high school before entering the university proper, slotting it in perhaps before most of the "orientation week" sessions that occur at the end of summer. A way of implementing this would be a timed online test that is functionally open book/notes, which requires making a system that shows comparatively unique tests to every test taker. Failing the test means summer school.

  145. Re:Weed out classes - low end schools only by Eli+Gottlieb · · Score: 1

    Low-end schools, yes. Lazy schools that don't want to really put in the pedagogical effort, yes. But also state schools, whose CS departments may be required to take in, and subsequently turn away, students whose primary virtue was being born in the right place. Examples: University of California (all of it, including Berkeley, which has the best-ranked CS department on Earth), University of Maryland at College Park, University of Massachusetts Amherst. None of these universities' admissions offices will turn down a B+ student from their own state whose destiny, as written in the Book of Life and their AP Comp Sci score, is to wash out of computer science at the late 100s or early 200s and go become an IT or English composition major.

  146. how can one fail at computer programming today? by georgesdev · · Score: 1

    Back around 1980 you had to be lucky to have ONE computer in your school. You had to be lucky to know there was one. You had to be lucky they let you use it. You had to be lucky it had a programming language installed, and documentation was available.
    Today a computer costs less than 50 hours of work in a McDonald. You can install Eclipse on it for free and access any programming language you like. You have access to lots of on-line resources, including on line manuals and Wikipedia. You have forums to ask questions when you don't have a clue.
    Bottom line, is (at least in rich countries), kids get no excuse if they fail at computer programming, wether their teacher is good or not! you may get bad grades at school, but if you can't program before you're out of school, then programming is not for you.

  147. Streaming by Anonymous Coward · · Score: 0

    The University where I studied, and later briefly taught, had an excellent policy by the early 21st century.

    They stream CS undergraduates for programming class. Nothing else, just what was at the time called "Programming Principles" or "Progprinc". Students self-select into streams after the introductory lecture. By default they get the lectures, weekly programming problems and a small group discussion of the problems and their solutions with enough time for a little 1-on-1.

    Those who feel they're struggling get additional "Strugglers" lecture slots in a Q&A format which rehearse the content of the lectures but concentrating on ensuring that the basics are understood by as many students as possible. If you wonder what a variable is in week three, you can go to that slot and ask and not be laughed at.

    Those who feel this is all too easy can attend "Space Cadet" lectures, simultaneous with the struggler lectures. These can go off and explore aspects of the current topic that the main class won't cover. They're intended to challenge those who already think they know how to program.

    Students can switch streams as they feel necessary. If recursion comes naturally to you but a data structures lecture leaves you bewildered you can attend Space Cadet lectures one week and the struggler lectures the next, but that probably won't happen to many students.

    One thing that's really important, all the early exercises are suitable to be assessed for correctness by machine. So they do that. BUT they're also all read by (postgrad of course) small group leaders. Maybe six years of self-taught Perl means you can solve problems well enough, but it's made your style into an unreadable tangle. You'll get full marks but a red pen admonition to look at the style in the textbook or online examples and copy that until you develop a personal style that doesn't make people want to tear their eyes out. In the final exams your code snippets will be hand written, if your style is still unreadable then you will probably lose marks for it.

    The above strategy is also really good for those rare students who you have to kick out. Usually, when kicking out a student who either never attends class or doesn't hand in any work, they will protest that it's too hard and the university ought to have come round, dragged them out of their drunken stupor and explained all the technical stuff more slowly. They take a register for Strugglers. Were you there? No? Then apparently you weren't struggling, just lazy. Bye.

  148. Re:Reading, counting to 100 and other difficult ta by TheRaven64 · · Score: 1

    Use your empirical observational skills. Which tier is on top?

    Well, let's see, which tier caused the economic crash? Hint: those same companies keep trying to headhunt me, at an insane salary (plus bonuses), to program computers...

    --
    I am TheRaven on Soylent News
  149. I beg to differ by Ignatius · · Score: 2

    > Training is exactly the process of making someone good at something!

    Well, this is a typical manager attitude - this does not make it any more true, though: Training is the process of systematically (as opposed to implicitly as e.g. by learning on the job) turning talent into skill.

    If the talent is there, then training will indeed make you good or better at something. If it lacks, no amount of training will make you "good" in any reasonable sense; basically, you will be reduced to "faking it" with huge effort but very little to show for it. In some rare cases, this is worth it (mobility training for the blind comes to mind), most of the time it is not.

    In IT/CS it is even worse, as without enough talent, in a professional environment, you will often end up with not just low but negative productivity i.e. causing more problems than you actually solve (and often make your life miserable in the process).

    1. Re:I beg to differ by jareth-0205 · · Score: 1

      It's not just a "manager" attitude, it's the attitude of pretty much all of western society. Would it help if I replaced the word "training" with "education"? Most people believe that you can learn a skill if you work at it hard enough. Of course innate talent has an effect, and everyone is probably limited by what heights they can achieve by their physical limitations, but how many times have we heard of people overcoming their own limits to do something they really wanted to? Saying you can only do something if you have pre-existing talent for it is basically claiming that we are slaves to our genetics and there's no changing that.

      Programming is like anything else, you want to do it and are willing to put the effort in, you can learn the skill.

    2. Re:I beg to differ by Ignatius · · Score: 1

      > Most people believe that you can learn a skill if you work at it hard enough.

      Most people unaffected by a specific limitation believe that you (i.e. someone else) can learn a skill if you work at it hard enough.

      This is a very dangerous maxim and as a general policy, it has already ruined the life of millions: Instead of encouraging people to play on their strengths, it pecks on their weaknesses, stigmatizes them as lazy and turns fate into failure and failure into fault.

      > it's the attitude of pretty much all of western society.

      I would say it's mostly a protestant thing and much less pronounced in the catholic part of the West.

      > how many times have we heard of people overcoming their own limits to do something they really wanted to?

      Not often, but yes there are exceptions and usually they involve coming up with new ways of doing things to somehow circumvent the original limitation - human creativity is indeed unlimited! However, the thousands of failures for each one beating the odds don't get nearly as much press ...

    3. Re:I beg to differ by jareth-0205 · · Score: 1

      *sigh* I can't mod your comment insightful if you're replying to me...

  150. “In the sea there are Crocodiles” are by Anonymous Coward · · Score: 0

    “In the sea there are crocodiles” by Geda Fabio is the story of the orphan who fought all his difficulties against all the odds. Just a kid of 10 years age, he had every reason to follow the wrong pathway, yet maintained his dignity, for the sanctity of his survival. Geda Fabio has scripted his hear warming story, and a click at www.rightbooks.in/product_details.asp?pid=9780857560087 will let you have that.

  151. go to a decent (not flagship) state school, duh by Anonymous Coward · · Score: 0

    I teach at a second-tier state university in GA; our tuition is about 3K/term (so raking 200K in debt is going to be really hard :), our intro CS classes have about 40 students, with mandatory closed labs, 20 students in each lab (the prof and a lab assistant are usually available for the lab); and, although we'll have occasional problems, none of our profs flunked math and most (if not all) have written software for a living. (And we still have 30%+ failure rates in 1301/1302 :(

    I am really proud of my school (spsu.edu), but I don't think we're that much better than other mid-tier state universities; of course, our uni doesn't rank very high; our profs don't do much research (since we teach, and don't have a PhD program), but our students get well prepared, and the vast majority of them get employed immediately after graduation (or earlier :)

    I think there's many more of us than flagship universities, so we may be a more representative path for CS (OTOH, there are probably many more junior and technical colleges :)

  152. Re:don't let them join the course in the first pla by Anonymous Coward · · Score: 0

    Sorry, but I have to disagree with this. If you have the capacity to think logically, you don't need to have experience with computers to succeed in intro level programming courses. If you had your way, I would not have been able to take CS 100, or would have had to waste a semester in a boring and unneccessary class. As it was, I took the intro C++ course without ever having seen a line of code in my life, and I excelled in it. It's not about experience, but more about the way you think.

  153. Re:It's not the Curriculum ... It's the Advertisin by GrantRobertson · · Score: 1

    OK, nitpick if you will, but "all x and y" is a common English idiom, generally understood to mean "almost all" or "a very significant portion."

    At my university, I had two classes that were actually about how to write the code to get what you wanted done (AKA "programming"). All the rest were pure theory. Yes, they were called "Data Structures" et cetera, but the only thing that was discussed in lecture was the structures themselves and the general psuedocode for implementing them. Lab time was spent grilling the GTA about how to actually get the programming done. Most of the time he ended up simply writing all the code on the board, leaving to the student not much more than getting the syntax right.

    Not that I really expected a CS degree at a research university to be "all" (there're those idioms again) programming techniques with little theory. But I didn't expect to be entirely on my own when it came to learning all the "real" stuff about writing good code. Even when I went in to office hours the answers I would get were "all" variations on, "I don't know. I haven't written any actual C++ code in years." So I started asking professors who I hadn't even had any classes with ... same answer.

    So it slowly dawned on me: If I wanted to really learn how to do professional development, I would have to get my degree, get a job, and throw myself at the feet of real programmers, begging them to tell me what I really wanted to know ... how to write good code that really did something useful for real users.

  154. Why is there much programming at all? by hazydave · · Score: 1

    If this is a weed-out course in computer science, why is there programming involved? Yes, as a prospective computer engineer or scientist, you do need to learn to program a computer at some practical level. But that's also true for any other engineering or science degree -- at least as true today as when I was in college in the early 80s. And at least at CMU back then, every Freshman in engineering, the sciences, probably even fields like psychology, took a computer programming course. But these were specifically not weed-out courses.

    The actual weed out course (and one could rightly ask why, in a school as hard to get into as CMU, did they need additional weed-out courses, but that was 15-211 in 1980 in the CS department) had exactly one real programming assignment, and that was the last one of the course. The emphasis in the course was, as you might expect, computer science: finite state machines, turing machines, lamba calculus, various bits about the design of high level languages, etc. They eventually split the same material into two courses, and made it weed-outy.

    And no, this was not a course designed to be of much practical use in a job... on the surface, anyway. But it was the gateway course to every other CS course, many of which were going to cover more practical topics, like the computer engineering or CAD course, both of which worked on large projects, with every class member contributing components, or Compiler Design (well, practical for me anyway, since I had a job writing a compiler for a few years back in the 1990s).

    Note, also, that none of these are really "programming" course. If you think you need college to teach you a computer language, you have no business studying computer science or computer engineering -- go to a trade school and become a computer programmer. A computer language is something you can learn on your own in a couple of evenings, if you don't already know it. And unless you're only planning to code for a couple of years, you WILL need to do this at some point in your career. When I was in college, the big languages used at CMU, at least for undergrad projects, were Pascal (with CMU extensions) and LISP. One summer job at Bell Labs, and I had picked up two more (C and PL/M). The point of a college education should be to get you to the point where a new language is just that simple exercise of a day or two. And to teach things general concepts applicable to any programming task in any language.

    --
    -Dave Haynie
  155. Stupid analogy by flibbidyfloo · · Score: 1

    Saying 'You have ten weeks to walk, and if you can't, you get an F and you're not allowed to try to walk anymore." is a terrible analogy. Who says that if you fail your CS1 class you can't ever take it again?

  156. Re:Reading, counting to 100 and other difficult ta by kubernet3s · · Score: 1

    At my university, I had the privilege of studying with a young "refugee" from a Hassidic Jewish community. He came into the program not knowing how to multiply fractions. He graduated magna cum laude with a double major in chemistry and mathematics, and won the award for outstanding senior in the mathematics program. Early exposure doesn't necessarily correlate with your skill: a great violinist will have a better developed gift if they start at 8, but they won't necessarily be BETTER than someone who starts at 20.

    Though really, failing the intro course is a pretty good indication you aren't cut out for it. I had to pass comp sci II (without I) for my minor, and managed to ace the course with only a semester of Visual Basic from high school under my belt. Same story with a lot of other people in my class: all this arguing about needing prior experience is moot if people aren't failing these courses because of inexperience.

    Intro courses in pretty much every STEM subject are widely acknowledged to be more about hazing than about instruction. My intro chemistry, physics, and mathematics courses had an attendance component (while no other STEM course I have taken since does). The programming problems in comp sci I and II are easy, and you don't really need to design very elegant pieces of code: just ones that work. The course is an opportunity to prove you're serious, not necessarily that you're GOOD, and it's quite possible for a poor student, but a good coder, to fail the course. In that case, the student should get a second chance.

    Which brings me to the biggest issue with this article: "not allowed to walk again?" Just repeat the course. I know that after failing the course a bunch of times, you might get some words from instructors about how maybe this isn't the major for you, but if repeat the intro course a bunch, and then ace everything after that, I don't think any school has specific administrative hurdles that bar you from continuing. If you have to repeat EVERY course, then it's not sink or swim, you just suck.

  157. Re:It's not the Curriculum ... It's the Advertisin by ShakaUVM · · Score: 1

    What college did you go to, out of curiosity?

    All my professors (except one) in the CS department wrote their own code, and were, generally speaking, elite hacker ninjas. People like Bennet Yee (bsy) and Stephen Savage (http://en.wikipedia.org/wiki/Stefan_Savage) were younger, brilliant professors when I was there, but even the older chaps kept their hand in the game. The only one I knew that hadn't written code in a decade went on to become a high level administrator.

    The professors (and the TAs) rigorously enforced good coding practices throughout the undergraduate curriculum, so you did learn about "writing good code" in the program. Very much so - when I became a TA myself, I'd slap down people for writing sloppy code. We'd do code audits with the undergraduates as part of the grading process, and I'd skim their code and be able to tell them three different ways their code would break before I even compiled it. (Good experience for me, too, come to think of it.) It's a shame you didn't get this experience as part of your college career - it was amazingly useful for me.

    I agree somewhat with your sympathy that colleges should spend a bit more time on practical stuff (cough, databases) which you can teach general/theoretical concepts about (3rd normal form, etc.) which will increase your usefulness in the real world. At UCSD, it was an elective, whereas compilers was a mandatory class. While learning how to write a compiler (and all the related concepts) was in retrospect much more useful than I thought it'd be at the time, it still wasn't as applicable as databases.

  158. Re:It's not the Curriculum ... It's the Advertisin by GrantRobertson · · Score: 1

    What college did you go to, out of curiosity?

    Well, the university, about which I was speaking (writing), was the University of Kansas (KU) in Lawrence, KS. As a research university, their focus was, naturally, on research. However that isn't what they tell the undergraduates. I had heard, many times, that the undergraduates were just cash-cows to support the graduate program and the professors' research.

    I do have to say that I transferred to a smaller college called Washburn University in Topeka, KS (yes, temporarily called Google, KS). There, the focus was less on theory and more on how to write code. In their data-structures class, we worked through all the code necessary to accomplish the goal at hand. In fact the teacher would first work out the logical problem as if we were inventing it for the first time, prompting the class to come up with ideas, then he would do the same thing to implement it in code. I think it really helped develop a gut feel for how the data-structures worked. They had a course or two on software engineering, some on database design and some on game development. However, as my plans had changed slightly when I went there, and I had already done plenty of database design as a network manager, I did not take any of those advanced courses. Therefore, I don't know exactly what was taught in them. That said, based on my overhearing of many discussions, I think the software engineering course was primarily about metrics, which are important but are still not what one needs to know to construct a complete, deploy-able, use-able application.

    In the end, what I wish I had been taught - and couldn't get any professors at either university to explain or teach me - is how to design, build, and deploy a real application just like you can pick up off the shelf and install. How to design and build a real user interface rather than just putting some standard buttons and other widgets in a window. How to integrate the data access with the user interface so it all works smoothly and transparently to the user. How to design an entirely new user interface object, complete with event detection and graphical manipulation. How to load user preferences and make use of them within the program. And how to do all this within each of the various major platforms. The whole kit-and-kaboodle. Instead, I got a lot of pieces and parts that are mostly just enough to say we did them, but not quite enough to put the whole thing together into a complete application.

    I don't hold anything against the second university, Washburn. As a small college, they were doing the best they could with the time and resources they had. But KU had no excuse. I guess I wish that there was a separate track that really did focus on building a whole application; perhaps coordinating all the courses so that a student would build on the same large-scale project over the entire course of his or her CS degree, similar to the way the Deitel &Deitel books build on the same program throughout the course of the book, but going much farther than Deitel &Deitel.

    I don't know, maybe there are programs out there like that. But how does one tell such things before one has invested a couple of years in a college? Certainly not by reading the advertising on a university's web site. Perhaps we need a classification and rating system to indicate what each university really teaches. Maybe someone could set up a web-site to make this information available to everyone. Naturally, we would need to put our heads together and figure out the list of all the important skills that need to be taught - and learned - in order for students to be ready to hit the ground running in their new jobs. A curriculum, if you will. Does one already exist? It seems to me that some industry groups must have done this already.

  159. I teach intro CS. Sink-or-swim is good. by dazedNconfuzed · · Score: 1

    If you can't grasp the basics of variables, decisions, loops, functions and classes in 15 weeks then you are not ready for what comes next. I've had students who truly could not, and it would be cruel to let them continue on, only to get mired ever deeper and rack up more debt. If prerequisites, declared or implied, are not fulfilled then one is in no position to go farther. Those who take it again and struggle thru may pass (rare), but they have already shown that - aside from special cases and remarkable effort - they are just not equipped to compete in the complexity and speed of the subject.

    If you can't grasp
    class C { public: void d(int n){ for(int i=0;in;++i) cout”Hi! "; } };
    void main() { C c; if (true) c.d(); }
    in four months, you're not cut out for the career.

    I get students who don't grasp the concept of variables. I mean they truly do not grasp the concept of x=3.
    Maybe they can get it at some point, but they don't keep up.

    If you can't play standard scales in 4 months, you're not up to compete against talented musicians.
    If you can't dissect a frog in 4 months, you're not cut out to do surgery.
    If you can't write a poem in 4 months, you won't be teaching college English.

    Sure we can hypothesize special cases, or give contrary anecdotes. Building policy on that is like not driving to work because you might be killed in a crash. I know Einstein failed math; he overcame, and so can any special cases - it's not like one is forbidden from the subject everywhere for life.
    If you can't grasp a bare minimum level of competency in four months of six hours a week lecture time plus up to all waking hours for assignments, take the hint - go find your talent, which isn't this.

    --
    Can we get a "-1 Wrong" moderation option?
  160. /. ate my operator by dazedNconfuzed · · Score: 1

    Sorry, /. ate the insertion operator in my example.
    Heck, that improves the example: if you can't fix the bug in that after 15 weeks of study, reconsider whether you're willing to work as hard as you'll need to for the certification.

    --
    Can we get a "-1 Wrong" moderation option?