--- tags: research-computing --- # High Performance Python design notes Reverse instructional design/ backwards design https://arc.leeds.ac.uk/training/courses/swd6/ ## Objectives ``` * What do we want our learners to know at the end of our workshop? * What skills do we want our learners to be able to apply at the end of our workshop? ``` At the end of this workshop, learners will be able to: * understand how to use cProfile and line_profiler to profile Python code and identify bottlenecks * understand how to ensure they are using the most appropriate algorithm and package to solve a particular problem * improve the execution time of selected Python code using: * numba * GPU offloading techniques * parallelisation and vectorisation approaches * understand when to use each technique ## How do we know the learning has been successful (assessment)? ``` * M/C tests really good for rapid feedback * Much of this involves setting some learning exercices alongside the content (eg. being able to identify problems in a profiling exercise) ``` Assessment at three levels: * A v. quick m/c check after each new concept (evey 10 mins or so ) * a 10 min activity once or twice an hour (solving a single task problem) eg. a profiling exercise * a couple of 'capststone' exercises- applying a few techiques ## Learning activities * Exercises that you get students to do inbetween your talking * Talk for < 50% of the time! * Learning activities and assessments should take up the remainder of the time ## Learning content (lesson notes/ content) * Very important * Factual content that forms the backbone of knowledge * It's not necessarily "what" you teach.