I have something to tell you that had you told me I would be saying this a year ago, I would have called you a liar! Over the past month, my eyes have been opened to the awesome world of computer science. Yes, you did read that right; I think computer science is in fact awesome. Let me explain.
As I’ve probably mentioned in previous posts, I am taking a computer vision course this term. In my undergrad I didn’t do very much programming at all, which explains my previous attitude towards the subject, and made signing up for this course a little intimidating. But even though I’m pretty sure I’m spending about twice as long as anyone else on the assignments, when they’re done I have a working product that, at least in this course, does something that is (1) cool, and (2) would be useful in so many applications.
Now for the assignment that inspired this post: We were given a few photos and told to write a program that would identify where the faces were. Tons of software does this now (ie. Picasa and its creepy ability to not only identify faces, but who’s face if they have enough photos on there!), and better than at least my version is able to, but it was still pretty interesting to get an idea of how these programs go about doing this sort of thing.
Here is the result of my program on one of the pictures we were given:
It didn’t get all of them, but it didn’t do too bad either, and it wasn’t even really that hard! Think about how many places you could use this! If you wanted to track something, you could put some kind of distinctive sticker on it (ie. on crash test dummies), and write a little program that would tell you where it is. It would even work way better than the face detection program, since the sticker would always be the same (whereas each person’s face is different).
I know doing something like this is nothing new, but now its not just a “yeah, you can do that with software” thing, but a “I have an idea of how its actually done” thing. Also, more importantly to me, know I would be able to make something like this happen if I had to …. with certain degree of accuracy….
Assignments like this are the completely unique thing about a computer science degree. You would leave school with so much hands-on experience. I can’t imagine getting the same kind of grasp of the material in any other field since you have to use what you’re learning and all for the cost of buying a computer. Its too bad you can’t do this in engineering since its such a good way to learn, but alas, to buy the equipment to try out a lot of what you’re learning would cost a whole lot more than a computer.