Tag Archives: uoft

In Defense of Grad School

I’ve received lots of praise and pats-on-the-back for my acceptance into Grad School here at UofT for Computer Science.

However, there’s another side of the coin.  While I was still mulling the decision, I mentioned it to a few people here and there, and sometimes I got a strange look…like I’d agreed to have a lobotomy, or take experimental medication or something.

Believe it or not, I’m still getting it from time to time.  It’s strange.

At one point, I posted my Grad School status on Twitter, and got back the response “Don’t!  It’s a trap!”  Trap?  Really?  Have aliens taken over the school?  Am I unwittingly joining some bizarre cult?  Am I going to get pushed down an empty elevator shaft on my first day?  Awful hazing rituals?  What’s going on?

What’s wrong with Grad School? I’ve asked a few people this question, and gotten the following (paraphrased) responses:

  1. You’ve been in school too long.  Get out now and enter the work force!  Don’t you want to have fun?
  2. Grad School is expensive.  You’re going to go deeper into debt.
  3. If you choose a thesis/subject that you end up disliking, it will be an awful experience
  4. Work first.  Then go to Grad School.  Just trust me.
  5. You’re educated enough – you don’t need a Masters degree.  You’ll learn everything you need in the field.
  6. The courses are super hard and boring.

Here are my responses, in defense of Grad School – they’re numbered to correspond.

  1. Who says Grad School isn’t fun?  I really enjoy the field of Computer Science, and this is my opportunity to do some cutting edge research.  The whole point of a thesis (I believe) is to focus on something in the field and make it my own – to master it.  This means background research, thesis, experiments, conclusion, the whole bit.  That’s the science part.
    Also, there’s a self-serving economic payoff:  Bachelors degrees are going down in value.  Lots of people have a B.Sc.  A Master’s degree stands out, and will bring higher pay and more interesting jobs.
    My uncle once said that his days in Grad School were the most educational because of the people that surrounded him, and the conversations that he had.  I think I’ll find that here, and it’s exciting.
  2. Believe it or not, I’m actually getting paid to do this.  Sure, I owe the University a chunk of money.  Thankfully, the Department of Computer Science is paying for it, and I should have enough left over to live a modest lifestyle.  Living like a student for one more year isn’t so bad – it could certainly be worse.
  3. Why would I choose a thesis or subject that I don’t like?  From what I’m told, the first few weeks of Grad School are spent scouring around with a supervisor, trying to nail down a thesis subject.  I plan to do one better, and try to nail a thesis subject down this summer.  Once I’ve got it nailed down, I’ll do the background reading, and try to figure out some interesting experiments.  It’s easier said than done, but I’m not going to be stupid enough to pick a thesis on something I really can’t stand.  Am I going to do my thesis on complexity theory?  No, of course not.  Am I going to do it on how to teach software engineering students design patterns in a more visual, animated way?  Who knows, maybe.
  4. This answer assumes that I haven’t worked before.  I’ve worked.  I’ve been out there.  “You haven’t seen the real working world”…well, maybe I haven’t, but I’ve seen something that’s probably pretty close.  Working three summers at the school board hasn’t been a cakewalk.
    Some might argue that working for a while before going to Grad School will help me to gain the discipline necessary to work in an unsupervised environment.  Well, I have to tell you, I was barely supervised at the school board.  They gave me a task, and I did it to the best of my ability, with little-to-no oversight.  I set my own schedules, I dealt with clients directly.  I can work on my own.  I can manage my time.  I know how to work hard.  Don’t give me that “real world” crap.
  5. Like I said in #1, a B.Sc. isn’t what it used to be.  Lots of people have them, and it’s probably becoming less useful as a marker for separating the wheat from the chaff.  It’s only 17 months more work, but I think the payoff is going to be considerable.
  6. Maybe.  Thankfully, I’m only taking two a maximum of three per semester.  Workload does not frighten me anymore – I’ve been overloading myself for years, and I’m fine.  I’m not at all saying that Graduate School courses are going to be a breeze – but, and I hope I don’t sound arrogant,  I’m more-or-less used to doing the practically impossible.

Have I missed any reasons for not going to Grad School?  Do my rebuttals miss something entirely?  It’s a bit of a moot point now – I’ve already accepted the offer.  But if there are any interesting reasons that I missed, I’d love to hear them.

