GithubHelp home page GithubHelp logo

Comments (7)

lwasser avatar lwasser commented on June 20, 2024

@kcranston this is the student roster issue that we will need to address when you are implementing the feedback piece and for grading.

from abc-classroom.

kcranston avatar kcranston commented on June 20, 2024

Exporting the roster from GitHub Classroom gives the following columns (where name is not always present in each row):

"identifier","github_username","github_id","name"

While the nbgrader import format has the following columns (only id is required, all others optional):

"id", "first_name","last_name","email","lms_user_id"

The obvious mismatch is that id != identifier but it is slightly more complicated:

  • the contents of the identifier columns in the github roster is not consistent. Based on three different classrooms, I see 'Firstname, Lastname', email address, and github username as the identifier (and sometimes differences between rows in the roster for the same class)
  • what we really want to match is nbgrader id with github github_username - consistently using github usernames as the identifer in the abc code ensures that we accurately match the downloaded repository with the nbgrader subdirectories.

The simplest thing for nbgrader integration might be to have an abc-classroom script for validating the roster and (optionally) reformatting to what nbgrader expects (which would simply be adding an id column that contains the github username.

Currently, abc-classroom only requires that the roster contains a github_username column.

from abc-classroom.

lwasser avatar lwasser commented on June 20, 2024

yes totally! i spent some time working on the roster for my class... i suspect we can easily write a little helper in the utils module to clean up a roster for nbgrader! then you just add it to the databse and it makes it much easier to grade as you have a student name + github id in the formgrader interface!

from abc-classroom.

kcranston avatar kcranston commented on June 20, 2024

Question - in your current workflow, where do you get the student first name and last name and how do they get into the roster? Do you download that list from some other system? and then input the names manually into the roster?

Edited: This question assumed that you wanted first name, last name in the roster. If this is not necessary, then let me know.

from abc-classroom.

kcranston avatar kcranston commented on June 20, 2024

We discussed this on a call, but I forgot to update the issue. The first name and last name come from the GitHub Classroom roster name column (if the student has added their name to their GitHub profile). So, the roster utility can do a simple split on the first whitespace in the name column to create the first and last columns. There might be some manual cleanup required, but this would be a good first pass that works in the majority of cases.

Having the first name and last name is really handy for nbgrader so that you don't have to recognize github usernames that bear no relation to the student name!

from abc-classroom.

kcranston avatar kcranston commented on June 20, 2024

Question for @lwasser : If a row in the input roster does not contain a github username, do you want to:

  1. Include that row to the output roster
  2. Skip printing that row for the output roster

(For example, when you download the Github Classroom roster for the ea-python-spring-2021-abc class, there are rows for "Leah Wasser" and "Test Student", but those rows only contain information in the identifier column).

from abc-classroom.

nkorinek avatar nkorinek commented on June 20, 2024

@lwasser this issue can be closed I believe!

from abc-classroom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.