Project Guidelines
In the last portion of the class, you will gather in teams of 2 or 3 students to create a programming project of your own invention.
The basic idea is simply this:
Build something cool with what you have learned.
Any project goes: a utility, a game, a simulation, a scientific analysis, an art project….
Think of the big assignments from the course — weather display, painter, Breakout, audio synth — in terms of size and scope — except building your project from scratch instead of using starter code. You might also look at smaller exercises and activities for inspiration to create something larger: cell simulation, emoji vacation, pixel arrays, anything you though was cool. Choose a topic that inspires you, and be creative!
Whatever kind of project you choose, please follow these guidelines:
-
Focus on something you can build. You may come up with grand ideas for a complex app. Wheelbarrow-sharing gig economy! Social network for bagpipers! Machine learning to write barbershop quartets! Real-time waffle simulation! Yes, do be creative with your ideas — then be creative with how you simplify them. Make sure that you are setting yourself up to be in a good place at the end of the semester. Bring the grand visions to Comp 225 or The Dev Garden.
-
For this project, please stick with Java, Kilt Graphics, VS Code, and GitHub. Stick with the tools we have been using. There are a lot of exciting things you can do with a computer, and lots of other languages, platforms, and tools you can use. You can and should explore other software worlds on your own! Build iPhone and Android apps! Build web sites! However, if you try to learn a whole new technology in the last weeks of class, that learning will take all the time you have. Even if you already know some other technology, keep in mind your teammates may not. Stick with familiar tools for this particular project, so that you can jump straight to designing and building. Bring your wish to learn other tools and platforms to The Dev Garden.
-
Come up with your idea, then narrow its scope. Don’t come up with a grand vision and start trying to build the foundation for all of it at once. Come up with a sequence of milestones such that you will have something good and usable at each milestone, and thus have something to hand in even if you don’t make it through all your milestones.
-
Leave time for testing and refining. Working software ≠ finished project. Leave yourself time to improve, test, refactor, fix bugs, and generally refine your work. Approximately 1/3 of the work should happen after the project already has all its features implemented.
Next: Getting started