eiplgrader


Nameeiplgrader JSON
Version 0.1.7 PyPI version JSON
download
home_pagehttps://github.com/CoffeePoweredComputers/eiplgrader
SummaryA collection of autograders for the grading of Explain in Plain Language (EiPL) questions.
upload_time2024-09-19 00:24:19
maintainerNone
docs_urlNone
authorDavid H. Smith IV
requires_python<4.0,>=3.10
licenseGPL-3.0
keywords autograder eipl explain-in-plain-language eipe explain-in-plain-english
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center" style="margin-top: 40px;">
    <img src="./eipllogo.png" alt="Explain in Plain Language Autograder" style="width: 300px; border-radius: 8px; margin-bottom: 20px;">
    <h5 style="font-size: 1.1em; color: #777; margin-bottom: 20px;">An automatic grading suite for "Explain in Plain Language" questions.</h5>

  <a href="https://pypi.python.org/pypi/eiplgrader">
    <img src="https://img.shields.io/pypi/v/eiplgrader.svg" alt="Version">
  </a>
  <a href="https://pypi.python.org/pypi/eiplgrader">
    <img src="https://img.shields.io/pypi/l/eiplgrader.svg" alt="License">
  </a>
  <a href="https://pypi.python.org/pypi/eiplgrader">
    <img src="https://img.shields.io/pypi/pyversions/eiplgrader.svg" alt="Supported Python versions">
  </a>
</div>


---

## Installation and Usage


## Usage

