Skip to Main Content
Nowadays computer programs are objectively tested and marked by automated programming assessment systems in computer science education. Dynamic analysis and static analysis are two major approaches in the field of automated programming assessment. Methods adopted by dynamic and static analysis have been emphasized and detailed in this paper. Advantages and disadvantages of them implemented in instruction have been analyzed when taking instructional practice into consideration. Although many automated programming assessment systems have been proved to be of great help to both instructors and students in programming instruction, several problems remain unsolved, such as the security problem and algorithms for automatic generation of test data in dynamic analysis, low accuracy and precision of correctness and functionality assessment in static analysis, thus optimal approaches are still under research. The way of effective use of dynamic analysis and static analysis in instructional practice is also suggested in order that instructors can use the results of this study to choose the most appropriate approach in the context of a particular instructional goal. Finally, standardization of automated programming assessment systems, way to open source code and intelligent tutor system for automated programming assessment are expected to come into exist in the future.