Summary and Schedule
This repository has moved!
Find the lesson repository at: https://github.com/carpentries-incubator/byte-sized-rse-overview/tree/main
Find the lesson website at: https://carpentries-incubator.github.io/byte-sized-rse-overview/
Individual episodes are now separate mini-lessons in separate repositories:
- Code Development & Debugging with IDEs
- Code Style, Quality & Linting
- Intermediate Git
- Code Review
- Unit Testing Code
- Continuous Integration
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Lesson 1: Code Development & Debugging with IDEs |
What is an Integrated Development Environment (IDE) and what role does
it play in software development? What are the common features of IDEs? Why is debugging important, and what are the main techniques developers use to debug their code? How can you use a debugger in an IDE like Visual Studio Code to find and fix errors in your code? |
| Duration: 00h 15m | 2. 1.1 Setup & Prerequisites |
What prerequiste knowledge is required to follow this topic? How to setup your machine to follow this topic? |
| Duration: 00h 15m | 3. 1.2 Getting Started with VSCode |
How do I access the key features of Microsoft Visual Studio (VS)
Code? How do I open a software project in VSCode? What are VSCode extensions, and how do I use them? |
| Duration: 00h 25m | 4. 1.3 Using the Code Editor |
How do I open a source code file in VSCode? What editing features will help me when writing code? |
| Duration: 00h 35m | 5. 1.4 Running and Debugging Code |
How do I run code in VSCode? How do I use a debugger to locate the source of a problem in my code? How does debugging fit within the broader process of development? |
| Duration: 00h 45m | 6. Lesson 2: Code Style, Quality & Linting |
Why does consistent code style matter in software development? What are some common code styling practices and conventions? How can poor coding style lead to bugs and maintenance issues? What is a linter, and how does it help improve code quality? |
| Duration: 01h 00m | 7. 2.1 Setup & Prerequisites |
What prerequiste knowledge is required to follow this topic? How to setup your machine to follow this topic? |
| Duration: 01h 00m | 8. 2.2 Some Example Code |
Why should I write readable code? What is a “code smell”? |
| Duration: 01h 10m | 9. 2.3 Analysing Code using a Linter |
What tools can help with maintaining a consistent code style? How can I keep dependencies between different code projects separate? How can we automate code style checking? |
| Duration: 01h 20m | 10. 2.4 Advanced Linting Features |
What can I do to increase the detail of Pylint reports? How can I reduce unwanted messages from Pylint? How can I use static code analysis tools within VSCode? |
| Duration: 01h 30m | 11. Lesson 3: Intermediate Git |
What is a Git branch and why is it useful in collaborative
development? When should I create a new branch in my project? What are the differences between fast-forward merge, 3-way merge, rebase, and squash and merge? How does Git handle merging when branches have diverged? |
| Duration: 01h 45m | 12. 3.1 Setup & Prerequisites |
What prerequiste knowledge is required to follow this topic? How to setup your machine to follow this topic? |
| Duration: 01h 45m | 13. 3.2 Some Example Code |
What are Git “branches”? Why should I separate different strands of code work into “feature branches”? How should I capture problems with my code that I want to fix? |
| Duration: 01h 55m | 14. 3.3 Feature Branch Workflow |
How do I use Git to create and work on a feature branch? How do I push my local branch changes to GitHub? |
| Duration: 02h 05m | 15. 3.4 Creating a Pull Request | How can I organise a set of changes together so they can be merged later? |
| Duration: 02h 15m | 16. 3.5 Merging a Pull Request |
How do I merge changes proposed within a pull request with the main
branch? What should I do with a branch that has been merged and is no longer required? |
| Duration: 02h 25m | 17. 3.6 Merge Conflicts |
How should I manage conflicts when merging branches? How does GitHub help me manage merge conflicts with a pull request? |
| Duration: 02h 35m | 18. Lesson 4: Code Review |
What are the benefits of collaborative code development? How can collaborating improve the quality and effectiveness of your code? What practices and tools support effective collaboration? Why should collaborative tools and workflows be adopted early in a project? |
| Duration: 02h 50m | 19. 4.1 Setup & Prerequisites |
What prerequiste knowledge is required to follow this topic? How to setup your machine to follow this topic? |
| Duration: 03h 00m | 20. 4.2 Some Example Code | What does a bad code repository look like? |
| Duration: 03h 10m | 21. 4.3 Fixing a Repository Issue |
How do we approach grouping commits together for a pull request? Can we use GitHub to directly make changes to files? |
| Duration: 03h 20m | 22. 4.4 Submiting a Pull Request |
How do you create a pull request using GitHub? How long should we keep a pull request open? How do we request a review of a pull request? |
| Duration: 03h 30m | 23. 4.5 Reviewing a Pull Request |
How do I submit a review of a pull request? On what information about a pull request do I base my review? What are the levels of approval for a pull request review? |
| Duration: 03h 40m | 24. 4.6 Merge the Pull Request |
How do I see the comments left by a reviewer? How do I merge a pull request? |
| Duration: 03h 50m | 25. Lesson 5: Unit Testing Code |
Why should I test my code? What is the role of automated testing? What are the different types of automated tests? What is the structure of a unit test? What is test “mocking”? |
| Duration: 04h 05m | 26. 5.1 Setup & Prerequisites |
What prerequiste knowledge is required to follow this topic? How to setup your machine to follow this topic? |
| Duration: 04h 05m | 27. 5.2 Some Example Code |
How do I run a set of unit tests? How do unit test frameworks operate? |
| Duration: 04h 15m | 28. 5.3 Creating a New Test |
How do I write a unit test? How do I write a unit test that tests for an error? |
| Duration: 04h 25m | 29. 5.4 Handling Errors | FIXME |
| Duration: 04h 35m | 30. Lesson 6: Continuous Integration |
What is automation in the context of software development, and why is it
beneficial? How does Continuous Integration (CI) enhance the software development process? What tasks can be automated using CI? Why is integrating small code changes regularly preferable to integrating large changes infrequently? How can CI be extended to Continuous Delivery (CD) for automating deployment processes? |
| Duration: 04h 50m | 31. 6.1 Setup & Prerequisites |
What prerequiste knowledge is required to follow this topic? How to setup your machine to follow this topic? |
| Duration: 05h 00m | 32. 6.2 Some Example Code | FIXME |
| Duration: 05h 10m | 33. 6.3 Defining a Workflow | FIXME |
| Duration: 05h 20m | 34. 6.4 Tracking a Running Workflow | FIXME |
| Duration: 05h 30m | 35. 6.5 Build Matrices | FIXME |
| Duration: 05h 40m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Setup
Each episode is standlaone and has its own individual setup - there is no setup for the whole course.