Take the 2-minute tour ×

There have been several postings on P.SE about lower quality programming education, and this post from Joel on JavaSchools shows his frustration with the way computer science is often taught.

At many art and music schools, only the best students are allowed to continue their education. They only accept a limited (call it x) number of students, and if you are not in the top x students, you don't continue. Contrast this with computer schools, where if you get a C, or a B in my school, you go on.

Should computer science schools have a similiar program? What are your feeling regarding such a program?

EDIT: In reply to the posts who say that graduating from a top school does not guarantee a good career: I don't think it should. My question has to do with how you be sure that the people who do graduate from any school - Ivy League or not - have reached the level of proficiency that a degree is supposed to show.

share|improve this question
Yes, I think so. They should be like Top Gun school. –  systemovich Dec 3 '10 at 0:23
add comment

closed as primarily opinion-based by MichaelT, gnat, GlenH7, Bart van Ingen Schenau, psr Jan 22 at 21:37


9 Answers

up vote 4 down vote accepted

Schools shouldn't be more competitive as much as grading should be stricter and more realistic. Too often I've seen people skate by in their classes through the use of other teammates.

Group work where 1 individual does the work and another just goofs off...both get a passing grade, when in reality student A should have received an A and student B should have not. Until this is fixed we'll have a really watered down talent pool.

Might I suggest a few weeder courses early on to really challenge the students. And while I understand this is difficult for the professor/TA's they need more individual assignments of equal difficulty to reduce cheating.

share|improve this answer
Where would you place the weeders? My school taugh basic programming freshmen year, then sophmome year had the hard courses. The class essentially would get cut by half or more. –  Michael K Dec 2 '10 at 17:09
I'd suggest first semester a comp sci 101 type class with C++ and get in as much as you can. At least covering *'s and mem alloc. –  PSU_Kardi Dec 2 '10 at 17:48
For computer science, hit them with Scheme and SICP for a weeder. –  David Thornley Dec 2 '10 at 17:49
In regards to group work, I would defer that until later in the program, where each student should have demonstrated that they can pull there own weight. I don't have a solution for the grading problem, unfortunately. However, I think the group experience I gained on my senior project (which was the first group CS project I had) is invaluable. I'm glad I had that opportunity in school rather than at a job. –  Michael K Dec 2 '10 at 18:34
add comment

I'm going to answer from a different point of view and hope not to get dinged. Speaking to the large quantity of bad programmers out there (which is what I think you're hoping to address by the competitive education), it's really a supply and demand issue. Even now there is a great demand for people that can do any amount of programming (or even fake it), so even a crappy "programmer" can get a job. Cutting the number that get a degree is not going to decrease the demand or increase the supply.

share|improve this answer
Hmm, interesting point - you'd decrease the supply, but the demand would increase accordingly...increading pressure to get schools to just get people that can sort of do the job into the market... –  Michael K Dec 2 '10 at 17:45
btw, see my answer. –  Michael K Dec 2 '10 at 17:45
+1 for helping those of us who saw no point in continuing to go in debt for their masters to thrive :) Universities are a business. I don't care about your certs or degrees, I want to see how you solve (not just explain) problems. –  Tim Post Dec 2 '10 at 17:48
@Tim Post agreed, I commented this below, but it applies here also: stossel.blogs.foxbusiness.com/2010/03/11/licensing-madness –  BlackICE Dec 2 '10 at 18:02
You will eventually increase the supply of well-differentiated candidates, because by decreasing the demand for undifferentiated candidates and increasing the market price of differentiated candidates more supply will enter the market chasing that increased price. ETA: I'm not interested here in arguing whether a degree's differentiation is valid, just making a note about the elasticity of credentialed differentiation. –  Jeremy Dec 2 '10 at 18:40
show 2 more comments

You assume that computer courses are the indicator of skill to employers

So I fail at your high-brow school that only accepts the top 1%. Unless it is the stated authority and controls access to the top-jobs nobody will care.

Your approach applies to controlled professions like accountancy and law where graduating from the top school guarantees a great career. In IT, it's much more of a meritocracy driven largely by intense demand from employers over a scarce resource.

"We don't care that you're hopeless, just get the website up!"

share|improve this answer
add comment

If the music school were big enough and there were enough teachers, then you would have the same thing as in any discipline. You'd have b,c, & d folks in the music and art schools.

Second, there are programs and positions, maybe not classes, that do require certain skills to be honored in order to participate in the world of computers.

I don't think computer science should be like the suggested above. Only programs with higher requirements. I think art and music classes should be opened up, mainly because I'd like to play the keyboard like that John Vangelis guy did for Blade Runner and Chariots of Fire because I love the synthesizer and a good keyboard workstation, but alas I have little experience and can only read basic musical notes like every good boy does fine and "face", but no computer science classes should be shut up like this. no siree.

