Skip to content

Document classroom management tools for training sessions #23

@cuihtlauac

Description

@cuihtlauac

Description

When using this devcontainer for tutorials and training sessions, instructors need tools for classroom management: distributing quizzes, collecting answers, sharing live terminal sessions, and monitoring student progress. There is no single open source tool that covers all these needs, but a recommended combination should be documented.

Research: Open Source Options

Full Classroom / LMS Platforms

  • ClassroomIO — Modern open source LMS with quizzes (multiple-choice, true/false, short answer), assignments, grading, certificates. Clean UI, minimal setup.
  • BigBlueButton — Virtual classroom with polls, quizzes with real-time results, whiteboard, collaborative editor, chat. Integrates with Moodle.
  • OpenEduCat — Classroom management with electronic quiz creation, grading, and performance analytics.

Screen / Desktop Sharing & Monitoring

  • Veyon — Cross-platform computer control. Teacher can share screen, monitor student screens, lock machines, chat. Good for in-person labs.

Live Coding / Terminal Sharing

  • tmate — Instant terminal sharing via URL. Read-only mode available. Works well with `devcontainer exec`.
  • Coding Rooms — Real-time view/edit/comment on student code (not fully open source).

Code Distribution & Collection

  • GitHub Classroom — Distribute exercises and collect solutions via repos (free, not open source).

Notebook Distribution Workflow

For instructors using Jupyter notebooks (#20), a distribution workflow is needed:

  • Git + Docker: KC Sivaramakrishnan's approach — course repo with notebooks, students clone and run in Docker container. Simple but requires git knowledge.
  • GitHub Classroom + nbgrader: Distribute assignment notebooks via GitHub Classroom repos, students complete them in the devcontainer's JupyterLab, collect via `gh classroom clone student-repos`, grade with nbgrader.
  • JupyterHub: Multi-user Jupyter server where instructor pushes notebooks to student accounts. More infrastructure but zero git requirement. Overkill for most training sessions.
  • Reference: patricoferris/ocaml-teaching has a working nbgrader example built on KC's images.

Proposed Action

Add a `docs/classroom-setup.md` guide recommending a practical toolset for OCaml training sessions using this devcontainer. A pragmatic combination might be:

  1. BigBlueButton — video/screen sharing and polls
  2. GitHub Classroom — distributing exercises, collecting solutions
  3. tmate — sharing live terminal sessions with trainees

Acceptance Criteria

  • Recommended classroom tools are documented
  • Integration with the devcontainer workflow is explained (e.g., tmate inside the container)
  • Setup instructions are provided for at least one recommended combination
  • Notebook distribution options are documented for Jupyter-based teaching

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions