{'fraction_non_alphanumeric': 0.021212121212121213, 'fraction_numerical': 0.0, 'mean_word_length': 5.320574162679426, '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': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Automated and Manual Grading of Web-Based Assignments

Grading web-based assignments poses many unique challenges when compared with other types of programming assignments. For introductory courses, grading involves not just validation of source code, but also performing some level of functional testing through a browser environment, where one clicks on content, and validates the browser state. In upper level courses, assignments increasingly use several different services, such as a web server and database, running concurrently, each potentially exposing ports for user access. Finally, for some assignments where students are encouraged to be creative, an instructor must then be able to view and interact with the running code, which has historically meant downloading, setting it up on their local machine, and running it -- which can prove burdensome. In this work, we present a system that can perform the task of automated grading, create a web-accessible environment on the server for the instructor to manually grade the assignment, and that can scale to handle many concurrent instances of both. To evaluate the effectiveness of our system, we will demonstrate its usage within the context of several assignments ranging over several different levels and courses of our Information Technology curriculum.