Detailed used can be found in the [eiplgrader documentation](https://hamiltonfour.tech/eiplgrader/).

#### RECOMMENDED: Docker Usage

Given that, at its core, an `eiplquestion` asks students to prompt a model
which then generates arbitrary code it is **_highly recommended_** that this
code only be run in a sandboxed environment. To aid in this, this package 
is also published on [dockerhub](). Its usage is as follows:
```bash
# under development
```

#### Python Usage

In the event you are already running this code in a sandboxed environment you
may opt instead to simply use the python package to develop autograders
independently of the provided docker image. The package is published on 
[pypi](https://pypi.org/project/eiplgrader/) and can be installed using pip.

```bash
pip install eiplgrader
```

An example script is provided in
the
[example.py](https://github.com/CoffeePoweredComputers/eiplgrader/blob/master/example.py)
script in the repository.


```
#
# example.py
#

from eiplgrader.codegen import CodeGenerator
from eiplgrader.tester import CodeTester

code_generator = CodeGenerator(
        "YOUR API KEY HERE"
        )
generated_code = code_generator.generate_code("that adds two numbers.")

# define your tests

test_cases = [
    [[1, 2], 3],
    [[-1, 1], 0],
    [[-1, -1], -2]
]

# Test the generated code
code_tester = CodeTester(generated_code, test_cases)
test_result = code_tester.run_tests()
```


## Cite
When using this tool, please cite the following paper:

```bibtex
@inproceedings{smith2024code,
    author = {Smith IV, David H. and Zilles, Craig},
    title = {Code Generation Based Grading: Evaluating an Auto-grading Mechanism for "Explain-in-Plain-English" Questions},
    year = {2024},
    isbn = {9798400706004},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3649217.3653582},
    doi = {10.1145/3649217.3653582},
    booktitle = {Proceedings of the 2024 on Innovation and Technology in Computer Science Education V. 1},
    pages = {171–177},
    numpages = {7},
    keywords = {auto-grading, eipe, gpt-4, large language models},
    location = {Milan, Italy},
    series = {ITiCSE 2024}
}
```

## Research
This autograder has been evaluated and used in the following research:

- [Code Generation Based Grading: Evaluating an Auto-grading Mechanism for "Explain-in-Plain-English" Questions](https://doi.org/10.1145/3649217.3653582)
- [Explaining Code with a Purpose: An Integrated Approach for Developing Code Comprehension and Prompting Skills](https://doi.org/10.1145/3649217.3653587)
- [Prompting for Comprehension: Exploring the Intersection of Explain in Plain English Questions and Prompt Writing](https://doi.org/10.1145/3657604.3662039)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/CoffeePoweredComputers/eiplgrader",
    "name": "eiplgrader",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "autograder, eipl, explain-in-plain-language, eipe, explain-in-plain-english",
    "author": "David H. Smith IV",
    "author_email": "dhsmith2@illinois.edu",
    "download_url": "https://files.pythonhosted.org/packages/95/11/c6aa299dd49f4a3d6845e75a828151c8e83280a60d5e496b00b1c17f600e/eiplgrader-0.1.7.tar.gz",
    "platform": null,
    "description": "<div align=\"center\" style=\"margin-top: 40px;\">\n    <img src=\"./eipllogo.png\" alt=\"Explain in Plain Language Autograder\" style=\"width: 300px; border-radius: 8px; margin-bottom: 20px;\">\n    <h5 style=\"font-size: 1.1em; color: #777; margin-bottom: 20px;\">An automatic grading suite for \"Explain in Plain Language\" questions.</h5>\n\n  <a href=\"https://pypi.python.org/pypi/eiplgrader\">\n    <img src=\"https://img.shields.io/pypi/v/eiplgrader.svg\" alt=\"Version\">\n  </a>\n  <a href=\"https://pypi.python.org/pypi/eiplgrader\">\n    <img src=\"https://img.shields.io/pypi/l/eiplgrader.svg\" alt=\"License\">\n  </a>\n  <a href=\"https://pypi.python.org/pypi/eiplgrader\">\n    <img src=\"https://img.shields.io/pypi/pyversions/eiplgrader.svg\" alt=\"Supported Python versions\">\n  </a>\n</div>\n\n\n---\n\n## Installation and Usage\n\n\n## Usage\n\nDetailed used can be found in the [eiplgrader documentation](https://hamiltonfour.tech/eiplgrader/).\n\n#### RECOMMENDED: Docker Usage\n\nGiven that, at its core, an `eiplquestion` asks students to prompt a model\nwhich then generates arbitrary code it is **_highly recommended_** that this\ncode only be run in a sandboxed environment. To aid in this, this package \nis also published on [dockerhub](). Its usage is as follows:\n```bash\n# under development\n```\n\n#### Python Usage\n\nIn the event you are already running this code in a sandboxed environment you\nmay opt instead to simply use the python package to develop autograders\nindependently of the provided docker image. The package is published on \n[pypi](https://pypi.org/project/eiplgrader/) and can be installed using pip.\n\n```bash\npip install eiplgrader\n```\n\nAn example script is provided in\nthe\n[example.py](https://github.com/CoffeePoweredComputers/eiplgrader/blob/master/example.py)\nscript in the repository.\n\n\n```\n#\n# example.py\n#\n\nfrom eiplgrader.codegen import CodeGenerator\nfrom eiplgrader.tester import CodeTester\n\ncode_generator = CodeGenerator(\n        \"YOUR API KEY HERE\"\n        )\ngenerated_code = code_generator.generate_code(\"that adds two numbers.\")\n\n# define your tests\n\ntest_cases = [\n    [[1, 2], 3],\n    [[-1, 1], 0],\n    [[-1, -1], -2]\n]\n\n# Test the generated code\ncode_tester = CodeTester(generated_code, test_cases)\ntest_result = code_tester.run_tests()\n```\n\n\n## Cite\nWhen using this tool, please cite the following paper:\n\n```bibtex\n@inproceedings{smith2024code,\n    author = {Smith IV, David H. and Zilles, Craig},\n    title = {Code Generation Based Grading: Evaluating an Auto-grading Mechanism for \"Explain-in-Plain-English\" Questions},\n    year = {2024},\n    isbn = {9798400706004},\n    publisher = {Association for Computing Machinery},\n    address = {New York, NY, USA},\n    url = {https://doi.org/10.1145/3649217.3653582},\n    doi = {10.1145/3649217.3653582},\n    booktitle = {Proceedings of the 2024 on Innovation and Technology in Computer Science Education V. 1},\n    pages = {171\u2013177},\n    numpages = {7},\n    keywords = {auto-grading, eipe, gpt-4, large language models},\n    location = {Milan, Italy},\n    series = {ITiCSE 2024}\n}\n```\n\n## Research\nThis autograder has been evaluated and used in the following research:\n\n- [Code Generation Based Grading: Evaluating an Auto-grading Mechanism for \"Explain-in-Plain-English\" Questions](https://doi.org/10.1145/3649217.3653582)\n- [Explaining Code with a Purpose: An Integrated Approach for Developing Code Comprehension and Prompting Skills](https://doi.org/10.1145/3649217.3653587)\n- [Prompting for Comprehension: Exploring the Intersection of Explain in Plain English Questions and Prompt Writing](https://doi.org/10.1145/3657604.3662039)\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "A collection of autograders for the grading of Explain in Plain Language (EiPL) questions.",
    "version": "0.1.7",
    "project_urls": {
        "Homepage": "https://github.com/CoffeePoweredComputers/eiplgrader",
        "Repository": "https://github.com/CoffeePoweredComputers/eiplgrader"
    },
    "split_keywords": [
        "autograder",
        " eipl",
        " explain-in-plain-language",
        " eipe",
        " explain-in-plain-english"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4342893cca83a3cee59cea37ddde19871bc19f17a036be72bd67f241e6a5f790",
                "md5": "150b80c18631b1d68a17c82b840de76d",
                "sha256": "e5b4d640c4d351542745c2cedb6e7a771afce9aa50fbf1ef536ff1a7a437af34"
            },
            "downloads": -1,
            "filename": "eiplgrader-0.1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "150b80c18631b1d68a17c82b840de76d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 17039,
            "upload_time": "2024-09-19T00:24:17",
            "upload_time_iso_8601": "2024-09-19T00:24:17.537959Z",
            "url": "https://files.pythonhosted.org/packages/43/42/893cca83a3cee59cea37ddde19871bc19f17a036be72bd67f241e6a5f790/eiplgrader-0.1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9511c6aa299dd49f4a3d6845e75a828151c8e83280a60d5e496b00b1c17f600e",
                "md5": "c153bc3c27b215301b1b1a63b9c16884",
                "sha256": "d12b040052d18fd116407a3eacf855cc9763780a4536751f11c787b46faae051"
            },
            "downloads": -1,
            "filename": "eiplgrader-0.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "c153bc3c27b215301b1b1a63b9c16884",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 16194,
            "upload_time": "2024-09-19T00:24:19",
            "upload_time_iso_8601": "2024-09-19T00:24:19.795045Z",
            "url": "https://files.pythonhosted.org/packages/95/11/c6aa299dd49f4a3d6845e75a828151c8e83280a60d5e496b00b1c17f600e/eiplgrader-0.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-19 00:24:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CoffeePoweredComputers",
    "github_project": "eiplgrader",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "eiplgrader"
}
        
Elapsed time: 3.42247s