adds and edits exercises
This commit is contained in:
parent
35d84965e1
commit
e082761458
|
@ -20,7 +20,7 @@ Retrival practice in "basic" importing.
|
|||
def make_example_potion(student_name="ASPP student"):
|
||||
my_potion = potion_class.Potion(student_name=student_name)
|
||||
# Set up your old kettle and light an eternal flame underneath it.
|
||||
my_potion.setup(container=containers.old_kettle)
|
||||
my_potion.setup(container=containers.old_kettle, heat_source="eternal_flame")
|
||||
# Simmer for 5 hours.
|
||||
cooking.simmer(my_potion, duration=5)
|
||||
print(f"You successfully ran make_example_potion, {student_name}, well done :).")
|
||||
|
|
62
exercises/Exercise 3 editable installation workflow.md
Normal file
62
exercises/Exercise 3 editable installation workflow.md
Normal file
|
@ -0,0 +1,62 @@
|
|||
## Exercise 4: Workflow
|
||||
|
||||
#### Goal
|
||||
|
||||
Experience that working with an editable installation does not change how you interact with your code.
|
||||
This is supposed to be easy and fun, so run the inspection often and make mistakes with the potion.
|
||||
|
||||
Use your git skills to commit the changes you made to a new branch, and create a pull request.
|
||||
|
||||
|
||||
#### Tasks
|
||||
|
||||
- Create a new branch.
|
||||
|
||||
- In the `brew_potions.py` file complete the `make_python_expert_potion` function that makes the *Python expert* potion (instructions below).
|
||||
|
||||
- In the `if _ name _ == "_ main _"` part, call the function you are editing and
|
||||
get Professor Snoope to inspect your potion as shown for the example potion.
|
||||
Calling `inspection_by_snoope` should never give you an error, so you will have to read what Snoope does and says to find out what went wrong.
|
||||
|
||||
- Create a pull request.
|
||||
|
||||
##### Brewing instructions
|
||||
|
||||
Make a new potion called `python_expert` according to these instructions:
|
||||
|
||||
```
|
||||
1. Set up a pewter cauldron and light a fire underneath it
|
||||
2. Add fish eyes, unicorn hair and tea leaves
|
||||
3. Let simmer for 2 hours
|
||||
4. Have snoope inspect the potion (use target_potion='python_expert').
|
||||
```
|
||||
|
||||
Use the `if __name__ =="__main__"` block in `brew_potions.py` to create the `python_expert` potion and call Snoope to inspect the potion by calling `inspection_by_snoope` .
|
||||
Make sure you actually call the function you are editing and change the **target** potion for Snoope to `"python_expert"`.
|
||||
|
||||
-------------
|
||||
#### Hints
|
||||
|
||||
1. If you don't understand the instructions, please lift your hand and we will come to explain.
|
||||
|
||||
2. The python expert potion is very similar to the example potion. You may copy that code and
|
||||
adapt it accordingly.
|
||||
|
||||
3. Note that if you copy from the `example_potion()` function, it is missing a crucial step.
|
||||
You can look at the `Potion()` class in `brewing/potion_class.by` for inspiration
|
||||
(it has to do with the ingredients).
|
||||
|
||||
4. Don't forget to change the name of the potion you want Snoope to check to "python_expert"
|
||||
when you call the inspection (in if _ name _ == "_ main _" part).
|
||||
|
||||
|
||||
-------------
|
||||
#### Extra credit
|
||||
|
||||
If you look into the code you will see that there is a cooking method that is defined in the code which we have not used.
|
||||
What happens if you do use it (try both options!) and let Snoope inspect your potion?
|
||||
|
||||
Once you are done, reflect on what you did to find out what the cooking method was
|
||||
- Where did you look, why did you look there first?
|
||||
- How did you figure out what it does? What part of the function did you read first?
|
||||
- Did it work on your first try? If not, how did you try to fix it - trial and error or read documentation?
|
42
exercises/Exercise 5a Virtual Environments.md
Normal file
42
exercises/Exercise 5a Virtual Environments.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
## Exercise 5a: Virtual Environments
|
||||
|
||||
#### Goal
|
||||
|
||||
Create a virtual environment + install a package + see that that package was installed only in environment
|
||||
|
||||
#### Tasks
|
||||
|
||||
We will use `venv` as our environment manager - while commands might differ, the principles apply to all other package managers as well.
|
||||
|
||||
1. Check which Python you are currently using, and which packages are installed. Also check which folders are in the folder you are installing the environment into.
|
||||
3. Create and activate a new environment.
|
||||
4. Check again which Python you are using and which packages are installed - are they different?
|
||||
5. Install a specific version of a package using pip e.g. pandas=1.5.3
|
||||
6. See that dependencies are also installed (more packages than only pandas appear)
|
||||
7. Deactivate and delete the environment
|
||||
8. Check the packages that are installed when no environment is active again (as step 1). Have they changed?
|
||||
|
||||
|
||||
#### Commands in case you get stuck (not in correct order):
|
||||
|
||||
```bash
|
||||
% investigate Python and packages
|
||||
> which python
|
||||
> pip freeze
|
||||
> pip install <package-name>
|
||||
> pip install <package-name>==0.0.1
|
||||
|
||||
% create an environment option 1 (create folder called venv_folder for files related to virtual environment, feel free to change the name)
|
||||
> cd <path-to-project_folder>
|
||||
> mkdir venv_folder
|
||||
> python3 -m venv venv_folder
|
||||
> source venv_folder/bin/activate
|
||||
|
||||
% create an environment option 2
|
||||
> python3 -m venv <path-to-folder-for-venv>
|
||||
> source <path-to-folder-for-venv>/bin/activate
|
||||
|
||||
% deactivate and delete a venv environment
|
||||
> deactivate
|
||||
> rm -rf venv_folder
|
||||
```
|
|
@ -1,30 +0,0 @@
|
|||
## Exercise 4: Workflow
|
||||
|
||||
#### Goal
|
||||
|
||||
Mimic the *write feature* ⇄ *test feature* workflow.
|
||||
|
||||
#### Tasks
|
||||
|
||||
In the `brew_potions.py` file complete the `make_python_expert_potion` function that makes the *Python expert* potion (instructions below).
|
||||
|
||||
Get Professor Snape to inspect your potion as shown for the example potion. Calling `inspection_by_snape` should never give you an error, so you will have to read what Snape does and says to find out what went wrong.
|
||||
|
||||
This is supposed to be easy and fun, so run the inspection often and make mistakes with the potion.
|
||||
|
||||
Use your git skills to commit the changes you made to a new branch, and create a pull request on Github.
|
||||
|
||||
##### Brewing instructions
|
||||
|
||||
Make a new potion called `python_expert` according to these instructions:
|
||||
|
||||
```
|
||||
1. Set up a pewter cauldron and light a fire underneath it
|
||||
2. Add fish eyes, unicorn hair and tea leaves
|
||||
3. Let simmer for 2 hours
|
||||
4. Have Snape inspect the potion (use target_potion='python_expert').
|
||||
```
|
||||
|
||||
Use the `if __name__ =="__main__"` block in `brew_potions.py` to create the `python_expert` potion and call Snape to inspect the potion by calling `inspection_by_snape` . Make sure you actaully call the function you are editing and change the **target** potion for Snape to `"python_expert"`.
|
||||
|
||||
Note that if you copy from the `example_potion()` function, it is missing a crucial step. You can look at the `Potion()` class in `brewing/potion_class.by` for inspiration.
|
Loading…
Reference in a new issue