Interested in going to Copenhagen for the Climate Change Convention (COP15)?

That’s the title of a Facebook message that arrived at my inbox today. It was sent from the University of Toronto’s Student Union (UTSU) and it basically urged interested students to apply for a position for UofT’s student delegation that is going to attend the Copenhagen Climate Change Conference in December. The message included a link to UofT’s Environmental Resource Network which explained all the details about the application process. Extended application deadline:  October 5th (that is tomorrow!).

While I am not a UofT student any more, I couldn’t help but wonder how many students were notified of this opportunity in the beginning of September when they were choosing their courses. The convention takes place from December 5th to 18th, 2009,  which is exactly exam period for most north-american universities. If you read the application page, it mentions that students who wish to participate will probably have to ask their registrar’s office to defer their December exams and take them in February — a request that might or might not be satisfied.

This brings up some interesting questions: how many students are going to realistically be able to attend the conference and is the University willing to make it easier for them to attend? Will the university grant exam deferrals for this reason? As far as I know exam deferrals are granted for situations of medical (or other) emergencies, but I might be mistaken. What other support will this delegation need from the university?

And, since every time you ask for something you’d better have something to “bring to the table,” what role does the UofT delegation hope to play in the convention? Will they participate in peaceful demonstrations? Are they going to meet with delegations from other universities? Are they going to act as journalists, providing the latest news to the UofT community through blogging? Are they going to be given the opportunity to actually talk to any politicians? (I’m not referring to heads of states, of course, but perhaps to some of their representatives…) How many people does this delegation need to have in order to accomplish its goals?

I have no idea how things like this are organized, and how the voices of all these delegations are going to reach the ears of politicians, but I sincerely hope that they have some sort of an impact, and that everyone who’ll participate is going to be committed enough not to regard this trip solely as an opportunity for tourism. There are far better places to visit in December than Copenhagen.

PS: the Climate Thinkers Blog might be of interest.

Interested in going to Copenhagen for the Climate Change Convention (COP15)?

Robot soccer at UofT

One of the few things I didn’t like at UofT’s computer science department was the lack of robotics courses in the undergraduate curriculum. This becomes all the more puzzling if you take into consideration the fact that UofT excels in teaching and researching artificial intelligence: computer vision, check, machine learning, double check, cognitive robotics, check, multi-agent systems, also check. It seems to me that the only thing missing is a couple of professors whose primary focus would be to create the necessary hardware that would provide a testbed for all those research efforts. Until that hardware becomes a reality though, some friends of mine and I thought that it would be a good idea to try out participating in RoboCup’s Simulation League.

RoboCup is a robotics competition whose aim is to promote artificial intelligence by creating robots, either actual moving hardware or just software-simulated agents, that will play soccer against each other. It’s (ambitious) goal is that by the year 2050 a team of humanoid robots will be able to beat the World Cup champions in soccer (say Brazil for instance), proving that the field of artificial intelligence has advanced to the point where machines can beat humans in an activity that requires elaborate motor skills, team strategy, and coordination. Personally, I find the fact that humans are striving to build machines that will beat them in a popular sport quite scary (and pointless) — I think Garry Kasparov won’t disagree. Nonetheless, until (and if) that happens, I believe that it is absolutely worthwhile to participate in RoboCup, simply because one can learn so much by the the engineering and artificial intelligence challenges involved in that effort.

Long story short, we convinced one of our professors, Steve Engels to supervise a fourth-year course whose topic would be the creation of a team for RoboCup’s Simulation League. About fifteen students were interested in taking this (summer) course, some of them for credit and others as volunteers. The students were split into four teams, each of which competes against the others every week. This way provides a way to set a benchmark by which to compare the progress of different teams. We used the official RoboCup soccer simulator and its incredibly detailed and helpful documentation. Fortunately, despite of the lack of previous experience of everyone who is involved, the course is going pretty well. See for example what one of the teams has been up to:

The bulletin board for the course is here and, admittedly, it doesn’t do the course much justice but I’ll do my best to make it a bit more informative. A lot of emails went back and forth discussing documentation, the pluses and minuses of available libraries for C++, Java and Python as well as other issues. Those notes will be very helpful for future teams who are considering the possibility of participating in the competition, so I’ll make sure to include them in the above board. As for the future of the course at UofT, it seems that it has attracted enough interest from students, so it will be continued, at least for another semester in a different format. Greg is working on it.

Robot soccer at UofT


After four years in the making, I graduated from the University of Toronto, got my Honours B.Sc. in Computer Science & Math and celebrated the finale of my undergraduate life with my family and friends. Looking back at these four years I realized that it was definitely a process of growth, both professional and (especially) personal. What stimulated this growth was the decision I made early on when I started my studies at UofT:  to do well in a demanding academic environment, and at the same time have fun and do exciting activites outside of the classroom. I wanted to explore as much of the world that was unknown to me as possible, without putting school to a second fate.

Along the way I tried things that I hadn’t tried before I went to university: from baseball to salsa dancing, from white water rafting to skating, from juggling to driving a car (I still find a lot of similarities between the two), from camping in serene nature to exploring big cities, from playing the guitar to programming robots.

