Using chisubmit

This course uses chisubmit (pronounced "kai-submit," as in the Greek letter χ) to collect homeworks and projects and to distribute the support code you will need to do the projects.

chisubmit combines the chisubmit tool, developed at UChicago, for handing assignments, the Git distributed version control system for handling your code and other work, and the UChicago GitLab server for hosting your files. There are Git tutorials online, including here, here, and here.

Note: chisubmit is relatively new, and this is the first time we're using it for this class. As a result, you might encounter some issues using it, and the instructions below might need some tweaking. Please bear with us, and if you have any questions, please post on Piazza.


Here are general instructions for setting up and using chisubmit.

Using chisubmit is a two part process:

  1. Registering for each assignment so that you can begin working on it, submitting assignments, and managing group projects (Projects 4 and 5) is done using the chisubmit tool. The chisubmit tool is only installed on CS department machines and must be run there. (Installing chisubmit on your own machine is a painful, multi-step processs and is currently unsupported.)
  2. Actually working with code and other files is handled using Git and can be done on your own machine. You can use Git to pull the assignment templates and support code from the UCHicago GitLab server into your own local repository. Then, you can edit the files and commit revisions. Finally, you can use Git to push local commits to your GitLab repository. Note: Pushing your commits to the GitLab server does not submit an assignment. You must explicitly submit it using the chisubmit tool.

Further clarifications to the chisubmit instructions: