Slashdot Mirror


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?"

15 of 82 comments (clear)

  1. Oooh. by Seumas · · Score: 5, Funny

    You should develop an application that will take into account numerous global and business factors to show CEOs - in real time - what their total cost savings is based on their outsourced and offshored efforts over what they would have spent if they had not done so. Then it should give projected savings for "what-if" conditions, such as laying off more employees, moving more work overseas, ignoring more labor laws. You get the picture. It could even be a sweet little Dashboard Widget to make that dashboard crap useful for once!

    You could even make a version for employees that shows them what the going rate of their work is elsewhere in the world so that they can begin to plan accordingly and start drinking that free(ish) water rather than that $4/gallon milk. Or start walking 50 miles to work instead of spending a week's salary on a day's worth of gas. Or start wearing yard trash bags instead of clothes. You know - to make the average American worker more competitive with the global labor force.

    Or even better, you could build on existing TTS (text to speech) libraries by creating a utility that will modify input so that it sounds more twangish or nasal or laid back. That way call centers overseas could connect these to their PBX systems so their engineers sound more "American" to american end-users looking for tech support.

    But perhaps you want to make something that will actually help *you* in the long run. In that case, perhaps you could develop some sort of program that will let you travel back in time to pick another major for a career that isn't so washed-out. I'm not sure what sort of schooling is available for janitorial work, but I'm sure there are vocational training centers you could look into!

    1. Re:Oooh. by Anonymous Coward · · Score: 4, Funny

      I had an 8th grade GPA of 0.13 (yes, that's possible).

      I just had my 5 year anniversary with my current employer. :)


      Carl's Jr.?

    2. Re:Oooh. by tigersha · · Score: 4, Funny

      Sorry to break this to you son, but the guy in the white coat who gives you pills every morning is NOT really your employer.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  2. Finally by daeley · · Score: 4, Funny

    Hey, everybody, please help this 'person' out. My senior project was to create a brain in a jar who would be unaware of its artificiality long enough for it to 'complete' a virtual senior CS project. If you help it out, we both win!

    --
    I watched C-beams glitter in the dark near the Tannhauser gate.
  3. Open source... recreate one that is sloppy by foniksonik · · Score: 5, Interesting

    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.
  4. Summer of Code Ideas by Zecritic · · Score: 5, Insightful

    You could try one of the ideas from Summer of Code that didn't make the cut. The summer-discuss group was full of ideas. http://groups.google.com/group/summer-discuss?hl=e n

    --
    "Scientists have proof without certainty; Creationists have certainty without proof" -Ashley Montagu
  5. Retink your requirements by ivan256 · · Score: 4, Interesting

    'Cool' and 'Open Source' are nice, but don't make them requirements. The ideal senior project is something you can both get an 'A' on and looks good on your resume. Make you senior project something that you would potentially do at a job you hope to have in the future. If possible, get corporate sponsorship for your project. This is easier than it sounds. Some professor in your school's CS department is probably already in good with some local tech company and has a project waiting to be done right now.

    If you project can end up being open source, that's a nice bonus, but it can be a mixed blessing. Believe me, 5 years from now when you've learned how little you knew when you graduated it will be awfully uncomfortable to explain during a job interview why you implemented that code the way you did.

    Above all though, don't work on something with no obvious practical applications unless your goal is to get into grad school. A practical project will make you desireable to hiring companies in the same way past job experience would.

  6. create a relational database by Anonymous Coward · · Score: 4, Interesting

    I mean a real one, not the SQL crap we have today. One that implements Codd's original ideas as well as recent updates (e.g. The Third Manifesto). Updateable views, user-defined types, arbitrary constraints, type inheritance, declarative syntax, the works.

    Please. Somebody do this. Anybody. I have searched high and low and have found exactly 3 products. Two half-finished open source implementations, and Dataphor which is commercial and thus not worth using.

    I'm seriously thinking of going back to school just so I can study databases and learn how to write one. I have written a couple attempts in Lisp and Ruby and I just don't have the brains to finish them.

  7. Good advice by meta-monkey · · Score: 5, Informative

    Seriously, forget all this "I want to do something really cool and useful!" stuff. That's a good way to wind up with an overly complex that takes too much time and risks not getting done.

    For my senior project as an electrical engineer, I built what was just about an Apple IIe from the ground up. I designed the entire MC6502 microprocessor in VHDL, broke it up into component pieces and programmed them into different CPLDs, wired it all together with a RAM, a ROM, and a few serial controllers to take inputs from a keyboard and send outputs to a monitor, and wrote some simple demonstration software for it. I got an A

    Another kid in my class hooked up an infraed sensor to a relay, and configured it so when you stand under a ceiling fan, it turns on, and when you walk away it turns off. He got an A, too.

    The other kid was smart. I was dumb.

    Remember, after you get your first job, no boss will ever care again, ever, what you did in college.

    --
    We don't have a state-run media we have a media-run state.
    1. Re:Good advice by pla · · Score: 4, Insightful

      When your boss asks about the relative merits of switching from a microcontroller-based product to one that uses CPLD's

      ...You'll wake up horribly dissapointed that such conversations don't happen in the real world.

      Even if your immediate boss understands the question (mine at the moment would, and you cannot imagine how happy that makes me), he in turn has any important decisions handed down based on buzzword-worthiness.

      My favorite, ever (fortunately a friend, not myself, had this disaster as a task) - The customer wanted something vaguely like a POS terminal. They specified the hardware platform, and that we needed to code everything in C++. I don't know if the customer actually had a clue what "C++" meant beyond a buzzword at the time, but suffice it to say, no C++ compiler existed for the specified target platform.


      Kids - Your senior project doesn't matter. Your school's reputation (assuming something better than "Bill's house of Diplomas") doesn't matter. The opinions of your professors don't matter. No one cares how much "community service"/"volunteer work"/ "social BS" you performed. Do the least work possible to pass - I wouldn't even say worry about getting an "A" unless you already have highest-honors status and a B would lower that. And as the GP pointed out, once you get your first job, no one will ever care about your college work as more than idle conversation over beers while commiserating about the Dilbertian nature of "real" work... And even your first job doesn't care what you did in college - If you worked at a decent intership, your experience there for a total of 12 months out of the previous four years, will count for FAR more than the 36 months of academic work you did in the same time.

      You want to know what does matter? Get the framed piece of paper to wave (doesn't matter what it actually says), and don't let yourself get into too much debt - Many employers now run credit checks on job applicants, meaning the schmuck who went $100k+ into debt at a private school and "wasted" his summers sucking up to professors will get turned down in favor of the guy who went to a state university and managed to pay tuition with the wages from a summer internship.

      And I say this as someone who did keep a high GPA, in two different degrees, worked with professors on their pet research, and ended up with glowing, obviously-personal (rather than cookie-cutter) recommendations from two separate department chairs. Fortunately I also went to a state university and kept out of debt. And what mattered, for my first post-college job? The summer internship. No one, in any of the interviews I've endured (and yes, "endured" makes the right word to describe the process of inverviewing), cared in the least about the (IMO) very cool research I did in college. They cared that I knew X, Y, and Z (where X, Y, and Z frequently had no actual relation to the job description), that I could solve riddles quickly, that I passed a background check, and how I dealt with my worst failure at work (a tough question, considering that I never really failed by my own faults, and saying "management made the project physically impossible" sounds like a cop-out).


      As one last point, to give all you poor bastards about to graduate a small sliver of hope that you haven't just wasted four years of your life - My current job violates most of the above complaints, but I consider it pretty much a one-in-a-million position. I interviewed directly with a real, live, competent engineer, who cared more about my skills than about mind games and buzzwords. Management has a decent knowledge of technology, but also the wisdom not to pretend they know enough to micromanage the IT department. I can speak with the head honcho casually, on a first-name basis, and don't find my desk contents waiting at security in a cardboard box for me when I come in the next morning. So such jobs exist, but good luck finding them.

  8. suggestions, you say? by blackcoot · · Score: 4, Interesting

    octave needs a hell of a lot of work. some suggestions:

    1) a non-sucky plotting interface (there are some packages which claim to do just this, but i can't get bloody VTK to compile, so they're basically useless)

    2) an optimization engine for octave

    3) .oct functions which can read a multitude of image formats, write a multitude of image formats, display images, implement the equivalent of ginput, and provide the basic functionality of the image processing toolkit (if you pick this and do a good job, i will buy you dinner). what meagre image processing functions octave has all fork off a copy of imagemagick, which is *painfully* slow

    4) .oct functions to read and create movies (possibly as part of #3)

    all of these projects demonstrate several key skills: good c++, good matlab, and the fundamentals of engineering with existing code.

    other suggestions:

    5) something like mtl (matrix template library, c++ code which uses expression templates and what not to try to help the compiler produce optimized code) that doesn't suck (their lu factorization produced plain /wrong/ results last time i used it). major bonus points for implementing matrix factorizations, and eigendecompositions

    6) fix gnu's binutils so that they can use libraries generated by VC++

    7) an optimized c++ toolkit for developing digital video processing and computer vision software under linux. i envision this as a kind of directshow lite --- you'd supply standard interfaces and a set of plugins providing basic transforms (color space conversions, for example), thread pools, and a nice gui to edit processing graphs and run them

    incidentally, most of these things have been on my todo list for a long time. i think i'm going to crack at least the image reading and display portion of #4 over labor day weekend.

  9. Senior AI Project by OmgTEHMATRICKS · · Score: 5, Interesting

    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.

  10. Dear Slashdot, by sootman · · Score: 4, Funny

    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. What was your project, and please include a link to the source code. TIA! :-)

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  11. I made a chicken enchiladas... by goodenoughnickname · · Score: 5, Funny

    ...with rice and beans on the side.

    Oops, I'm sorry -- that was my señor project.

  12. Some advice... by CarlinWithers · · Score: 4, Interesting
    I had to do a final project just last semester, and there are a few tips that I can share with you.

    My project was a computer engineering project. We controlled a bunch of simple devices over the web through a server that we had set up.

    One thing I learned was to have backup plans and modularity. We listed somewhere between 6-8 devices that we thought might work. We ended up getting 3 of them to work.

    What was nice about that was that we could still deliver those 3 devices (which showed up the project that presented right after us which picked a single device and got it to work in a similar fashion).

    But we also could scale the amount of work. If things had gone better, and we'd had a little more time, we could have added another device or two. As it is, it took us the semester to get what we did working.

    I'd reccomend trying to pick a similar project where you can get a basic set of features working relatively easily, but also have a bunch of other interesting features that you can bring out if you have the time for them. That way you're guaranteed a project that does something right, and the ability to challenge yourself if you need to.

    Also, always make sure to have more than one method for doing each part of the project. Inevitably you figure out that something isn't going to work out the way that you thought it would. We had to start from scratch on portions of the project a couple of times. It was immensely helpful to have a solid backup plan to start working on right away.

    Hope that helps.