Choosing and Beginning a Project
Choosing a project
Interest: Will you still care about this in 7 weeks?
Scope: Can you do it in 6 weeks?
Incremental: Can you do something cool in 2 weeks?
Uniqueness: What's the relation to existing stuff?
Multiple-Use: Can you use this project for more than this class?
Modular: Is it all "of a piece" with strong coherence and weak coupling?
Choose quickly!
Some classic project domains
Something you want to have: Often related to work or business. Make sure it is in-scope
Something you've always wanted to build. If you have a project passion, this is a good class for it
Something overlapping another class. Fine with me, but please clear it with the other instructor as well
A game. This makes a really good project
A webapp. But for what? Webapps are a great project for this course. Understand that you will be evaluated on the code, not on assets or data. Probably use a framework
A mobile app. This is hard. I wouldn't suggest it unless you have a ton of time and coding skill and/or have already worked in the mobile space. You should have access to the hardware you're targeting — the simulator is usually not good enough to get work done
A library. Some of the best projects are this. A good library with a solid API is worth every bit as much as an app
A module for an existing Open Source project. This has to be something new, and coherent. But if some project has a need for a modular piece, this can be a great way to contribute
A hardware/software project. These are great fun. But do not attempt without some existing clue about this stuff: it's really hard to get started with otherwise
Some classic project red flags
If any of these apply, you should think carefully
Project seems potentially very large. I am much happier with a small project that is finished and clean than with a half-finished garbage dump of code
Project is far outside your area of expertise. If you are hoping to use your project to learn a new programming language or something, think very carefully: we only have about six weeks for the project, and so the difficulty is quite high
Project is something super-generic. To be honest, I've grown quite allergic to things like "shopping list" or "exercise recorder"; they are all too often extensively plagiarized. I'm sure this doesn't apply to you, but please pick something you're passionate about
Project has legal or ethical concerns. Just don't. Marijuana-related stuff is expressly forbidden at PSU. Medical stuff is pretty much out of bounds. I'd prefer not hacker tools (but talk to me)
Project is incoherent. The project must be a sensible, modular piece of work. Just "doing stuff" is not an open source project