ExecExam is a powerful tool that runs executable examinations in which a student provides solutions to programming problems that are checked by Pytest test suites. If you are a computer science or software engineering instructor who wants to administer programming examinations
- Automated Checks: Run a series of checks on your Python projects to ensure they're up to standard.
- Detailed Reports: See the results of the checks, including which ones passed and which ones failed.
- Advice on Failures: When code fails a check, receive advice on what to do next.
- Syntax Highlighting: Enjoy syntax highlighting in the console output.
- Verbose Mode: Want to see more details? Just enable the verbose mode!
ExecExam uses the LLM-based advice system to provide students with feedback when one of their answers fails a check. You can either specify the complete URL of a LiteLLM API proxy or set an API key for a cloud-based LLM provider. Here are examples of some of the LLM models that are supported through the use of LiteLLM:
anthropic/claude-3-haiku-20240307
anthropic/claude-3-opus-20240229
groq/llama3-8b-8192
openrouter/meta-llama/llama-3.1-8b-instruct:free
openrouter/google/gemma-2-9b-it:free
- Python 3.12
- Chasten leverages numerous Python packages, including notable ones such as:
- The developers of Chasten use Poetry for packaging and dependency management
Follow these steps to install the execexam
program:
- Install Python 3.12 for your operating system
- Install pipx to support program installation in isolated environments
- Type
pipx install execexam
to install ExecExam - Type
pipx list
and confirm that ExecExam is installed - Type
execexam --help
to learn how to use the tool
- Found a bug or have a feature that the development team should implement? Raise an issue!
- Interesting in learning more about tool usage details? Check the wiki!
- Contact Gregory M. Kapfhammer with any questions or suggestions about ExecExam!
If you would like to contribute to Execexam, please refer to the Execexam Wiki for contributing guidelines.