|
| 1 | +# Anubis Autograder |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +## Elevator Pitch |
| 6 | + |
| 7 | +At its core, Anubis is a tool to give students live feedback from their homework |
| 8 | +assignments |
| 9 | +while they are working on them. Using [Github Classrooms](https://classroom.github.com/), |
| 10 | +each student gets their |
| 11 | +own repo from a template |
| 12 | +for each homework assignment. The way students then submit their work |
| 13 | +is simply by pushing their work to their repo before the deadline. Students can |
| 14 | +then push, and therefore submit as many times as |
| 15 | +they would like before the deadline. |
| 16 | + |
| 17 | +## Assignment structure |
| 18 | + |
| 19 | +When a student pushes to their assignment repo, a job is launched on the Anubis |
| 20 | +cluster. That job will build |
| 21 | +their repo, run tests on the results, and store the results in a database. |
| 22 | + |
| 23 | +Students can then navigate to the Anubis website, where |
| 24 | +they will sign in through NYU SSO. |
| 25 | +From there, |
| 26 | +they will be able to see all the current and past assignments, |
| 27 | +and all of their submissions. They are able |
| 28 | +to view the results of the build and tests for each submission. |
| 29 | +There they can request a regrade, |
| 30 | +there by launching a new submission pipeline. While the submission |
| 31 | +still being processed, the website will poll |
| 32 | +the backend for updates. In this, the website will be constantly |
| 33 | +updating while the submission is being |
| 34 | +processed, giving a live and interactive feel to the site. Once |
| 35 | +a submission is processed Anubis will show |
| 36 | +the students logs from their tests, and builds along with which |
| 37 | +tests passed and which failed. |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +## Anubis Cloud IDEs |
| 42 | + |
| 43 | +New in version v2.2.0, there is now the Anubis Cloud IDE. Using some |
| 44 | +kubernetes magic, we are able to |
| 45 | +host [theia](https://theia-ide.org/) servers for individual students. |
| 46 | +These are essentially |
| 47 | +VSCode instances |
| 48 | +that students can access in the browser. What makes these so powerful |
| 49 | +is that students can access a terminal |
| 50 | +and type commands right into a bash shell which will be run in the |
| 51 | +remote container. With this setup students |
| 52 | +have access to a fully insulated and prebuilt linux |
| 53 | +environment at a click of a button. These environments are easily customizable |
| 54 | +for the needs of the class or even individual assignments. Because these |
| 55 | +IDE servers are light weight docker containers we can support |
| 56 | +many more students than if we used VMs. There are ~130 students in the Intro |
| 57 | +to OS course in spring of 2021, and we could support all of them |
| 58 | +using IDEs at the same time while still processing all the submissions that |
| 59 | +come through. |
| 60 | + |
| 61 | +As we are giving students access to a terminal in the cloud, we must also lock |
| 62 | +down their environment. All student IDEs are limited in the RAM, CPU, storage, |
| 63 | +and networking. From the IDEs, students are only able to connect to Github to |
| 64 | +submit their work. |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +> Does any of this sound appealing to you? Reach out to us to see if Anubis is |
| 71 | +something that can benefit your class! |
0 commit comments