course
Programming Languages: Python

May 2017

Yuan is an awful, awful teacher. He is super boring in class and people literally FELL ASLEEP and started snoring - while he was talking! Unlike what I've heard about other Python professors, Yuan doesn't really care about his students learning. He just comes to class and drones for two hours, and he does not take care to keep students engaged whatsoever. It's like he's just trying to fulfill a requirement. He may know the material, but the fact that he can't communicate any of it is testament to the fact that he is just a PhD student who should not be licensed to teach. The course itself is NOT a 1-credit course. Yuan gave way too much work and is not empathetic to students' needs. He doesn't seem to realize that people take more than his class. He is organized, though - my recommendation is: don't go to class. I stopped going after the first few lectures; spare yourself the pain of sitting through his lecture. His notes comprehensive enough.

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.

Dec 2009

The instructor was very prepared with powerpoints, however the lectures were a bit dry and I didn't necessarily learn much from them. The assignments were good conceptually, however, the instructions were generally very confusing and in my opinion led to unfair reductions in grades. Though I tried to get clarification both through emails and office hours, the emails did not necessarily help as following those responses led to point deductions and despite scheduling appointments at office hours the teacher was late. It would have been helpful to get the test cases for the programs so that we could determine whether or not our programs correctly solved the problems. The project guidelines were very ambiguous, and despite trying to get a feel for the "creativity" and "originality" for my project before I dove into it I was not able to learn much. In my opinion if we complete or at least reasonably attempt our proposal (with guidance from the instructor of course) then we should receive very high marks on the project. The project should have been about finding something that was original, interesting, and useful to you. However, the instructor failed to respond to emails about problems that I was having with the project and seemed to give the impression that he would dock points for our projects not being "original", though this is very subjective. In my opinion the reason I took this class was to learn python - being required to turn in the assignments forced me to do that, though I don't necessarily attribute anything that I learned about python to being in class. Rather the direction that the assignments pushed you forced you to learn python yourself through both trial and error and online tutorials. Given that the workload in the class was definitely more than it should have been for a one credit course, I probably would have been better simply teaching myself python over break.