Software Development Fundamentals for Geotechnicians and Geoscientists
Essential practices and tools for effective coding, reproducibility and sustainable collaboration for geo-professionals

It is essential to master the tools and practices that make programming efficient, reproducible, and easy to share before one dives deeper into it. In geotechnical engineering, calculation scripts, design checks, and analysis workflows often need to be revisited months or even years later, sometimes by different team members. Without clear version control, consistent code formatting, and reproducible environments, valuable time will be lost and critical details overlooked.
You will learn the fundamental tools and workflows of modern software development in a way that supports collaboration and your daily coding and analysis work in geotechnics. The course will be taught live via Microsoft Teams across two 4-hour sessions. It includes small exercises throughout to build practical understanding and confidence.
What you will learn:
- Installation and setup of development tools
- Managing project specific python version
- Python dependency management (pip and other tools)
- Reproducible type checking, code style and formatting
- Integrate code editor with other tooling
- Version control using Git and GitHub
- Making commits and using branches
- Pull requests, merges, and resolving merge conflicts
- Basic branch strategy and collaboration in GitHub
- Terminal and shell usage - PowerShell and Windows Terminal basic
- Integrating AI-assisted coding
- Working effectively with GitHub Copilot
- Discussion on other available AI assistance tools


