<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"
}