From 53b1d672eef43b93bcc35b02eaf30abce289b2b1 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Tue, 27 Aug 2024 12:36:17 +0200 Subject: [PATCH 01/19] Add optional exercises for section 1 --- _episodes/17-section1-optional-exercises.md | 62 +++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 _episodes/17-section1-optional-exercises.md diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md new file mode 100644 index 000000000..9a12ffce9 --- /dev/null +++ b/_episodes/17-section1-optional-exercises.md @@ -0,0 +1,62 @@ +--- +title: "Optional exercises for section 1" +start: false +teaching: 0 +exercises: 45 +questions: +- "How can I further finetune my coding environment?" +objectives: +- "Explore different options for your coding environment." +keypoints: +--- + +This episode holds some optional exercises for section 1. +The exercises have an explorative nature, so see what you like to explore. +For the remainder of the lesson we recommend sticking with the tools that were introduced in this section. + +> ## Exercise: Try out different Integrated Development Environments +> Install different Integrated Development Environments (IDEs) and thest them out. +> Which one do you like the most and why? +> You can try: +> - [Visual Studio Code](https://code.visualstudio.com/) +> - [Atom](https://atom-editor.cc/) +> - [Sublime Text](https://www.sublimetext.com/) +> +{: .challenge} + +> ## Exercise: Customize the command line +> You can customize the command line to make yourself more productive. +> - Try out [z](https://github.com/rupa/z), a simple tool to more quickly move around directories. +> - Try out [Oh My ZSH](https://ohmyz.sh/), customize the look and feel of your terminal. +> +{: .challenge} + +> ## Exercise: Try out different virtual environment managers +> So far we used `venv`, but there are other virtual environment managers for Python: +> - [Poetry](https://python-poetry.org/). +> - [conda (part of Anaconda Distribution)](https://www.anaconda.com/download) +> +{: .challenge} + +> ## Exercise: Customize `pylint` +> You decide to change the max line length of your project to 100 instead of the default 80. +> Find out how you can configure pylint. You can first try to use the pylint command line interface, +> but also play with adding a configuration file that pylint reads in. +> +>> ## Solution +>> ### By passing an argument to `pylint` in the command line +>> Specify the max line length as an argument: `pylint --max-line-length=100 +>> +>> ### Using a configuration file +>> You can create .pylintrc file in your python script to overwrite pylint settings and put inside +>> ``` +>> [FORMAT] +>> max-line-length=100 +>> ``` +> {: .solution} +{: .challenge} + + + + +{% include links.md %} From d2ac93baadf50a7f2d123e1384631a2e11b0c2b2 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Tue, 27 Aug 2024 12:52:17 +0200 Subject: [PATCH 02/19] Small improvements to optional exersices section 1 --- _episodes/17-section1-optional-exercises.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 9a12ffce9..9184e4d76 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -14,6 +14,12 @@ This episode holds some optional exercises for section 1. The exercises have an explorative nature, so see what you like to explore. For the remainder of the lesson we recommend sticking with the tools that were introduced in this section. +> ## Exercise: Apply to your own project(s) +> Apply what you learned in this section to your own project(s). +> This is the time to ask any questions to our instructors or let us help you solve problems that you run into. +> +{: .challenge} + > ## Exercise: Try out different Integrated Development Environments > Install different Integrated Development Environments (IDEs) and thest them out. > Which one do you like the most and why? @@ -45,10 +51,10 @@ For the remainder of the lesson we recommend sticking with the tools that were i > >> ## Solution >> ### By passing an argument to `pylint` in the command line ->> Specify the max line length as an argument: `pylint --max-line-length=100 +>> Specify the max line length as an argument: `pylint --max-line-length=100` >> >> ### Using a configuration file ->> You can create .pylintrc file in your python script to overwrite pylint settings and put inside +>> You can create a file `.pylintrc` in the root of your project folder to overwrite pylint settings: >> ``` >> [FORMAT] >> max-line-length=100 From aeceac702a145b312972f9c27ffef9424d2500aa Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Tue, 27 Aug 2024 12:52:33 +0200 Subject: [PATCH 03/19] Add optional exercises for section 2 --- _episodes/25-section2-optional-exercises.md | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 _episodes/25-section2-optional-exercises.md diff --git a/_episodes/25-section2-optional-exercises.md b/_episodes/25-section2-optional-exercises.md new file mode 100644 index 000000000..0d4888e4f --- /dev/null +++ b/_episodes/25-section2-optional-exercises.md @@ -0,0 +1,44 @@ +--- +title: "Optional exercises for section 2" +start: false +teaching: 0 +exercises: 45 +questions: +- "What is a desirable way to measure and use test coverage?" +objectives: +- "Further explore how to measure and use test coverage." +keypoints: +--- + +This episode holds some optional exercises for section 2. +The exercises have an explorative nature, so see what you like to explore. +For the remainder of the lesson we recommend sticking with the tools that were introduced in this section. + +> ## Exercise: Apply to your own project(s) +> Apply what you learned in this section to your own project(s). +> This is the time to ask any questions to our instructors or let us help you solve problems that you run into. +> +{: .challenge} + +> ## Exercise: Branch coverage versus line coverage +> For your test coverage, have a look at the concept of +> [branch coverage](https://about.codecov.io/blog/line-or-branch-coverage-which-type-is-right-for-you/) as opposed to just line coverage. +> Which do you prefer and why? +> +{: .challenge} + +> ## Exercise: Desirable test coverage +> Look at the projects below and see how much test coverage they have. +> Should 100% line (or branch) coverage always be the goal? Why or why not? +> - [pytest](https://github.com/pytest-dev/pytest) +> - [pyjokes](https://github.com/pyjokes/pyjokes) +> - [scikit-learn](https://github.com/scikit-learn/scikit-learn) +> +{: .challenge} + +> ## Exercise: Coverage badges +> Try to add a [coverage badge](https://github.com/marketplace/actions/coverage-badge) to the inflammation project. +> +{: .challenge} + +{% include links.md %} From 5eb8ad8d1ba2f7b492ddc51964ce506681799d55 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Tue, 27 Aug 2024 12:55:42 +0200 Subject: [PATCH 04/19] Mention optional exercises in instructor notes --- _extras/guide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_extras/guide.md b/_extras/guide.md index 54168c7d6..e35b1f847 100644 --- a/_extras/guide.md +++ b/_extras/guide.md @@ -78,6 +78,7 @@ In addition, a short intro to the section topics is provided on each day, to explain what the students will be learning and doing on that particular day. After that, participants are split into groups and go through the materials for that day on their own with helpers on hand. +Each section holds optional exercises at the end for fast learners to go through if they finish early. At the end of each section, all reconvene for a joint Q&A session, feedback and wrap-up. If participants have not finished all exercises for a section, they are asked to finish them off before the next section starts From 458013aaeefe23f00473171afc5966982d2da1ee Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:13:57 +0200 Subject: [PATCH 05/19] Update _episodes/17-section1-optional-exercises.md Co-authored-by: Matthew --- _episodes/17-section1-optional-exercises.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 9184e4d76..3782c71f3 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -11,8 +11,10 @@ keypoints: --- This episode holds some optional exercises for section 1. -The exercises have an explorative nature, so see what you like to explore. -For the remainder of the lesson we recommend sticking with the tools that were introduced in this section. +The exercises have an explorative nature, so feel free to go off in any direction that interests you. +You will be looking at some tools that either complement or are alternatives to those already introduced. +Even if you find something that you really like, +we still recommend sticking with the tools that were introduced prior to this episode when you move onto other sections of the course. > ## Exercise: Apply to your own project(s) > Apply what you learned in this section to your own project(s). From 714dc1d0f4b10c047e03bb47957288e89785f761 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:15:07 +0200 Subject: [PATCH 06/19] Update _episodes/17-section1-optional-exercises.md Co-authored-by: Matthew --- _episodes/17-section1-optional-exercises.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 3782c71f3..158252654 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -18,7 +18,8 @@ we still recommend sticking with the tools that were introduced prior to this ep > ## Exercise: Apply to your own project(s) > Apply what you learned in this section to your own project(s). -> This is the time to ask any questions to our instructors or let us help you solve problems that you run into. +> This is the time to ask any questions to your instructors or helpers. +> Everyone has different preferences for tooling, so getting the input of experienced developers is a great opportunity. > {: .challenge} From 01f9ac60f3f614a962fde95cee9ea6c8436b8ff5 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:15:20 +0200 Subject: [PATCH 07/19] Fix typo Co-authored-by: Matthew --- _episodes/17-section1-optional-exercises.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 158252654..a3195161d 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -24,7 +24,7 @@ we still recommend sticking with the tools that were introduced prior to this ep {: .challenge} > ## Exercise: Try out different Integrated Development Environments -> Install different Integrated Development Environments (IDEs) and thest them out. +> Install different Integrated Development Environments (IDEs) and test them out. > Which one do you like the most and why? > You can try: > - [Visual Studio Code](https://code.visualstudio.com/) From 847e674d42839550922e6e76995a924f3d2b2ced Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:27:34 +0200 Subject: [PATCH 08/19] Add a note on code editor vs IDE --- _episodes/17-section1-optional-exercises.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index a3195161d..00902be4d 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -31,6 +31,10 @@ we still recommend sticking with the tools that were introduced prior to this ep > - [Atom](https://atom-editor.cc/) > - [Sublime Text](https://www.sublimetext.com/) > +> Technically, compared to PyCharm, the 'IDEs' listed above are source code editors capable of functioning as an IDE. +> To function as an IDE, you have to manually install plugins for more powerful features +> such as support for a specific programming language or unit testing. What do you prefer? +> {: .challenge} > ## Exercise: Customize the command line From a61a41d3ce6cb32d736f3ddc4a95dd2eea994522 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:29:23 +0200 Subject: [PATCH 09/19] Update _episodes/17-section1-optional-exercises.md Co-authored-by: Matthew --- _episodes/17-section1-optional-exercises.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 00902be4d..9830eb93b 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -27,7 +27,7 @@ we still recommend sticking with the tools that were introduced prior to this ep > Install different Integrated Development Environments (IDEs) and test them out. > Which one do you like the most and why? > You can try: -> - [Visual Studio Code](https://code.visualstudio.com/) +> - [Visual Studio Code](https://code.visualstudio.com/), with setup instructions [in the Extras of this course]({{ site.baseurl }}{% link _extras/vscode.md %}) > - [Atom](https://atom-editor.cc/) > - [Sublime Text](https://www.sublimetext.com/) > From 19329a53dfe538101c4278f0a1b67c4b83e685a4 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:36:23 +0200 Subject: [PATCH 10/19] Mention Anaconda license and conda-forge as alternative --- _episodes/17-section1-optional-exercises.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 00902be4d..24e5b5308 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -47,7 +47,9 @@ we still recommend sticking with the tools that were introduced prior to this ep > ## Exercise: Try out different virtual environment managers > So far we used `venv`, but there are other virtual environment managers for Python: > - [Poetry](https://python-poetry.org/). -> - [conda (part of Anaconda Distribution)](https://www.anaconda.com/download) +> - conda, which is part of [Anaconda Distribution)](https://www.anaconda.com/download). +> Anaconda is widely used in academia, but the current license does not allow use for research in most circumstances. +> An open-source alternative is [mini-forge](https://github.com/conda-forge/miniforge). > {: .challenge} From e99a7c7abcf2e9bd1dc0e1f7c9b1a3449df8d841 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:37:47 +0200 Subject: [PATCH 11/19] Update _episodes/25-section2-optional-exercises.md Co-authored-by: Matthew --- _episodes/25-section2-optional-exercises.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_episodes/25-section2-optional-exercises.md b/_episodes/25-section2-optional-exercises.md index 0d4888e4f..d7930b755 100644 --- a/_episodes/25-section2-optional-exercises.md +++ b/_episodes/25-section2-optional-exercises.md @@ -11,8 +11,10 @@ keypoints: --- This episode holds some optional exercises for section 2. -The exercises have an explorative nature, so see what you like to explore. -For the remainder of the lesson we recommend sticking with the tools that were introduced in this section. +The exercises have an explorative nature, so feel free to go off in any direction that interests you. +You will be looking at some tools that either complement or are alternatives to those already introduced. +Even if you find something that you really like, +we still recommend sticking with the tools that were introduced prior to this episode when you move onto other sections of the course. > ## Exercise: Apply to your own project(s) > Apply what you learned in this section to your own project(s). From c7acba2b42c28fcd21262dd98c4bc32017ba3d04 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:37:57 +0200 Subject: [PATCH 12/19] Update _episodes/25-section2-optional-exercises.md Co-authored-by: Matthew --- _episodes/25-section2-optional-exercises.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_episodes/25-section2-optional-exercises.md b/_episodes/25-section2-optional-exercises.md index d7930b755..29612e986 100644 --- a/_episodes/25-section2-optional-exercises.md +++ b/_episodes/25-section2-optional-exercises.md @@ -24,7 +24,8 @@ we still recommend sticking with the tools that were introduced prior to this ep > ## Exercise: Branch coverage versus line coverage > For your test coverage, have a look at the concept of -> [branch coverage](https://about.codecov.io/blog/line-or-branch-coverage-which-type-is-right-for-you/) as opposed to just line coverage. +> [branch coverage](https://about.codecov.io/blog/line-or-branch-coverage-which-type-is-right-for-you/) +> as opposed to just line coverage. > Which do you prefer and why? > {: .challenge} From 546c807435b7b3f7b1fe159bcbfdbd7649308bcd Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:38:02 +0200 Subject: [PATCH 13/19] Update _episodes/17-section1-optional-exercises.md Co-authored-by: Matthew --- _episodes/17-section1-optional-exercises.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index e2cea831b..6a14df159 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -1,5 +1,5 @@ --- -title: "Optional exercises for section 1" +title: "Optional Exercises for Section 1" start: false teaching: 0 exercises: 45 From 1c007f18095c24d318ac0c854c9219706a114efd Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:43:42 +0200 Subject: [PATCH 14/19] Add more guidance to apply to own project challenge section 2 --- _episodes/25-section2-optional-exercises.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_episodes/25-section2-optional-exercises.md b/_episodes/25-section2-optional-exercises.md index 29612e986..43a7aaa37 100644 --- a/_episodes/25-section2-optional-exercises.md +++ b/_episodes/25-section2-optional-exercises.md @@ -18,7 +18,9 @@ we still recommend sticking with the tools that were introduced prior to this ep > ## Exercise: Apply to your own project(s) > Apply what you learned in this section to your own project(s). -> This is the time to ask any questions to our instructors or let us help you solve problems that you run into. +> You can think of adding unit tests, add continuous integration pipelines, +> or measure the test coverage of your project(s) +> This is the time to ask any questions to your instructors or helpers. > {: .challenge} From 44e57a1fb656300bd2ed3180f0cbd211d81c4891 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 17:52:48 +0200 Subject: [PATCH 15/19] Mention more code editors --- _episodes/17-section1-optional-exercises.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index 6a14df159..aa97bea0c 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -26,14 +26,22 @@ we still recommend sticking with the tools that were introduced prior to this ep > ## Exercise: Try out different Integrated Development Environments > Install different Integrated Development Environments (IDEs) and test them out. > Which one do you like the most and why? +> > You can try: > - [Visual Studio Code](https://code.visualstudio.com/), with setup instructions [in the Extras of this course]({{ site.baseurl }}{% link _extras/vscode.md %}) > - [Atom](https://atom-editor.cc/) > - [Sublime Text](https://www.sublimetext.com/) +> - [RStudio](https://posit.co/download/rstudio-desktop/) > -> Technically, compared to PyCharm, the 'IDEs' listed above are source code editors capable of functioning as an IDE. +> Technically, compared to PyCharm, the 'IDEs' listed above are source code editors capable of functioning as an IDE +> (with RStudio as an example). > To function as an IDE, you have to manually install plugins for more powerful features -> such as support for a specific programming language or unit testing. What do you prefer? +> such as support for a specific programming language or unit testing. +> What do you prefer, a lot of tooling out of the box or a lightweight editor with optional extensions? +> +> If you want an even more lightweight setup you can try out these configurable source code editors: +> - [Emacs](https://www.gnu.org/software/emacs/) +> - [Vim](https://www.vim.org/) > {: .challenge} From d85e848f0a053ab96d06c0390907709b0778f701 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 18:08:21 +0200 Subject: [PATCH 16/19] Add more shell options --- _episodes/17-section1-optional-exercises.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/_episodes/17-section1-optional-exercises.md b/_episodes/17-section1-optional-exercises.md index aa97bea0c..5ca1a35de 100644 --- a/_episodes/17-section1-optional-exercises.md +++ b/_episodes/17-section1-optional-exercises.md @@ -46,9 +46,13 @@ we still recommend sticking with the tools that were introduced prior to this ep {: .challenge} > ## Exercise: Customize the command line -> You can customize the command line to make yourself more productive. +> You can customize the command line or use alternatives to `bash` to make yourself more productive. > - Try out [z](https://github.com/rupa/z), a simple tool to more quickly move around directories. -> - Try out [Oh My ZSH](https://ohmyz.sh/), customize the look and feel of your terminal. +> - Try out [Z shell (zsh)](https://zsh.sourceforge.io/), a shell designed for interactive use. +> - Try out [Oh My ZSH](https://ohmyz.sh/), which is a theming and package manager of the `zsh` terminal. +> - Try out [fish](https://fishshell.com/), a smart and user-friendly command line shell. +> - Try out [Bash Prompt Generator](https://bash-prompt-generator.org/), it lets you try out different prompts, +> depending on the information you want displayed. > {: .challenge} From ecabd8c9f609cf74ac32d15418af86da6ac9e3d2 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 2 Sep 2024 18:27:46 +0200 Subject: [PATCH 17/19] Link to optional exercise from episode --- _episodes/13-ides.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/_episodes/13-ides.md b/_episodes/13-ides.md index 7d8e4425c..e2f684cb6 100644 --- a/_episodes/13-ides.md +++ b/_episodes/13-ides.md @@ -572,4 +572,9 @@ Before we move on to fixing errors and writing more code, let's have a look at the last set of tools for collaborative code development which we will be using in this course - Git and GitHub. + +## Optional exercises +Checkout [this optional exercise]({{ site.baseurl }}{% link _episodes/17-section1-optional-exercises.md %}#exercise-try-out-different-integrated-development-environments) +to try out different IDEs and code editors. + {% include links.md %} From 008c106ee0c2dc87678ddfb4b28089fca9310863 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 9 Sep 2024 13:55:47 +0200 Subject: [PATCH 18/19] Refer to optional exercises from section 1 --- _episodes/12-virtual-environments.md | 6 ++++++ _episodes/16-verifying-code-style-linters.md | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/_episodes/12-virtual-environments.md b/_episodes/12-virtual-environments.md index b2d65c7ae..77aa3a301 100644 --- a/_episodes/12-virtual-environments.md +++ b/_episodes/12-virtual-environments.md @@ -568,4 +568,10 @@ It looks like the script expects a list of input files to process, so this is expected behaviour since we don't supply any. We will fix this error in a moment. +## Optional exercises +Checkout [this optional exercise]({{ site.baseurl }}{% link _episodes/17-section1-optional-exercises.md %}#exercise-try-out-different-virtual-environment-managers) +to try out different virtual environment managers. +Or, [this exercise]({{ site.baseurl }}{% link _episodes/17-section1-optional-exercises.md %}#exercise-customize-the-command-line) +to customize the command line. + {% include links.md %} diff --git a/_episodes/16-verifying-code-style-linters.md b/_episodes/16-verifying-code-style-linters.md index 8c228c0f3..f195cd462 100644 --- a/_episodes/16-verifying-code-style-linters.md +++ b/_episodes/16-verifying-code-style-linters.md @@ -195,4 +195,8 @@ $ git push origin develop > run it past Pylint to see what issues with your code are detected, if any. {: .challenge} +## Optional exercises +Checkout [this optional exercise]({{ site.baseurl }}{% link _episodes/17-section1-optional-exercises.md %}#exercise-customize-pylint) +to learn more about `pylint`. + {% include links.md %} From 2c22a6a36db51d4c490efe257bb5c8bc92208410 Mon Sep 17 00:00:00 2001 From: Sven van der Burg Date: Mon, 9 Sep 2024 13:58:10 +0200 Subject: [PATCH 19/19] Refer to optional exercises from episode on code coverage --- _episodes/22-scaling-up-unit-testing.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_episodes/22-scaling-up-unit-testing.md b/_episodes/22-scaling-up-unit-testing.md index 09f3446d4..8fcdd8722 100644 --- a/_episodes/22-scaling-up-unit-testing.md +++ b/_episodes/22-scaling-up-unit-testing.md @@ -350,4 +350,8 @@ Using automated testing where appropriate can save us considerable time, especially in the long term, and allows others to verify against correct behaviour. +## Optional exercises +Checkout [these optional exercises]({{ site.baseurl }}{% link _episodes/25-section2-optional-exercises.md %}#exercise-customize-pylint) +to learn more about code coverage. + {% include links.md %}