Managing the classroom roster

The classroom roster is a csv file that contains information about the students in your class. abc-classroom uses the roster file when:

  • cloning student assignment repositories with abc-clone

  • pushing feedback to student repositories with abc-feedback

Location of the roster

The location of the classroom roster is defined in the configuration file, config.yml. By default, this is classroom_roster.csv in the course directory. See Configuration for information on setting the name and location of the roster.

Roster formats

The roster formats for GitHub Classroom and nbgrader are slightly different and you cannot directly use a GitHub Classroom roster as input for nbgrader.

The nbgrader roster requires an “id” column with a unique identifier for each student. It is also helpful to have the first name and last name of each student in the nbgrader roster. Then, you can identify students in the web interface based on real names rather than GitHub usernames.

The GitHub Classroom roster contains an “identifier” column, but this can contain a name, email address, or github username (depending on the student profile, whether they have accepted an assignment, etc).

If you aren’t using nbgrader, you can use the GitHub Classroom roster with abc-classroom. The only piece of information that abc-classroom requires is a single column for each student, labelled github_username, that contains the GitHub username for each student.

Converting a roster to nbgrader format

To convert a Classroom roster to nbgrader format, we want to copy the “github_username” column in the former to an “id” column in the latter. We can also split the “name” column into first_name and last_name.

Download the GitHub Classroom roster using the download link on the Students tab on your Classroom course page. This file will contain the following columns:

identifier, github_username, github_id, name

Make sure you have a course_materials directory defined in config.yml and that the directory exists.

Run abc-roster:

$ abc-roster classroom_roster.csv

Which will create a new file, course_materials/nbgrader_roster.csv with the following columns:

identifier,github_username,github_id,name,id,first_name,last_name

You can specify a different output filename with the -o option.

abc-roster creates the first and last name columns by splitting the “name” column on the last whitespace (i.e. “Kermit the Frog” becomes “Kermit the”, “Frog”). You can specify a different column to split using the -n option.

Run abc-roster -h for details.