swetanksaha / cse4589-pa3

AutoGrader & Student Template for the CSE 4/589: Programming Assignment 3 (PA3) [For use by TA & Course Instructors]

Home Page:https://cse4589.github.io/pa3/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSE 4/589: Programming Assignment 3 (PA3) AutoGrader

If you have landed at this repository directly, you first should read up on bit of a background here.

Introduction

PA3 AutoGrader runs completely on the system that it is invoked from and does not require any server-side setup. It makes use of the controller application, bundled with the template, to send commands and receive responses to the submission being tested. However, it makes use of ssh/scp while testing for certain test cases.

The AutoGrader takes as input the student source code, which is first uploaded to each of the grading machines, built, and then tested for a given test case.

The Grader directory holds the grader source and usage instructions.

The Controller directory holds source and usage for the controller application.

The Template directory contains the source for the code template distributed to students (see here).

Requirements

  • Five(5) Linux hosts/machines
  • Networking setup such that all the five hosts are reachable from each other
  • User accounts and work/disk space for each student to be able to do development/testing to complete the assignment

List of UB CSE hosts

  • stones.cse.buffalo.edu
  • euston.cse.buffalo.edu
  • embankment.cse.buffalo.edu
  • underground.cse.buffalo.edu
  • highgate.cse.buffalo.edu

Student User Accounts and Work Directories

Students should already have user accounts on the above hosts as part of the UB CSE infrastructure.

However, the home folders of students reside on a disk space that is shared among all CSE student servers. Given that PA3 involves implementation of file transfers, this makes home folders unsuitable for students to do development/testing of PA3. As a fix, CSE-IT creates a directory for each student on a non-shared disk mounted at /local on each of the five hosts. Typically, the course instructor provides the list of students enrolled in the course each semester to CSE-IT and folders are created for each student. For example, for Fall 2017, for a student with UB-IT name [ubitname] the work/test directory could be /local/Fall_2017/[ubitname]


Notes

  • Instructor/Course staff NEED to inform the students of work directory's path to be used for all their assignment related work.
  • Care should be taken in setting correct permissions for the student work folders so that they are only accessible by the student that the folder is assigned to.

AutoGrader: Controller and Grader

Typically both the grader and the controller application are distributed to students as a single executable binary, instead of the raw python source files, to avoid imposing any additional setup requirements on student machine environments. Setup instructions for both the grader and controller located inside their source folders (linked above) include steps to convert the python source to a Linux executable. It should be fairly straightforward to adapt the conversion process for any other OS the course staff wishes to support. In addition, we also include steps to run the grader directly from source to allow for easy debugging.

About

AutoGrader & Student Template for the CSE 4/589: Programming Assignment 3 (PA3) [For use by TA & Course Instructors]

https://cse4589.github.io/pa3/


Languages

Language:Python 61.7%Language:C 20.8%Language:Shell 14.6%Language:Makefile 1.5%Language:C++ 1.3%Language:Objective-C 0.1%