I've been getting more and more disillusioned with the people in my computer science program. I have always been a little bit more on the reclusive side (Which is hardly an oddity among computer science) but in the last couple years I've been doing a lot more group work and have a lot more friends in the program. With that has come the realization that...
Most of these people don't have the slightest idea what they're doing. In my last three groups:
- The first had one person who did almost nothing, and whatever she did do, we ended up having to redo
- In the second one, my partner contributed about 80 lines of code to a 3000 line project. The 80 lines did work, and he asked me to fix it. I found the bug, as well as the fact that 75% of those lines actually didn't do anything (He just copied every equation he could find from a paper and didn't bother figuring out what was actually being used)
- For the final project, one of my group members just has no idea what he's doing. This is a graduate level course, and I had to explain bitwise arithmetic to him. This was after I found out that he was copying tutorial code straight into our project without having the slightest idea what it did. Unsurprisingly, it didn't work. To make things worse, we already had code to in our project to handle the problem he was looking at, he just wasn't familiar enough with it to know that. And this is in
his own section of the project
This gets down to what I think is the biggest problem plaguing our computer science department. It is absolutely full of people who get into it solely because they want to be a video game designer (A nebulous title that apparently gives you full creative control over a project but only achievable after you've worked ~10 years as a programmer). They have no interest in programming or math (the backbones of computer science), and lots of them have no aptitude for them either.
Not to mention whatever skills they
could be building are being left untouched. The go to solution to programming assignments, as I have been discovering over the past couple years, is to directly copy paste other people's code into your project without understanding how any of it works and massage it until it does what you want. It is either flat out, or coming really close to plagiarism. It is depressing just how little actual problem solving ability these people exercise, if they have the slightest problem they'll google search for some code that implements what they want. In a graduate level graphics class I had to sit down with someone and tell them how to make a sphere, because they didn't have the slightest clue where to start. One year I watched a TA trying to help a student with an assignment he couldn't get to work. The TA asked him to explain how his code works. The guy just stared blankly without speaking. He barely wrote any of it himself, he just couldn't get other people's code to work
I can understand
why people are tempted to do this. Computer science has very demanding assignments, and if I can finish an assignment in 10 hours I'm shocked with how short it is. For a 2 week assignment I expect to put around 20 hours in. And assignments are so often an all or nothing thing. 90% of the work goes into getting 30% of the marks. That being said, Frankensteining together code is completely robbing you the opportunity of coming out of your degree having learned anything.
For the record, I don't want to sound smug. I don't think I'm exceptional, there's people in this program who make me feel like an idiot. It's just that there are so many people taking advanced courses who've glided through without learning the most basic skills a programmer should have. We've never once met our graduation quota in the computer science department, and it's not because the classes are too hard, it's because of the people taking it.
[sub]Warning - the above contains trace amounts of hyperbole. Reader discretion is advised[/sub]
-Jak- said:
Better to vent it here than take your anger out on someone.
I don't see why this has to be an either or.