Hello Graduate School

Well, it’s official.  Today, I handed in my acceptance form for Graduate Studies here at the University of Toronto in the Computer Science Department!

Now I just need to keep my cGPA above 3.2…

Assuming that I get my B.Sc. without incident (because who knows, maybe the University will fight me for it…citing missing courses, insufficient credits, etc.  I’ve checked all of this with New College and the Drama/CS departments, but I’ve been here too long not to be ready for bureaucratic tom-foolery…), I think I’ve got an interesting year or so ahead of me.

This summer is already looking quite busy, but here’s what I’m looking forward to next year:

Interesting Courses

I’ve been leafing through the Graduate course calendar, looking for courses that sound good and fulfill my breadth requirement.  Here are the courses I’ve underlined as “interesting”.  Note that I haven’t checked the timetable at all to see if these conflict with one another.  They just sound interesting:

  • 2125H – Software Development Tools and Practices:
    This course is an introduction to software consulting practices. Students will be paired with clients whose problems require advanced knowledge of computer science to solve, and will then work under the direction of the course instructor to develop and deliver useful results. Topics will include requirements elicitation, scope negotiations, deployment concerns, and disaster recovery.
  • 2412H – Computer Algebra
    Algebraic theory that underlies symbolic and algebraic manipulation by computer. Chinese Remainder and interpolation theory, fast algorithms for computations with integers, polynomials and power series. Newton and Hensel iteration, polynomial and integer gcd algorithms, factorization of polynomials, the fast Fourier transform, solving systems of polynomial equations, Gröbner bases. The Maple computer algebra system.
  • 2426H – Fundamentals of Cryptography
    Rigorous definitions of security for pseudo-random generators, digital signature schemes, secure hash families, and public-key encryption.. Methods (including number-theoretic conjectures) for constructing these secure cryptographic primitives. Methods for using secure primitives to achieve secure session-key exchange and secure sessions.
  • 2511H – Natural Language Computing
    Introduction to techniques involving natural language and speech in applications such as information retrieval, extraction, and filtering; intelligent Web searching; spelling and grammar checking; speech recognition and synthesis; and multi-lingual systems including machine translation. N-grams, POS-tagging, semantic distance metrics, indexing, on-line lexicons and thesauri, markup languages, collections of on-line documents, corpus analysis. Python software.
  • 2529H – Computer Animation
    The primary focus of this course is on kinematic and dynamic techniques for character animation. Topics include physical modeling and simulation, motion planning, control and learning algorithms, locomotion, motion trajectory optimization, scripting languages, motion capture, and motion editing. Students will implement algorithms and interactive animation tools and then use these to produce motion for animations.
  • KMDI1001 – Fundamental Concepts in Knowledge Media Design
    Knowledge media are systems incorporating computer and communications technology that enhance human thinking, creativity, communication, collaboration, and learning. Examples include the Web, email, instant messaging, knowledge management systems, digital libraries, collaborative virtual environments, video conferencing environments, and webcasting systems.
    This course reviews the emerging field of knowledge media design, and the use of digital media for communications, collaboration, and learning.

I’m also looking into the possibility of hopping (back) over to the Computer Engineering Department to see if I can take ECE568H1 – Computer Security.  My general dislike for engineering courses notwithstanding, this still sounds like an interesting possibility.

(Note to self:  the word “notwithstanding” just felt right to put there, but is that correct usage?  I have no idea…)


Well, it’s no surprise – a Master’s student is expected to produce a paper in order to graduate.  I have absolutely no idea what I’ll be doing my thesis on, but the number of possibilities is exciting.

It’d be nice to somehow merge Drama and Computer Science into a thesis – and I think it’d be an appropriate finale for my career here at UofT.  It’s something to mull over while I have time, anyhow.

Launching OLM

OLM is going up in the fall.  Whether or not I work on it this summer, as a TA, I’ll probably be using the software to mark and return student code.  “Eating one’s own dog-food” might be appropriate here – though I prefer, “eating the sandwich I just helped to make”.


A lot of my friends from the Drama department are either graduating in June, or staying on for one more year.  A bunch who are graduating are staying in the city, and the prospect of doing some work with them outside of school is exciting.

