Your browser does not allow JavaScript!
JavaScript is necessary for the proper functioning of this website. Please enable JavaScript or use a modern browser.
Open Science Slovenia
Open Science
DiKUL
slv
|
eng
Search
Browse
New in RUL
About RUL
In numbers
Help
Sign in
Generiranje namigov v sistemih za poučevanje programiranja
ID
LAZAR, TIMOTEJ
(
Author
),
ID
Bratko, Ivan
(
Mentor
)
More about this mentor...
PDF - Presentation file,
Download
(2,88 MB)
MD5: 427736376A9B6DE0BF384CF76EE41698
Image galllery
Abstract
Programiranje je uporabna in zmeraj pomembnejša veščina. V zadnjem desetletju so se pojavili mnogi spletni tečaji programiranja, za katere je izkazalo interes mnogo uporabnikov. Na takih tečajih je običajno preveč udeležencev, da bi učitelj delal z vsakim posameznikom. Prav neposredne povratne informacije pa lahko zelo olajšajo učenje. Področje inteligentnih sistemov za poučevanje oziroma tutorjev se ukvarja s problemom samodejnega podajanja povratnih informacij. Ti sistemi so tradicionalno temeljili na domenskem modelu, ki ga učitelj definira vnaprej. Izdelava takega modela je težavna naloga, sploh v kompleksnih domenah, kot je programiranje. Potencialna rešitev tega problema je uporaba podatkovno vodenih modelov, ki jih tutor samodejno zgradi tako, da opazuje, kako so učenci reševali naloge v preteklosti. Ko nov učenec naleti na podobno težavo, ga lahko sistem z namigi usmeri na pravo pot. Pri poučevanju programiranja je tak pristop precej zahteven, saj akcij pri pisanju programa ni lahko interpretirati. Disertacija predstavlja dva nova pristopa k podatkovno vodenemu modeliranju programerskih domen. Prvi pristop modelira pisanje programa z zaporedjem popravkov kode in se uči prepisovalnih pravil za spreminjanje programov. S temi pravili lahko tutor samodejno odpravi napake v novih nepravilnih programih. Drugi pristop uporablja sintaktične vzorce v abstraktnih sintaktičnih drevesih, na podlagi katerih se uči pravil za ločevanje med pravilnimi in nepravilnimi programi. Oba modela lahko uporabimo za samodejno odkrivanje tipičnih napak v programih in generiranje namigov. Razvili smo spletno aplikacijo za učenje programiranja, v kateri smo preizkusili oba pristopa. Rezultati kažejo, da lahko na podlagi obeh modelov generiramo namige, ki učencem pomagajo pri reševanju programerskih nalog.
Language:
English
Keywords:
inteligentni sistemi za poučevanje
,
programiranje
,
odkrivanje napak
Work type:
Doctoral dissertation
Organization:
FRI - Faculty of Computer and Information Science
Year:
2018
PID:
20.500.12556/RUL-100507
COBISS.SI-ID:
1537749699
Publication date in RUL:
23.03.2018
Views:
1318
Downloads:
439
Metadata:
Cite this work
Plain text
BibTeX
EndNote XML
EndNote/Refer
RIS
ABNT
ACM Ref
AMA
APA
Chicago 17th Author-Date
Harvard
IEEE
ISO 690
MLA
Vancouver
:
Copy citation
Share:
Secondary language
Language:
Slovenian
Title:
Hint generation in programming tutors
Abstract:
Programming is increasingly recognized as a useful and important skill. Online programming courses that have appeared in the past decade have proven extremely popular with a wide audience. Learning in such courses is however not as effective as working directly with a teacher, who can provide students with immediate relevant feedback. The field of intelligent tutoring systems seeks to provide such feedback automatically. Traditionally, tutors have depended on a domain model defined by the teacher in advance. Creating such a model is a difficult task that requires a lot of knowledgeengineering effort, especially in complex domains such as programming. A potential solution to this problem is to use data-driven methods. The idea is to build the domain model by observing how students have solved an exercise in the past. New students can then be given feedback that directs them along successful solution paths. Implementing this approach is particularly challenging for programming domains, since the only directly observable student actions are not easily interpretable. We present two novel approaches to creating a domain model for programming exercises in a data-driven fashion. The first approach models programming as a sequence of textual rewrites, and learns rewrite rules for transforming programs. With these rules new student-submitted programs can be automatically debugged. The second approach uses structural patterns in programs’ abstract syntax trees to learn rules for classifying submissions as correct or incorrect. These rules can be used to find erroneous parts of an incorrect program. Both models support automatic hint generation. We have implemented an online application for learning programming and used it to evaluate both approaches. Results indicate that hints generated using either approach have a positive effect on student performance.
Keywords:
intelligent tutoring systems
,
programming
,
error discovery
Similar documents
Similar works from RUL:
Similar works from other Slovenian collections:
Back