CIT Course Tools
cit-course-tools gives students one small command-line interface for preparing
a course workspace, exploring deterministic model scenarios, testing cumulative
Python harnesses, and producing consistent lab evidence. It is course-agnostic:
the installed package provides the machinery, while the instructor-provided YAML
file defines what a particular lab teaches and tests.
The goal is a simple student experience with rigorous behavior underneath. The package manages ports, simulator sessions, graph traversal, evidence, fractional scoring, and current-result reports. It does not download course scenario files, AI models, llama.cpp, or other external software.
Install
Python 3.10 or newer is required.
python -m pip install cit-course-tools
To update later in the semester:
python -m pip install --upgrade cit-course-tools
Start a course workspace
Navigate to the directory you want to use and initialize it once:
cit-course init .
The command creates the submitted orientation lab labs/lab00 and the regular
labs/lab01 through labs/lab12, with predictable logs, prompts, and
results directories. It preserves student work and refreshes only the
package-managed Lab 00 guide when needed.
Lab 00 contains interaction-guide.yaml. Download later labs' YAML files from
the course site and place each one in its matching lab directory. The package
does not generate or download course-specific lab suites.
After initialization, start with:
cit-course specs
Review the resulting specs/hardware_specs.txt before sharing it.
Learn the simulator
Start the Model Simulator with labs/lab00/interaction-guide.yaml in one
terminal. The bare command selects it automatically:
cit-course serve
Leave it running, then start the User Simulator in a second terminal:
cit-course run
The guide introduces the package and its simulator workflow without requiring a download. Explore its paths because the submitted Lab 00 evaluation asks questions answered by the guide.
When finished, run the Lab 00 suite and generate its submission files:
cit-course test
Explore a lab scenario
To explore an instructor-supplied lab instead, start its YAML file explicitly:
cit-course serve labs/lab01/lab01.yaml
Then run the User Simulator in a second terminal anywhere inside the same initialized workspace:
cit-course run
The package discovers the active lab automatically. The serve terminal shows
model-service activity; the run terminal stays focused on predefined user
prompts and Model Simulator responses. The Model Simulator uses port 8081 and
the User Simulator uses port 8082 by default.
Run a lab test suite
Bare cit-course test selects Lab 00. For a later early lab that does not
require a student harness:
cit-course test labs/lab01/lab01.yaml
For a cumulative lab implementation in an arbitrarily named Python file:
cit-course test labs/lab03/lab03.yaml --harness labs/lab03/my_lab03.py
The Python file must export one function:
def run_harness(context):
"""Run one complete test-owned interaction session."""
The full suite runs by default. During implementation, rerun only failed, errored, and incomplete steps with:
cit-course test labs/lab03/lab03.yaml \
--harness labs/lab03/my_lab03.py \
--continue
Each selectable prompt-response step is worth no more than one point. If three
of five required checks pass, that step earns 0.60 / 1.00. Infrastructure
errors are reported clearly and excluded from grading.
Every run replaces that lab's current generated files without touching another lab:
labs/lab03/
├── evaluation.md
├── logs/
│ └── evidence.jsonl
└── results/
└── test-summary.md
evaluation.md is created once and never overwritten. Students complete it in
their own words. The evidence trace and test summary are regenerated by the
package and are ready to include in the lab submission.
Hardware report
Create or refresh the optional, privacy-conscious hardware report from anywhere inside the workspace:
cit-course specs
It is written to specs/hardware_specs.txt. Review it before sharing it.
Commands
cit-course init Create or repair the course workspace
cit-course specs Generate the optional hardware report
cit-course serve Start the Model Simulator with the guide or a lab YAML file
cit-course run Start the User Simulator for the active lab
cit-course test Run Lab 00 or an explicit lab suite and replace its report
Run cit-course --help or cit-course COMMAND --help for options.
Instructor and developer references
SCENARIO_AUTHORING.mddocuments the YAML authoring and scoring contract.TECHNICAL_SPECIFICATION.mddocuments components, isolation, evidence, and runtime behavior.PUBLISHING.mdcontains the release checklist.
Run the complete regression suite with:
python -m unittest discover -s tests -v
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cit_course_tools-0.2.1.tar.gz.
File metadata
- Download URL: cit_course_tools-0.2.1.tar.gz
- Upload date:
- Size: 80.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e4ac6defa712ed6359c8078ef53aca0d6eb8e4fe859f3e160e4aaf263405c9
|
|
| MD5 |
30d7be19afe532bff4fa39a2eecd4950
|
|
| BLAKE2b-256 |
6998f1e41228496640cbd029791ffeb5c7f0e3736b922b2e82f84656229fcb04
|
File details
Details for the file cit_course_tools-0.2.1-py3-none-any.whl.
File metadata
- Download URL: cit_course_tools-0.2.1-py3-none-any.whl
- Upload date:
- Size: 68.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3386e6d0cf8d13e07fc40d2c62bb72f0dbda913d962751642986dc06b6952a4
|
|
| MD5 |
59c4dff176b1626c5b39c768b1623fdb
|
|
| BLAKE2b-256 |
86da0cbb6ee0e0c78796c32847afe5938e1a498e3b9310b4912fa1d7a9eecbd8
|