Computer science: Exclusive club or open to all?

This year, our department (finally! finally! after years of wheedling/wishing/hoping/pleading) is seriously discussing issues of retention, recruitment, and climate. I'll have much more to say on this later. But for now, I want to focus on an interesting side discussion that's come up:

Should computer science, as a major and a field, be an exclusive club, or be open to all comers?

There is a very real divide among my colleagues on this issue. Those who subscribe to the "exclusive club" mentality, if I understand their arguments correctly, say that computer science is Hard! and Rigorous! And because of this, when we think about recruiting majors, we should only concentrate on the best and the brightest, those with the best chance of "succeeding" (whatever that means). So, for instance, we should look for students in the intro-level classes who have grades above some certain threshold (A-? B+?), and spend our energies encouraging them to pursue CS.

It will probably shock none of you that I fall into the latter category. I personally was somewhat of a "late bloomer"---it took me a couple of years to get my footing in my major classes. I mean, I did ok that first year or two (b+/b range), but if my colleagues had applied their standards to me, I would not and should not have been encouraged to be a CS major because my chances of success were low. So maybe my view is a bit colored by my experience. But I also think that the "exclusive club" mentality actually hurts our ability to recruit and retain diverse majors*. Because if you don't fit the mold in the first place of what a CS major "looks like" or "acts like", then there's a good chance that (a) those who are looking for new club members are going to overlook you, and (b) you are not going to see yourself as a potential club member, and exclude yourself from the pool. Plus, there are many paths to success, and just because you struggle a bit in intro doesn't mean you won't "get it" in some future course down the line. So why not open the major to anyone who wants to give it a whirl, and see where the chips fall.

(Of course it's more complicated than that. It's not enough to welcome all comers---you have to have some support system in place to make sure that people with a range of abilities can succeed. And yes, I believe this can be done without "dumbing down the major", as some may claim.)

So I'm curious. Those of you in CS: does your institution (or workplace, or wherever you work) use the "exclusive club" or the "open access" approach? Those of you in other fields, science and non-science: does this conversation happen in your fields, and if so, what are the main arguments there?

* Diverse in the traditional sense of the word, but also diverse in the "not uber-stereotypical geeks" sense of the word.

More like this

Most institutions I am familiar with have traditionally used the "exclusive club" mentality. This was a product of the boom-times in student enrollment, where there was so much demand that it was totally acceptable to err on the side of rejection. Nowadays, student enrollment has dropped considerably and some institutions perceive a need to change, and others seem to think that the world is the problem.

I agree with you and think that the problem lies not in our stars, but in ourselves. The boom-times for student enrollment allowed a "only like us" mentality to entrench itself, and this is not a good thing.

My thesis: open. Pretty much everybody I know who is good at computers stumbled across their abilities.

