izpis_h1_title_alt

Programski vzorci v rešitvah izbranih nalog v sistemu Tomo : magistrsko delo
ID Erjavec, Urška (Author), ID Nančovska Šerbec, Irena (Mentor) More about this mentor... This link opens in a new window, ID Zapušek, Matej (Comentor)

.pdfPDF - Presentation file, Download (1,69 MB)
MD5: F0C06D2BE0F0DA504617F51A65347123

Abstract
V magistrskem delu se ukvarjamo z analizo programskih rešitev študentov za izbrane naloge v sistemu Tomo in z iskanjem programskih vzorcev v njih. V teoretičnem delu magistrskega dela definiramo pojem programskega vzorca in predstavimo prednosti vključevanja programskih vzorcev pri učenju uvodnega programiranja. Programski vzorci lahko služijo kot pomoč učiteljem pri poučevanju konceptov programiranja. Definiramo jih kot kognitivne strukture, ki ponazarjajo načine razmišljanja pri programiranju ter omogočajo pristopanje k reševanju problemov na konceptualni ravni. Značilnosti programerjev začetnikov, ki jim onemogočajo učinkovito pristopanje k reševanju programerskih problemov, so pomanjkanje izkušenj, omejeno znanje ter pristopanje k programiranju na način »vrstica za vrstico«. Strokovnjaki se pri programiranju pomembno razlikujejo od začetnikov, saj pri pisanju kode uporabljajo smiselne kose programske kode, ki predstavljajo programske vzorce, in jih med seboj kombinirajo v kompleksne rešitve. Vzorec se lahko glede na znanje programerja razlikuje v nivoju kompleksnosti implementacije. Pravilne rešitve začetnikov lahko vsebujejo tudi odvečne dele programske kode. Ugotavljali bomo, ali analiza z vzorci pokaže prisotnost rešitev, ki vsebujejo osnoven vzorec, ki so mu dodani odvečni deli. V empiričnem delu smo preučili programsko kodo rešitev izbranih nalog z iskanjem programskih vzorcev v njih. V raziskavo so vključene anonimizirane rešitve izbranih nalog 1. letnika Fakultete za matematiko in fiziko, smeri Praktična matematika, ki so jih študenti oddali v sistem Tomo med reševanjem domačih nalog v okviru predmeta programiranje 1. Iz sistema Tomo smo analizirali oddaje desetih nalog, da bi ugotovili, kateri vzorci se pojavljajo v pravilnih in nepravilnih rešitvah. Zanimal nas je tudi razvoj oz. pojavitev programskih vzorcev v vmesnih oddajah, od začetne do končne. Rezultati analize kode so pokazali, da vse pravilne rešitve vsebujejo pričakovane programske vzorce, da napačne rešitve ne vsebujejo vseh pričakovanih programskih vzorcev in da zaporedne oddaje rešitev študentov pokažejo razvoj pričakovanih programskih vzorcev od zadnje pravilne oddaje. Rezultati dela so lahko koristni za učitelje programiranja v procesu ocenjevanja rešitev, pri zaznavanju odvečnih delov kode in konceptualnih napak oz. pri eksplicitnem razpoznavanju vzorcev in vrednotenju kode študentov. Avtomatizacija procesa odkrivanja vzorcev bi lahko pomagala razvijalcem tutorskih sistemov pri oblikovanju povratne informacije za ocenjevanje nastajajoče kode študentov, ki se nanaša na njeno vrednotenje, in pri dodajanju dodatnega nivoja preverjanja v primeru, ko želi študent prelisičiti avtomatično preverjanje pravilnosti.

Language:Slovenian
Keywords:uvodno programiranje, programski vzorci, avtomatsko ocenjevanje programskih nalog, didaktično programiranje, analiza programske kode
Work type:Master's thesis/paper
Typology:2.09 - Master's Thesis
Organization:PEF - Faculty of Education
Place of publishing:Ljubljana
Year:2022
Number of pages:124 str.
PID:20.500.12556/RUL-142982 This link opens in a new window
UDC:004.42(043.2)
COBISS.SI-ID:132913667 This link opens in a new window
Publication date in RUL:07.12.2022
Views:747
Downloads:70
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Programming Patterns in the Solutions to Selected Tasks in the Tomo System
Abstract:
In the master's thesis, we analyzed students’ programming solutions for selected tasks in Project Tomo and evaluated the programming patterns they contain. In the theoretical part of the master's thesis, we defined the concept of programming patterns, presented the advantages of their occurrence in the solutions analysis, and their inclusion in introductory programming learning. Programming patterns can help teachers in teaching programming concepts. Programming patterns are defined as cognitive structures that illustrate the ways of thinking while programming and provide problem-solving approaches at a conceptual level. The characteristics of novice programmers that can prevent an effective approach to programming problems are lack of experience, limited knowledge, and line-by-line programming. Expert programming differs significantly from novice programming, because they use meaningful pieces of programming code that represent programming patterns which are combined with each other to form complex solutions. The pattern may differ in the degree of complexity of the implementation and depends on the knowledge of the programmer. A novice's solution, although correct, may also contain redundant parts of the programming code. The pattern analysis has shown there are solutions that contain basic, expected patterns but also the novices have added redundant parts. In the empirical part, we expertly examined the programming code for the solutions of the selected tasks by searching for the programming patterns in them. The research included anonymized solutions of selected tasks submitted by 50 first-year students in the Faculty of Mathematics and Physics, majoring in Practical Mathematics. They were using Project Tomo while they were solving homework in the Programming 1 course. We analyzed the submissions for ten assignments from Project Tomo to determine what patterns appear in correct and incorrect solutions, as well as how the programming patterns evolved in intermediate solutions, from beginning to end. The results of the code analysis showed that all correct solutions contained the expected programming patterns and that incorrect solutions did not contain all the expected programming patterns. Successive submissions of students’ solution showed the ”evolution” of the expected programming patterns toward the final correct submission. The results of the study may be useful for computer science teachers when teaching introductory programming. By explicitly revealing patterns, students’ code can be evaluated and redundant parts of the code, and conceptual errors can be detected. Automating the pattern analysis could help tutoring system developers in providing quick feedback. It could also help evaluate students’ emerging code. In addition, cases where someone tries to bypass automatic correctness checking could be detected by adding an additional layer of verification.

Keywords:introductory programming, programming patterns, automated assessment of programming tasks, programming didactics, programming code analysis

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back