New Version Planning: Difference between revisions

From EDURange
Jump to navigationJump to search
No edit summary
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
''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
* POST handler/API reachability
* Chat capability
* Chat capability
* Containers
* Containers
* NSJail, chroot?
* NSJail, chroot?
* Physical systems: controlled via ordinary SSH, provisioned with PXE or other net boot methods?
* How to model shared resources and contention?
* How to model shared resources and contention?
* Staged/prerequisite content in guide/scenario
* Staged/prerequisite content in guide/scenario
* How to refer to observation/logging instruments
* 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: ===
=== Functional requirements: ===


* 20-300 students simultaneously? Semi-simultaneously? ~150 concurrently
* 20-300 students simultaneously? Semi-simultaneously? ~150 concurrently, 500+ at large institutions?
* Telemetry layer for instrument/orchestration help
* 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: ===
=== Ubiquitous language: ===
 
(See [https://agilealliance.org/glossary/ubiquitous-language/ What is Ubiquitous Language? | Agile Alliance], [https://www.cosmicpython.com/book/preface.html Cosmic Python] or [https://www.domainlanguage.com/ddd/ DDD Resources - Domain Language])
* Scenario
* Scenario
* Learning objectives
* Learning objectives
** e.g.
** e.g.
*** "Students will be able to use ls to list the contents of a directory"
*** "Students will be able to use ls to list the contents of a directory"
*** "Student can log in to the exercise via SSH"
*** "Students will be able to log in to the exercise via SSH"
** Milestone
** 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?)
* Questions (are exercises distinct?)
* Guide
* Guide
Line 29: Line 77:
* Prediction
* Prediction
* Learning environment
* Learning environment
** Underlying system state?
*** What denotes/distinguishes a command?
* Observability/instrumentation? (Name?)
* Observability/instrumentation? (Name?)


=== User stores: ===
=== 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)

Latest revision as of 16:54, 28 March 2026

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)