I’ve just finished the last of my exams for the spring semester and want to record my thoughts while they’re still fresh. My course load was very light, especially for a 12 credit semester. I didn’t end up attending many lectures because I didn’t find them too informative.
Directed Studies (Courses Project)
In the fall I heard that Greg Baker was heading a project course where a team of 8 or 9 students would spend the spring semester making improvements to http://courses.cs.sfu.ca. It is the site that is used by most computing science courses to manage grades and assignments. Anytime I see Greg teaching a course that I haven’t taken, I sign up. He’s simply one of the best lecturers at SFU, and I thought this would be a great opportunity to learn some more from him. I applied and managed to get into the course. The website is implemented in Django, the python framework. I had done some development using Django before, but it took me a few weeks to get back into it. Greg organized the course to feel more like an agile development environment than a class, and for the most part it did. We had scrum meetings twice a week where everyone would update the team on what they were working on, what they planned to do as well as any blockers. What felt different from an actual agile development job was the development style. We had tons of freedom and leeway with our coding. Normally a company would have fairly well defined coding standards, and frequent code reviews. Occasionally Greg would let us know if he found something wrong with our code, but most of the time it felt as if we were unmonitored. This course helped me keep my programming skills fresh as it was the only course I coded for this entire semester. I would highly recommend trying out a directed studies course.
I really enjoyed this course, despite not going to any lectures. I found the professor to be quite dry, reciting his powerpoint slides almost word for word. Instead of attending classes I decided to spend my time reading the book (Computer Networking: A Top Down Approach) which was excellent. I believe any computer scientist or programmer should know some basics about how the internet works, and this course made me learn everything I could want to know. It covers everything from what the internet is, to how cell phone calls get routed and passed off between towers. The class isn’t a requirement for a CS major, but I almost think it should be.
I came into this course expecting to hate it, and was pleasantly surprised. It was entirely assignment based with each assignment being very relevant to computing science. This made me do research and gain knowledge on topics I had no prior experience with. The professor was Art Liestman, and he managed to make the lectures I attended quite interesting. He provided certain writing techniques that could be applied to improve the quality of your assignments, but students were never tested on these techniques. It was for this reason that I was able to get away with skipping so many lectures. Five percent of the grade is based on class participation, but in the end it didn’t matter too much. This course is required for CS Majors, and I would definitely recommend taking it with Art if possible.
Information System Design
I took this course because it fit my schedule and it gave me credits. I wasn’t too excited when I read the course description and my expectations were confirmed once I attended the first lecture. I won’t name the professor, but he didn’t seem to put much effort in the course. It was a three hour lecture, the first one I missed because I got into the class late, the second one was cancelled because the instructor was sick. Mid semester, he cancelled another class because he was sick. That’s almost a month worth of cancelled classes. I would have cared more if it was a good lecture, but it wasn’t. I only attended a few classes, but my experience was that the professor spent half the time talking about his real job where he designs software. On top of that, his tests were overly easy. The level of study I put in would have me fail tests in any other course, but I averaged about %90 on all the tests. It’s because his tests are miniature subsets of the assignments, so if you do the assignments, you can do the tests no problem. To top it off, the final exam was open book! I had barely studied at all because the course material was so boring, and I showed up with my laptop and was told I could use it! I normally wouldn’t complain about a course being easy, but I think it was easy because the professor wasn’t putting any effort into the course material. When I pay as much as I do for school, I expect to get something useful out of every course, and I didn’t gain anything from 370.