Getting started

Browse through the Exemplars section to find a project that you would like to study. You can also use the Search bar or Topics section to look for projects that use specific languages, tools or scientfic concepts (such as "R", "Object Oriented Programming" or "RNA sequencing").

You can interact with each exemplar through its GitHub repository or through a website (built using Mkdocs Material or Sphinx). Each approach has its own merits. Interacting with an exemplar via its GitHub site gets you closer to the underlying code and teaches you how to organise a project. Using the website provides a clean environment to study the documentation.

Do not forget to run the code as well, each exemplar runs locally and many have High Performance Computing cluster instructions that you can try on the Imperial cluster.

How to get the most out of an exemplar

ReCoDE exemplars are designed around the cognitive apprenticeship model 1, which proposes that complex skills are best learned by making expert practice visible. Each exemplar makes the reasoning behind real research software explicit — not just what was built, but how and why. To get the most from this, we encourage you to engage actively with each of the model's six elements:

  • Modelling — read the documentation carefully and notice the decisions the developer makes. What libraries did they choose, and why? What does the code structure reveal about how experts think?
  • Coaching — you won't have a live expert to hand, but you can replicate this by discussing the exemplar with a colleague, supervisor, or peer, or by posting questions in a relevant community forum.
  • Scaffolding — use the learning outcomes and learner journey at the start of each exemplar to orient yourself. Don't skip the prerequisites.
  • Articulation — as you work through an exemplar, try to explain each design decision in your own words, as if teaching it to someone else. Where exercises are provided, attempt them before looking at solutions.
  • Reflection — compare the approach in the exemplar to how you might have tackled the same problem. What would you have done differently, and why?
  • Exploration — run the code, change parameters, break things, and see what happens. Each exemplar is a living project — treat it as a starting point, not an endpoint.

Happy Computing!


  1. Collins, A., Brown, J. S., & Holum, A. (1991). Cognitive apprenticeship: Making things visible. American Educator, 15(3), 6–11.