New Version Planning: Difference between revisions
From EDURange
Jump to navigationJump to search
Jwgranville (talk | contribs) Add learning objective examples |
Jwgranville (talk | contribs) |
||
| (19 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 | |||
* 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 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 | ||
** "Students will be able to use ls to list the contents of a directory" | ** 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 | ** 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 25: | Line 77: | ||
* Prediction | * Prediction | ||
* Learning environment | * Learning environment | ||
** Underlying system state? | |||
*** What denotes/distinguishes a command? | |||
* Observability/instrumentation? (Name?) | |||
=== User | === 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?"
- "Can the student compose an absolute path?"
- What artifacts help to assess this?
- "Can a student navigate the filesystem?"
- Navigating a filesystem:
- 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
- A learning objective: Students will be able to navigate the filesystem
- 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?
- Authentication/account naming is a system-wide standard/service
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 events (such as those matched by milestones) correlate with questions?
- How do we know tangibly that a student is completing learning-related tasks?
- e.g.
- Questions (are exercises distinct?)
- Guide
- Guide section
- Student
- Instructor
- Hint
- Intervention
- Prediction
- Learning environment
- Underlying system state?
- What denotes/distinguishes a command?
- Underlying system state?
- 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)