Education

All Lessons

Browse the full library of curated open source learning materials, then filter by role, topic, or skill level.

Except where marked Created, these are external resources curated by the UC OSPO Network: selected and organized by us, but authored by others.

OSS Role
Skill Level
Domain
Learning Type
Designed for
Topic
Intermediate

guide

Community Manager, Maintainer

Best Practices for Maintainers

Making your life easier as an open source maintainer, from documenting processes to leveraging your community.

Prerequisites

Introduction to Git
Updated 3mo ago
Intermediate10h 5m

course

Contributor, Maintainer

Building Better Research Software

This short course is teaching tools and practices for producing and sharing quality, sustainable and FAIR (Findable, Accessible, Interoperable and Reusable) research software to support open and reproducible research. The course can be delivered over 2 full or 4 half days.

Prerequisites

Introduction to Git
Updated 3mo ago
Intermediate4h 10m

course

Contributor, Maintainer

CI/CD for Research Software with GitLab CI

This lesson covers the implementation of CI/CD pipelines in research software projects, focusing on automating tests, builds, and deployments using GitLab CI.

Updated 4mo ago
Intermediate

guide

Community Manager, Maintainer

Your Code of Conduct

Facilitate healthy and constructive community behavior by adopting and enforcing a code of conduct.

Prerequisites

Building Community
Intermediate

guide

Community Manager, Maintainer

Collaboration in Open Research Projects

A comprehensive reference guide covering collaboration practices in open research — community setup, GitHub workflows, code review, meetings and events, leadership, and research infrastructure roles. Part of The Turing Way open handbook.

Prerequisites

Introduction to Git
Updated 3mo ago
Intermediate3h 30m

course

Contributor, Maintainer

Collaborative Git for Teams

This lesson explains how to use Git for collaborative software development, focusing on advanced Git techniques such as branching, merging, and conflict resolution.

Prerequisites

Introduction to Git
Updated 5mo ago
Intermediate

workshop

Contributor, Maintainer

Effective Code Review

This lesson teaches best practices for conducting and participating in code reviews, emphasizing clear communication and collaborative problem solving.

Updated 3mo ago
Beginner

guide

Contributor

Finding and Evaluating Projects

Learn how to find your first project using discovery tools, understanding labels, and identifying beginner-friendly tasks.

Updated 3mo ago
Beginner3h 39m

workshop

Contributor, Maintainer

Good Enough Practices in Scientific Computing

A set of practical computing habits every researcher can adopt — covering data management, code organization, collaboration, version control, and project structure.

Intermediate17h 15m

course

Contributor, Maintainer

Intermediate Research Software Development

This course aims to teach a core set of established, intermediate-level software development skills and best practices for working as part of a team in a research environment using Python as an example programming language (see detailed learning objectives below).

Updated 3mo ago
Beginner5h

workshop

Contributor, Maintainer

Introduction to Docker and Podman

This lesson covers the fundamentals of Docker, including creating containers, managing Docker images, and using Docker for software reproducibility and deployment.

Updated 4mo ago
Beginner8h

course

Contributor, Maintainer

Introduction to Git

This lesson introduces Git, a distributed version control system, and teaches how to use it to track changes, collaborate on projects, and manage the history of a codebase.

Updated 5mo ago
Intermediate1h

workshop

Contributor, Maintainer

Issue Tracking with GitHub

This lesson covers the basics of issue tracking for software projects, including how to create, manage, and close issues on GitHub.

Updated 3mo ago
Advanced

guide

Contributor

Leadership and Governance

Effective leadership and governance ensure long-term success for your open source project.

Prerequisites

Building Community
Updated 3mo ago
Advanced

guide

Project Lead

Metrics Model: OSS Project Viability: Strategy

A focused metrics guide exploring how to assess risk and project direction by observing structural indicators of organizational influence.

Beginner

guide

Community Manager, Maintainer

Metrics Model: Starter Project Health

An introduction to drawing community performance conclusions from four fundamental open-source health metrics.

Intermediate

guide

Contributor, Maintainer

Metrics

Tracking the success of your project helps you make informed decisions and communicate impact effectively.

Prerequisites

Building Community
Updated 3mo ago
Intermediate

workshop

Contributor, Maintainer

Modular Programming with Python

This lesson covers modular programming in Python, explaining how to write reusable code in modules, organize codebases, and test them to improve collaboration and maintainability.

Prerequisites

Introduction to Git
Updated 5mo ago
Intermediate2h 2m

workshop

Contributor, Maintainer

Python Packaging

This lesson teaches how to create and publish packages in Python. We assume a basic understanding of Python, and assume learners are comfortable using simple commands in a Bash shell.

Updated 1y ago
Intermediate

workshop

Contributor, Maintainer

Python Package Development Best Practices

This lesson covers best practices for building Python packages, focusing on scientific software. It explains how to structure packages, write tests, manage dependencies, and distribute packages via PyPI.

Updated 5mo ago
Beginner7h 25m

workshop

Contributor, Maintainer

R Packaging

This workshop will provide you with the basics for writing your own packages in R.

Prerequisites

Introduction to Git
Updated 3mo ago
Beginner4h 5m

course

Contributor, Maintainer

Reproducible Computational Environments using Containers

This session aims to introduce the use of Docker containers with the goal of using them to effect reproducible computational environments. Such environments are useful for ensuring reproducible research outputs, for example.

Updated 3mo ago
Intermediate

guide

Contributor, Maintainer

Reproducible Research

A comprehensive reference guide covering all aspects of reproducible research — version control, testing, data management, CI/CD, open research, licensing, and more. Part of The Turing Way open handbook.

Prerequisites

Introduction to Git
Updated 3mo ago
Intermediate

course

Contributor, Maintainer

Research Software Engineering with Python Course

This course provides an overview of key skills for Research Software Engineers, including software design, version control with Git, testing with pytest, and project management.

Updated 1y ago
Intermediate

guide

Maintainer

Security Best Practices for Your Project

Strengthen your project's future by building trust through essential security practices — from MFA and code scanning to safe dependency management and private vulnerability reporting.

Beginner

workshop

Community Manager, Maintainer

Social Coding and Inclusive Communication

Understand the 'human' side of open source, including respectful language, the 'release early, often' mindset, and the value of non-code contributions.

Updated 5mo ago
Beginner

guide

Contributor, Maintainer

Starting an Open Source Project

Launching a successful open source project involves more than just code. Start your journey here.

Prerequisites

Introduction to Git
Updated 3mo ago
Intermediate2h

workshop

Contributor, Maintainer

Testing and Test-Driven Development

This lesson covers how to write tests for your code, understand test-driven development, and use testing frameworks like pytest in Python.

Prerequisites

Introduction to Git
Updated 4mo ago
Beginner3h 6m

workshop

Project Lead

Software Licensing

This lesson provides an overview of common open-source software licenses, their conditions, and how to choose the right one for your project.

Updated 3mo ago
Intermediate

guide

Maintainer, Project Lead

The Legal Side of Open Source

Everything you've ever wondered about the legal side of open source, and a few things you didn't.

Prerequisites

Software Licensing
Beginner

guide

What is Open Source?

An introduction to the four freedoms of software, the benefits of FOSS in education and industry, and the core principles of transparency and community.

Updated 3mo ago
Intermediate4h 45m

course

Contributor, Maintainer

Unit Testing and TDD in Python

This lesson covers how to write and run unit tests in Python, including an introduction to test-driven development (TDD) and its benefits.

Updated 3mo ago
Beginner

workshop

Contributor

Your First Web Contribution

Build confidence by making a real open source contribution using only your web browser. No technical setup or Git installation required!

Updated 3mo ago