I also met a lot of interesting people who opened up a sea of possiblities for me. The funny thing is that most of them didn’t realize the positive effect they had on me. Fortunately, I tend to notice details in their stories that are invisible to them.

Academically, I took a range of stimulating courses. I managed to become better in programming, and I even learned a new language: mathematics. It is amazing how many people speak it and how it connects those people. On the flip side, those who don’t speak it or have never tried to learn it tend to look at you as if you just escaped from an asylum — especially in parties 🙂 I remember once talking to a member of the Glendon Musical Ensemble (a very beautiful bilingual campus, part of York University, where most students study psychology, french, english and arts). After she introduced herself, she asked me what do I study. I swear that my answer horrified her and her eyes passed through a number of phases: first denial (it can’t be…there are actually people who study those things?), then silent contemplation (what kind of a person would study something like that?), then disgust (ewww). OK, fine, maybe I’m exaggerating, but you get the point: math usually makes it difficult to be immediately accepted by people who hate it, because they assume they can infer everything their is to know about your personality just by the fact that you’ve decided to study something they consider hard and hideous. That said, I am always amused by how quickly their impression changes as soon as they make the effort to get to know you a little better; all the stereotypes collapse.

So, thank you UofT for the last four amazing years! Hopefully our roads will cross again in the future. In the meantime, my next journey is going to begin in September at McGill University. I’m going to do my M.Sc. at the School of Computer Science, hopefully working at the Mobile Robotics Lab or the Reasoning and Learning Lab. I’m looking forward to the adventures I am going to have in Montreal.


Natural Language Processing: is this the coolest course ever?

I decided to take CSC401, a course on statistical Natural Language Processing, this term at UofT, after listening to a lot of friends who were saying how fun this course is. I’ve heard things like this many times before: “Oh, you absolutely have to take that course on the ‘Evolution of Ancient Navajo Characters to Modern Navajo Characters‘, it is wicked!” and the result was a course that made watching  grass grow exciting by comparison. So, I took my friends’ (and profs’) suggestions with a grain of salt.

I am glad to say that everyone was right. This is probably one of the best courses I have ever taken in CS, even though I am not going to specialize in it. First of all, it deals with the one thing that Computer Scientists understand best of all: text. Of course, I have to admit that using Python in our assignments makes our tasks very approachable, because we can just think of them from a high-level perspective, instead of worrying about how to tokenize the text, use regular expressions, split strings, store data etc. These things would take a lot of time and effort in C, or in Java for that matter. Second, the assignments are empirical by nature, meaning that there is no right answer you can obtain by a formula, nor an algorithm that will solve your problems optimally. For instance, how can you detect sentence boundaries? “By a period” you say? You obviously haven’t been to St. James, and haven’t walked on Yonge St. See, you are dealing with many parameters that cannot possibly fit in your head, with many exceptions to the rules, and trial-and-error is the only approach that will make you choose some value over others. Apparently, this is how you develop experience in this field.

Speaking of our assignments, our first one is to train a decision tree from 500 articles, each 2000 words long, taken from the Brown corpus. The tree will classify unseen documents from the same corpus according to their literary genre (e.g. is it sci-fi, adventure, reportage, romance, humour?) It’s really cool, or at least it is much cooler than the  “Evolution of Ancient Navajo Characters to Modern Navajo Characters.” So, spread the word and tell your friends about CSC401. It/PRP ‘s/VBZ worth/JJ it/PRP ./, even though POS-tagging is not perfect.

Natural Language Processing: is this the coolest course ever?

College Puzzle Challenge 2008

Yesterday some of my friends and I took part in Microsoft’s College Puzzle Challenge for our first time, because we thought it was going to be fun and stimulating. We were not disappointed; on the contrary, the event was one of the most fun and well-organized events I have seen, despite the large number of participants (50 teams from UofT, which makes almost 200 people, and another 300 teams all across North America). The 50 teams occupied all the corners and tutorial rooms at Bahen.

This year’s theme was to solve the mystery behind the stolen Rosetta Stone through a series of 30 puzzles which kept us busy for 12 straight hours –thank God food was provided– We managed to solve the easy puzzles, half of the moderately hard, and a couple of hard ones. We got really excited in the first three hours because we solved every puzzle we attempted, but we had a stream of dead-ends from 3:00pm to 7:00pm. What we learned from yesterday’s contest that will definitely be valuable the next time we try out was that:

  • We should have written a program that accepts a grid of characters as an input and finds all the words that are hidden in the grid horizontally, vertically and diagonally by using Word’s or Excel’s spell checker.
  • We should have known how to use Live Maps, I’m not kidding 🙂 This helps very much for solving some of the puzzles that give locations of airports or cities and paths between them. We needed to plot the components of the graph on the map to see a word formed. In particular, make sure you know how to create a collection of locations (you gotta have a hotmail account and login before you do this) and how to draw straight lines between them. Sounds trivial, but when was the last time you needed to do this on something like Live Maps or Google Maps?
  • We should have read Harry Potter. At least three puzzles contained direct references to the seven books of the series.
  • We should have treated Wikipedia as our bible; you can get many ideas and avoid many dead-ends as long as you find the proper Wikipedia article.
  • And last, but certainly not least, we should have asked more questions. As newbies in the contest, we thought that asking for hints from the organizers was something that few people would do and only after they had tried everything they could to solve the puzzle. That turned out to be strategically wrong on our part because we had at least 5 puzzles whose solutions we had figured out by 80% and all we needed was a connecting thread. We shyly asked our first question around 7:00pm and by midnight we had asked 5 more questions. It turns out that the remaining 349 teams all across North America had asked 6000 questions in total, i.e. 15 questions per team! Lesson learned 🙂

