New Version Planning
From EDURange
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
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
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 stores:
- 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: