CfRR Course Standards#
Welcome to the Contributor Guidelines page! To ensure consistency and quality across all our courses, we have established specific standards for different programming languages. These guidelines will help you understand the preferred tools and formats for delivering course content.
Language-Specific Standards#
Python#
For Python courses, we have decided to use Jupyter notebooks. Jupyter notebooks provide an interactive environment where learners can write and execute Python code, visualize data, and annotate their code with markdown cells. This format is ideal for Python courses because it allows for seamless integration of code and explanatory text, making it easier for learners to follow along and understand complex concepts.
Guidelines for Python Courses:#
Use Jupyter notebooks (
.ipynb
files) for all course materials.Ensure that code cells are well-commented and include explanations in markdown cells.
Include visualizations and plots where applicable to enhance understanding.
Use Jupyter widgets or interactive elements to create engaging learning experiences.
Test all notebooks to ensure they run correctly from start to finish.
R#
For R courses, we recommend using learnr tutorials where appropriate. The learnr package in R enables the development of interactive tutorials that incorporate markdown-formatted text, R code examples, exercises, and quizzes. This format is especially well-suited to R instruction, as it offers learners hands-on practice with immediate feedback within a single, cohesive document. However, if the course content is better served by an alternative format, instructors are encouraged to use their professional judgment in selecting the most effective approach.
Important
If you are updating a course that includes a learnr tutorial (e.g., Regression Analysis with R), please ensure that any changes made to the learnr content are also reflected in the corresponding self-study notes on the website, so the two remain aligned.
These tutorials are distrbuted as an R package cfrr-r-tutorials and should be developed in that repo. A homepage, with details on the course and instructions for how to launch the tutorial should be included in this repo.
Guidelines for R Courses:xw#
Use learnr tutorials (
.Rmd
files) for all course materials.All courses will have a pre-requisite that the participants have some familiarity with R, however the precise details to what is this includes will depend on the course , and needs to be defined.
Incorporate interactive code exercises and quizzes to reinforce learning.
Ensure that tutorials are self-contained and include all necessary data and instructions.
Use clear and concise explanations in markdown to guide learners through the content.
Test all tutorials to ensure they function correctly and provide accurate feedback.
Adding an R Kernel to Jupyter Notebooks#
To run the R code within the Jupyter Notebooks used in this repository you will need an R kernel, which you can acquire by following the steps below.
Install R#
Install R from the official CRAN website: https://cran.r-project.org/
Alternatively, on Linux:
sudo apt update
sudo apt install r-base
Install IRKernel from R#
Open R (in terminal or RStudio) and run:
install.packages("IRkernel")
IRkernel::installspec(name = "ir", displayname = "R")
name
: Internal name used by Jupyterdisplayname
: Name shown in the Jupyter interface
This will register the R kernel with Jupyter.
Verify Installation#
Run:
jupyter kernelspec list
Course Delivery#
Courses may be delivered in different ways depending on the tools available and the nature of the content. It’s important to adhere to the standards outlined above to maintain consistency and quality across all courses.
Conclusion#
By following these language-specific standards, contributors can help us create high-quality, consistent, and engaging learning experiences for our learners. Thank you for your contributions!
Additional Resources#
For more detailed guidelines and resources, please refer to the following links:
We appreciate your cooperation and look forward to your valuable contributions!