# A Python-Based Automation Script to Mark Computer-Aided Design Assessments
## 1 Introduction  
Computer-Aided Design (CAD) software has become an integral part of engineering education, allowing students to create and manipulate 3D models of parts and assemblies [1]. However, the assessment of student submissions in CAD courses can be time-consuming and labour-intensive for instructors [2]. This challenge is evident in courses using Solid EdgeTM, v2023, a popular CAD software in mechanical engineering education. Automation in software engineering aims to partially or fully execute software engineering activities with minimal human intervention [3]. In the context of CAD education, automation can significantly streamline the assessment process, allowing instructors to focus on providing valuable feedback rather than repetitive tasks [4, 5, 6]. The application of automation techniques in educational settings has shown promising results in enhancing both teaching efficiency and student learning outcomes [7, 8]. The increasing complexity of CAD models and the growing number of students in engineering programs have amplified the challenges faced by educators in providing timely and comprehensive feedback [3]. Traditional manual assessment methods often lead to inconsistencies in grading and delays in feedback delivery, which can hinder student progress and engagement [3]. Moreover, the time-intensive nature of manual grading limits instructors' ability to focus on higher-order teaching activities, such as fostering critical thinking and problem-solving skills [3, 9, 10]. Automated assessment tools offer a solution to these challenges by providing rapid, consistent, and objective evaluations of student work [3, 11]. By leveraging computationalpower, these tools can analyse complex geometric properties, adherence to design specifications, and other technical aspects of CAD models with high accuracy and speed [12; 13; 14]. This not only reduces the grading workload for instructors but also enables them to allocate more time to qualitative feedback and personalised instruction [4; 15; 16]. To address this need, a Python-based automation tool has been developed that facilitates the marking of student part file submissions. Python, with its extensive libraries and ease of use, is well suited for interacting with CAD software and automating repetitive tasks [17]. The tool leverages the software object model and Python's capabilities to analyse student submissions efficiently. The choice of Python for this automation task is strategic. Python's open-source nature, versatility, and rich ecosystem of libraries make it an ideal language for developing educational technology solutions. Its readability and relatively low learning curve also make it accessible to educators who may want to customise or extend the tool's functionality. Furthermore, Python's strong presence in data science and machine learning opens up possibilities for future enhancements, such as incorporating predictive analytics or adaptive learning features into the assessment process [17]. The integration of automated assessment tools in engineering education has been shown to improve the consistency and objectivity of grading processes [2; 3]. Furthermore, such tools can provide students with immediate feedback, which is crucial for effective learning in technical disciplines. This aligns with established pedagogical principles that emphasise the importance of timely and detailed feedback in fostering student engagement and skill development [5; 8; 10]. Automated assessment tools also have the potential to transform the learning experience by enabling more frequent and formative assessments [6; 16]. Instead of relying solely on summative evaluations at the end of a course, instructors can implement regular checkpoints throughout the learning process. This approach supports a more iterative and reflective learning cycle, allowing students to identify and address misconceptions or skill gaps early on [6; 16; 18].