M1 Media Programming

Website of Prof. Dr. Barne Kleinen, Professor for Media Informatics (Bachelor/Master) at HTW Berlin

Assignment 03 - Contribution to an Open Source Project

tl;dr: Select an open source project, create an overview of its design and submit a merge / pull request to the project.

This assignment is mainly about code reading and understanding legacy code bases. It’s not about creating your own project!

1. Select an Open Source Project.

Criteria for this project:

  • just the right size: it may not be to small - there’s no challenge in understanding the design of a one page script. Too big and/or famous may also be an issue because creating a contribution and getting it accepted to the code base may be too difficult
  • check the open issues (sometimes some are marked as “good first issues”!) and contribution instructions for gauging your chances to make a contribution
  • choose a project with high quality code, as you’ll learn from it’s examples.

Apart from these criteria, you’re very free to select a project based on your interests.

2. Understand and Document the Code Base

Try to understand the system architecture and document it, e.g. using UML or other diagrams. Maybe you can even contribute them to the project’s documentation. Include them in your report. Depending on the size of the project, it may not be feasible to read/document all parts. Choose the ones you need, and give the reasons for your selection in your report. The hitchhiker’s guide to Python includes a chapter “Reading Great Code”: https://docs.python-guide.org/writing/reading/

3. Your contributions to the Project

Select the things you want to add/improve to the project. As always, give the reasons for your decision in your report.

Document your change. What did you learn creating it?

Create a Pull/Merge request for your contribution. Was it accepted?