Undergraduate Capstone Open Source Projects

Why Nikita wishes UofT made courses like UCOSP mandatory.

Posted by Nikita Pchelin on 2010/01/18

“Do not waste time being jealous: sometimes you’re ahead, sometimes behind. Race is long and in the end you see that you are only competing with yourself”.

The reason I switched from Mechanical Engineering to Computer Science after my first undergrad year, to be short: it was extremely boring. I did not want to wait for the 3rd year to come in order  for the stuff to get more interesting. From the first two “project” courses in my undergrad I learnt zilch.

In CS program things were slightly better: some of the faculty members understood the importance of having a balance between theory, and, well, “cool stuff”. In our projects we imitated real software products, developed simple but very cool games (I still play my “warehouse wars” JavaScript game when I get bored of XBOX), learn how theory can be sometimes cool useful too.

However, one aspect was missing from my experience in all of my project / group CS courses: we were never taught to make real decisions about our own project. Surely, we were awarded better marks for cleaner code. But as an example, in my second year we weren’t allowed to:

  1. Write your own socket writeln/readln methods in C. Rational: too complicated, you can’t get it, it’ll be hard for us [TA] to test it. Nobody cared that the provided methods were buggy 🙂
  2. Design your own plugin system for your game: too complicated, you won’t get it, it’ll be hard for us to mark it. Well, assignment’s implementation wasn’t good at all.
  3. Come up with your own GUI: whaaat? are you insane? you have screenshots in your assignments 😛

Looks like a list of trivial tasks, but how much thinking, discussion, interaction can each single one of those promote? I’d never thought I’d have a chance to do those things at this university, but I am glad to know that I was wrong.

Not only UCOSP gave me a chance to meet my future colleagues in the field, but it also gave me a taste of what the real world responsibility is like. In short 2.5 days of the sprint I felt a lot of support both from the “old survivors” of the project and the new members like myself. I felt a healthy mix of responsibility and support.

I think UofT should consider making this course mandatory for students in CS specialist/major programs. I am sure UofT can do that. If the don’t want to, here is my why: I can confidently say that this year I learnt and will learn more about human interaction, project management, responsibility, code practices than in my 4 years of undergrad at UofT. I think that’s worth something . It’d be definitely a better investment than a second reading week in December. I don’t read on vacations.

Kudos to all organizers, mentors, TAs, and students for making UCOSP possible!

If you read until here, you are a hero 🙂

Short summary of the work done during UCOSP & plans:

  1. I concentrated on the Tickets page of Basie and on the random-data tool over these three days. I worked on & closed: 95, 90, 82, 73
  2. Started converting Alex into Linux faith.
  3. I am planning to continue working on random-data, but I will give priority to the tickets assigned to me for 0.6 Final (96, 126, 74)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: