Skip to content

Project 5: Open Source Excursion

Learning Goals

  • Holistically apply software engineering methods in the context of a real-world problem, including process, requirements, architecture, measurement, and quality assurance
  • Gain broad and deep exposure to the culture and practices of open-source communities
  • Understand commonly used infrastructure used in open-source, and how to choose infrastructure when starting a new open-source project
  • Engage with an open-source community
  • Identify process issues and suggest improvements in real-world projects, including communication, collaboration, tooling, quality assurance, formal and informal rules and policies
  • Coordinate within a team and adopt practices for efficient teams
  • Understand a project’s architecture and design and make a decision about the feasibility of a proposed task
  • Divide and schedule work within a project
  • Discuss how agile practices affect development
  • Discuss business concerns and business models of software development

Project Description

Your high-level goal is to produce and submit a non-trivial modification or extension to an open-source project in a way that maximizes the chances that the project maintainers accept it. In past semesters, we've had teams merge code into popular open source projects like CPython, Pandas, and MyPy - see our Hall of Fame for details.

If you demonstrate to us that your change has been accepted and integrated into the project’s code base, you will get 20 bonus points. Your team will select an open source project, select a change to implement, actually contribute to the project, and present your insights to the class. You will individually reflect on your teamwork and open source experience.

Deliverables and Deadlines

This will is your final project with your group. There are 3 deadlines for this project. The project is worth a total of 400 points (~24% of your final grade).

A) Project & Task Selection – 80 points – due Tuesday, April 9th, 11:59pm Wednesday, April 10th, 11:59pm

  • Check-In Presentation (80 pts) - Submitted Recording by Wednesday April 10th

B) Project Final Report & Presentations – 300 points – due Sunday, April 28th, 11:59pm

  • Project Report (200 pts)
  • Extra Credit (20 pts)
  • Project Presentation (100 points) - Held during exam timeslot on Monday, April 29th, 5:30-8:30pm

C) Individual Reflections – 20 points – due Monday, April 29th, 11:59pm

  • Reflections & Peer Review (20 pts)

Tip

This is a large assignment spanning from now until your final exam timeslot. We estimate that this project will take each student on the team on average 8 hours/week over the next 5 weeks, for a total of 40 hours. We highly recommend reading through the entire assignment before starting so you are aware of our expectations for the later deliverables.

To manage all of the write-ups, we recommend saving the pages as a PDF to print or annotate on as you work through the assignment with your team.

Contributions

We want to ensure that everyone is participating fully in the final project. For this project, we will be assessing participation in a variety of ways, including: artifact evaluation, self & peer evaluation. Credit due for the team components of P5 will be awarded based on evidence of full participation in the team. Partial participation will receive partial credit.

If severe teamwork issues arise please contact the course staff.