Syntax-Based Analysis of Programming Concepts in Python
M. Mozina, and T. Lazar. Artificial Intelligence in Education, page 236--240. Cham, Springer International Publishing, (2018)
Abstract
Writing programs is essential to learning programming. Most programming courses encourage students to practice with lab and homework assignments. By analyzing solutions to these exercises teachers can discover mistakes and concepts students are struggling with, and use that knowledge to improve the course. Students however tend to submit many different programs even for simple exercises, making such analysis difficult. We propose using tree regular expressions to encode common patterns in programs. Based on these patterns we induce rules describing common approaches and mistakes for a given assignment. In this paper we present a case study of rule-based analysis for an introductory Python exercise. We show that our rules are easy to interpret, and can be learned from a relatively small set of programs.
Description
Syntax-Based Analysis of Programming Concepts in Python | SpringerLink
%0 Conference Paper
%1 10.1007/978-3-319-93846-2_43
%A Mozina, Martin
%A Lazar, Timotej
%B Artificial Intelligence in Education
%C Cham
%D 2018
%E Penstein Rosé, Carolyn
%E Martínez-Maldonado, Roberto
%E Hoppe, H. Ulrich
%E Luckin, Rose
%E Mavrikis, Manolis
%E Porayska-Pomsta, Kaska
%E McLaren, Bruce
%E du Boulay, Benedict
%I Springer International Publishing
%K program-analysis python splice
%P 236--240
%T Syntax-Based Analysis of Programming Concepts in Python
%X Writing programs is essential to learning programming. Most programming courses encourage students to practice with lab and homework assignments. By analyzing solutions to these exercises teachers can discover mistakes and concepts students are struggling with, and use that knowledge to improve the course. Students however tend to submit many different programs even for simple exercises, making such analysis difficult. We propose using tree regular expressions to encode common patterns in programs. Based on these patterns we induce rules describing common approaches and mistakes for a given assignment. In this paper we present a case study of rule-based analysis for an introductory Python exercise. We show that our rules are easy to interpret, and can be learned from a relatively small set of programs.
%@ 978-3-319-93846-2
@inproceedings{10.1007/978-3-319-93846-2_43,
abstract = {Writing programs is essential to learning programming. Most programming courses encourage students to practice with lab and homework assignments. By analyzing solutions to these exercises teachers can discover mistakes and concepts students are struggling with, and use that knowledge to improve the course. Students however tend to submit many different programs even for simple exercises, making such analysis difficult. We propose using tree regular expressions to encode common patterns in programs. Based on these patterns we induce rules describing common approaches and mistakes for a given assignment. In this paper we present a case study of rule-based analysis for an introductory Python exercise. We show that our rules are easy to interpret, and can be learned from a relatively small set of programs.},
added-at = {2018-07-11T05:19:04.000+0200},
address = {Cham},
author = {Mo{\v{z}}ina, Martin and Lazar, Timotej},
biburl = {https://www.bibsonomy.org/bibtex/2da24581245b242e3a95132d77fc388f2/brusilovsky},
booktitle = {Artificial Intelligence in Education},
description = {Syntax-Based Analysis of Programming Concepts in Python | SpringerLink},
editor = {Penstein Ros{\'e}, Carolyn and Mart{\'i}nez-Maldonado, Roberto and Hoppe, H. Ulrich and Luckin, Rose and Mavrikis, Manolis and Porayska-Pomsta, Kaska and McLaren, Bruce and du Boulay, Benedict},
interhash = {7e76bb5d8d0ca934a2f4acb1ef57595a},
intrahash = {da24581245b242e3a95132d77fc388f2},
isbn = {978-3-319-93846-2},
keywords = {program-analysis python splice},
pages = {236--240},
publisher = {Springer International Publishing},
timestamp = {2018-07-11T05:19:04.000+0200},
title = {Syntax-Based Analysis of Programming Concepts in Python},
year = 2018
}