The Design of an Automated C Programming Assessment Using Pseudocode Comparison Technique. Khirulnizam Abd Rahman 1 , Syarbaini Ahmad 2 , Md Jan Nordin 3 1 khirulnizam@kuis.edu.my, 2 syarbaini@kuis.edu.my, 3 jan@ftsm.ukm.my 1, 2 Faculty of Technology and Information Science Kolej Universiti Islam Antarabangsa Selangor (KUIS) Bandar Seri Putera, Bangi 43000 Kajang, Selangor 3 Fakulti Teknologi dan Sains Maklumat Universiti Kebangsaan Malaysia (UKM) 43200 Bangi, Selangor Abstract — Automated programming assessment is a computer aided approach in checking and grading students programming exercises, without the hassle of doing it manually. This is an attempt to do programming exercise assessment using one of the static analysis approach; a non-structural similarity analysis by using the pseudo-code comparison. The application will generate the pseudocode for the students C programming exercises and the solution models provided by the programming instructor. At the end of the process, the student’s pseudocode and the pseudocode of the solution models will be compared and the similarity percentage will be considered as the mark. This paper will be discussing the details about the design of this application only. Since the development of this application is based on the object oriented approach, the design will be represented using the Unified Modeling Language (UML). Each class and the relationship with the other classes will be elaborated. Keywords : automated programming assessment, pseudocode generator, pseudo-code comparison, static analysis, non-structural similarity. INTRODUCTION Automated programming assessment system is a computer aided application to check, evaluate, or even grade the programming exercises. The main reason for the development of all the automated programming assessor or grader is to facilitate the programming instructor in checking and evaluating their students performance in programming course. Since the students’ enrollment in most of the programming subjects are high, and too much exercises or assignments need to be given to the students [1] the instructors need a helping hand to minimize their burden. In this case, automated programming assessment system is much more preferred than hiring tutors or demonstrators. There are two major approaches in automated programming assessment. The first is through the dynamic approach which needs the program execution in order to determine the program correctness. The later is the static approach where by program will be assessed without being executed [1]. This research is about developing another assessment method categorized in the static analysis approach. The method is a non-structural similarity analysis [5]. The assessment is done by translating the student’s and instructor’s source code into the pseudocodes and they are compared to find the similarity percentage. This paper will be focusing on the design part of the application. The summary of whole process is represented by a flow chart. Since the development of the application is implementing the object oriented programming methodology, the UML class diagram is used to visualize the objects interaction and relationship. The use case diagram is also drawn to show the interaction between the application and the users involved. PREVIOUS WORKS There are many methods categorized in the static analysis approach of automated programming assessment. Ala-Mutka [1] suggested that among the methods are coding style assessment, programming errors detector, software metrics measurement, design assessment, keyword detector and plagiarisme detector. Thruong et. al. [4] added structural similarity analysis to the list. Norshuhani et. al. [5] added non- structural similarity analysis to complement Thruong’s suggestion. Environment for Learning Programming (ELP) In the research to develop Environment for Learning Programming (ELP), Thruong et. al. [4] are using structural similarity analysis as a part of the static analysis assessment to evaluate student’s programming answers. The structural similarity analisis is done by converting the program source code into the pseudocode abstract. The pseudocode abstract is the representation of the basic algorithmic structure of the program. structure of the programs. The student’s abstract representations then compared to the abstract representation generated from the instructor’s solution models (the answer scheme). Since the abstract is too simple, the method proposed is only suitable to assess simple programming exercise. More complicated programming exercise will produce variation in student’s answers. The instructors need to provide several different answer schemes in order to provide all the possible answers.