This lesson is being piloted (Beta version)
If you teach this lesson, please tell the authors and provide feedback by opening an issue in the source repository
Toggle navigation
Home
Code of Conduct
Setup
Episodes
Setting the Scene
Section 1: Setting Up Environment For Collaborative Code Development
Introduction to Our Software Project
Virtual Environments For Software Development
Integrated Software Development Environments
Collaborative Software Development Using Git and GitHub
Python Code Style Conventions
Verifying Code Style Using Linters
Section 2: Ensuring Correctness of Software at Scale
Automatically Testing Software
Scaling Up Unit Testing
Continuous Integration for Automated Testing
Diagnosing Issues and Improving Robustness
Section 3: Software Development as a Process
Software Requirements
Software Architecture and Design
Programming Paradigms
Functional Programming
Object Oriented Programming
Architecture Revisited: Extending Software
Section 4: Collaborative Software Development for Reuse
Developing Software In a Team: Code Review
Preparing Software for Reuse and Release
Packaging Code for Release and Distribution
Section 5: Managing and Improving Software Over Its Lifetime
Managing a Collaborative Software Project
Assessing Software for Suitability and Improvement
Software Improvement Through Feedback
Wrap-up
All in one page (Beta)
Extras
Reference
About
Figures
Instructor Notes
Common Issues, Fixes & Tips
Refactor 1: Software Design
Refactor 2: Code Refactoring
Refactor 3: Code Abstractions
Refactor 4: Architecture Revisited: Extending Software
Additional Material: Protecting the Main Branch on a Shared GitHub Repository
Additional Material: Using Microsoft Visual Studio Code
Additional Material: Persistence
Additional Material: Databases
Additional Material: Geopandas
Quiz
License
Improve this page
This lesson is part of
The Carpentries Incubator
, a place to share and use each other's Carpentries-style lessons.
This lesson has not been reviewed by and is not endorsed by The Carpentries
.
Intermediate Research Software Development
: Figures