{"id":23951335,"url":"https://github.com/psteinb/hpccarpentry-mini-intro","last_synced_at":"2026-06-20T14:32:26.013Z","repository":{"id":56417245,"uuid":"310044548","full_name":"psteinb/hpccarpentry-mini-intro","owner":"psteinb","description":"material for our course on hpccarpentry","archived":false,"fork":false,"pushed_at":"2020-11-09T10:34:33.000Z","size":2456,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-24T09:21:44.102Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psteinb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-04T15:36:00.000Z","updated_at":"2020-11-09T10:34:32.000Z","dependencies_parsed_at":"2022-08-15T18:20:27.302Z","dependency_job_id":null,"html_url":"https://github.com/psteinb/hpccarpentry-mini-intro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/psteinb/hpccarpentry-mini-intro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psteinb%2Fhpccarpentry-mini-intro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psteinb%2Fhpccarpentry-mini-intro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psteinb%2Fhpccarpentry-mini-intro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psteinb%2Fhpccarpentry-mini-intro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psteinb","download_url":"https://codeload.github.com/psteinb/hpccarpentry-mini-intro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psteinb%2Fhpccarpentry-mini-intro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34573729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-06T12:59:32.532Z","updated_at":"2026-06-20T14:32:25.991Z","avatar_url":"https://github.com/psteinb.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hpccarpentry-mini-intro\n\nThis repo comprises material for our course on hpccarpentry at the 2020 CodeRefinery Instructor training (Nov 2,3,9). \n\nThe agenda is communicated to learners on the [workshop page](https://coderefinery.github.io/2020-11-02-instructor-training/#monday-nov-9-1250---1700-cet). \n\nThis mini-course is planned from 12:50pm to 5pm, i.e. with a volume of 4 hours. Excluding breaks, we have 3h 20 minutes to our disposal. This README.md is meant as a coarse guideline and central dispatch to further resources.\n\nThere were max 16 people last week so we can probably expect the same. This would mean a minumum of 3 breakout rooms.\n\n# Abstract\n\nIn this half day event, we will take learners on a tour around HPCCarpentry, discuss it's motivation and short history. We will focus on taking a deep dive at lesson development. We will cover best practices for designing lessons, for designing exercises and adjoint learning objectives to structure the process of community driven open educational resources as we understand them. The course will conclude by discussing how application specific teaching materials can be set up and which pitfalls to avoid in this domain. The course will provide room for self-experimentation based on HPCCarpentry material and teaching modules. If time permits, contributions to open-source material are encouraged. \n\nTo prepare for the event, we would love if participants could bring along statistics on how their HPC site is used. For example, it would be lovely if learners could bring a histogram of (successful) job runtimes and other such summary statistics from your site. Besides that, a stable internet connection, your will to communicate and clear audio quality is all that is needed.\n\n# Agenda\n\n| topic                                                  | duration/min | speaker      |\n|:------------------------------------------------------:|:------------:|:------------:|\n| Preface                                                | 2            | Peter        |\n| [HPC Carpentry](slides-hpccarpentry.html)              | 20           | Alan/Peter   |\n| [Devising Material Overview](slides-lessondesign.html) | 20-30        | Peter        |\n| Exercise Pre-Design Topics  in breakouts               | 40           | Peter (Alan) |\n| Review Exercises in breakouts                          | 40           | Peter (Alan) |\n| [FocusCoE overview](slides-focuscoe.html)              | 20           | Alan         |\n| FocusCoE breakouts+discussion                          | 40           | Alan (Peter) |\n| [Portability of lessons](slides-portability.html)      | 10           | Alan         |\n| Wrap-up/feedback                                       | 10           | Alan/Peter   |\n\n\n## Preface\n\nImagine I am asking you to create a lesson material to teach your HPC users about parallelisation which will later be incorporated and run every 6 months at your center. Consider the following:\n\n1. How many teaching hours do you think this material must encompass? In other words, how long do your leaners have to listen to you?\n2. How long will it take you to prepare this material?\n\nEach learner: Take a slip of paper and a pen. Note down the answers for the questions above.\n\n## What is HPC Carpentry? (20 mins including discussion, [slides](slides-hpccarpentry.html))\n\n* introduction to HPC Carpentry and what it's origins and goals are\n* how an HPC Carpentry lesson is structured?\n\n## Devising Material Overview (20-30 minutes, [slides](slides-lessondesign.html))\n\n* how one typically teaches\n* before designing lessons \n  + learner profiles are/how to obtain them\n  + learning objectives\n  + prequisites\n* lesson design \n  + introduce constructive alignment (top-down)\n  + backwards design (bottom-up)\n\n## Exercise Pre-Design Topics \n\n### Exercise Learner Profiles \n\n(Exercise for all, 5-10 minutes)\n\n\u003e ## Environmental Biology\n\u003e \n\u003e Y. is an environmental biologist that uses DNA signatures obtained from\n\u003e soils to study species diversity in the environment. \n\u003e She needs to compare DNA sequences to large databases. So far, she has\n\u003e been able to use web-based tools for her limited datasets.\n\u003e \n\u003e Recently, Y has started working with much larger datasets, and\n\u003e discovered that the online tool she uses has a limit of 50 entries on the\n\u003e online server. \n\u003e She has heard, it should be possible to run the same tool through the\n\u003e command line, and managed to install it on her local Laptop. \n\u003e Now, however, it takes several days before each of the analyses are\n\u003e finished. \n\n\u003e ## Physics (or many other domains!)\n\u003e \n\u003e A new PhD student is given a task to select parameters for their\n\u003e simulation.  They need to run a set of calculations on several thousand \n\u003e combinations of parameters.  One calculation takes several minutes. \n\u003e They set up the problem on their laptop but quickly realise \n\u003e that it would take more than one month to complete the task. \n\u003e They are told to use local HPC but they are not sure how this would help\n\u003e them.\n\n1. Compare this to the learner profiles that you have seen so far. What differences do you see?\n2. Which characteristics do these profiles miss?\n\n### Learning Objectives 1\n\n(Exercise for all, groups of 2, 10 minutes plus 10 to compare)\n\nFormulating Learning Objectives can be hard. We introduced [Bloom's Taxonomy](https://teachtogether.tech/en/index.html#ref-Ande2001) in the presentation. \n\nBefore you start this exercise, give yourself a rating (5 stars = you will complete this exercise with ease, 1 star = you will struggle with this exercise and likely not complete it). Write this rating down somewhere.\n\nJoin up in pairs and formulate one sentence for each of the taxonomy categories (typical verbs to use are listed in brackets at the end of each bullet).\n\n\u003e - **Remembering:** Exhibit memory of previously learned material by recalling facts, terms, basic concepts, and answers. (recognize, list, describe, name, find) \n\u003e Understanding:\n\u003e \n\u003e - **Understanding:** Demonstrate understanding of facts and ideas by organizing, comparing, translating, interpreting, giving descriptions, and stating main ideas. (interpret, summarize, paraphrase, classify, explain) \n\u003e \n\u003e - **Applying:** Solve new problems by applying acquired knowledge, facts, techniques and rules in a different way. (build, identify, use, plan, select) \n\u003e \n\u003e - **Analyzing:** Examine and break information into parts by identifying motives or causes; make inferences and find evidence to support generalizations. (compare, contrast, simplify) \n\u003e \n\u003e - **Evaluating:** Present and defend opinions by making judgments about information, validity of ideas, or quality of work based on a set of criteria. (check, choose, critique, prove, rate) \n\u003e \n\u003e - **Creating:** Compile information together in a different way by combining elements in a new pattern or proposing alternative solutions. (design, construct, improve, adapt, maximize, solve) \n\nAs an example, choose one of the following topics:\n- `ssh`\n- `scp`\n- any single command from the HPC domain that you could teach\n\nAt the end of this exercise, each pair should have at least 6 sentences available - one for each of the categories above.\n\nAfter we compared the learning objectives, rate yourself again with 1 to 5 starts. Compare this rating to what you wrote down before the task. If the ratings are the same, congratulations! If the ratings differ, what does that tell you?\n\n### Learning Objectives 2\n\n(Exercise for all, 6 breakout rooms for each of hpc-intro episodes 12-17.md, 10minutes + 10 to compare)\n\nLearning objectives are a key ingredient in either backwards lesson design or constructive alignment. Consider the HPCCarpentry learner profiles from above. Derive at least six high level learning objectives from them. Compare them! Is there anything missing?\n\n### Learning Objectives 3\n\n(Exercise for all, 6 breakout rooms for each of hpc-intro episodes 12-17.md, 10minutes + 10 to compare)\n\nEach breakout room is assigned one hpc-intro lesson. \n- https://hpc-carpentry.github.io/hpc-intro/12-cluster/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/12-cluster.md)\n- https://hpc-carpentry.github.io/hpc-intro/13-scheduler/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/13-scheduler.md)\n- https://hpc-carpentry.github.io/hpc-intro/14-modules/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/14-modules.md)\n- https://hpc-carpentry.github.io/hpc-intro/15-transferring-files/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/15-transferring-files.md)\n- https://hpc-carpentry.github.io/hpc-intro/16-parallel/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/16-parallel.md)\n- https://hpc-carpentry.github.io/hpc-intro/17-resources/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/17-resources.md)\n\nConsider the objectives in the episode frontmatter (top part of the `.md` file that reads like `yaml`). Which of the learning objectives found here match those that you isolated in Learning Objectives 2? \n\nCreate a list of:\n- which LOs match the list you obtained from the personas?\n- which LOs are missing that relate to the topic at hand?\n- which LOs are listed that do not match to any persona?\n\n\n## Review Exercises in breakouts \n\nFormative assessment (for the teacher and for the student) and summative assessment (where learners are graded and teaching outcomes are collected) are two essential tools to effective teaching.\n\nFor a recap of exercise types and templates, consult [this post](https://third-bit.com/2017/10/16/exercise-types.html).\n\nEach breakout room is assigned one hpc-intro lesson. \n- https://hpc-carpentry.github.io/hpc-intro/12-cluster/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/12-cluster.md)\n- https://hpc-carpentry.github.io/hpc-intro/13-scheduler/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/13-scheduler.md)\n- https://hpc-carpentry.github.io/hpc-intro/14-modules/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/14-modules.md)\n- https://hpc-carpentry.github.io/hpc-intro/15-transferring-files/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/15-transferring-files.md)\n- https://hpc-carpentry.github.io/hpc-intro/16-parallel/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/16-parallel.md)\n- https://hpc-carpentry.github.io/hpc-intro/17-resources/index.html, [src](https://github.com/hpc-carpentry/hpc-intro/blob/gh-pages/_episodes/17-resources.md)\n\n\n### Review Exercises 1 (5 minutes)\n\nGo through your hpc-intro lesson. Classifiy existing exercises as formative or summative.\n\n### Review Exercises 2 (20 minutes + 10min for comparison of PRs)\n\nGo through your hpc-intro lesson. Conceive at least one more exercise as a group!\n\n- first identify which learning objective you want to tackle\n- decide if a formative or summative targetted exercise is helpful to the lesson\n- create PR to the repo with this exercise (we will discuss this PR when reconvening)\n\n### Wrap-up\n\n\n## Lesson development for Centres of Excellence\n\nFocusCoE has funded the creation of a template lesson on how to run a community code **at scale**. The idea being that such a lesson might be useful to CoEs who typically have a marquee scalable application. We chose LAMMPS as the test case because it is used heavily by the E-CAM community and development on top of LAMMPS is very common. \n\n### Overview of lesson design (20 minutes)\n* What are the learner profiles?\n* What are the objectives?\n* What are the prerequisites?\n\n### Breakout session - Review and critique (part of) an episode of the lesson (40 minutes, 30 + 10 for discussion after)\n\nAssuming 3 breakout rooms, possible episodes are:\n1. https://fzj-jsc.github.io/tuning_lammps/01-why-bother-with-performance/index.html\n2. https://fzj-jsc.github.io/tuning_lammps/02-hardware-performance/index.html\n3. https://fzj-jsc.github.io/tuning_lammps/03-benchmark-and-scaling/index.html\n\nSome possible points to reflect on are:\n* Are the objectives of the episode clear\n  * Are they reflected in the episode content\n* Is the content clear\n  * If there are metaphors, are they clear? Can you suggest improvements?\n  * Are the examples clear? Can they be done in a reasonable amount of time? Are there potential pitfalls? Are they motivating?\n  * Is something missing? \n\n### How did we tackle lesson portability? (10 minutes)\n\nLooking over the strategies we used to allow us to make the lessons portable between resources.\n\n\n# How to use this repo\n\nThis repo requires `pandoc` to translate the content from any markdown file to static html pages (which are part of this repo as well). To build, do the following:\n\n```\n$ make prepare (optional)\n# downloads reveal.js\n$ make \n```\n\nAny files that match `slides-*.md` are the source code for the slidedecks created under `slides-*.html`. For an introduction on how to use pandoc+markdown to create HTML based reveal.js slidedecks, please readup on [pandoc's documentation on slide shows](https://pandoc.org/MANUAL.html#slide-shows).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsteinb%2Fhpccarpentry-mini-intro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsteinb%2Fhpccarpentry-mini-intro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsteinb%2Fhpccarpentry-mini-intro/lists"}