Initial Set Up Steps (FIRST TIME ONLY)
- Register for GitHub (https://github.com) and GitHub Classroom (https://classroom.github.com)
- If you have a Mac, ensure you have Command Line Tools Installed (which includes Git)
- $ xcode-select –install
- Install nbgrader
- $ conda install -c conda-forge nbgrader
- Install abc-classroom
- $ pip install abc-classroom
- Check out the docs at https://abc-classroom.readthedocs.io/en/latest/get-started.html
- Create a GitHub personal access token and store locally in file .abc-classroom.tokens.tml
- $ abc-init
- Follow directions at https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent to set up a GitHub SSH key, add it to the SSH agent, and then add it to your GitHub account
- If using Mac, write down your passphrase for key somewhere as backup
Set up a new course
- On GitHub
- First step is to set up a master “organization” for the course on GitHub (e.g. test-course)
- This will be for the overall course, and then you can create a new “classroom” (see below) for each semester of the course that you teach which pulls from the master organization (each classroom has its own roster of students). Select a name that relates to the course, not the semester (e.g. “CS101”). It should belong to your personal account
- FIRST TIME ONLY – Go to https://education.github.com/discount_requests/new and request the educational discount for the “organization” (NOT individual) to be able to create unlimited private repos for the organization
- FIRST TIME ONLY – Once it is approved, go to https://education.github.com/toolbox/offers/github-org-upgrades to upgrade your new master course organization so you can create unlimited private repos (in order to keep all student assignment submissions private)
- Go to https://github.com/settings/connections/applications/64a051cf1598b9f0658f and allow GitHub Classroom access to the master course organization
- First step is to set up a master “organization” for the course on GitHub (e.g. test-course)
- On GitHub Classrooms at classroom.github.com
- Create s new classroom for section of course (e.g. CS101-fall2020)
- Connect classroom to course master organization
- On local computer
- Cd to desired folder on computer
- Create course directory using abc-quickstart
- $ abc-quickstart
- Cd to the new course directory
- In it, create directory using nbgrader:
- $ nbgrader quickstart
- In the “source” folder delete the ps1 folder (contains sample notebooks)
- Update the following in config.yml:
- Set name for GitHub organization to connect to
- Change path to course materials to
- Optional – change README text which shows up for students in their assignment repos
Add course syllabus and class materials
- In your master course organization on GitHub, create a new repo called something like “Course materials”. Either make it public, or make it private and add the students’ GitHub usernames as members to it
- Upload your class materials into the repo on GitHub, or put it in local folder and push to GitHub
- To push it to GitHub from your local computer:
- Create a folder in your main directory for your course docs (syllabus, slides etc)
- Organize your materials as you like in that folder (can create sub-folders for each week if you wish)
- In your GitHub course organization, create a public repo and name it the same as the folder you just created
- On computer, cd to the folder you created
- Run the following to push the content to GitHub organization:
- $ git init
- $ git add –all
- $ git commit -m “update”
- $ git remote add origin
- $ git push -u origin master
- You should now see all your course docs in the new repo you created
- To push it to GitHub from your local computer: