All Lessons
Browse and filter our complete collection of open source learning materials
Showing 32 of 32 lessons
Building Community
Building a healthy community helps your project thrive. Learn how to foster collaboration and inclusivity.
Leadership and Governance
Effective leadership and governance ensure long-term success for your open source project.
Social Coding and Open Source Collaboration
This lesson explores social coding and open-source collaboration using platforms like GitHub. It covers contributing to projects, community engagement, and using social coding tools for collaborative development.
Writing Documentation for Software Projects
This lesson teaches how to write effective software documentation, including API documentation, user guides, and installation instructions.
Making Good Pull Requests
This lesson covers how to create high-quality pull requests for open source projects and collaborative software development teams.
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.
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.
Collaboration in Open Research Projects
This lesson introduces collaboration in open research projects, focusing on using Git and GitHub to manage contributions, foster collaboration, and ensure transparency in research outputs.
Python Packaging
No description available
Python Packaging for Beginners
This lesson teaches the essential steps for packaging Python projects and publishing them on PyPI.
R Packaging
No description available
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.
How to Contribute to Open Source
No description available
Continuous Integration and Delivery with GitHub Actions
This lesson covers how to set up continuous integration and continuous delivery pipelines for automated testing and deployment in software projects.
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.
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.
Starting an Open Source Project
Launching a successful open source project involves more than just code. Start your journey here.
Finding Users for Your Project
Launching a successful open source project involves more than just code. Start your journey here.
Metrics
Tracking the success of your project helps you make informed decisions and communicate impact effectively.
Best Practices for Maintainers
Making your life easier as an open source maintainer, from documenting processes to leveraging your community.
Effective Code Review
This lesson teaches best practices for conducting and participating in code reviews, emphasizing clear communication and collaborative problem solving.
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.
Building Better Research Software
No description available
Reproducible Research
This lesson covers the principles of reproducible research, including data management, version control, and the use of tools like Git to ensure that research can be replicated.
Intermediate Research Software Development Skills (Python) Lesson Material
No description available
Introduction to Docker for Research NOTE THIS IS NOW CALLED 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.
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.
Intermediate Python Development
This lesson covers intermediate Python development skills such as writing reusable code, using virtual environments, testing with pytest, and managing dependencies.
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.
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.
Reproducible Computational Environments using Containers
No description available
Understanding 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.