What is a FOUNT Courselet?

At the heart of the FOUNT project lies a steadfast commitment to revolutionizing hands-on learning in the realm of data systems education. We believe in the power of merging digital content with accessible, state-of-the-art resources. This synergy not only enhances the learning experience but also bridges the gap between theoretical knowledge and practical application. Our guide is designed with this philosophy in mind, offering a comprehensive pathway for educators and learners to engage with, create, and utilize digital educational modules. It’s more than just content; it’s about crafting a dynamic and interactive learning journey.

Courselets Overview

Courselets are innovative, bite-sized educational modules that you can run on Chameleon Cloud infrastructure. These modules are implemented in the popular Jupyter notebook format and designed for interactive learning. In this guide, we explain the key components of a courselet, how they are implemented, and the ways they can be shared and adapted. This guide is aimed at educators looking to develop and incorporate courselets into their teaching.

What are courselets?

A courselet is a teaching module that supports interactive exploration of the concept being taught. It is intended to capture a “bite-size” unit of knowledge; for example, a courselet on data caching might include a simple demonstration or experiment that measures and compares the effectiveness of different caching techniques along with expository material. A corresponding homework assignment might include developing variations of this experiment on different hardware, with different configurations, or using different caching algorithms, cache sizes, and cache device speeds.

A courselet (or set of courselets) is intended to represent an element of a class, a prerequisite for a class, or potentially even an entire class. Ideally, courselets will include a description of dependencies so that they can be combined in various ways to create customized pathways through a specific topic.

How are courselets implemented?

A courselet will consist of interrelated digital artifacts that pertain to a specific lesson. The main part of a courselet consists of a Jupyter notebook (or a set of notebooks) that combines course content with actionable elements, i.e., an implementation of a demonstration or experiment and its analysis. Courselets leverage the ability of Jupyter to support text for the explanation of courselet objectives. And Jupyter’s integration with Chameleon (and eventually other testbeds) facilitates provisioning resources, creating an experimental environment, supporting experiment-specific workflows, and ultimately enabling the presentation and scrutiny of results.

How are courselets shared?

The primary vehicle for developing, sharing, and discovering the course modules will be the Trovi platform which supports public as well as private forms of sharing, versioning, and derivation of artifacts. Trovi also tracks metrics and statistics of artifact usage. It is integrated with Chameleon to provide “one-click” execution and it provides open interfaces supporting integration with other testbeds and clouds. Trovi is also integrated with Git and Zenodo so that curriculum developers can import/export artifacts to/from those publishing platforms.

Resources for Sharing Digital Artifacts on Trovi

For information on how to package an artifact to publish on Trovi, see the documentation online. To upload an artifact, you must log in to Chameleon Cloud (see the Getting Started guide for how to set up an account).

Once you have your courselet’s digital artifacts published on Trovi, you can apply for a FOUNT badge to display next to your Trovi artifacts and identify them as courselets. Artifacts with FOUNT badges will also appear on the FOUNT website. Project staff will assess submitted artifacts for badge eligibility according to the criteria described below in the Courselet Structure section. We provide a template for developers to refer to when developing their notebooks as courselets for FOUNT badges on Trovi.

Feedback on Courselets

Each FOUNT artifact on Trovi should have at least one author associated with it whom users can contact if they wish to provide feedback on a courselet. You may also consider providing an optional survey for students to complete at the end of a courselet.

Support for your artifact is also important. Each courselet should identify support mechanisms for users who need assistance with the content.

Continued Contributions to Courselets

Each artifact should list a designated maintainer to manage updates, versioning, and changelog publication.

In addition to sharing and using FOUNT courselets on Trovi, we also encourage users to extend and build on courselets to suit their unique needs in the classroom or for individual study. For this reason, we ask that users who create FOUNT courselets also consider publishing their courselets to Zenodo or GitHub, via their integrations with Trovi, to facilitate the discovery of artifacts, contributions from the broader community, and proper citations to original courselets as they evolve or become integrated into other materials.

Courselet Structure

Each courselet you craft for Trovi is an educational building block tailored to specific learning outcomes. To harmonize with FOUNT’s criteria and facilitate peer review, your courselet’s description card should include the following sections.

Teaching Objective

Core Learning Outcomes: Clearly articulate the competencies or knowledge the courselet imparts. Employ precise verbs from Bloom’s taxonomy to define what learners will be able to accomplish. Identify what learners will have achieved at the end of the courselet.

Examples:

  • Analyze cloud computing architectures using Chameleon resources.
  • Design and implement a data caching algorithm with varied hardware configurations.

Courselet Usage Logistics

Intended Learners: Specify the courselet’s target audience, from novices to experts. Detail any prerequisites, such as prior knowledge or roles (e.g., students, instructors), and whether the courselet is intended for classroom use, individual study, or other contexts.

