Prerequisites: 6.005, 6.006, preference given to 6.170 and 6.172 alums
Instructor: Professor Saman Amarasinghe (firstname.lastname@example.org)
Schedule: TR2:30-4, room E40-163
Enrollment limited to 30 students
Working in small teams, students will expand existing personal or MIT software systems from an unsupported “code dump” on GitHub to a full open-source project suitable for actual collaboration and use. We expect students to perform a substantial amount of programming to bring the project up to a usable status to support real use cases and the code quality to an industry standard. Beyond just programming, students will experience the full project management lifecycle, including requirements gathering, usability testing, documentation and technical writing, prioritization and risk management, project coordination, community support and outreach. Students are expected to take leadership roles in their project, supported by a graduate student, postdoc or faculty mentor to bootstrap project-specific knowledge. Course meetings will be split between studio sessions, during which teams can coordinate and work together, and lectures on software engineering and project management topics relevant to the projects.