https://github.com/betatim/autograded-course-starter
The repository used to manage "awesome course 101"
https://github.com/betatim/autograded-course-starter
Last synced: 5 months ago
JSON representation
The repository used to manage "awesome course 101"
- Host: GitHub
- URL: https://github.com/betatim/autograded-course-starter
- Owner: betatim
- Created: 2018-10-05T14:20:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-03T13:22:26.000Z (almost 7 years ago)
- Last Synced: 2025-04-02T16:30:42.779Z (8 months ago)
- Language: Jupyter Notebook
- Homepage:
- Size: 133 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tim's awesome course
> Note: This is an example repository.
This repository is used to manage assignments for the course
"Intro to managing courses with git stuffs".
> Note: While this repository is public, the tools assume that normally you'd
> keep this private.
> Note: This repository assumes you are using GitHub classroom.
## Concepts
As an instructor you will use this repository to manage the course material.
In the `master/` subdirectory you will keep assignments and material for the
course. It is the "master" copy of the course. Everything else will be generated
from it.
Students will have their own, private repositories for the duration of the
course. They will receive updates from the instructor as new material is
released in the form of a PR to their repository.
All configuration happens in `config.yml`.
## Terminology
**template repository**: the repository used by GitHub classroom to initialise
a student's repository when they click 'accept assignment'
**GitHub**: well known code sharing platform, abbreviated as GH
## Using this example repository (as an instructor)
### Setup steps
1. Install `pip install --upgrade git+https://github.com/earthlab/grading-workflow-experiments.git`
2. Clone this repository to your local machine.
3. Make sure you are in the top directory of this repository.
4. Inspect `config.yml` and adjust it. Make sure to add your GH username
to the list of students so you can experience the student's perspective.
5. run `nbinit` to get a GH access token, this lets the tools perform
actions on your behalf on github.com without asking you for your
password every time.
6. [Create a new GH organisation](https://github.com/organizations/new)
matching the name you used for `organisation` in `config.yml`.
7. Go to https://classroom.github.com/classrooms/new and create a new classroom
for the organisation you just created.
8. Once you have setup a classroom, you are ready to [install the notebook bot](https://github.com/settings/apps/notebookbot/installations)
for the organisation you just created. Make sure to enable it for
"all repositories" in the organisation.
### One time preparation to launch a course
> Note: the dates used here fit with the defaults configured in `config.yml`
> if you changed the configuration you probably need to pick new dates here
You want to take these steps at the start of the course. As part of this
you will setup the GH classroom and template repository.
1. Create the template student repository with: `nbauthor --date 2018-01-01`.
By using a date before the first assignment we get an essentially empty
template repository.
2. Create the GitHub classroom template repository: `nbdistribute --template`.
3. Create your GitHub classroom assignment.
Make sure to set "Your assignment repository prefix" to the `courseName` you
set in `config.yml` earlier.
For the "Add your starter code from GitHub (optional)" field use the
template repo from the previous steps as the template repo for the
assignment. (What GH classroom calls an assignment is a course for us.)
### Pretending to be a student
We now switch to pretending to be a student to setup one student repository
for the course.
1. Pretend to be a student and accept the "assignment" created in GH classroom.
2. Visit your "student" repository and follow the instructions in the README.
Every student will have to do this.
Because there is nothing interesting in the repository yet there is not much
we can do. Let's release the first assignment and then come back to the
repository.
### Releasing new material to students
Back at the top of this repository.
1. Run `nbauthor --date 2018-10-11` to release the next assignment.
2. Check the `student/` repository, there should be a new subdirectory in it.
3. Run `nbdistribute` to create Pull Requests with the new material to each of
the student's repositories. (If you listed a student who hasn't yet accepted
the assignment there will be an exception raised, this is being fixed.)
4. Check the student repository, there should be a PR with the new material
asking the student to merge it.
5. Go ahead and merge the PR!
### Notebook feedback
Visit the GH of your student repository. In the web interface make an edit
to the README. A little while after you commit the edit to the master branch
there should be a new issue on your repository that links to a preview of
your notebooks that have been run in the way that the auto-grader will execute
them.