The "Rich, Immediate Critique of Antipatterns in Student Code" (RICA) project aims to provide rich, relevant, and immediate feedback to students learning to program in their first year of engineering education. This feedback is indispensable in effective student learning, particularly in introductory computing courses. Students often need help understanding compilation or run-time messages, and code structures that initially seem intuitive can have unintended and poorly understood consequences. Conventional classroom feedback mechanisms fall short here, partly because large-scale courses like those in First-Year Engineering (FYE) often strain the instructional team's capacity to deliver timely feedback. Our work-in-progress project aims to address this challenge by developing real-time Code Critiquers specifically tailored for First-Year Engineering (FYE).
Our ongoing project is developing a real-time Code Critiquer system, WebTA, that identifies, categorizes, and provides feedback on code antipatterns in student-submitted MATLAB code. In programming, where the learning process is iterative and often fraught with errors, immediate feedback can serve as a critical form of scaffolding.
The RICA project aligns with broader educational theory that supports the vital role of immediate feedback. However, it takes it a step further by focusing on the "richness" and "relevance" of this feedback. The project exists in the intersection of computer science, engineering, and cognitive & learning sciences. By focusing on antipatterns, it addresses the mental models that students form while learning to code.
While autograders and other automated assessment tools have been instrumental in scaling up coding education, their primary limitation lies in evaluating syntactical and functional correctness, often overlooking the "antipatterns" in student code. Antipatterns represent code structure, which, while usually syntactically correct, could lead to unintended consequences: errors, inefficiencies, or complexities.
The context of the project is a First-Year Engineering Program. At our institution, FYE has a typical total enrollment of approximately 1,000 students matriculating each fall into the College of Engineering. FYE is a common first-year engineering experience taken by all first-year students in the College of Engineering. During an Engineering Fundamentals course, students are taught programming in MATLAB.
The poster focuses on research conducted by our graduate students over the past year. This research includes preliminary analysis of classroom data, work developing a Machine Learning algorithm to detect antipatterns, exploration of the impact of feedback on student self-efficacy, and efforts to develop a common Abstract Syntax Tree representation for multiple languages (in particular Java, MATLAB, and Python).
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.