Let the games begin
This week was my first week of classes at McGill and my second in Montreal. Being a grad student is quite enjoyable at the moment: I have more freedom in my course selection than when I was an undergrad, I get to explore the topics I’m studying in a greater depth than before, and generally the whole feeling of starting at McGill as a new student is quite exciting. Living independently in Montreal has its perks: a very vibrant and creative European-like city with a large student population, plenty of interesting activities to engage in and lots of opportunities to learn French. For now, I want to write about something other than Montreal, though, which I am sure is going to come up frequently in future posts.
My coursework for this semester, which I hope I have chosen so that it is neither too easy nor extremely time-demanding looks like this:
- Computer vision. While there is no required textbook, I think I am going to consult a couple of recommended ones, namely Introductory Techniques for 3D Computer Vision and Computer Vision: A Modern Approach
- Computer graphics. There is no required textbook in this course either. The OpenGL Programming Guide is a recommended one, and I suspect it’s going to be quite necessary for our assignments, but I think I should also consult Fundamentals of Computer Graphics and some online articles and tutorials because I feel that the lecture notes leave me with many questions.
- Machine learning. Pattern Recognition and Machine Learning is a classic and so seems to be Reinforcement Learning: An Introduction. This course has about seven assignments and a big final project that will include a report and an in-class presentation.
Needless to say that all of these courses require careful preparation and equal attention. I should also keep in mind that I’ll have to start reading a couple of papers each week to familiarize myself with the work that is being done at the Mobile Robotics Lab. I’m still not sure whether I should spend the rest of the time learning French or experimenting with something I haven’t tried before — I’ll just have to see how the following couple of weeks will be.
A tourist in Montreal
A very good friend of mine gave me a detailed list of todo items that I’d better try out in Montreal. I don’t think she’ll be very mad at me for sharing them here:
- Mont Royal. There’s a cross somewhere up at the top, which can be seen quite clearly when it’s illuminated at night. Try figuring out how to actually climb up to it. There’s also a viewing area about halfway up the ‘mountain’ (it’s really just a really tall hill) from which you can see all of downtown Montreal.
- Schwartz’s Deli. http://www.schwartzsdeli.com Order a smoked meat sandwich (I would suggest either ‘medium’ or ‘lean.’) Get a pickle with it and enjoy the best smoked meat in the country. If you don’t like the sandwich, then you can be quite certain that you don’t like smoked meat.
- Gelato in the Old Port. Right around Place Jacques Cartier (the Eastern most section of the Old Port) there is an entire strip of good gelato/ice cream places. They’re all just west of the Place JC, on Rue De la Commune (the southernmost street).
- St. Denis, the Plateau, The Village part of St. Catherine Street. There’s a building somewhere downtown that has a piece of the Berlin Wall on display.
- Eat crepes. If you find some with Creme de Marron (chestnut cream/paste/jam), try it!
Thank you for the orders suggestions Z.C., I’ll happily follow them
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.
Graduated!

graduation hat toss
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.
*This* close to graduation
It’s been a while since the last time I wrote anything on my blog, mostly because school
and applications to graduate schools have been keeping me quite busy, but things are
going to become less hectic soon. For a week or so
There are a lot of topics that have attracted my attention over the last couple of months,
many of which I’m looking forward to share here. I definitely want to write about my experiences
with the application process, hoping that it will prove to be helpful to third-year students who
are entertaining the thought of continuing their studies beyond the four-or-so years of undergrad.
My graduation is so close that I can seen the “Finish” line clearly and I’m running towards it. It’s
been a very fulfilling four years here at UofT and I’m looking forward to writing an epilogue about
how my overall experience as a student has been here in exotic Toronto. I want to especially
emphasize what where the main mistakes I made, hoping that other students will not repeat them,
what I absolutely loved, and what I’d do differently now that I have the experience of four years
under my belt. In other words, I want to share everything for which I have said “I wish somebody
had told me about this from the beginning.”
On a less philosophical note, there is a link that caught my attention lately. A project called Sixth
Sense again from the MIT Media Lab, which wowed me until the presenter mentions brain chip implants.
The conclusion is yours…
Siftables: using sensor networks to improve human-computer interaction
David Merrill, a PhD student at the MIT Media Lab, gave a talk on the latest research project that he and his colleagues have been working on: Siftables.
Siftables are independent, compact devices with sensing, graphical display, and wireless communication capabilities. They can be physically manipulated as a group to interact with digital information and media. Siftables can be used to implement any number of gestural interaction languages and HCI applications.
Soundtracks
I must have ignored the beautiful soundtrack of “Batman Forever,” because the movie itself was so bad. Ironically, “Batman Begins” and “The Dark Knight” were fantastic movies, but I don’t think I remember their main soundtracks.
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.
The worst thing you can say in a conference…
…to the person sitting next to you. I think I outdid myself this time:
Me: “These seats are not that bad, considering that the CSSU gave us free tickets for this conference, right?”
Other person: “You mean you didn’t pay $300 for your ticket?”
Me: “[nervous chuckle] uh, no”
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.