Graduation Year


Document Type




Degree Name

MS in Computer Science (M.S.C.S.)

Degree Granting Department

Computer Science and Engineering

Major Professor

Alessio Gaspar, Ph.D.

Committee Member

John Licato, Ph.D.

Committee Member

Srinivas Katkoori, Ph.D.


Automated Refactoring, Concept Inventories, Grammatical Evolution


Identifying common misconceptions held by novice programmers is a primary goalof the Computing Education Research agenda. This thesis proposes to formalize such mis-conceptions through program transformations. We first describe the implementation of theEvoParsons system, that allows students to practice programming skills with the help ofso-called Parsons puzzles. This software serves as a tool for gathering data on how studentsinteract with such puzzles. Our first contribution is the system architecture reorganization:development of Web SPA UI, REST service back-end, hypothesis validation infrastructureand student-UI data collection. We then review and compare several code-transformationtools (ANTLR, Rascal MPL and StrategoXT) and show how they might be leveraged tomodel program transformations. We particularly focus on the improvement they provide, interms of expressiveness, when compared to the regular expressions that were used in initialversion of the EvoParsons system. Our second contribution is to implement code trans-formations modeling novice programmers’ misconceptions that have been identified in theComputing Education research literature. We particularly focus on the misconceptions thatrequire increased expressiveness and can not be modelled by regular expressions. Our thirdcontribution is to provide a proof of concept implementation of an automated system to syn-thesize code transformations by leveraging both Evolutionary Computation (GrammaticalEvolution) and Meta-Programming techniques.