While I'm still working away at the last of my graduation requirements this quarter, the computer science portion of my RIT career was completed in the fall. In light of my prior post and graduation approaching in a few short months, I've been looking back at my college experience and recalling some of the best classes that I've taken. Here's a quick look at some of my favorite from my home department...
Computer Science 3
2002 - Spring Quarter
Having had almost no computer programming experience coming into RIT, CS 1 and 2 were grueling, despite being interesting and extremely
educational. CS 3 is where you start to have fun. This class was great because you finally get to make programs that look like the things you use on an everyday basis - using powerful data structures, GUIs (graphical user interfaces), and network programming. The final project was creating an instant messaging client. It remains one of my all time favorite assignments to this day.
2003 - Fall Quarter
Programming computers and knowing how to use them is all good, but if you can't communicate your work or knowledge to others, it's pretty useless. Profcom, as we called it, teaches computer science majors how to communicate within our own field. This includes everything from resumés to design documents. Furthermore, my professor was truly awesome and brought a lot of helpful tips to the table that I now use on an everyday basis.
Programming Language Concepts
2003 - Spring Quarter
One of the most frequent questions I get from prospective CS students is, "what languages do you learn?" While this is a valid question, it's not as important as it sounds. PLC is the class that teaches you that the strength of your CS education is not how many languages you know, but rather that the theory and ideas behind languages is what is truly important. How does it do this? You learn 3 different languages in 8 weeks - without missing a beat. All the knowledge that you acquired in the intro sequence of courses (read: freshman/early sophomore year) gives you the tools to know what's going on under the hood so that when something new comes along, it's easy to pick up. Nevertheless, having exposure to additional languages is a good way to bolster your resumé and this class added LisP, Perl, and Python to my répetoire. Furthermore, Strout was a cool guy and even showed us Red vs Blue
while handing out course materials.
2005 - Winter Quarter
, as a phrase, has an almost mystical quality. The study of how to get computers to do things that humans traditionally do better. It sounds and actually is cool, but when it boils down to it, it's really just a lot of statistical analysis done by a computer to make good guesses. I remember "wowing" a few of my friends with my final project - which could accurately identify the author of an electronic book. The program would train itself on several works by two different identified authors and compute information about their writing style. Then, when you pumped in a work with an unknown author, it would figure out who wrote it.
Database Concepts (DBC) & Database System Implementation (DBSI)
2004 - Fall Quarter & 2005 - Spring Quarter
Call me a geek, but I love organizing data. That's what I did on most of my co-ops and that's what I did for my CS concentration (which includes these courses). The first course in the sequence teaches you how to use a database, Structure Query Language (SQL), and good database practices. DBSI takes you under the hood of a database to see how it really works. The projects were great experiences as well - with DBC having us use a Oracle to create a video game database and front-end for shoppers and DBSI requiring a contribution of features to an already existing open source
database management system.
2006 - Fall Quarter
Programming Skills is a seminar-style course in which the topic changes every time that it is offered. When I took this, the topic was C# and Microsoft .NET 3.0. Anyone who has taken Dr. Schreiner for a class will testify that he is the toughest professor in the CS department and that the chances that you come out with more than a 'C' is unlikely. Despite this, you learn so much about the topic at hand, that you come out an immensely more knowledgeable person. After 10 weeks in this course, I genuinely feel that I came out a better programmer and am more knowledgeable about a great many things.