Examples:

  • This courselet is designed for beginning CS undergraduates to be used in a classroom setting and administered by an instructor.
  • This courselet is designed for individual study. Prerequisite knowledge of computer architecture is recommended.

Licensing & Support: Declare the courselet’s license and support avenues available, like forums or helpdesk contacts.

Examples:

  • License: Creative Commons Attribution 4.0 International (CC BY 4.0).
  • Support: Dedicated forum for Q&A, plus weekly virtual office hours for live assistance.

Resource Requirements: What infrastructure resources are required to run this experiment? What is the rough estimated quantity of Chameleon service units required to run this experiment? If there are other testbeds and/or resources your courselet can run on this is also a good place to describe them.

Examples:

  • Number and type of bare metal resources
  • Number and type of “scarce” bare metal resources (e.g. GPU nodes)
  • Number and type of edge devices
  • Number and type of VMs
  • Number of floating IPs

Hands-on Component of the Courselet

Setting Up the Environment: Offer clear, step-by-step programmatic guidance for establishing the courselet’s infrastructure on Chameleon. The guidance should preferably be implemented as a program  (i.e., via python-chi or CLI/bash interface to Chameleon) within a Jupyter notebook and capable of repeatable execution. Any non-programmatic actions (e.g., using GUI or out of band command-line instructions) to establish the environment should be clearly documented in the Jupyter notebook text.

Examples:

  • A program using OpenStack commands to allocate resources, launch instances, and configure network settings.

Engagement in Experimentation: Describe the interactive, hands-on element that aligns with the learning objectives, whether it’s through simulations, coding exercises, or data analyses.

Examples:

  • Simulation: Engage in a network traffic simulation to apply congestion control strategies.
  • Data Analysis: Use Jupyter Notebooks to perform real-time data visualization tasks.

Analysis of Results

Present methods for learners to assess their work. These could range from lab reports to quizzes, ensuring each form is applied with a purpose.

Examples:

  • Lab Reports: Compile findings and interpretations after conducting a distributed database experiment.
  • Quizzes: Test understanding of key concepts post-courselet with a short quiz.

Additional Documentation – Optional

If applicable, include links to external readings, specialized instructions, or documents tailored for different roles within the courselet.

Examples:

  • External Readings: Links to foundational papers on network security protocols.
  • Specialized Instructions: Step-by-step guide for setting up a secure VPN tunnel for data transfer.

Further Exploration – Optional

Propose ways learners can deepen their understanding or apply skills in new contexts, like follow-up projects or advanced topics.

Examples:

  • Advanced Exercise: Extend the basic caching algorithm to account for varying access patterns.
  • Research Topic: Explore the implications of edge computing on IoT security.

Courselet Examples

Refer to existing exemplars for inspiration:

  • Data Acquisition | Generic Remote Data – In this courselet, the students will learn to acquire data from the World Wide Web space. Students will learn to use Python tools to extract data from generic websites and collect from multiple sources in an automated and respectful manner, taking the students from the point of acquiring data to a simple Python application for analysis.
  • Data Visualization Using Charts – Charts are graphical representations of data that are used to help people visualize and understand information. They can come in many different forms, each of which is designed to convey specific types of information in an easy-to-understand format.
  • AutoLearn Autonomous Cars – Open-source educational module that conveys accessibility to education, aiming to prepare learners for technological career paths. Our educational module is developed with the motivation to bring hands-on sessions and allow students to attain knowledge in a comprehensive manner. Specifically, we present AutoLearn: Learning in the Edge to Cloud Continuum, an educational module that integrates a collection of educational artifacts, based on a small scale open-source self-driving platform that leverages the Chameleon Cloud testbed to teach cloud computing concepts, edge devices technology, and artificial intelligence driven applications.

You can also browse other FOUNT courselets here.

Submitting a Courselet for a FOUNT Badge

To make a courselet easier to find we encourage authors to apply for a FOUNT badge. The FOUNT badge serves as a verification that your courselet meets the standards for high-quality educational artifacts. The badge also serves as a useful tag for other users to discover courselets on the Trovi platform.

Courselets submitted for a FOUNT badge will be reviewed on a case-by-case basis and evaluated according to the Courselet Structure above. Once approved, your associated artifact(s) on Trovi will appear with a FOUNT badge next to it. Structuring your courselet based on the template we provide when submitting courselets for FOUNT badges on Trovi ensures consistent reporting and comprehension of each courselet’s components. It also helps us review things quicker!

To apply for a FOUNT badge, please fill out our online application form at https://fount.cs.uchicago.edu/trovi-fount-badge-application/. You will need to provide your name, email, the URL to your Trovi educational artifact, and the title of your artifact.