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
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
Code Decoupling & Abstractions
Code Refactoring
Software Architecture Revisited
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
Software Architecture
Programming Paradigms
Procedural Programming
Functional Programming
Object Oriented Programming
Persistence
Databases
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