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. 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 05m | 5. 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: 04h 55m | 6. 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 45m | 7. 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: 08h 45m | 8. Credits | |
Duration: 08h 55m | 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 4, 5, and 6) introduces GitLab, and its support for more advanced Git workflows and ends with introducing the basics of Python Virtual Environments.
- Part 3 (Episode 7) covers the basics of “clean code”, with a focus on Python and its development tools ecosystem.
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.
- Git (≥ 2.45 recommended)
- Python (3.12 recommended)
- A number of Python tools:
- PyCharm (use the Community Edition)
- PyLint
- Coverage.py (≥ 7.3 recommended)