Back in my day (60's) there was no such thing as a course in Computer Science per se. We had to walk backwards uphill both ways with no shoes. Oh, uh, sorry ...

Computers then were ensconced in the back-room priories of the Math department, reserved for those who dreamt in Hilbert Spaces in 11 dimensional eigenvectors. My math was only of C power, so the priests would not let me major in computer studies. This despite the fact that I had spent 2 years debugging hand-wired discrete component scientific mainframe computers as a full time job, whilst working for my Physics degree, when I decided to switch majors as a result of my experience. So my degree reads "Mathematical Sciences with Physics" - no mention of computers, yet I was 4.0 in the computer classes and was by the time of graduation designing the buggers myself. No thanks to the classes they permitted me to take.

Now, I understand things are not quite so religiously protected these days, but I wanted to illustrate that proficiency in things digital is not necessarily correlated with any particular classical skill. I was pretty much a classical C student, but turned out to be A+ in computing. Who knew?

Further, my experience of hires over the years since shows a tendency for the formal CS graduates to be slightly less willing to escape the boundaries of their larning than those who stumbled upon their love of things computational as a by-product of what they thought was to be their career choice. I may be biased in that - I am one such myself.

In the later 80's I developed a minor confidence crisis in that I did not seem to have the vocabulary demonstrated by the more recent graduates of what by then was a full blown field of study in its own right. I _thought_ I knew what they were talking about, but... So, to rectify this situation, I went back to school for a Masters in CS. The experience was slightly different, but only in details. After acing everything else, I was still unable to put together a thesis committee for work in graphical control of audio processing systems. Seems the CS dept did not talk to the EE dept did not talk to the Music dept and nobody wanted chair responsibility for a thesis that required expertise outside their field. No chair, no thesis. So, since I was only there for personal interest and did not need the paper for work, no degree.

So there was still a narrow filter over what was considered to be CS. Please tell me I would not have that difficulty today.

By GrayGaffer (not verified) on 23 Sep 2008 #permalink

Peter, thanks for bringing up that point. Are you talking about the original boom times of the 80's or the more recent boom times? I've heard various things attributed to the 80's boom times (change in CS pedagogy to make CS less interesting, the "cull the herd" mentality that led to the decimation of the numbers of women in the field) and have always wondered of the truth-to-urban legend ratio there. :)

GrayGaffer, interesting story! Thanks so much for sharing. I suspect (hope?) that today you'd have an easier time with that thesis. That said, interdisciplinary stuff is still pretty fraught, and it all depends on how enlightened your institution is (and how well your EE and CS departments are getting along these days).

Jane, you may already be familiar with the changes that were made at Carnegie Mellon University within the past ten years in their computer science department, resulting in higher recruitment of women and other non-stereotypical computer scientists. The fact that CMU is hands down the best computer science department in the country might help convince your colleagues that the CMU approach has merit.

These days, I don't see a lot of departments out there with the option to go selective. There were capacity problems in the early 2000s, but not so much now.

To address your question, though, it seems to me that, space permitting, it's better to go "open access" than "exclusive club"; by being unnecessarily selective, you lose people who would have something to contribute. If there is no room, then it's a different story.

I can see, though, that people might feel better about themselves if they believe that they belong to an exclusive club. I think it's a bit lame to base your self-worth on your belonging to an exclusive club.

The brightest colleague I ever worked with scraped by with C's in his EE/CS classes at a flagship state university; at that point in his life, he simply didn't have the self-discipline to study. When I worked with him, a decade later, he daily demonstrated a mind like a bear trap, a well-developed talent for finding tidy solutions to ugly problems, and a well-honed determination to see his designs implemented and completely validated. Had he attended the same university a few years later, when it had gone into "exclusive club" mode, the engineering profession would have lost an extraordinarily talented player.

A pox on the "exclusive club" crowd. Encourage everyone. Their own personalities and inclinations will sort them out in the end. Miners know that it can take a lot of raw material to produce a few gems... but when those gems are human beings, how can an institution honorably choose to not dig?

There is no question in my mind that we should have our arms open wide in the introductory courses. We don't even have a non-majors introductory course because we don't want to allow those non-traditional CS-types to self-select themselves out of the field. If you take our intro, you are on your way to becoming a major, period.

Not only will this change the types of students we have in the classroom, but it will also change the way we do computer science---for the better. I truly think that some of the problems we face in CS (like the inability to have true artificial intelligence) can be helped by having a new generation of student that think about the problem very differently than we have in the past.

However, in order for us to be more open, we need to change what we teach in the entire degree plan. For example, not all computer scientist need to be programmers. We need to have career paths (like the idea of the Thread at GATech) through the CS program that allow for very alternative focus. We consider computer science as the prototypical liberal art.

So, we can't just step away from the "weed-out" mentality in the intro courses---we need to allow for the diversity throughout the entire degree program.

There is a panel proposal in for the next SIGCSE which we hope will explore exactly this issue.

As a latecomer myself, it's no surprise that I come into the "Open to everyone" club. And I agree that it can be done without dumbing down the major; the intro courses may need to be taught differently, but advanced classes are for the people who are *already in* anyway.

But my argument is this: CS can't afford to be turning away students. To be relevant, we need to be able to engage scholars from other fields (notably, but not exclusively, the other sciences) and show how our work can help theirs. That means we need to be able to speak to students whose primary interest may not be programming-for-the-sake-of-programming, for example.

If we act to clubby and exclusive, we'll lose sharp, innovative thinkers to other fields before we get a chance to show them what they can do in CS. If we insist on taking a weeding-out approach, we're going to weed the wrong students, and we can't afford to do that.

I think this is very much a matter of the popularity of the major, more than attitude. At my institution, CS and almost any type of engineering has rather high GPA requirements, and many people want to get in. On the other hand, as a physicist I had practically no GPA requirements during undergrad. But does that actually mean that physics professors think that physics requires less "ability" (whatever that is), than engineering?

Nope, it's just a fact that few people want to do physics, and having the desire to do physics is probably a better qualifier than GPA in any case. It's not a question of elitism, when it comes to that, I don't think you'd find a set of bigger egomaniacs then us physicists. It's just that there's plenty of space in the classes for everyone who wants to come, and there's no particular need to "weed out" people.

Although I wasn't a late bloomer, I did have a peer group that I could turn to for advice, as well as give my own advice when I could. Having a peer group is indeed important, because the more skilled programmers will always bring up those that are not so skilled at that particular moment. I know for a fact that I wouldn't have had as easy a time as I did, if I didn't have friends that I could commiserate with, as well as have folks that I could help. The helping portion was the best part, because it forced me to really know my stuff before I could help others with the material.

It's almost like having a mentor. Essentially, the better, or more experienced programmer, will impart his/her wisdom on the newbie, and as a result the newbie will become more confident and become more willing to try new things in the programming world. That's pretty much how my experience was when I went through my CS degree, as well as my professional life. It's always the more senior programmers that bring the junior guys up until they become senior programmers themselves.

The only time that Ive felt that CS was an exclusive club was when it came time to convince a company that you are a good programmer. At that point, you really need to know your stuff, and you have to come armed with code samples, as well as arcane knowledge on the languages that they are interested with. If you dont, you will most likely get passed over for another programmer. Its a shame too, because once you are in, you have access to that companys peer group that will bring you up as a programmer.

So I agree with you that CS should definitely be open to all comers, but if that peer group doesnt exist, I dont see how it would be possible for such a diverse group of folks to make it through the program.

I consider myself to be a fairly average coder, but I have no CS background whatsoever. I majored in history and am entirely self taught in computers. I have worked with a lot of people with CS degrees and guys with 30+ years working on mainframes who don't understand the difference between RAM and a hard drive.

I will note that I've know two truly brilliant technical minds, one of whom was a lawyer by training, the other was an artist by training.

If I was required to have had an A in my old major (International Affairs) to transfer into CS, I don't know what I would've done. I don't think I had any A's before switching into CS. Computer Science may be more work in terms of programming (well duh), but easy/hard? I think it's much easier to learn to program because it's hands-on. Memorizing a bunch of junk about Germany's constitution? Not easy! (also, not interesting...really, quite boring)

Rebecca and Doug, thanks for bringing up CMU and GA Tech, respectively---these are both great examples of the open access approach in action.

pjm and plam, great point about exclusivity meaning we lose the people we *should* be recruiting. I'll have to remember that the next time I'm having this discussion with an "exclusive clubber".

Lledowyn, it's interesting that you bring up that point, because I've seen the peer group thing work both ways. Done right, it can be an excellent way to retain majors. But I've also seen the existence of a peer group of skilled programmers, or at least the appearance of such a peer group, turn students away, because the students feel like "everyone knows more than I do and I'll never catch up". So it's a delicate balancing act. Do you know what factors made it work at your institution?

Jane said:

Do you know what factors made it work at your institution?

As I recall our group started in our intro CS class. Class interaction was encouraged and we were made to work as a large group. Since we were all on the same boat and we all wanted to pass, we decided that it was a good idea to stick close to each other and help each other out. The way that we did this is that we would meet in a certain place at the same time twice a week.

This continued after the end of the intro class, and people from other sections would overhear us and come over to us, and we would love to help them out too. It wasn't anything that was really planned, but it kind of grew out of that initial start in the intro class. Towards the end, we had freshmen that were interested in CS coming to us to talk, and get advice. I think some of the best memories that I had was talking to a newbie, and seeing the light bulb flash over her head when she finally understood C pointers. :)

I think something that helped create this peer group was the fact that the class size in the intro class was just 20 people. I also have a suspicion that what we created was by design from the professor that we had, because he was really big on developers helping each other out, and forcing us to work as a group instead of individually. I will say that it was a great experience, and I still communicate with my friends from there.

I hadn't thought about such a group working the other way though. I think it's possible that the personality of the folks in the group could be a factor since we just liked helping people out. We really do have a love of programming and CS and we just naturally wanted to share that with anyone that was interested. I'm happy to say that our group is still going on, even though all of the faces are new. :)

So to summarize, the factors that helped this work for us were:
* We're all on the same boat mentality fostering cooperation
* Professor influence on importance of cooperation
* Small initial group
* People willing to help
* A strong love of programming and a willingness to share that knowledge

If I think of anything else, I'll be sure to post about it. :)

I was a math/CS undergrad, but my peer group was more the math students rather than the CS students. Something that helped with peer group cohesiveness was the availability of a student lounge. But as Jane says, peer groups can be scary sometimes. This was especially the case with the math students, who can sometimes get... eccentric.

I don't know the answer to the question of how to form effective peer groups. It seems that there ought to be techniques for encouraging students to form effective peer groups, but I don't have much of a clue as to what they might be.

GrayGaffer wrote:

Back in my day (60's) there was no such thing as a course in Computer Science per se.

My brother graduated in summer 1967 as one of the first nine people with a BSc in computing science in Great Britain.

though you were far 'above' me I was one of those original programmers hacking at computers that wouldnt run a modern watch. Playing with AI when people thought the idea of intelligent computers is silly.

The thing is people like you made CS. We wrote the original alrorithms incorporated into everything now. We found the solutions that the textbook writers now dumb down and overanalyse into boring nothingness.

The real innovators and creators are rarely in the power heirarchy. Think Jobs. Think the not-gates guy who wrote Dos. Think all the countless people who created the *nix systems. Think the guy in his basement thinking he could somehow wire his computer to his cassette recorder and have data storeage like the mainframes. The same is true of the web. I was there in the packet network days. And in developing the modern commercial web. This page is covered with apps, and steeped in the concepts and study we did, and will never be acknowledged for. You'll see histories in the future telling how MS developed this and the linux community developed that and this network engineer developed that. You wont see notations of the guys who actually did what those people coopted.

But that doesnt matter. You didnt develop those computer systems for money. You didnt say "awesome" when you discovered the concept of a multiplexier/demultiplexer chip because it would make you rich. You did it because it was cool and awesome and you absolutely had to try some things with it.

Same is true today. The driving force is the kid who hacks video games to remake them. Its the guy who rips out the OS of his phone and writes a new one. Its the guy who creates a new app to replace domain.com:80 because he can.

To heck with the credential authoritarians. The creative people always live outside that mindset. It's a near requirement.

We are open. There's no "admission to the major" hurdle -- students can declare any major they please.

One issue that we have had is students who are not blooming but just keep plugging away. Too many weak students can drag down the program (back when students thought any CS degree would lead to the big bucks). I would also expect this to be less of a problem today since we upped math and science requirements.

Jane, you are probably familiar with Seymour and Hewitt's book "Talking About Leaving" but just in case I thought I would mention it. It's chock full of evidence that the weed out, exclusivity approach does not get rid of (only) poor students, it gets rid of many high performing students who feel that pursuing that career path is not worth putting up with all the crap. There's also evidence that high performing women are disproportionately weeded out. So, ironically, the desire to be exclusive ends up turning away talented individuals and impoverishing the profession, because of the narrow viewpoint and constricting curriculum.