1. Create an account on Github and email me with your username.

  2. Make sure you can run Python 3 on your computer. If you have never used Python before, you will need to install it, as well as a Python editor. Any editor is fine, although the instructions below assumes you are using PyCharm.

  3. You may skip the next two steps if you are already familiar with git and know how to resolve merge conflicts. However, if you are currently using a built-in git client (eg. in PyCharm), IntelliJ, Eclipse, etc.), you should at least consider this step.

  4. Download and install GitKraken, then watch the first 20 minutes of their introductory webinar video (until they start Branching) and their merge conflict video. Here's quick reference for the terminology:

    Please talk to me if any of the above is unclear.

    Note: GitKraken should be used in addition to your normal code editor (PyCharm, IntelliJ, Eclipse, etc.). I recommend disabling version control in your editor.

  5. Connect GitKraken to Github in the Authentication tab in Preferences.

  6. Ask me for your Github repository, then use GitKraken to clone the repository onto your computer. You can do this under the File menu.

  7. Open the repository/folder as a project in your code editor. Make sure that the project interpreter is set to Python 3; you can find this under preferences/settings dialog box. You may also be asked if you want to install git; although it's not necessary, PyCharm will prompt you every time, so it may be easier to acquiesce.

  8. Open a Python file. Follow PyCharm's instructions if it asks you to install additional packages.

  9. Look through the code and make sure you understand the existing code (with the exception of code that I mark otherwise). Feel free to add comments to the code and commit the changes - this would be a great time to familiarize yourself with git, Github, and GitKraken.

Weekly Procedure

In general, we will be meeting once a week for 30 minutes to talk about your progress, when we will review what you have done and decide on the tasks/topics for the next week. For each meeting, come prepared with:

Depending on the semester, there may also be bi-weekly group meetings, where a student will lead a discussion on a research paper.


At the end of the semester, I expect two concrete deliverables: