New Version Planning

From EDURange
Revision as of 16:54, 28 March 2026 by Jwgranville (talk | contribs) (Functional requirements:)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

As we're still getting started, please feel free to insert notes and comments where you like - just try to avoid changing or deleting things you yourself didn't write. We'll come up with a shared structure as we go. Also consider using the "discussion" tab at the top if you aren't sure where to comment or want to have a dialogue.

These items at the top are on the agenda for discussion, but don't have a clear place they belong yet:

  • POST handler/API reachability
  • Chat capability
  • Containers
  • NSJail, chroot?
  • Physical systems: controlled via ordinary SSH, provisioned with PXE or other net boot methods?
  • How to model shared resources and contention?
  • Staged/prerequisite content in guide/scenario
  • How to refer to observation/logging instruments
  • How do we assess correctness/domain truth in a model of learning objectives?
    • Navigating a filesystem:
      • "Can a student navigate the filesystem?"
        • "Can the student compose an absolute path?"
          • "Does the student use / to begin an absolute path?"
          • "Does the student refer to directories present at the root of the filesystem?"
        • "Do they correctly use find?"
        • "Does the student map correctly between paths and the purposes of the file hierarchy?"
          • "Does the student look for binaries in /bin/?"
        • "Does the student use ~ to refer to their home directory?"
      • What artifacts help to assess this?
  • Sample learning objectives:
    • Hierarchically: course/domain; module/unit; learning objective; concept/skill cluster; knowledge components; tasks
    • Scenario (course): Getting Started
      • A learning objective: Students will be able to navigate the filesystem
        • Compose paths
        • Navigate directories
        • Aware of working directory
        • Understand path substitutions (~, ., etc.)
        • etc...
      • A more specific learning objective (or, alternately, a skill cluster): Student will be able to recognize (name) and locate a hidden file in a known directory
        • Give filename of the file in question
        • Identify the path of the file in question
        • Source and provide information about the file, content in the file
        • Differentiate between a file that is and isn't hidden
      • Task (independent, but linked to learning objectives and knowledge components):
        • Find all the files that end in ".gif" using the find command
      • Knowledge component (independent, linked to tasks):
        • Student uses 'find" when searching files
        • Student uses 'ls' to list and examine available files
        • Student appropriately applies path prefix (absolute or relative)
        • Student composes valid pattern for file extension
  • Quality of life:
    • Authentication/account naming is a system-wide standard/service
      • How does this behave in designs where students are meant to seize other identities?

Functional requirements:

  • 20-300 students simultaneously? Semi-simultaneously? ~150 concurrently, 500+ at large institutions?
  • Telemetry layer for instrument/orchestration health
  • Students are provided a learning environment that is safe to explore/attack without threatening the application host infrastructure
  • Two weeks unattended uptime
  • Per-user resource caps configurable per host (if not per-scenario or finer-grained)

Ubiquitous language:

(See What is Ubiquitous Language? | Agile Alliance, Cosmic Python or DDD Resources - Domain Language)

  • Scenario
  • Learning objectives
    • e.g.
      • "Students will be able to use ls to list the contents of a directory"
      • "Students will be able to log in to the exercise via SSH"
    • Milestone
      • Do these have sufficient resolution to see why/how students arrived at a correct answer?
    • What are indicators of student progress on learning objectives?
      • How do events (such as those matched by milestones) correlate with questions?
        • What are students asking about in help requests?
        • Can we select semantics from log data (commands, chat, questions)?
    • How do we know tangibly that a student is completing learning-related tasks?
  • Questions (are exercises distinct?)
  • Guide
    • Guide section
  • Student
  • Instructor
  • Hint
  • Intervention
  • Prediction
  • Learning environment
    • Underlying system state?
      • What denotes/distinguishes a command?
  • Observability/instrumentation? (Name?)

User stories:

(Supported use cases, written in terms of the ubiquitous language above)

  • Instructors make Scenarios available to Students
  • Scenarios configure the Learning Environment to support Learning Objectives
  • Scenarios may include a Guide to support exercises and tasks in the Learning Objectives
  • The Learning Environment can offer Interventions based on Student performance
  • Students start and stop the Learning Environment of Scenarios made accessible to them (the Learning Environment does not consume resources when not in use)