|
| 1 | +--- |
| 2 | +title: "ExecExam: A Tool to Facilitate Effective Executable Examinations in Python" |
| 3 | +date: "2025-05-15" |
| 4 | +date-format: long |
| 5 | +author: Pallas-Athena Cain, Hemani Alaparthi, and Gregory Kapfhammer |
| 6 | +format: |
| 7 | + revealjs: |
| 8 | + theme: default |
| 9 | + slide-number: false |
| 10 | + incremental: false |
| 11 | + code-fold: true |
| 12 | + code-tools: true |
| 13 | + code-link: true |
| 14 | + history: false |
| 15 | + scrollable: true |
| 16 | + transition: slide |
| 17 | + highlight-style: github |
| 18 | + footer: "PyCon Education Summit 2025" |
| 19 | + css: styles.css |
| 20 | +--- |
| 21 | + |
| 22 | +## What is an Execuatable Examination? |
| 23 | + |
| 24 | +::: {.fragment style="margin-top: -0.15em; font-size: 0.8em;"} |
| 25 | + |
| 26 | +**Assessing real programming ability** |
| 27 | + |
| 28 | + - A student writes, modifies, and runs code to solve a real problem |
| 29 | + - Graded via automated tests (e.g. Pytest) |
| 30 | + - Unlike static exams, this tests: |
| 31 | + - Programming logic |
| 32 | + - Debugging ability |
| 33 | + - Tool use (editor, terminal, Git) |
| 34 | + |
| 35 | +🎯 Like a take-home project — but precise, consistent, and scalable |
| 36 | + |
| 37 | +::: |
| 38 | + |
| 39 | +## The Problem |
| 40 | + |
| 41 | +**Why do we need better assessments?** |
| 42 | + |
| 43 | +- Manual grading is slow and inconsistent |
| 44 | +- Students often don’t know why their code fails |
| 45 | +- Feedback is shallow or missing altogether |
| 46 | + |
| 47 | +🚫 “Test failed” isn’t enough. |
| 48 | + |
| 49 | +## What is ExecExam? |
| 50 | + |
| 51 | +**Scalable, feedback-rich assessment tool** |
| 52 | + |
| 53 | +- Runs Pytest on student code |
| 54 | +- Unlike Pytest, continues past the first failure |
| 55 | +- Explains why a test failed |
| 56 | +- Suggests how to fix it |
| 57 | +- Utilizes LLMs for even better feedback |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | +## |
| 62 | + |
| 63 | + |
| 64 | + |
| 65 | +## Key Features |
| 66 | + |
| 67 | +**Why use ExecExam?** |
| 68 | + |
| 69 | +- 🧪 Full Pytest coverage, Streamlines assessment |
| 70 | +- 💻 Can be run throughout the student coding process |
| 71 | +- 🧠 AI-powered failure analysis |
| 72 | +- ⚙️ GitHub integration, easy CI/CD |
| 73 | +- 🔁 Enhance the learning experience by offering actionable insights throughout the coding process |
| 74 | + |
| 75 | +## For Instructors |
| 76 | + |
| 77 | +**How to adopt it** |
| 78 | + |
| 79 | +- Design scaffolded coding tasks |
| 80 | +- Write tests |
| 81 | +- Deploy with GitHub Actions or CLI |
| 82 | +- Grade fairly, at scale |
| 83 | + |
| 84 | +🧰 Lightweight setup—just Python, Git, and your test cases |
| 85 | + |
| 86 | +## Future Work |
| 87 | + |
| 88 | +::: {.fragment style="margin-top: -0.15em; font-size: 0.7em;"} |
| 89 | + |
| 90 | +**What’s next for ExecExam?** |
| 91 | + |
| 92 | +- 📊 Analytics & Instructor Features |
| 93 | + - Store test outcomes and feedback over time |
| 94 | + - Visualize student debugging and improvement paths |
| 95 | + - Log LLM interactions to evaluate effectiveness |
| 96 | + - Hold out hidden test cases for instructor-only grading |
| 97 | + |
| 98 | +- 🧠 Adaptive Feedback Loops |
| 99 | + - Tailor feedback complexity to student performance |
| 100 | + - Allow students to rate LLM feedback |
| 101 | + |
| 102 | +::: |
| 103 | + |
| 104 | +## Key Takeaways |
| 105 | + |
| 106 | +::: {.fragment .fade .tight-boxed-content style="margin-top: -0.15em; font-size: 0.7em;"} |
| 107 | + |
| 108 | +**Better exam grading, better learning** |
| 109 | + |
| 110 | +- Helps students debug and learn |
| 111 | +- Saves teachers time |
| 112 | +- More fair + consistent grading |
| 113 | +- Scales to large classes |
| 114 | + |
| 115 | +::: |
| 116 | + |
| 117 | +::: {.fragment .fade .tight-boxed-content style="margin-top: -0.15em; font-size: 0.6em;"} |
| 118 | + |
| 119 | +**🚀 Try ExecExam: Let’s build smarter CS assessments** |
| 120 | + |
| 121 | +- 🔗 GitHub Repository: [https://github.com/GatorEducator/execexam](https://github.com/GatorEducator/execexam) |
| 122 | +- 💻 PyPI: [https://pypi.org/project/execexam/](https://pypi.org/project/execexam/) |
| 123 | +- 🤝 Reach out or contribute |
| 124 | + - Pallas-Athena Cain: **cain01@allegheny.edu** |
| 125 | + - Gregory M. Kapfhammer: **gkapfhammer@allegheny.edu** |
| 126 | + |
| 127 | +🦚 Consider a birds of a feather session about automated grading |
| 128 | + |
| 129 | +::: |
| 130 | + |
| 131 | +## References |
| 132 | + |
| 133 | +::: {.fragment .tight-boxed-content style="margin-top: -0.15em; font-size: 0.5em;"} |
| 134 | + |
| 135 | +- João Paulo Barros, Luís Estevens, Rui Dias, Rui Pais, and Elisabete Soeiro. 2003. Using lab exams to ensure programming practice in an introductory programming course. SIGCSE Bull. 35, 3 (September 2003), 16–20. https://doi.org/10.1145/961290.961519 |
| 136 | +- Jonathan Corley, Ana Stanescu, Lewis Baumstark, and Michael C. Orsega. 2020. Paper Or IDE? The Impact of Exam Format on Student Performance in a CS1 Course. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education (SIGCSE '20). Association for Computing Machinery, New York, NY, USA, 706–712. https://doi.org/10.1145/3328778.3366857 |
| 137 | +- Scott Grissom, Laurie Murphy, Renée McCauley, and Sue Fitzgerald. 2016. Paper vs. Computer-based Exams: A Study of Errors in Recursive Binary Tree Algorithms. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE '16). Association for Computing Machinery, New York, NY, USA, 6–11. https://doi.org/10.1145/2839509.2844587 |
| 138 | +- Sevkli, Z. 2024. Assessing the Impact of Open-Resource Access on Student Performance in Computer-Based Examinations. In Proceedings of the 2024 ASEE Annual Conference & Exposition, Portland, Oregon. https://doi.org/10.18260/1-2--46619 |
| 139 | +- Vesa Lappalainen, Antti-Jussi Lakanen, and Harri Högmander. 2016. Paper-based vs computer-based exams in CS1. In Proceedings of the 16th Koli Calling International Conference on Computing Education Research (Koli Calling '16). Association for Computing Machinery, New York, NY, USA, 172–173. https://doi.org/10.1145/2999541.2999565 |
| 140 | + |
| 141 | +::: |
0 commit comments