Skip to main content

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 labs/lab01 through labs/lab12, along with predictable logs, prompts, and results directories for each lab. It preserves existing student files and populated guidance files.

Download each lab's YAML file from the course site and place it in the matching lab directory. cit-course deliberately does not generate or download course YAML files. The package includes only a generic interaction guide and internal regression fixtures; it does not include any course's lab test suites.

Learn the simulator

Start the Model Simulator with the packaged interaction guide in one terminal:

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 downloaded lab file.

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

For an 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 the lab suite and replace its current report

Run cit-course --help or cit-course COMMAND --help for options.

Instructor and developer references

  • SCENARIO_AUTHORING.md documents the YAML authoring and scoring contract.
  • TECHNICAL_SPECIFICATION.md documents components, isolation, evidence, and runtime behavior.
  • PUBLISHING.md contains 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

cit_course_tools-0.2.0.tar.gz (77.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cit_course_tools-0.2.0-py3-none-any.whl (66.7 kB view details)

Uploaded Python 3

File details

Details for the file cit_course_tools-0.2.0.tar.gz.

File metadata

  • Download URL: cit_course_tools-0.2.0.tar.gz
  • Upload date:
  • Size: 77.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.2

File hashes

Hashes for cit_course_tools-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5c350b39198a43ef2cd5b230ddace78cbd45bfa5e123c76a86dfdc289f1ef56d
MD5 5d27e4c4abf755a9363645f67c6f7ee8
BLAKE2b-256 cd927a51f45e4712eb5452ca1a51a1ac0a7356bda185902a930488761ad75c14

See more details on using hashes here.

File details

Details for the file cit_course_tools-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cit_course_tools-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ca3cdd93fcd9d6a5f64715c8eeba2d9b087547e0287afe9110ec253511ddee48
MD5 5d80be768b88584ec7677200be8f84e2
BLAKE2b-256 f1bef38307403f41468ad6343808dd5139d5068a017e4ab0905260bf0077b345

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page