CSE 40677 Open Source Software Development is an elective Computer Science and Engineering course that is designed to give the advanced student the opportunity to create and implement a significant open-source software project. The goal is not merely to write code, but to create the infrastructure necessary for a sustainable project, including web pages, documentation, bug tracking, discussion groups, and more. With luck, the project may gain new contributors and have a life beyond that of the semester project!
Unit | Date | Topics | Deliverables |
---|---|---|---|
Infrastructure | |||
Overview | Thu 01/16 | Open Source Software Development Slides Slides | |
Sprint 1 | Thu 01/23 | Sprint | |
Milestone 1 | Thu 01/30 | Infrastructure | Milestone 1 |
Design | |||
Sprint 2 | Thu 02/06 | Sprint | Progress 1 |
Milestone 2 | Thu 02/13 | Project Design | Milestone 2 |
Prototype | |||
Sprint 3 | Thu 02/20 | Sprint | Progress 2 |
Sprint 4 | Thu 02/27 | Sprint | Progress 3 |
Milestone 3 | Thu 03/05 | Prototype | Milestone 3 |
Spring Break | |||
Packaging | |||
Sprint 5 | Thu 03/26 | Sprint | Progress 4 |
Sprint 6 | Thu 04/02 | Sprint | Progress 5 |
Milestone 4 | Thu 04/09 | Public Announcement | Milestone 4 |
Feedback | |||
Sprint 7 | Thu 04/16 | Sprint | Progress 6 |
Sprint 8 | Thu 04/23 | Sprint | Progress 7 |
Milestone 5 | Thu 04/30 | Debriefing | Milestone 5 |
Component | Points |
---|---|
Progress Weekly Progress Reports. | 8 × 10 |
Milestones Project Milestones. | 20, 4 × 30 |
Requirements Project Requirements. | 5 × 10 |
Contribution Individual Contribution. | 40 |
Total | 300 |
Grade | Points | Grade | Points | Grade | Points |
---|---|---|---|---|---|
A | 280-300 | A- | 270-279 | ||
B+ | 260-269 | B | 250-259 | B- | 240-249 |
C+ | 230-239 | C | 220-229 | C- | 210-219 |
D | 195-209 | F | 0-194 |
Students will be graded on the following items:
Progress Reports: For each Sprint week, each group will submit a Progress Report via their website, issue tracker, or project organizer that summarizes the work they have done for that week and addresses any questions the instructor has about their work.
Milestones: Following a series of Sprints, groups will need to meet with the instructor to present their project Milestone. This will consist of a short presentation and demonstration and must address the questions the instructor will provide during the development process.
Requirements: Each project must fulfill the five project requirements outlined below throughout the course of the semester.
Contribution: At the end of the semester, students will be asked to anonymously rate or evaluate their group members to determine their overall contribution to the project.
Each course project will encompass all the elements necessary for a successful open source project:
Web Presence: A public, high quality, and editable web presence which includes a compelling project vision, instructions for downloading and using the software, technical documentation and links regarding the details of the software, and a description of the membership and governance of the project.
Code Repository: The project source code must be maintained in a public code repository, and changes accepted to the project through a standardized process. There must be a simple and well-documented process for building and using the source code.
Communal Development: Public venues for reporting bugs, requesting help, and discussing project features. These may include issue trackers, forum software, or whatever is most appropriate to the project. Project development must be carried out using these tools.
Continuous Integration: The project must incorporate the use of automated build, integration, testing, and deployment systems along with the use of containers or virtual machines.
MVP: The final version of the software must meet the requirements of a Minimum Viable Product (MVP) which will be articulated by the team early in the semester.