This project introduces an interactive graph-based assessment tool designed for PrairieLearn. It allows students to dynamically interact with graph models by clicking on nodes and edges to simulate different algorithms. The tool supports a range of graph-based problems, from basic traversals (BFS, DFS) to advanced algorithms (Dijkstra’s, Kruskal’s, Hypercube processing).
📢 Presented at SIGCSE 2025 Technical Symposium in Pittsburgh, PA.
📄 Publication: An Interactive Tool for Randomized Autogradable Graph Assessments
- 🎯 Interactive Graph Manipulation – Click nodes/edges to simulate different algorithms.
- 🔄 Randomized Graph Generation – Provides unique problem instances per student.
- 📊 Autogradable Submissions – Automatically evaluates student responses.
- 💡 Usable in Multiple CS Courses – Supports introductory to advanced graph algorithms.
- Python (>=3.8)
- NetworkX, PyGraphviz, LXML, NumPy
- PrairieLearn (for integration into an assessment platform)
- Docker
Follow the instructions from the official Docker documentation:
Follow the official PrairieLearn local installation guide:
To launch PrairieLearn and the interactive graph tool using Docker:
git clone https://github.com/eldarhasanov079/pl-interactive-graph-v2/docker pull --platform linux/x86_64 prairielearn/prairielearndocker pull --platform linux/x86_64 prairielearn/prairielearnWait for http://localhost:3000 to appear and click on it.
Click "Load From Disk" in the top right corner and wait for it to run.
Try some of the example questions. Try changing their XML, or create your own questions (more information in the elements/pl-interactive-graph folder's README.md)