Git Product home page Git Product logo

131-project-autograder's Introduction

CS 131 Spring 2023 - Project Autograder

Hi there! This is a repo that contains an open-source subset of the autograder we'll be using for CS 131 - Spring 2023's course-long project: making an interpreter.

Using this repository / testing locally is entirely optional. It does not directly affect your grade. You are free to only submit to Gradescope!

This repository contains:

  • the full source code for the autograder we deploy to Gradescope
  • 10% of the test cases we evaluate your code on; these are the test cases that are public on Gradescope
    • each version of the project is in a v* folder;
    • the tests subdirectory contains source (.brewin), expected (.exp), and standard input (.in) files for programs that should interpret and run without errors
    • the fails subdirectory contains source (.brewin), expected (.exp), and standard input (.in) files for programs that should interpret successfully, but error

This repository does not contain:

  • 90% of the test cases we evaluate your code on (until after the project is due)
  • the plagiarism checker, which is closed-source
  • the Docker configuration for the deployment; this is managed by Gradescope.
  • canonical solutions for the past projects - those are in the project template repo

We'll note that with the current setup, we grant five seconds for each test case to run.

We've made a separate repository for project template code.

Usage

Setup

This grader uses features of Python 3.11. So, you must be running Python 3.11 locally.

Next, clone this repository and make it your working directory:

$ git clone
# or, with SSH
$ git clone [email protected]:UCLA-CS-131/spring-23-autograder.git
...
cd spring-23-autograder

Now, you're ready to test locally.

Testing Locally

To test locally, you will additionally need a working implementation of the project; the minimum example is an interpreterv1.py/interpreterv2.py/interpreterv3.py that implements the Interpreter class.

Place this in the same directory as tester.py. Then, to test project 1,

$ python3 tester.py 1
Running 5 tests...
Running v1/tests/test_inputi.brewin...  PASSED
Running v1/tests/test_recursion1.brewin...  PASSED
Running v1/tests/test_set_field.brewin...  PASSED
Running v1/fails/test_if.brewin...  PASSED
Running v1/fails/test_incompat_operands1.brewin...  PASSED
5/5 tests passed.
Total Score:    100.00%

The output of this command is identical to what is visible on Gradescope pre-due date, and they are the same cases that display on every submission. If there is a discrepancy, please let the teaching team know!

Note: we also output the results of the terminal output to results.json.

Bug Bounty

If you're a student and you've found a bug - please let the TAs know (confidentially)! If you're able to provide a minimum-reproducible example, we'll buy you a coffee - if not more!

Licensing and Attribution

This code is distributed under the MIT License.

Have you used this code? We'd love to hear from you! Submit an issue or send us an email ([email protected]).

131-project-autograder's People

Contributors

jehfoori avatar mattxwang avatar siddarthk97 avatar

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.