Intro to Open-Source Development
This course covers Git, style guides, advanced python features, testing, documentation, and collaborative coding using GitHub.
It is designed to help engineering/science students learn to effectively contribute to the open-source scientific python ecosystem.
You can find a video introduction here
Course Learning Outcomes
After successfully completing the course you will be able to:
- Use the Git version control system to manage software projects.
- Apply style guides to codebases.
- Design object-oriented and functional python implementations for solving computing problems.
- Use the pytest framework to verify correctness of programs.
- Design documentation which effectively advertises and explains a project.
- Evaluate pull request and bug report quality and provide feedback for making improvements.
- Create and submit code contributions which follow best practices and project guidelines.
Prerequisites
This course is designed for students with some Python experience. Specifically you should:
- Be well-versed with writing python functions
- Be familiar with common data structures like lists, dicts, tuples, etc.
- Understand iteration and indexing
- Understand Python’s control flow (if/then, for, while, etc.)
- Know how to install python packages and manage python environments
- Be semi-comfortable using a terminal (command line)
See the OSC overview page for general information on course structure.
Project
The last part of this course is to make a non-trivial contribution to an open-source project. You can add a feature to an existing library, or release a small package of your own. More details are found in the collaborative development exercise.
Setup
Follow the setup guide to get setup for this course.