Stack OverflowIf you could redo your final academic project, what would you do this time and why?
[+6] [10] Joe Behymer
[2009-01-20 00:49:16]
[ open-source academia ]

Greetings everyone.

I'm a senior at a Computer Science program. Our group is having trouble deciding what do to for our final project, as we all have varying backgrounds and interests. The requirements are very open; it could be anything from a research intensive machine learning project to a Silverlight game. The project must be released into open source when we turn it in.

Instead of trying to come up with an idea that has never been done, I thought I would ask the community. I know there are a lot of developers out there who would love to create something but just don't have the time. Well, here's your chance!

If you could redo your final academic project, what would you do this time and why?

If we decide to use any ideas we get from stackoverflow, the one who suggested the idea will get full commit access to the repository - any your contributions will be marked as so. We're not going to take credit for your code - we're quite certain that we'll get an A on the project either way as the team I'm working with is very talented for not having graduated.

Thank you all in advance. I'm very impressed with the stackoverflow community, and I have gained much insight and enjoyment from it.

Let me explain in a little more detail. What I'm really offering is free resources. Is there a piece of software that you want to build but know you'll never get to? If you could enlist the help of the community, would you? The whole world imagines software that is better than what is available today, I know I sure do. There are a lot of projects that I would love to take time to build. Lucky for me, I'm at a point in my life where I do have the time to take. The point is, I don't want to waste it.

I want to give you a three person development team dedicated to the success of your project.

Like I said an hour ago, our grade depends on this project. All three of us are in two classes that require a final project. One is a Software Engineering course that requires the design and documentation of a full project with no code. The other is a Capstone class where we get to build any project we like.

When we first start, only the person that had the idea will have commit access to the repository. We will start letting more people in as soon as possible. This partially depends on what my professors say, but also depends on the opinion of the person whose idea is chosen.

