{'fraction_non_alphanumeric': 0.02332814930015552, 'fraction_numerical': 0.0, 'mean_word_length': 5.571428571428571, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Courses as Code: The Aquinas Learning System

Aquinas aims to maximally apply an everything-as-code approach to teaching the practice of programming and exploit development using hands-on exercises. Teachers define exercises using a machine-readable format, and Aquinas processes these definitions to setup artifacts such as instructions, grading scripts, and network targets. Students submit solutions using Git and benefit from immediate grading. This paper describes the design and implementation of Aquinas, and it evaluates Aquinas’s effectiveness as a teaching tool in undergraduate and graduate courses. Aquinas is open source software.