Forgot your password?
typodupeerror
Education Programming

Professor Questions Sink-Or-Swim Intro To CS Courses 606

Posted by Soulskill
from the trial-by-mountain-dew dept.
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."
This discussion has been archived. No new comments can be posted.

Professor Questions Sink-Or-Swim Intro To CS Courses

Comments Filter:
  • by LordLimecat (1103839) on Sunday May 22, 2011 @08:17AM (#36207600)

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

    • by Anonymous Coward on Sunday May 22, 2011 @08:24AM (#36207628)

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

      • by TheRaven64 (641858) on Sunday May 22, 2011 @08:37AM (#36207702) Journal

        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.

        • Re: (Score:3, Informative)

          by Cwix (1671282)

          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.

          • by biryokumaru (822262) <biryokumaru@gmail.com> on Sunday May 22, 2011 @09:11AM (#36207936)
            You should just be glad many universities don't have any English Comprehension courses as requirements...
          • by Concern (819622) * on Sunday May 22, 2011 @09:40AM (#36208090) Journal

            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.

            • by wonkavader (605434) on Sunday May 22, 2011 @10:42AM (#36208484)

              "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.

              • by Concern (819622) *

                I'd say that was perfectly put. I can add nothing.

              • by spiffmastercow (1001386) on Sunday May 22, 2011 @12:03PM (#36209162)
                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.
              • by JAlexoi (1085785) on Sunday May 22, 2011 @12:33PM (#36209420) Homepage
                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
              • by rtb61 (674572)

                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

              • Bullshit! (Score:5, Insightful)

                by bjk002 (757977) on Sunday May 22, 2011 @11:02PM (#36213578)

                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.

            • Degree not needed? (Score:4, Interesting)

              by br00tus (528477) on Sunday May 22, 2011 @03:27PM (#36210888)
              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.

          • by popo (107611) on Sunday May 22, 2011 @11:52AM (#36209062) Homepage

            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.

          • Re: (Score:3, Interesting)

            by billcopc (196330)

            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 cod

        • by mikael_j (106439)

          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 co

          • by SomeKDEUser (1243392) on Sunday May 22, 2011 @10:06AM (#36208240)

            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.

    • Re: (Score:3, Insightful)

      by Robadob (1800074)
      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 statem
    • 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

      • by Theovon (109752)

        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 i

    • 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 mere
      • 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 w

    • by Ephemeriis (315124) on Sunday May 22, 2011 @08:54AM (#36207836) Homepage

      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.

      • 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...

        • 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.

      • 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 tex
      • by shish (588640)

        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...

    • 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
    • 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 studen

    • by tverbeek (457094) on Sunday May 22, 2011 @09:33AM (#36208056) Homepage

      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.

    • 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

    • 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...

  • by kju (327) * on Sunday May 22, 2011 @08:19AM (#36207604)

    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.

    • by macraig (621737)

      ^ This. Yes, please do make it harder.

    • Re: (Score:2, Insightful)

      by obarthelemy (160321)

      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.

      • by Culture20 (968837)

        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.

      • by Ritchie70 (860516)

        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.

      • by martin-boundary (547041) on Sunday May 22, 2011 @09:17AM (#36207964)
        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.

        • by mjwalshe (1680392)
          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.
      • by TheLink (130905)

        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 [aboutmcdonalds.com]

        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, ar

      • 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

    • by ThePromenader (878501) on Sunday May 22, 2011 @08:47AM (#36207796) Homepage Journal

      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.

    • 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.

    • This! (Score:5, Interesting)

      by DeadCatX2 (950953) on Sunday May 22, 2011 @09:19AM (#36207980) Journal

      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.

      • by Kozz (7764)

        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 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 variable

    • by jareth-0205 (525594) on Sunday May 22, 2011 @11:29AM (#36208880) Homepage

      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".

      • > 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

    • by fermion (181285)
      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 compl

  • 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.
    • by hedwards (940851)

      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.

    • 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 fac

    • by syousef (465911) on Sunday May 22, 2011 @11:30AM (#36208882) Journal

      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?

  • 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. T

    • by petes_PoV (912422)

      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.)

      • by Arlet (29997)

        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'.

      • by mjwalshe (1680392)
        that's why medical school is 7 years.
  • Expect it? (Score:5, Insightful)

    by Haedrian (1676506) on Sunday May 22, 2011 @08:32AM (#36207666)

    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.

    • by Culture20 (968837)

      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).

      • by Haedrian (1676506)

        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.

  • by Secret Rabbit (914973) on Sunday May 22, 2011 @08:32AM (#36207670) Journal

    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.

    • 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

  • The less competent everyone around you becomes. Are you sure you're not just getting too smart to teach CS 1?

  • 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 rud

  • 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 lea

    • by JSBiff (87824)

      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 'elec

  • An odd analogy (Score:5, Interesting)

    by Kijori (897770) <{moc.liamg} {ta} {ekaj.draw}> on Sunday May 22, 2011 @08:38AM (#36207714)

    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.

  • by houghi (78078) on Sunday May 22, 2011 @08:52AM (#36207828)

    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.

  • 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 th
  • 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

  • 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.
  • 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

  • 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 dis

  • 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

  • by grumling (94709) on Sunday May 22, 2011 @11:43AM (#36208998) Homepage

    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.

  • by npsimons (32752) * on Sunday May 22, 2011 @01:09PM (#36209836) Homepage Journal

    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 [codinghorror.com]. Maybe sometimes some children *should* be left behind, or better yet, directed to things they can actually learn to do.

If a subordinate asks you a pertinent question, look at him as if he had lost his senses. When he looks down, paraphrase the question back at him.

Working...