What was Your Senior Project?
Caydel asks: "I am a third year CS major. This year I have a two-semester senior project course in which I can spend two semesters on a project of my choosing. I want to write something very cool, which at the same time provides quite a challenge to me, and serves a useful purpose; however, I am having trouble coming up with good ideas. For those of you out there who have done a similar course, what did you do? What would you have done differently? Which languages did you use? How many skills, that came from outside of your CS courses, did you use?"
Here's an idea... scour sourceforge for a project where the idea is great and the implementation is usable but the code and efficiency is really bad.. then rewrite it from the ground up with elegant code and at the end of it all... submit it for the rest of us to use.
FYI it doesn't have to be a web app either... lots of standalone applications out there too but of course if it can publish reports, logs and status to a web monitor app even better.
A fool throws a stone into a well and a thousand sages can not remove it.
Amusing anecdote: I was an undergrad at the University of Missouri, Rolla and bored in my Senior AI course. Well, a little bored. We seemed to be spending an inordinate amount of time studying Expert Systems, a path that I thought would yield little fruit in achieving true machine intelligence.
After one of the Expert System lectures I asked Professor Arlan DeKock whether Expert Systems didn't seem a little bit too much like more sophisticated if-then-else branching systems, perhaps with a bit of if-then-else-maybe thrown in. He considered that for a little while and asked what I'd rather be working on. I said Natural Language Processing. Perhaps something like Zork.
He said, "Well, isn't that just a slightly more sophisticated version of a compiler?" He had me a little bit, but I was willing to give it a shot. He told me I'd never finish it by the end of the semester. That sounded like a challenge, so I took him up on it.
I did a ton of research on NL parsing and imperative command processing and eventually learned a ton about linguistics, Zork, object-oriented programming and AST parsing in LISP. A fantastic adventure. (Thank you Messrs. Winston and Horn)
As to when I finished, well, believe it or not I actually had a minimal space adventure coded and tested and ready to demo for Dr. DeKock 3 minutes before it was time. Of course, my other studies took a *slight* hit. 8-)
The really crazy thing was that the good Doctor was getting into and playing the adventure. One of the puzzles in the adventure prevented you from leaving a room until you gave a can of oil to a robot. He would block your way to the exit otherwise. Rather than solving the puzzle the inteded way, the professor picked up the robot and put him in his backpack. I didn't take physics into account and my adventure let him do that. He then exited the room and the robot could do nothing. The game / adventure actually let him do that and handled it properly.
I was a little dismayed that the *user* won by doing something I hadn't expected, but I was thrilled that my system was logically processing a world that in a moderately sophisticated way.
I got an A.
Then I got some sleep.