Shortly, I will be starting the fourth year of my computer science masters degree. Every student in the year will come up with a project to be carried out over 7-8 months or thereabouts that is worth a 3rd of the year. I've got a few ideas, and have also been working towards a specific goal in my own time for several years now, but unfortunately it still seems too ambitious for this project right now.
Everyone in my department has been coming up with different ideas too, but given that there are a lot of sciencey people on here, I thought I'd throw this one out to you. What computer science project would you take on, if you were in my position?
In India, the BTech (Bachelor Degree) in Engineering consist of four years and ME/MTech for two years. Some institutions offer integrated (BTech+MTech ) courses of five years. However never heard of a solo Master degree consisting of 5 years. May be it is a typo.
1. Decide the topic/area that interests you. Then ask yourself the followings--
2. Do you have the required knowledge/ guidance to do it ?
3. Do your time limit permits you to complete it within the specified period ?
4. Does it have any use for the common people ?
5. Is it a fundamental ( research oriented) or application based( Industrial) project ?
6. Is there any similar project existing ?
Remember not to choose a very common or very un-common topic. The project is the only area where you can explore something beyond your specified curriculum. So use this opportunity to enlighten yourself with new knowledge.
Hah, it's not a typo, but I was unclear! I've found that the course I'm on seems to be quite atypical in that it's an undergraduate masters course. I'm doing a 4 year degree that results in a single qualification; so I bypass the bachelors and shoot straight to masters. This way I was able to do a large group project in my third year as well as an individual project in my fourth and final year. I could produce a game again this year, but it would need to be very research and analysis driven.
I find genetic algorithms interesting too, I wish I knew more about them! Maybe I'll have a go at programming something to give myself a better understanding. They often seem quite unsuccessful, or if successful, are very computationally/time expensive for the result.
I really like boxcar2d that you linked, got it running now and I read about the algorithm too, which I found surprisingly simple.
I think your points are very useful - a list every student considering project ideas should know. I hadn't really considered your 4th point that much yet, but I do think it's relevant. Thanks!
Hot topics that occur to me would include:
a) Genetic algorithms (already mentioned)
b) User-interface design
c) Virtualisation. Time-sharing -> Virtual machines -> Cloud -> ?
d) Scaling data. How to represent data in a way which is massively scalable and accessible.
e) Hardware/software paradigm. Where are the boundaries between the two, how are they changing (from the traditional von-Neumann architecture, through transputers and cloud technology, with virtualisation, GPU, FPGA etc), and where might they be soon?
g) Data Mining
h) Machine Learning
i) Computer Vision
as big areas at the moment. I really agree with your HPC suggestions as being hot at the moment; I did a course in this area last year and realised that this is one of the fastest growing fields right now, especially as computing is becoming the ever-more crucial third pillar of science.
I'm really disillusioned by HCI. Other than rare moments of brilliance, it seems to have too little in the way of solid, useful principles and a lot of barmy ideas. I don't know about you but it's certainly not the area for me, as I don't know how to improve what I dislike about it!