Skip to content

Prototypes for Apollo++, a tool for automated assessment of programming projects

License

Notifications You must be signed in to change notification settings

arthurrump/apollopp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apollo++ Prototypes

This repository contains prototypes for parts of Apollo++, a tool for automated assessment of programming projects. The prototype works for projects in Java, as well as Processing projects through a pre-processing step. These parts are divided across four folders:

  • extractor: extracts graph representations from code. Currently, it creates a typegraph (with classes, methods, fields and their relations) for each project. This part is written in Rascal.
  • graphmatcher: matches typegraphs created by the extractors with defined code patterns. The tool includes a batch functionality to run the patterns on a set of target projects and a watch-mode to run patterns on a set of targets each time the patternfile changes. The latter is useful to quickly see some results and get suggestions for extensions while writing the pattern definitions. This part is written in F#.
  • pre_process contains a few scripts used to anonymize student projects used for evaluation, prepare the dataset for analysis and to convert Processing projects to Java code. These scripts are written in Python.
  • suggest_llm: commandline tool based on TypeChat to get suggestions from ChatGPT for patterns based on asssessment criteria.

The folder criteria contains the patterns for some of the assessment criteria for the courses we considered in the research.

About

Prototypes for Apollo++, a tool for automated assessment of programming projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published