Every course is organized into chapters, which contain between 8-16 exercises. DataCamp supports a variety of different exercise types, each of which consists of several "blocks." Blocks are described in the article Coding exercise anatomy. Interactive exercises are what makes DataCamp more effective than merely reading a book or online tutorial. We are continually expanding our repertoire of exercise types, but this article describes the ones that are currently available and gives some guidelines on how to employ them effectively.
Video Exercise. Video exercises include a slide deck and a script that will be recorded and spliced together to create a video. Videos should contain dynamic slides and visuals and a narrative that clearly defines the learning objective for that lesson. All lessons begin with a video exercise.
Coding Exercise. Coding exercises are the most common type of exercises on DataCamp. These exercises require students to write and submit code in a single step. If the code you want to teach students is clear and linear, without intermediate steps, this is likely the best type of exercise for you.
Iterative Exercise. These exercises are useful for iterating over a single concept. For example, are you demonstrating different plot types with slightly modified code? Then an Iterative Exercise is for you. You can also use this type of exercise for bits of code that relate to each other, but don’t necessarily build on each other.
Sequential Exercise. These exercises are good for code that builds on itself. This exercise type allows students to view the code output of one step before proceeding to the next step. A cool feature of Sequential Exercises is that you can mix exercise types. Are you assessing a model and understanding some of the model metrics is integral to understanding the code? In Sequential Exercises, you can add a Multiple Choice with Console step after a Coding Exercise step to first show the student how to write the code and then have the student interpret the results in a final step.
Multiple Choice Exercise. These exercises are typical multiple-choice questions; you provide between 3-5 possible answers to a question along with a feedback message to each possible answer. Distractors, i.e., wrong answers, and their feedback messages should be well-thought-out to ensure that students can learn from their mistakes. These exercises are good for concepts but must be kept to a strict minimum in your course.
Multiple Choice with Console Exercise. These exercises are multiple-choice questions that allow students to use the console as a sandbox to help them choose the correct answer. These exercises are useful when you want students to understand the output of their code (and how they got there).
Drag and Drop Exercise. These are conceptual exercises with several variants.
- Classify: Learners classify items from a list into groups by dragging cards from a stack and dropping them into the correct bucket.
- Order: Learners order a list of items based on specified criteria by dragging them and dropping them in the appropriate position.
- Parsons: Learners are presented with correct, but mixed up, lines of code and must put them in the correct order with correct indentation by dragging and dropping them.
- Whenever possible, choose a coding exercise over a non-coding exercise: people come to us for hands-on instruction, and having them use what they're learning right away improves retention.
- Whenever possible, choose a Drag and Drop exercise over any multiple-choice exercise, and choose a Multiple Choice with Console exercise over a pure Multiple Choice exercise.
- Whatever types of exercises you choose, it is essential that they be reproducible: anyone with the right software must be able to re-run them and get the answer that you expect. This requirement means that it isn't practical to use live data feeds in exercises, since their contents may change outside of your control. Instead, you should always rely on archived datasets (either those included with the packages you are teaching or those you have explicitly covered in your lesson).