Requirements definition for an Automatic Tutor for Designing Function Prototype in the C Language
Abstract
Requirements definition for an Automatic Tutor for Designing Function Prototype in the C Language
Incoming article date: 17.05.2022Designing function interface in the form of function prototype is an important skill in programming. In this article, we discuss the problems of designing function prototypes in the C programming language. This learning task requires performing 5 different steps. Students can make mistakes at each step. These mistakes can concern misconceptions of function's action, identification of data elements, determining of conceptual-level data types for data elements, data elements' directions, inconvenient naming of function and parameters, and syntax of the C language. Modern solutions for analyzing program code and checking student-written code do not detect all these mistakes in the function-interface design. Existing approaches are based on general solutions for seeking errors in program code so they cannot provide informative feedback about semantic mistakes in designing function interfaces. We propose developing an automatic tutor which should guide students through the process of designing function prototypes step by step, detecting and explaining mistakes at each step and providing hints to help fixing the found mistakes. The tutor should allow natural variability in the function interface. In order to deal with various possible representations of the data passed to and from function, the tutor should work with a formal subject-domain model and a model of the target programming language.
Keywords: automatic tutors, requirements for tutoring systems, introductory programming learning, tasks with complex result, multi-step tasks, online education, mixed education, automatic grading