Machine Problem Policy

These directions and policies are brand new this semester. So if you see anything that is unclear, please let us know on the discussion forum! Additionally, if you have trouble getting your machine setup, please let us know ASAP! We’ll be allotting time in class to work on MPs, so that would be a great opportunity to get your setup fixed. (Office hours too!) Even though they are graded, and potentially stressful, we want you to enjoy these MPs, so please don’t hesitate to speak up!

Git and GitHub

For each MP, you will be given a link that will generate a private repository for that MP in the Illinois CS Coursework GitHub Organization.

We assume that students are reasonably familiar with git and GitHub.

For git, you will need to use at least:

  • git clone
  • git add
  • git commit
  • git push

Unlike other CS courses, we will not use a release repository to distribute starter code. This is end-to-end data science. You’ll be starting from scratch and working towards a finished product.

After creating your repository in the organization, simply clone locally and proceed to development.

Be sure to commit and push often!


These directions assume that you already have a GitHub account. However, note that by using it for this course, your GitHub username will be known by the course staff. If you would like to keep your personal GitHub private, we recommend creating an additional account specifically for coursework.

You will login to GitHub using the usual method. In addition to this authentication, you will need two additional forms of authentication.

To access the organization, you will need to use the Illinois SAML single sign-on (SSO) procedure that you are familiar with. The links to create repositories for each MP will direct you to do so.

To work with a private repository, you will need to use a personal access token (PAT).

Additionally, because the organization requires SAML SSO, you will need to authorize your PAT for use with SOO.

Lastly, to skip needing to input your PAT when cloning and pushing, you can cache your credentials.

If you follow the given links, and use VSCode, a lot of this setup will be made clear along the way.


We strongly recommend using Python 3.11.8. (Realistically, any 3.11.x will do.) We will grade your work using Python 3.11.

We also strongly recommend against using conda. Instead, you should directly download and install Python from

Virtual Environment

To ensure that we can re-create your local development environment, we will require you to create and work in a Python virtual environment.

To create the virtual environment, we recommend using uv.

We recommend installing uv using pip from Python 3.11. To do use, use:

python3.11 -m pip install uv

Once installed, in the directory for each MP, run:

uv venv

Running uv venv will create the directory .venv in which Python and packages will be installed. Do not commit this directory! Be sure to add it to your .gitignore.

Note that when creating the virtual environment, it will tell you the command to activate the environment, but you can also find this in the documentation above.

With the environment active, run the following to install packages:

uv pip install _______

To check on the packages installed in the environment, use:

uv pip freeze

To create a requirements file after installing all necessary packages, use:

uv pip freeze > requirements.txt

To grade each MP, we will run the following to re-create your environment for grading:

uv pip install -r requirements.txt


We recommend the use of VSCode as your IDE for MPs.

We also recommend the following extensions:

To ensure that you are using the correct interpreter, that is the virtual environment that you create, open the command pallette and select Python: Select Interpreter. You should see the virtual environment that you create in the drop down.

Students registered for the DDG section will need to make two submission to Canvas.


You will submit your code via GitHub. Using git push is effectively the submission process.

Because we cannot easily create and track deadlines in GitHub, you will also make a small submission to Canvas with the URL of your repository to let us know that it is complete and ready for grading.


Each lab will include a specific rubric that details grading.

For student registered for section DDG, there will be an additional rubric for the DDG “additional” portion of the MP.

For DDG students their MP grade will be 75% (Regular) + 25% (DDG Only).

Late Policy

Each MP will have one free grace day, followed by 10 potential late days. Each day you are late, your grade is reduced by 10%.

Generative AI

You are welcome to use generative AI to complete MPs in CS 498. If you use a generative AI to generate code (as opposed to asking it question like Stack Overflow), please credit the AI in a comment preceding the code it generated.

We expect that an AI cannot simply take the prompts given on this website and produce the final requested product. If you find a way to do so, please show the course staff! Our intention is to allow AI use as a tool, but not for it to do the work for you. If we are mistaken about this, we will need to update this policy. Please do not make use regret allowing AI usage. We’re learning these tools! Please let us know what they can do!