We’re all very spoiled here at the UCDP – modest budget, multiple rehearsal spaces, etc… working on our own stuff outside of school might be a very humbling experience.  Humbling as in, rehearsing in alley ways or rooftops, and using an audience holding flashlights instead of our own lighting grid.  Cool.

Operation: Party Mansion

This one is still in the works.  Some buddies of mine from highschool (who are also my roommates) are looking to buy some property in, or around downtown Toronto.

This may sound ambitious, foolhardy, and naive, but we’re serious, and a lot of legwork has already been done in order to get this moving.

Ideal scenario?  Next year, I’ll be living in a big house with my highschool buddies.  And isn’t that living the dream?

Anyhow, as I was saying, my Grad school papers are in, so my brain is going to put that on the backburner for a while.  Now I have to focus on my CSC301 midterm for this Wednesday, and an evidentiary analysis on CIA/JFK Assassination links for INI304.

Hilarious / Embarrassing Student Protest at NYU

Thanks to Ian Malone for showing me this.

So, there was a time when I was a naive, idealistic university student.  I thought big, greedy, evil corporations were driving the state of the planet into a tailspin.  I also thought that the University of Toronto was an unfeeling people destroyer.

Maybe some of this is true, but I think I’ve mellowed out.

Anyhow, here’s some video footage of an embarrassing student protest at NYU.  I think these guys were looking for some kind of revolution, but it just makes me cringe and giggle at the hilarity of it.  I’m all for the protest of worthy causes, but this video is a great guide on how not to cause an uprising.

To quote the article that I found this video on,

“You may not come in here. This is student’s free space,” says the cameraman, as a security guard pulls apart the flimsy barricade that the administration had chosen to leave in place for the past two days. As soon as the guard sets foot in the food court: “Excuse me, brutality here. You are on camera…Do not use brutality. You may not detain us, you are on camera!” This, as two security guard were moving away from him. “We deserve to be explained what is going on,” he says to several bored-looking cops. Here’s what’s going on dude: you’re not actually allowed to take over buildings. Believe it or not.


Bonus:  Here’s a link to the protest group’s website, where they seem to have claimed victory.

Attention GSS Students Auditioning for the UCDP!

Quick note here while I’m in between classes:

If you’re planning on auditioning for the University College Drama Program at UofT for next year, you must follow these instructions before March 13, 2009.

Tell everyone you know who is interested, because if you don’t get the forms in before that date, it gets a lot more complicated to be considered.  A lot.

CodeSprint ’09: What Happened?

For those of you who don’t know, this past Thursday, Friday, and Saturday, I’ve had my face planted into a laptop, working 8 hour days on the OLM project.  

And I wasn’t alone.

I was in a room with plenty of other Computer Science students – some even coming from as far as the West coast to join us. Good people, good times, interesting problems, and free food – all care of Greg Wilson, Karen Reid, and the other support within the department.  It was really fun, and I learned a lot.

And we coded our asses off.  Literally.  It was awesome.

So what did I end up actually doing?  Well, when TA’s are marking code, there are little menus that let them attach pre-built annotations to highlighted sections of code.  I’ve also replaced the ugly Javascript Prompt dialog that asks for new annotations with a nice, modal dialog, using LivePipe UI.  The team also got the rubric listed next to the code, and we now have the ability to apply grades on the rubric!  Awesome!  We’re almost there!  There are plenty of tickets, plenty of ways this code and interface can get cleaned up, but we almost have the behaviour we want.  And that’s something.

If I get a chance, there are two things I’d like to do:

  1. Replace the SyntaxHighlighter Javascript code with something a little less client-heavy.  Maybe we can syntax highlight the code on the server side before we send it to the client for viewing?  That doesn’t sound too bad… does anybody know of a Ruby gem that’ll do that?
  2. Refactor the annotations code.  Right now, it’s a lot of Javascript.  A lot.  I’d like to shave it down, simplify it, streamline it.  But that’s what refactoring is all about, right?

Oh, and, in other news, I’m considering graduate school, and doing Google Summer of Code.  Just something I’m mulling over in my head…

Update:  Coding for three days straight brought sooooo much tension back into my shoulders…this is where Movement class exercises become very handy…