Skip to main content
Beta
This lesson is in the beta phase, which means that it is ready for teaching by instructors outside of the original author team.
Light
Dark
Auto
Instructor View
Learner View
Menu
Intermediate Research Software Development
Intermediate Research Software Development
Key Points
Instructor Notes
Extract All Images
More
Common Issues, Fixes & Tips
Additional Material: Databases
Additional Material: Geopandas
Additional Material: Persistence
Additional Material: Protecting the Main Branch on a Shared GitHub Repository
Quiz
Refactor 1: Software Design
Refactor 2: Code Refactoring
Refactor 3: Code Abstractions
Refactor 4: Architecture Revisited: Extending Software
Additional Material: Using Microsoft Visual Studio Code
Glossary
Search the All In One page
Intermediate Research Software Development
Toggle Theme
Light
Dark
Auto
Instructor View
Learner View
EPISODES
Summary and Schedule
Setting the Scene
Section 1: Setting Up Environment For Collaborative Code Development
1.1 Introduction to Our Software Project
1.2 Virtual Environments For Software Development
1.3 Integrated Software Development Environments
1.4 Collaborative Software Development Using Git and GitHub
1.5 Python Code Style Conventions
1.6 Verifying Code Style Using Linters
Section 2: Ensuring Correctness of Software at Scale
2.1 Automatically Testing Software
2.2 Scaling Up Unit Testing
2.3 Continuous Integration for Automated Testing
2.4 Diagnosing Issues and Improving Robustness
Section 3: Software Development as a Process
3.1 Software Requirements
3.2 Software Architecture and Design
3.3 Programming Paradigms
3.4 Functional Programming
3.5 Object Oriented Programming
3.6 Architecture Revisited: Extending Software
Section 4: Collaborative Software Development for Reuse
4.1 Developing Software In a Team: Code Review
4.2 Preparing Software for Reuse and Release
4.3 Packaging Code for Release and Distribution
Section 5: Managing and Improving Software Over Its Lifetime
5.1 Managing a Collaborative Software Project
5.2 Assessing Software for Suitability and Improvement
5.3 Software Improvement Through Feedback
Wrap-up
RESOURCES
Key Points
Instructor Notes
Extract All Images
Common Issues, Fixes & Tips
Additional Material: Databases
Additional Material: Geopandas
Additional Material: Persistence
Additional Material: Protecting the Main Branch on a Shared GitHub Repository
Quiz
Refactor 1: Software Design
Refactor 2: Code Refactoring
Refactor 3: Code Abstractions
Refactor 4: Architecture Revisited: Extending Software
Additional Material: Using Microsoft Visual Studio Code
Glossary
See all in one page
Learner Profiles
This is a placeholder file. Please add content here.
Back
To Top