Question Authors' Forum

Submissions via GitHub

Submissions via GitHub

by Erel Segal-Halevi -
Number of replies: 3

In my C++ course, students solve complex problems that require several files (h files, cpp files). They submit using GitHub.  Currently, I use a home-built automatic grader that does the following:

  • Allows students to submit a link to their GitHub repository;
  • Downloads the students' code from the repository;
  • Copies the instructor's files (with unit-tests) on top of the students' files;
  • Runs the instructor's files and calculates the grade.
Is it possible to get the same functionality with CodeRunner?
In reply to Erel Segal-Halevi

Re: Submissions via GitHub

by Richard Lobb -

Sure. When you write a CodeRunner question you have the option of including any number of author support files. In addition you can allow the student to attach any number of files to their own submission (you specify a maximum number of files, a regular expression to match the allowed filename and a maximum file size). All these files are loaded into the working directory on the sandbox server and you must write a template (think "script") to compile and run everything.

In reply to Richard Lobb

Re: Submissions via GitHub

by Erel Segal-Halevi -

Is it possible to let the students submit a link to their GitHub repository (instead of uploading their files)?

In reply to Erel Segal-Halevi

Re: Submissions via GitHub

by Richard Lobb -

Well, yes, but you have to do all the hard work yourself. The student answer will probably be just a link to their github repo, then you'll have to write the template for the question., which will be a script that pulls in all their code and runs it (and perhaps grades it too). You'd need to punch a hole in the jobe firewall to permit outgoing connections to github.

But you're trying to do rather difficult things. I suggest you install CodeRunner first to get a feel for how it works in its standard mode before you start trying to make it do much more difficult things. Also, check out the documentation.