This warmup assignment introduces the course workflow using a tokenization implementation based on OpenAI's tiktoken. Your tasks are to:
- Test - Run the provided test suite (adapted from Stanford CS336)
- Package - Follow the submission workflow to create a deliverable archive for Gradescope
- Transfer - Transfer and Run on Remote Machine
This assignment introduces you to the course’s development environment, testing framework, and deployment pipeline.
cse599o-assignment0/
├── README.md
├── pyproject.toml
├── Dockerfile
├── test_and_make_submission.sh
├── cse599o_warmup/
│ └── tokenizer.py
└── tests/
├── __init__.py
└── test_tokenizer.py
We manage our environments with uv to ensure reproducibility, portability, and ease of use.
Install uv here (recommended).
Alternatively, you can install via command line:
pip install uvor
brew install uvWe recommend reading about managing projects in uv here.
Ensure your solution passes all tests:
uv run pytestuv runautomatically creates a virtual environment and installs dependencies frompyproject.tomlpytest -qruns the test suite quietly, failing fast on errors
Goal: We expect to see output similar to:
==20 failed, 3 passed, 1 xfailed in 4.65s ==
This indicates some tests are passing while others are failing, which is expected for the initial state of the assignment.
Your task: Implement the missing functionality in the tokenizer to make all tests pass. Focus on the decode method in cse599o_warmup/tokenizer.py - typically one line of code is sufficient.
Goal: After implementation, running uv run pytest should show:
== 23 passed, 1 xfailed in 4.60s ==
This indicates all core functionality is working correctly.
Generate the submission archive:
bash ./test_and_make_submission.sh This command:
- Collects your code, configs, and metadata
- Creates a submission ready for submitting to Gradescope
Goal: cse599o-fall2025-assignment-0-submission.zip should appear in the repo root.
We have two machines available for this course: "tomago.cs.washington.edu" and "tempura.cs.washington.edu". You can login to either using your UW NetID.
First, test SSH access to one of the course machines:
ssh UWNetID@tomago.cs.washington.edu
# or
ssh UWNetID@tempura.cs.washington.eduTransfer your submission archive from your local machine to the remote server:
scp ./cse599o-fall2025-assignment-0-submission.zip UWNetID@tomago.cs.washington.edu:/homes/iws/UWNetID
# or
scp ./cse599o-fall2025-assignment-0-submission.zip UWNetID@tempura.cs.washington.edu:/homes/iws/UWNetIDOn the remote machine, extract and test your submission:
unzip ./cse599o-fall2025-assignment-0-submission.zip -d assignment0
cd assignment0
uv run pytestGoal: We expect to see output similar to:
== 23 passed, 1 xfailed in 4.60s ==
On the remote machine, verify GPU access using your assigned device ID (provided by course staff):
CUDA_VISIBLE_DEVICES=YourDeviceID uv run cuda_visible_test.py Replace YourDeviceID with your assigned CUDA device ID from course staff.
Goal: Confirm GPU availability and proper device assignment.
uv run pytest -q
make submission
scp zipfile
ssh to remote
check GPU visibilityUpload cse599o-fall2025-assignment-0-submission.zip to "Assignment 0: Warmup" on Gradescope. This assignment does not count toward your grade and only ensures the workflow works for everyone’s account.