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.

Spiral Staircases

The new Computer Science and Engineering building has a nice spiral staircase that rises prominently from the main hall. It connects all four floors of the building, and is the most convenient way to get directly up; there is at least one other staircase (probably more; I haven't found any emergency staircases), but that has significant horizontal translation.

I thought a spiral staircase was pretty cool when I first saw it, but as I'm using it more often, I realized how stupid an idea it really is.

The problem with a spiral staircase is that the steps are non-uniform. Since people's gait depends on their height, and their height is a random variable, people have preferences as to how wide a step should be. With a circular staircase, the steps are obviously longer towards the outside and shorter towards the inside. This means people can pick where they walk, right? Except, of course, when there's two way traffic, so people are forced to one side of the staircase. With normal stairs, moving to one side doesn't change your gait, and so you can continue walking. With spiral staircases though, you have to constantly adjust how far you're stretching your legs just to keep going.

Besides that, Michigan is going well. By virtue of it being a public university, the classes are quite a bit bigger than those at Northwestern, even for relatively obscure classes like machine learning. I think that's the only reason why professors seem a little more distant here than at NU. On the other hand, I have two discussion sections to lead next week, as well as however many office hours, and this is also with the largest number of students I've dealt with yet. It'll be fun.

Writing About Writing

I have been writing recreationally for a while - I've been writing in my journal for close to 7.5 years, and this blog has been going for 2 years as well. Before that, I used to have a LiveJournal account, which was mostly used to keep my high school friends up to date with what I was doing. This blog stands out though, because it can be said that I'm doing a lot for a very small audience.

I recently read Paul Graham's essay on essays though, and I found it interesting that the word "essay" comes from the French verb/noun essayer/essai, meaning to try/an attempt. A lot of my blog posts are planned before hand. I have a running list of topics I want to write about, and while I find the time and mood to write them, I collect ideas and quotes in bullet-point form. Often times I don't actually know what I want to write, just want I want to write about. For example, I knew that I would do a post on The Fountainhead, but I didn't know what I want to say about it. Even for this short post, I'm not sure what my final point is, if I have one. Writing, then, is a way for me to figure out my own ideas. It's not just a tool for me to express my ideas to other people, but also for my ideas to become clearer in my head.

My friend Genia also wrote something about writing a little while back.

I thought it would be interesting to show the notes I have collected before writing this too. They're below:

Paul Graham on essays
    the french essayer, to try
    I have a goal, but I don't know how it turns out
        I'm not sure what's the point I want to make in this essay
    more to write thoughts down, to externalize and make concrete my thinking
    to clarify ideas
    show notes for this essay