I am going to start my Software Engineering course this semester. So I need a good project plan for it. Will have 3-4 months to complete the project. I am planning to develope a Remote Desktop Client or an Email client like gmail or yahoo. If anybody has any ideas please let me know.
- A feedreader in the style of Google Reader, but with sane and theme-able html
You could ask them to write a program that plays spoons. It's not a semester project, but it'll teach them multithreading properly. Also, you could ask them to program a Scheme like functional interpreter. Of all the projects I did in my software engineering course, that's the one which best made me appreciate the importance of actually engineering my code rather than hacking it together. In general, a bunch of small projects which reuse code might also be useful. In my experience, that teaches people to actually think before they code better than throwing a single big project at them immediately.
Assuming you have no specific requirements, I would advise you to:
pick something that interest you that has a core functionality easy to implement
that can then be extended, allowing you to make sure you can deliver a finished product with x many features
- and for which there are existing open-source similar programs that you can download and study to help you.
AI game (using Game trees) for the game, Morabaraba. The fitness function, you have to determine it....Enjoy!, evil laugh....its simple to code, but hard to determine the fitness function.
The game "World of Zuul", for me it was very fun enlighting.
Edit 1: It's a text-based game based on Colossal Cave Adventure where the user types commands and the game sends to several places, is like a maze where you can pick items, make spells, etc.
A simple database engine, with extended features:
- create a client to comunicate with the engine (sockets, daemons, etc).
- a pseudo language parser/interpreter (like sql) to retrieve and update data.
- deal with files, indexes, sort algorithms, etc.
First off, good luck with the project.
Assuming that you have complete control over what you can do, including language, a few things to consider is other technologies that you will use. In an e-mail client, how are you planning on storing the e-mails? in a database? It is important not to underestimate how long it will take to learn and incorporate a new technology (I ran into this in one of my own Software Engineering class with RMI).
What is the purpose of the class, ie. are you trying to learn about the software development process as a whole or focusing in on a particular aspect of it?
I don't want to discourage you from constructing a e-mail client, but you might want to try and focus down your project idea, especially if the class is only 3 to 4 weeks long, since most of that time will be devoted to other aspects besides construction (such as design and testing).