Finally, I'd like to comment a bit on the technologies we're familiar with. Like I said, there are three of us. I've spent 3 years with .NET, half of that professionally, working on C# smart client and web applications. I've not yet had a chance to try MVC with anything non-trivial, but welcome the chance. (hint hint) The second one of us (who remains nameless until we've discussed this fully) has a background in Java in the medical field, the third has a background in c++ and embedded devices.

Thanks a lot!

Odd proposal to be honest, but it doesn't seem like a terribly bad idea. - Robert Gould
[+4] [2009-01-20 01:35:35] tvanfosson [ACCEPTED]

A couple of different possibilities:

  1. Find a local charity that needs a web site or application but can't afford to hire someone to do it for them. Put together a template-based application that allows the charity and similar charities to use your template and get their application up and running with a minimum of cost and developer effort.

  2. Write an extensible application, a la iGoogle, that allows students at your college to collaborate and share information on services that are available to them on-line at your school. This application would use the wisdom of crowds to discover the most important services that students use and present these (like Digg or Delicious) more prominently in the interface and in searches. You'd need to provide hooks to "anchor store" applications like Facebook/MySpace and your student information system (if possible) as a draw to getting people to use it.

The second idea was actually suggested previously my one of my colleagues. I dismissed the idea when I imagined getting approval from the school, but maybe I'll reconsider it. Thank you. - Joe Behymer
Went ahead and marked you as answer. We're actually going with something else that I'll share more about in a later question. Thanks for taking the time to suggest these ideas. - Joe Behymer
As for 1., my university lecturers said "DO NOT MAKE A WEBSITE, NO MATTER HOW COMPLEX!". It was highly discouraged in Computer Science. - Kezzer
I think #1 is a very useful and noble thing to do, but not for a final year project - no matter how practical it is for the outside world - annakata
I was suggesting a web site templating engine that would allow people to easily generate their own web sites with minimal outside help. This is a little bit different that merely creating a web site. - tvanfosson
[+2] [2009-01-20 02:16:30] Saqib

Make a tool to help the disabled:

Many of us computer scientists are motivated by using technology to make a difference in peoples' lives. Making something that disabled people need (not what you think they need) would be immensely rewarding, and there's so much to do in this area.

This is also a very technically challenging area, which could use whichever skills you have and whatever areas of technology interest you.

I haven't given specific suggestions as this really depends on your circumstances.

Our circumstances are open. I like the idea of creating a project for the disabled. One thing in particular that I've thought of is a voice-controlled programmers console. I love writing code so much, I don't know what I would do if I couldn't type anymore. - Joe Behymer
[+2] [2009-01-20 02:54:33] Isaac Waller

Write a Android application for your college. That will let the students check their email, course times + notifications, etc.

That's probably something that I would do, then realize that everyone has an iPhone :( - Joe Philllips
(1) Maybe not. Maybe everyone that has disposable income (to spend on iPhone apps) has an iPhone. Maybe a lot of students would be willing to use an open source mobile OS if there was an application that applied to them directly? - Joe Behymer
maybe, maybe not. - Jobo
I guess that depends on the marketing / phones that Google deems worthy. - Joe Behymer
[+2] [2009-01-20 03:49:42] Mark Harrison

Some kind of framework that allows easy live data interchange between desktop apps, android apps, iphone apps, etc.

IMAP is a great example of this. If your desktop mail program is filtering mail into folders, any other apps that are looking at your IMAP account pick up on this. Maybe basing a pseudo-filesystem on top of IMAP folders?

[+1] [2009-01-20 02:47:16] FryGuy

At my university, the senior projects needed to have a 'sponsor' to give requirements so it would simulate being a consultant working to meet deadlines. However, given more freedom, I would likely do one of two projects:

  • Implement the brain-structure as described in the book On Intelligence [1], and tech the brain structure to be able to do something in a simulated environment, either walk in a physics world, or learn to predict music. Things you could do is create visualizations for the workings of the brain, the visualizations of the physical world, and the physics model required for it. This might be more of a masters level project though.
  • Create a mech for The Mech Warfare challenge [2]. This would leverage the embedded side (he could create the firmware for the robot). While this requires a bit of mechanical work (and $$$ for robot parts), you could team with a mechanical engineering senior project and solicit help from them, or buy a kit and it would be like legos. I'm sure someone on the team would like that side :). Things to build would be the Heads-up display element, 3D modeling of the robot based on forward kinematics, and the control loop.

[+1] [2009-01-20 01:46:44] Charlie Martin

Finish it, instead of letting poverty drive me away.

Believe me, that's the idea. I don't want to do something that will get dusty. That's why I'm asking the community what they'd like to work on. Something that someone can use and gain value would be something that I'd want to work on, and maybe something that the community would like to help with - Joe Behymer
[+1] [2009-01-20 01:55:12] Uri

Figure out if there's an immediate use to your project and don't think too far ahead. I made this mistake twice.

With my master's thesis, I focused on a system that aggregated and collected data about some structural visualization, instead of focusing on a single data point (a single class) and giving a visualization of that. By the time I followed that, I had to do it manually though it was successful, and never had the time to go back and build an automated tool.

With my PhD, I had a vision of a comprehensive memory aid. I spent a year writing something that recorded all activities so it can answer questions a long time in the future, and in the end ended up focusing on something with much more immediate implications and benefit and since I'm graduating won't have the time to perfect.

I've mentored a few student projects, so if you want some ideas, feel free to contact me directly; details in my profile.

[0] [2009-01-20 02:20:35] Jobo

Write a program to make everyone rich and happy and that will get rid of crime and poverty and that will remove all evil from society.

Then please give me the source code.

Damn i thought that was a good answer. - Jobo
[0] [2009-01-20 02:23:08] melaos

Depending on the software that is available in your university, maybe you would like to create a simple app that can help scratch the itch of other students, you know some of the things that make you go #$%^#@, if only i can do X or Y with this. Or perhaps some of your non too technical lecturer.

I would try to look for a small-medium size app which can be used immediately by people around me in that environment, i.e. improve on my school's LMS system to make it less pain in the @$$ for us to use back then.

Instead of trying to make something very big and not very applicable. I did a B2B web service for mine during that time as i thought B2B was going to big and the lecturer suggested that it would be a good idea. But albeit the good grades and the learning, :) it's still a tad bit of waste for it to go no where.

Just my two cents.

just curious? which part was bad? the curse word? :) or for my dumb b2b project? - melaos
[0] [2009-01-20 09:18:44] Jonathan

What i would have liked to do...

Presentation of data in 3D form(s) using OpenGL

What i'm actually doing

Javascript Client-Side Storage Abstraction layer

What i'm doing in my spare time

Learning OpenGL, and starting a business for when i graduate

Basically, i'm doing the thing that gives me the least hassle, and allows me to get that sheet of paper, and cash-in on my investment at relatively low risk. I don't know about the states, but here our final year project, is treated like another unit among others, i personally have 5 including my project, all just as demanding, so choosing an all encompassing project would be crazy. If i decide to do a masters, then i'll pull out the stops!

FYI. 3rd Year Software Engineering Student in the UK.

Thanks for your input. Just curious, what storage are you abstracting? A database? - Joe Behymer
I'm covering all the different types of storage available in a browser, so cookies, html 5's localstorage, flash, java, google gears etc. It's plugin concept, so all you have to do is create a storage provider, with a predefined interface. However several OSS projects now offer this functionality :( - Jonathan