Iteration 0: Group Formation
Due on September 17th at 11:59 PM.
The master
branches of your group’s repository and wiki will be pulled at that time and its contents will be graded. Be sure that all materials – documentation, code, build instructions, etc. – are available in that repository. If some materials cannot be placed in that repository, contact your instructor for instructions on how to compensate.
Please be sure to follow appropriate etiquette when interacting with your group.
Overview
Your task during this iteration is to form a group and develop a basic idea for your project. Your group must consist of four or five students. For more information about the requirements for your group project, please see the projects summary page.
Your tasks during this iteration are as follows:
- Develop a project idea
- Meet with your instructor to have the project approved to get access to your GitHub repository
- Write up a small vision statement and add it to the homepage of your repository’s wiki
Project Idea
The work to be done on this iteration is primarily conceptual. Brainstorm with your group about the kinds of software you might want to write. Is there a problem you’d like to solve? Is there some program you’ve always wanted to write? Don’t worry too much at this point about exactly how you’ll solve the problem or how much work it will be; for many students, this software project will be larger than anything they have worked on in the past. Some things to keep in mind:
- Don’t underestimate yourself. You don’t have to do this alone, you’ll have most of the semester to do it, and you’ll have guidance throughout the process. Think big! Be ambitious!
- Don’t worry if you don’t quite know how something might be accomplished. There are plenty of resources out there to help you, including entire ecosystems of software libraries to make difficult tasks easy. You don’t have to see the whole solution right away.
- The main objective of your project isn’t to survey a variety of technologies or learn general strategies for software development; we’ll do that in lecture. This project is about building a real, concrete solution that someone might use.
Examples of previous projects in similar courses include:
- Games
- A PC roleplaying game engine in the style of 90s-era console games
- A side-scrolling platformer (similar to Mario Brothers) with realistic physics
- An Android virtual reality zombie shooter
- A surreptitious bingo game meant to be played during boring meetings
- Social Networking
- A video authoring platform similar to the now-defunct Vine but with a collaborative twist
- A location-based commenting application
- A textbook-sharing website
- A movie rating and recommendation site with user-driven categorization
- Academic Software
- A drag-and-drop DNA sequence editing website for use by a biomedical engineering laboratory
- A teaching tool for automata in computational theory
- An image manipulation pipeline editor for a brain imaging laboratory
Your idea can be from one of the above categories or it could be something completely unrelated. Hopefully, the above examples give a sense of scale.
Project Meeting
To complete Iteration 0, you must schedule a brief meeting with the course instructor. All of your group members will need to attend. This meeting will take between five and ten minutes. Meetings during office hours are acceptable; you can also schedule a time that works best for all of you. During this meeting, you will pitch your idea and receive feedback.
Your instructor must approve your proposal. This approval is not contingent upon the topic of your project (except that the topic must be appropriate for class) but is contingent upon being an appropriate size and degree of difficulty. If you are concerned about these points, you can seek feedback from your instructor beforehand. Most proposals are approved, although your instructor may suggest that you shrink or expand the scope of your project to fit the semester.
Even if you discuss your proposal with your instructor, the meeting is still required. Your instructor needs to meet you as a group to discuss the topic.
Vision Statement
Once your idea is approved, you will receive access to a Swarthmore GitHub repository. Your group should develop a one or two paragraph statement of what your purpose is in developing your application. Here is an example vision statement written by a previous student project group:
We will develop a web-based user interface that allows service providers (such as dance instructors, personal trainers, massage therapists, tutors) to record the periods of time during which they can book clients. The interface, in turn, allows clients to book time periods, and to cancel time periods based on the service agreement’s rules (which are specified by the service provider). The goal of the web interface is to allow business to be conducted digitally to save both parties time in the booking process.
Your vision statement should be clearly identified on the homepage of your project repository’s wiki.