Students in the LUX Program will complete a major project.
Courses Involved
Completion Goal
During the first semester, you'll take your project to a "0.3" completion status. This means that it must provide some reasonable, stable level of functionality, but it does not need to be complete or fully polished. In the second semester, you'll take the same project to a "1.0" completion status, where it will be considered complete, tested, documented, and appropriately packaged.
Milestones
Project Review
The starting-point is selecting a project from the Potential Projects list. Most of the descriptions on that list are very short, and it may take some investigation and discussion to really understand the scope of each proposal. Use the contact information and resources listed for each project to narrow down your search to 2-4 projects by Week 2.
Project Selection
Once you have decided on a project, remove the project description from the Potential Projects list and place it on the Project List. Create a link from the project description to a project page (use the Sample Project page as a template).
0.1 Release (Proof of Concept)
One of the Open Source principles is "Release Early, Release Often". Your first "0.1" release is due October 17 and will serve as an initial proof-of-concept. This release must include "code", but the definition of "code" will vary considerably depending on the project (the "code" may be test cases, for example, if that's the focus of the project).
Release your code via the project page on the Wiki, and make an announcement of the release on the planet.
0.2 Release (Basic Functionality)
By November 14, your project should have basic functionality, and be released as version "0.2".
Project Presentations
Project presentations will take place November 25. This will be an opportunity to show off the work that you've done and to have a Q&A session.
0.3 Release (Stable, Usable)
The 0.3 Release must take place by December 5. This release does not need to be fully polished or feature-complete, but it should have enough functionality to be useful for real work.