1. Teaching of introductory programming based on semantic evaluation of programs
- Author
-
Dadić, Tonči, Glavinić, Vlado, and Rosić, Marko
- Subjects
početno programiranje ,introductory programming ,Elektrotehnika ,korektnost programa ,semantička udaljenost izraza ,program correctness ,e-učenje ,semantička udaljenost programskih entiteta ,program evaluation ,TECHNICAL SCIENCES. Computing. Architecture of Computer Systems ,udc:621.3(043.3) ,TEHNIČKE ZNANOSTI. Računarstvo. Arhitektura računalnih sustava ,vrednovanje programa ,semantic distance of program entities ,Electrical engineering ,semantic distance of expressions ,e-learning ,program representation through entities ,entitetski prikaz programa - Abstract
Sustavi za automatsko ocjenjivanje programa, kao i inteligentni tutorski sustavi, vrednuju studentske programe s ciljem provjere njihove ispravnosti te lociranja i ispravljanja logičkih pogrešaka. Odgovarajući alati za vrednovanje programa trebaju se baviti logičkim programskim pogreškama na način koji je usporediv s funkcijom suvremenih kompilatora, koji lociraju sintaksne pogreške ističući pogrešan kod, uz poruke koje programerima pomažu razumjeti i ispraviti eventualne sintaksne pogreške. Automatsko vrednovanje programa predstavlja problem, stoga što broj varijanti koje su točna rješenja postavljenog zadatka može biti vrlo velik. Usprkos naporima istraživača u ovom području, postojeći sustavi ne vrednuju studentske programe na zadovoljavajući način, što traži novi pristup vrednovanju. U ovoj se disertaciji opisuje novi pristup koji kombinira automatsku verifikaciju programa u odnosu na njegovu formalnu specifikaciju s prepoznavanjem studentovog programa na temelju njegove semantičke udaljenosti od modela. Prva je metoda nezavisna o implementaciji vrednovanog programa, tako da daje pouzdanu informaciju o njegovoj korektnosti, dok druga metoda precizno locira logičke pogreške i provodi minimalne korekcije programa uvažavajući studentovu namjeru. Izvorni znanstveni doprinosi, ostvareni istraživanjem koje disertacija prikazuje, uključuju entitetski prikaz programa, semantičku udaljenost programskih entiteta te oblikovanje prototipnog računalnog sustava zasnovanog na navedenim pojmovima. Automatic evaluation of students’ programs is found in both grading and tutoring systems, its aim being the verification of correctness of students’ programs, as well as bugs localization and fixing. The respective evaluation tools should therefore deal with logical programming errors in a way which is comparable to the functionality of modern compilers, which localize syntax errors by highlighting erroneous code, along with delivering messages that help programmers to understand and correct possible syntax errors. As the number of possible program implementation variants, which are correct solutions for a given problem, can be quite large, issues can arise in performing a comprehensive evaluation. Despite the efforts of researchers in this area, the presently known systems do not evaluate students' programs in a satisfactory manner, which requires a new approach to the evaluation of student programs. In this dissertation an approach which combines both program verification with respect to a formal specification and recognition of students' programs based on the semantic distance from a program model is presented. While the former method is implementation independent, thus providing reliable information about program correctness, the latter one precisely localizes bugs and provides minimal corrections which are accommodated to students' intentions. The scientific contribution of the research reported in the dissertation includes program representation through entities, semantic distance of entities, and design of the prototype system implementing the above notions.
- Published
- 2015