Introduction. The comprehension of computer programs is claimed to be a decisive faculty and even skill of any successful exercising professional duties of program engineers, for example, prototype analysis, decision making and discussion about algorithms and structures, development of detailed documentation, test development and test analysis. Exercising of the duties demands from the engineer a special competence to judge about a program behavior basing on the consideration of its source and sometimes digital codes, screenshots, execution protocols. The skill and opportunity to make trial runs can supplement but not replace the competence. Manifesting itself on particular programs it is not a presentation of an extensive and deep familiarity with the programs, but results from the experience with a lot of programs and is obscured by another competence, the competence of the developer. This paper is aimed to precise the interpretation of the notion “program comprehension”, to research the opportunities of a purposeful and enhanced teaching the program comprehension, to develop methods and tools for the assessment of the program comprehension teaching in the higher school. The aim is relevant because of current university curricula allot considerable lecture and laboratory time for teaching programming, including program comprehension. But this time is constantly not enough in view of a growing intensity of innovations in the area of the program engineering. The problem of a control over processes of the program comprehension fostering in a computer class is a key problem of achieving the aim having been set. Materials and methods. The research is based on the university syllabi, the author’s lecture notes, protocols of experimental and sample runs of the developed programs, Internet resources, such as site of the ACM and others. The following research methods were used: terminological analysis and elaboration of a vocabulary demanded in the research and discourse within the paper; modelling and simulation, including a theoretical conceptual model representation of the program comprehension, a computer program simulation of the monitoring and control over the comprehension progress; an UMLpresentation and a trial implementation of the proposed interface for the program comprehension monitoring and control. Research results. Redefinition of conceptual cognitive models of program comprehension is proposed. The program comprehension is postulated to be a state of the cognitive knowledge base that represents an actual affordance of giving correct answers to questions about an eventual program behavior. This model highlights a special kind of teaching to be called “didactic parsing” that is targeted to generate at the audience a comprehension of programs being parsed. Dynamics of question and answers during the didactic parsing is used for assessing the education success and, finally, for a control of the teaching tempo. A user interface for learning computer systems (counters, controls and policies) are proposed to assist in monitoring and control of the didactic parsing. Sample implementation of the interface is built in JL (Joint Lesson) computer system. A graph model and a corresponding simulation program are developed that capture relevant dynamic features of control over the didactic parsing and are applied for the further investigation and demonstration of general didactic parsing effects as well as an aid for planning and control of program comprehension teaching during particular lectures. Conclusion. The research results provide creation of an environment, methods and tools enabling to positively impact the processes of program comprehension attainment. In particular, they permit to control the program comprehension level at a particular audience, adjust style of teaching to be most applicable to it, refine time plans of lectures in the area of program engineering.
Read full abstract