majeedkazemi
in our research, we found that an AI agent which involves the user in each step of the process (e.g. asking them to check the AI’s assumptions, or edit them directly if they’re not good) ends up being a bit slower -- i.e. more friction -- but gives the user more control. And when compared with an AI agent that provides less control but faster, users preferred the slower agent which provided more agency.
> did you measure the correlation between CodeAid use and test scores?
Unfortunately, we couldn't measure such correlations due to many external factors that can impact students' performance on test scores.
However, our previous research specifically compared students learning python coding for the first time with and without LLM code generators. Austin and I wrote a summary on it here: https://austinhenley.com/blog/learningwithai.html
We found that students who performed higher on our Scratch programming pre-tests (before starting the Python lessons), performed significantly better if they had access to the code generator. However, the system that we used in that study was very different, it showed the exact code solution to the students' query. Here with CodeAid we were trying to avoid producing direct code solutions!
We need both humans and AI. But there are problems with both, so that's why they can hopefully complement each other. Humans might have limited patience, availability, etc. and AI lacks empathy, and can be over-confident.
> Why are we doing this to academia when the better approach would be giving TAs better training in actual teaching?
Sure, that is a fantastic idea and some researchers have explored it.
But, what's wrong with doing exploratory research, in a real-world deployment? In the paper we describe both where CodeAid failed and where students and educators found it useful, in a very honest way.
Human TA's have ego, AI doesn't. With proper tools, you should be able to steer an AI agent.
I think both humans and AI agents both have their drawbacks and benefits. That's why the last section of the paper discusses that we even need to teach students (or provide tools) to help them decide where to use AI vs non-AI tools.
1. Provide students with the tools and knowledge to critically verify responses, either coming from an educator or a an AI agent. 2. Build more transparent AI agents that show how reliable they are on different types of queries. Our deployment showed that the Help Fix Code was less reliable, while other features were significantly better.
But totally agree that we should be discussing the ethical implications much more.
→ a context-aware toolbox of explorable tutorials
→ allows point-and-click + char-by-char code insertions
→ automatically handles syntax
→ provides immediate feedback + suggestions while coding
→ provides visual aids: holes + scope
We also evaluated CodeStruct in an 11-session study with 26 high school students. Some of the results:
→ Transitioning to CodeStruct reduced syntax errors (4.35x) and help requests (4.63x) when compared to transitioning directly to Python.
→ Interestingly, learners that used CodeStruct performed equally well after the scaffolds were removed.
Learn more here: https://dl.acm.org/doi/10.1145/3501712.3529733
We've had a similar goal and were trying to create a tool to help students transition from Scratch to Python using an intermediary structured editor that provides scaffolds such as handling syntax.
Here's a research paper that we published on CodeStruct: https://dl.acm.org/doi/10.1145/3501712.3529733