We had a great deal of fun, and we enjoyed the event very much, so if you haven’t taken part in the College Puzzle Challenge, do so and you won’t regret it.

College Puzzle Challenge 2008


I am super excited because I figured out the answer to my question about how to offer back to the community around me: I decided to join UTFIRST and UofT’s Robotics Club. The teams that seem to interest me the most in that club are the Autonomous Rover team and the Soccer Robots team; both of them will participate in competitions around June 2009. UTFIRST is a program that connects university students who might know a thing or two about engineering/science with high school students who will be preparing for their own competitions in May. If everything goes well, I am going to learn about embedded systems and AI and be a mentor for high school students. W00t!

On a similar note, today I attended a presentation given by Raffaello D’Andrea here at UofT. Perhaps you have seen his robotic chair, or heard of his achievements at RoboCup. This dude’s work combines Engineering, Computer Science, Mathematics and Physics… ah ETH Zurich, you are a very lucky university.


Community service?

One of the things I have been thinking this summer, while being away from my parents, girlfriend and friends back in Toronto is how much time have I spent doing any form of community service since the day I arrived in Canada? I say with great regret that the answer is “one day.” The time I have spent to improve the community in which I live can be counted in hours, and it was last year when I volunteered for UofT’s Outreach Day and I planted trees near the Etobicoke river, back in September 2007. That is truly sad…

I am not saying that giving back to my community should take precedence over my studies; that is a trap that I won’t fall into. Besides, before one becomes a good teacher one has to become a good student. However, I do think that I should reserve some of my free time to do things that will make the community around me a little bit better. Why? For the same reason that you’d offer some help to an old lady carrying heavy bags out of the supermarket: it’s the right thing to do. The fact that my studies demand all my attention doesn’t mean that I will alienate myself from my peers, like I have done many times in the past.

Inevitably, I started thinking what defines my community and who exactly are my peers? Unfortunately, I do not live in a residence, so my notion of community does not expand to a dorm. Are my parents my entire community? Of course not, I’m not that antisocial, I do have friends, good friends. So, are my parents + friends my community? Well, not exactly, because I do care about other issues whose scope is greater than that. Here are a few of them, in order of precedence:

One of the things that literally eats me inside is that people my age back in Albania do not have access to modern textbooks, unless they download them from the Internet, simply because they are so expensive. If $90 for a usual textbook is deemed expensive for students in Canada, then how expensive will it be for a student in a country like Albania? They also do not have professors who can guide them, especially when it comes to Computer Science, but they cannot download that from the Internet, can they? I wonder if someone has told them about books such as Programming Pearls by Jon Bentley, the Algorithm Design Manual by Steven Skiena, or Learning GNU Emacs by Eric Raymond et al. That’s all it takes some times, just to point out the right path and many people will follow it. For the ones who study CS, I wonder if their degrees will be equivalent to western universities’ degrees when they try to apply for grad studies or work. I fear that they will have the same fate the previous generations have had, that of non-recognized degrees when they go to another country.

Another one is how inaccessible computers seem to people in their fourties and fifties, who might be quite well-educated in a specific area, but are completely computer-illiterate, to the point where browsing through the Web or filling out an online form seems like a challenge. Be careful here: they are not stupid or under-educated; they just haven’t used computers before, probably because in their countries records were kept on dead trees. They never needed computers, so when they go to a country like Canada, people think they are stupid just because they don’t know how to use Word and Excel… The neat thing is that they can pick this knowledge up very fast if they are systematically taught by an instructor.

The third one has to do with the student experience at UofT. The interns I have met this summer at Google come from a variety of backgrounds and from many different schools ranging from MIT, to universities in New Zealand, to…you name it. The ones who study in American universities usually have a thing in common: they are part of fraternities, sororities, they live with other people, they know how to socialize and share, and (very generally speaking) are people who try to improve the community around them. They participate actively in their universities’ events and they still manage to do very well academically. In other words, they are people who I admire.

To answer the question I asked myself some paragraphs ago: my community is all the people I interact with and all the things I care for.

Here’s the challenge: how can I offer some time back to my community, spend more time with other people, join my fellow students, improve my student experience and that of others, without impacting my studies negatively in this very critical 4th year? Can I do something like that, or is it beyond my abilities? Am I again overestimating what I can do? Also, is it possible to use what I have learned so far in CS to improve my community? Are there ways to do that in UofT?

Community service?