Introduction
This course has been developed at QuTech and built using The Carpentries Workbench.
Setup Instructions | Download files required for the lesson | |
Duration: 00h 00m | 1. The QuTech Software Maturity Model (QSMM) | |
Duration: 00h 25m | 2. Version Control |
What is version control and why should I use it? How do I get set up to use Git? Where does Git store information? |
Duration: 01h 25m | 3. Basic Git Commands |
How do I record changes in Git? How do I record notes about what changes I made and why? How can I identify old versions of files? How do I review my changes? How can I recover old versions of files? How can I tell Git to ignore files I don’t want to track? |
Duration: 02h 25m | 4. Intermezzo I | |
Duration: 02h 35m | 5. GitLab |
What is GitLab? How can I find my way around GitLab? How can I create, modify and archive a GitLab project? How can multiple people collaborate on a project? |
Duration: 03h 15m | 6. Advanced Git Commands |
How can I use version control to collaborate with other people? What do I do when my changes conflict with someone else’s? |
Duration: 05h 05m | 7. Python Virtual Environments |
What are virtual environments in software development and why you should
use them? How can we manage Python virtual environments and external (third-party) libraries? |
Duration: 05h 55m | 8. Intermezzo II | |
Duration: 06h 05m | 9. Clean Code |
What is “Clean Code” and why is it important? What are the most important “Clean Code” rules? What tools can I use to improve my code quality towards the “Clean Code” ideal? |
Duration: 09h 05m | 10. Credits | |
Duration: 09h 15m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
The purpose of this course is to introduce the basics of professional software development to QuTech PhD students and researchers. We firmly believe that adopting professional software development practices throughout our research organization will yield significant long-term advantages, including:
- Faster onboarding of new PhD students
- Efficiencies across the organization through potential software and know-how reuse
- More transparent and reproducible results for research that relies on in-house built software tools
The course is structured in three parts intended to be offered as half-day workshops:
- Part 1 (Episodes 1, 2, 3) starts by framing the course in the context of the QuTech Software Maturity Model, and then dwells into its technical content by introducing the fundamentals of version control and Git.
- Part 2 (Episodes 5, 6, and 7) introduces GitLab, and its support for more advanced Git workflows and ends with introducing the basics of Python Virtual Environments.
- Part 3 (Episode 9) covers the basics of “clean code”, with a focus on Python and its development tools ecosystem.
Each workshop should take between three and four hours, and will consist of three one hour modules split by breaks. The first break will be around ten minutes, while the second one around 30 minutes - during which lunch will be served.
This course focuses on practical knowledge that can be immediately applied. It also emphasizes “learning by doing”, with several hands-on, interactive assignments designed to help participants practice and apply newly introduced concepts and tools.
This course has no prerequisites. However, participants should have an interest or affinity for Python programming and a basic understanding of using Linux/Unix command line interfaces.
Required Software
This setup document will walk you through the process of installing or upgrading the required software in the following order.
First Workshop Schedule
- Introduction
- QSMM
- Short break
- Version Control and Git
- Lunch break
- Basic Git commands and workflows