Homework Instructions
One-Time Setup
ASAP: Complete Course Registration Form
If you have not done so already, complete the course registration form. You will need to complete this form and wait up to 24 hours to get access to homework code.
Enroll in Gradescope
Use the access code WJJPZ8 to enroll in the Gradescope course. See here for detailed instructions.
Fork the Course Code
After you get access to the course code, you should fork it. You will write and submit homework code through your fork.
Clone Your Fork
Follow the instructions on GitHub to clone your forked repository. Make sure that you clone your fork and not the original (“upstream”) repository.
Set Upstream
While in your cloned repository:
git remote add upstream git@github.com:rpmml/rpmml-code.git
git fetch upstream
This will allow you to pull in future updates to the course code.
Install the Code
We require that you use a virtual environment when working with course code to avoid unintended interactions with other code on your machine. Specifically, we require you to use uv. Follow the instructions to install uv if you do not already have it. Then, while in your cloned repository:
uv venv --python=3.10
source .venv/bin/activate
uv pip install -e ".[develop]"
To test the installation:
./run_ci_checks.sh
Working on Problem Sets
Download the PDF
Problem set PDFs are posted on the course calendar.
Complete Written Exercises
LaTeX is preferred, but immaculately hand-written answers are also allowed.
Complete Coding Exercises
- Activate your virtual environment if not already done:
source .venv/bin/activate
- Pull upstream changes:
git pull upstream main
- Complete the missing code in
assignments/homework<X>
- Test your answers using pytest:
pytest assignments/homework<X>
- Save and commit your code (throughout working on the assignment):
git add -u git commit -m "<some message>" git push origin HEAD
Submitting Problem Sets
You will submit both written and coding exercises through Gradescope. There will be two separate submissions for written answers and for code. The code will be autograded and in most cases will not be manually reviewed by instructors. (Note that there are automated plagarism checks.) You can resubmit as many times as you want.
Submitting Written Answers
Submit your written answers in one PDF on GradeScope.
Submitting Code
Submit your code on Gradescope using the Github plugin, as shown below.
The autograder should simply run the tests that you have locally. There are no additional hidden tests. If there is a discrepancy between the local tests and Gradescope, that either means that your code is nondeterministic, or our code has an issue. Consider the first possibility and then reach out if you continue to see a discrepancy.
Troubleshooting
If you run into any technical trouble, please don’t hesitate to contact course staff.