Justin Li

Michigan Updates


Alright, I've finally decided to sit down and write in more detail about my Michigan experience.

Living in Ann Arbor is a little strange to me, as it's the first time I'm further removed from a large city. Being in Chicago for four years, visiting San Francisco, LA, and Seattle during the summers, have gotten me used to there being interesting "cultural" events around. I put cultural in quotes because there is of course an Ann Arbor culture, but what I'm talking about is museums and history and architecture. Seattle and San Francisco were great in this respect, where as Ann Arbor is a college town, and thus is dominated by eateries. The university and the town developed together, so only a few blocks from campus the streets become much quieter, and within 15 minutes drive it quickly turns into farmland. Although Detroit is only an hour or so away, I know of no quick/cheap way to get there, and even then I doubt there's much that would interest me. As a result most of my free time is spent reading or climbing, which is a saving grace of sorts. Michigan has a bouldering wall on South Campus, which is across the city from where I live, and so I commute there at least twice a week. It is also one of the few ways I've met people outside of engineering, as North Campus is dominated by engineers. So I've gotten a bit better at bouldering.

As for classes, I'm taking three, and I'll go through them below. As a final though, I will talk about my experience as a Graduate Student Instructor (TA)

Introduction to AI

I've already done a lot of the things on the syllabus, such as search algorithms, inference, and Bayesian networks. All this stuff, however, was done in different classes, and I later decided that this is because a Michigan semester is longer than the Northwestern quarter. I think I could have gotten an equivalency for the course if I wanted to, but I'm considering doing research with the professor, and it has been a while since I did most of the Good Old Fashioned AI (GOFAI) stuff, so I might as well sit in. So far the course has not been surprising, and I'm rather glad I'm in it, as it's my single "easy" class for the semester.

Machine Learning

Although I've also taken a machine learning course before, my previous work was very implementation biased. This course, on the other hand, is based entirely on statistics and linear algebra. I've only taken one course in both subjects, and linear algebra in my freshman year. The good thing is that I've been teaching linear algebra through the years (as it is part of the course I peer tutor), so the knowledge I retained from that is very helpful. To be honest, I'm not sure I will find the mathematical background to these methods helpful. I did read a paper where principal component analysis was used before the course covered it, so it was exciting to know a concrete example.

Computational Complexity

My background for this course is even stranger. Michigan has an undergraduate course on the theory of computation, which I have obviously never taken. Northwestern used to have a similar course, but the only place I've found it referenced was in the course catalog. So most of what I know about Turing Machines come from recreational reading. And it turns out that it was enough: books on Turing and Godel, together with what I picked up in my programming languages and compiler courses, gave me enough background to take the course. I like the course a lot; the professor has a nice way of putting everything in narrative and historical perspective. If I wasn't so interested in AI, theory would definitely be an area I would look into. A system of logic is just so... elegant.

Graduate Student Instructor (for Programming and Intro Data Structures)

Ah, teaching. I'm always surprised by how much teaching I've done already. I was involved with the GSW for all four years, one of them as a student. And I've done two summers of CTY. Still, I expected doing discussion sections and office hours to be different. But it wasn't; after the first day, when I think back to see what I could improve, I didn't see anything that I needed to adapt to the new format. Actually, this is now not entirely true - I think I need to do a better job of emphasizing why these concepts are important, in the world of computer science. It's much harder to keep a room of 30 college students than a room of 14 6th graders engaged, especially when you don't have much flexibility on what to teach.

Anyway, I'm definitely enjoying being a GSI. At least one student have told me that what I do is helpful, and several others have been asking me questions on computer science concepts outside of the course. Yeah. Now the hard part: keeping it up.