Spring Break Extra Credit Assignment

Open-source software (OSS) is a software philosophy where the owner of a project makes the software source code available for anyone to study, modify, or redistribute (including modified copies). Often times, OSS is developed in a collaborative manner: many people contribute to the development of a project. Sometimes, companies will even pay their employees to work on OSS, as many companies are able to derive much greater good from the OSS process than developing proprietary software.

There are two parts to this assignment: both are optional. You may complete one part, the other, or both. This is entirely up to you.

Although this is assigned for spring break (and I recommend getting to completing it during spring break when you are less busy), the due date is dead day. Please turn in early if you have it done before then…

Learn about OSS

Watch these documentaries:

I recommend watching them not all at once. Potentially, you might want to watch with your family if you are home for break.

Send me a 1-2 page (single spaced, similar style to explore report) report describing what you learned from watching. Some things you might consider discussing:

  • What makes a certain piece of software open source? Is it enough to just have the source code for anyone to view?
  • What does “free as in freedom” mean? How does it differ from “free as in beer”? In what ways does open source software encompass one or both models?
  • What economic benefits can be derived from open source?
  • How can open source be used to make money?
  • What open source software do you use on a day-to-day basis? (Hint: we use open source software in this course!)
  • How can one contribute to OSS without writing code?
  • Is it enough to put your source code on GitHub to call it open source? What do we need in addition?
  • What are the origins and history of OSS?

Depending on the quality of your report, you may receive up to 4% extra credit on your overall grade in the course.

Contribute to OSS

Find an open source project written in Python 3 or Haskell not affiliated with the Colorado School of Mines. Look at the issues list for the software, and see if there is something on there you could tackle.

Often times, open source software will give a list of contributing guidelines, make sure you read these before making a contribution.

Then, fork the repository and tackle a bug or two, or maybe even a big issue! Submit a pull request, and wait to hear back from the software developers. Any contribution will do, even a contribution to documentation.

Once you have submitted a pull request, Email me a link to your request. I will give you 2% to 6% extra credit on your overall grade in the course, depending on the size of your contribution.

Sometimes your contribution will receive a code review, and you’ll need to make changes before your code is accepted. If the changes are reasonable, do attempt to make them and get your contribution accepted. Under rare cases, your changes might not be accepted. Note that even if your changes are not accepted, I will give you extra credit in the course.