share|improve this answer
add comment

I had two introductory computer science courses freshman year. The first used Pascal. The second used Assembler and Lisp and was the weedout course. All subsequent courses used C, though there wasn't any course that taught C. If you wanted to learn C, you were given a pamphlet listing the basic syntax elements with pointers to man pages for library calls. That system seemed to work well, and the only thing I would have changed about it was eliminating the Pascal course.

share|improve this answer
Would you have replaced it with another language, or removed it altogether? –  Michael K Dec 2 '10 at 17:35
@Michael: I would have removed it as a requirement for CS, but left it around as an option because there were students from other majors taking it. –  Larry Coleman Dec 2 '10 at 17:45
So you would weed as early as possible, then? –  Michael K Dec 2 '10 at 18:09
@Michael: Absolutely. If a CS major won't work for someone, it's probably better they find out sooner, so they'll have more time to find something else. –  Larry Coleman Dec 2 '10 at 18:19
add comment

This is my opinion on my question, keeping in mind that going to college is optional.

There may be limited space, but that should be no reason to only allow the best in. The point of any formal course should be to take a person at skill level x and bring that skill to level y. What will happen if you only allow the best in is a gradual raising of the skills bar just to start, which eventually raises the education level from say, a bachelor's to a doctorate. Then you start getting prep schools...and eventually a huge edifice builds up, just to get into one school.

The program should be open to everyone who qualifies and should have clearly defined standards for progressing to the next level. If there is limited room, then accept qualified students until that room is filled - don't pick and choose your students. And definately do not flunk people out of the whole program if they fail a course, even multiple times. Let them take it again until they get it or drop out on there own. (This point I am willing to compromise on slightly, but never flunking after the first failure. Perhaps a teacher may have to sit down with the student and help find a better course of study in some cases, though.) Be tough, give the student a chance to learn, and a good environment to learn in, and high expectations, and he will learn well.

share|improve this answer
Would you apply this same logic to Medical and Law schools? (for example) –  KevinDTimm Dec 2 '10 at 17:43
@KevinDTimm: I think the question applies to undergraduate programs. Medical and law schools are graduate programs. CS graduate programs are generally tougher than undergrad: when I was at grad school (for CS), you couldn't get your master's if your GPA was below 3.00, and you couldn't get your Ph.D. if your GPA was below 3.75 or if you had a grade below B- in a single class. –  mipadi Dec 2 '10 at 17:47
Raising skills from X to Y sounds like a job for a vocational-technical school, not a college. –  David Thornley Dec 2 '10 at 17:51
Law schools have a bar exam, which is (supposedly) the basic requirement to practice law - not sure how medicine works. If the minimum average study to have the right knowledge to practice law takes 6 years, so be it. That's the basic education required. But yes, I would. This is going out on a limb, esp. with medicine, but I see no reason to throw out a student because he couldn't understand some concepts for the first, or second, or third time. –  Michael K Dec 2 '10 at 17:51
@David: Then what is college suposed to be doing? I've heard that it produces a more rounded individual and concentrates more on theory, but isn't that raising skills? Abstract thinking and problem solving, if nothing else. –  Michael K Dec 2 '10 at 17:52
show 14 more comments

A university is not a vocational school. AFAIK, the music schools that weed out the lowest performers are schools that more or less train people to be professional musicians. Berklee, for example does (or used to do this), but they spit out studio musicians like a factory.

However, most universities do NOT do this for music students, as most universities are an opportunity to learn, and learn how to learn. This is true for music as much as for computer science / sw engineering.

share|improve this answer
add comment

All colleges have an admission process that only accepts some of the applicants. The percentage of applicants who are accepted depends on how many seats are available, and how many people apply. Top music schools have high reputation, meaning that lots of people want to get in. The same is true for top universities. You can probably find a crappy school with a crappy music department that will accept you even if you are tone deaf, just as you can find a crappy college with a crappy CS department that will accept you even if you cannot program your way out of a paper bag.

In the end, market forces sort things out. If java schools turn out bad programmers, the managers will eventually catch on and prefer applicants from non-java schools. This will then increase the reputation of the non-java schools, which will in turn cause other schools to emulate them.

share|improve this answer
add comment

From my experience in college I can tell you that NO matter what school we're talking about IF they only teach theory and do no or little practice IN SCHOOL then you can avoid going to that school or talking about it... I've been 1 year and a few months and quit because I've felt that my place is not there -- after few classes in second year and 5 errors in a 15 lines of code program(demo program written by the teacher...)

share|improve this answer
add comment
