professor
Ang Cui

May 2011

Ang is a really laid back PhD student who wants you to learn Python for your own benefit. I'm not a CS major and the only other programming course I took was intro to programming in Java, over two years ago. I wanted to learn Python since it's a pretty hot language and would be useful in my own research and nice to put on a resume. That's pretty much Ang's philosophy, he assumes everyone is in the class because they want to use Python for something or another, not because they have to take the class. Ang is super cool, always available to help, and he gave a lot of people extensions. (In fact I think he gave the whole class a week long extension on the final project.) The lectures and slides, as he admits, are basically telling you the same thing that the tutorial on Python.org will tell you. So you don't really need to come to lecture, especially if you have a solid CS background. Not having such a background myself, it was hard for me to follow the lectures, especially the late ones, but luckily it doesn't really matter since you get to choose your final project, so you really only need to worry about understanding the things that you will need to complete your project (which should be the things relevant to what you plan to use Python for anyway). The class was six weeks, there were 3 homeworks: the first two were writing programs from scratch, the third was involved with the project (basically outlining, planning it, and writing the unit tests you plan to use). The homeworks were really challenging for me because of my lack of background, and the first two took basically a weekend each to complete, but the time was well invested as I did well on all the assignments. The final project was basically anything that would be "useful in your research" (of decent enough size and complexity to be called a "final project"). One of the most challenging parts of the class, for just about everyone, was figuring out what to do for your final project. On the one hand it can't be trivial. On the other hand, since you're essentially assigning yourself a project, you don't want to fuck yourself over with too much work. If you can find the right balance, you'll probably do well and it won't be too painful. You also have to give a short presentation of your project either to the class, or to Ang or the TA one-on-one. Again I spent a lot of time on the project and did really well. Overall I'm glad I took the course as what I got out of it was proportional to what I put in, which is how it should be.

Apr 2011

It was impossible to shake the impression that Ang, the grad student who taught this course, did not want to be there. He used someone else's slides, which he largely ran through. The projects were vague and uninspiring. Emails often went unanswered, and when they were, they often lacked depth. Rather than teach the nitty-gritty of the language, he often chose to focus instead on 'cool things that other people did with it', leaving you largely on your own to learn the language. Disappointing for a course that is meant to teach you the basics of a language.