carpentries-incubator / carpentries-incubator/pando-python

Add exercises based on PredatorPrey example to optimisation section

Open
#9 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
6
Forks
12
Avg merge
4h 35m
Merged PRs (30d)
2

Description

_[Moved over from https://github.com/RSE-Sheffield/pando-python/issues/53]_

> Raised by Louise Bowler/Jost Migenda ([@JostMigenda](https://github.com/JostMigenda)) (KCL RSE), that the PredatorPrey code/exercise from the profiling section could be used to demonstrate many of the patterns in practice.
>
> Currently there are no interactive exercises within the optimisation part of the course (this was highlighted by one of their attendees!).
>
> General plan discussed would be to de-optimise the initial exercise's code, then create exercises that allowed attendees to apply identified optimisations and see the impact.
>
> e.g. they already identified it would be possible to optimise the grass eaten function with vectorisation.
>
> Due to concerns over timing (and course becoming over a day's worth of content), the exercises wouldn't ask attendees to profile the code themselves (although this could be left as optional homework), instead providing them with the relevant snippet of code and potentially profiler output.
>
> The predator prey code could also be expended to emit a built in runtime after execution for convenience.
>
> **TODO**
>
> * [ ] Identify several appropriate optimisations
> * [ ] a)....
> * [ ] b)....
> * [ ] c)....
> * [ ] Draft exercises for these optimisations
> * [ ] a)....
> * [ ] b)....
> * [ ] c)....
> * [ ] Review impact on profiling exercises
>
> * [ ] Does it make it significantly more expensive to profile on bad uni pcs?
> * [ ] Do the results of profiling change, what is being taught/explained.
> * [ ] Review delivery
>
> * [ ] e.g. what's the implication on timing/flow?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.