Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant

The Swedish government has decided to add programming to the Swedish curriculum to strengthen students’ digital skills. The teachers who will teach programming do not always know programming themselves. Because of that, KTH Royal Institute of Technology researchers are planning to start an initiativ...

Full description

Bibliographic Details
Main Author: Myrsmeden, Johan
Format: Others
Language:English
Published: KTH, Lärande 2018
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-231984
id ndltd-UPSALLA1-oai-DiVA.org-kth-231984
record_format oai_dc
collection NDLTD
language English
format Others
sources NDLTD
topic constructivism
formative assessment
automated assessment
computer-aided education
computer-aided assessment
konstruktivism
formativ bedömning
automatiserad bedömning
datorstödd undervisning
datorstödd bedömning
Learning
Lärande
Engineering and Technology
Teknik och teknologier
spellingShingle constructivism
formative assessment
automated assessment
computer-aided education
computer-aided assessment
konstruktivism
formativ bedömning
automatiserad bedömning
datorstödd undervisning
datorstödd bedömning
Learning
Lärande
Engineering and Technology
Teknik och teknologier
Myrsmeden, Johan
Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant
description The Swedish government has decided to add programming to the Swedish curriculum to strengthen students’ digital skills. The teachers who will teach programming do not always know programming themselves. Because of that, KTH Royal Institute of Technology researchers are planning to start an initiative of creating a Massive Open Online Course (MOOC) in fundamental programming in Swedish for those teachers. Interpreting error messages given by the compiler is one problem with learning programming. An aim of this study is to lower that threshold. The study seeks to identify common misconceptions about programming among novice programmers in order to design a static analyser that investigates code written by students and provides formative feedback to help students in their own learning process. The study combines the constructivist theory of learning with views about formative assessment in order to automate the process that is usually done by a teacher or teaching assistant when assessing code. A phenomenographic study is done in order to identify teachers’ perceptions of common misconceptions about programming by interviewing five active teachers at KTH. The results of that study are used to construct code examples that correspond to these misconceptions. Those results lead to the design and implementation of a software that detects these problems in code. That software is evaluated using a larger set of test data, consisting of 77 errors divided into five larger programs, inserted by independent individuals. From the initial study, five categories of misconceptions are given. Of the 77 errors, the majority are correctly positioned and almost all are given a good hint about the position. About a quarter of the errors are parse errors, which never reach the analysing part of the software that demands the program to be parsable. The study shows that we have succeeded both in designing and implementing a software that detects the identified misconceptions with good results. In the context of a MOOC, the software might require an extension with a more advanced parser and also dynamic analysis to be able to test the correctness of the students’ programs. The software is limited to handle the language Javascriptish, which is a subset of JavaScript. === För att stärka den digitala kompetensen bland svenska grundskole och gymnasieelever har programmering lagts in i läroplanen. De lärare som är tänkta att hålla i denna programmeringsundervisning har själva inte alltid tillräckliga kunskaper i programmering, varpå ett initiativ för att hålla en storskalig, öppen och internetbaserad kurs (MOOC) på svenska har startats av forskare på Kungliga Tekniska Högskolan (KTH). En av svårigheterna med att lära sig programmering är att förstå meddelandena som kompilatorn ger. Ett mål med denna studie är att sänka denna tröskel för studenten. Denna studie ämnar identifiera vanliga missuppfattningar om programmering hos nybörjare, för att designa en programvara som utför statisk analys av kod skriven av studenter och därefter ge återkoppling kring dessa missuppfattningar. Studien kombinerar den konstruktivistiska teorin om lärande med tankar om formativ bedömning för att automatisera den process som vanligtvis görs av en lärare eller lärarassistent vid bedömning av kod. En fenomenografisk studie görs för att identifiera lärares uppfattningar om vanliga missuppfattningar kring programmering genom att intervjua fem verksamma lärare på KTH. Resultatet från den studien används sedan för att konstruera kodexempel som belyser de identifierade missuppfattningarna. Därefter designas och implementeras en mjukvara som sedan evalueras genom att analysera totalt 77 fel, konstruerade av oberoende individer, uppdelade på fem större program. Den initiala studien resulterar i fem olika kategorier av missuppfattningar. Av de 77 evaluerade felen ger majoriteten en korrekt positionsangivelse och nästan alla ger en god indikation över var felet ligger. Omkring en fjärdedel av felen är parsningsfel, vilka aldrig når huvudmjukvaran som kräver att programmet är parsningsbart. Studien visar att vi lyckas designa och implementera en programvara som med goda resultat upptäcker vanliga missuppfattningar kring programmering hos nybörjare, baserat på det teoretiska ramverket. I kontexten av en kurs på internet kan programvaran behöva utvecklas med en mer avancerad syntaxanalys (eng. parser) samt lägga till dynamisk analys av program för att även kunna testa programmens korrekthet. Programvaran är begränsad till att analysera kod skriven i språket Javascriptish, vilken är en delmängd till JavaScript.
author Myrsmeden, Johan
author_facet Myrsmeden, Johan
author_sort Myrsmeden, Johan
title Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant
title_short Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant
title_full Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant
title_fullStr Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant
title_full_unstemmed Automation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching Assistant
title_sort automation of formative assessment : implementation and evaluation of an artificial teaching assistant
publisher KTH, Lärande
publishDate 2018
url http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-231984
work_keys_str_mv AT myrsmedenjohan automationofformativeassessmentimplementationandevaluationofanartificialteachingassistant
AT myrsmedenjohan automatiseringavformativbedomningimplementeringochutvarderingavenartificielllararassistent
_version_ 1719314746919878656
spelling ndltd-UPSALLA1-oai-DiVA.org-kth-2319842020-05-08T03:32:52ZAutomation of Formative Assessment : Implementation and Evaluation of an Artificial Teaching AssistantengAutomatisering av formativ bedömning : implementering och utvärdering av en artificiell lärarassistentMyrsmeden, JohanKTH, Lärande2018constructivismformative assessmentautomated assessmentcomputer-aided educationcomputer-aided assessmentkonstruktivismformativ bedömningautomatiserad bedömningdatorstödd undervisningdatorstödd bedömningLearningLärandeEngineering and TechnologyTeknik och teknologierThe Swedish government has decided to add programming to the Swedish curriculum to strengthen students’ digital skills. The teachers who will teach programming do not always know programming themselves. Because of that, KTH Royal Institute of Technology researchers are planning to start an initiative of creating a Massive Open Online Course (MOOC) in fundamental programming in Swedish for those teachers. Interpreting error messages given by the compiler is one problem with learning programming. An aim of this study is to lower that threshold. The study seeks to identify common misconceptions about programming among novice programmers in order to design a static analyser that investigates code written by students and provides formative feedback to help students in their own learning process. The study combines the constructivist theory of learning with views about formative assessment in order to automate the process that is usually done by a teacher or teaching assistant when assessing code. A phenomenographic study is done in order to identify teachers’ perceptions of common misconceptions about programming by interviewing five active teachers at KTH. The results of that study are used to construct code examples that correspond to these misconceptions. Those results lead to the design and implementation of a software that detects these problems in code. That software is evaluated using a larger set of test data, consisting of 77 errors divided into five larger programs, inserted by independent individuals. From the initial study, five categories of misconceptions are given. Of the 77 errors, the majority are correctly positioned and almost all are given a good hint about the position. About a quarter of the errors are parse errors, which never reach the analysing part of the software that demands the program to be parsable. The study shows that we have succeeded both in designing and implementing a software that detects the identified misconceptions with good results. In the context of a MOOC, the software might require an extension with a more advanced parser and also dynamic analysis to be able to test the correctness of the students’ programs. The software is limited to handle the language Javascriptish, which is a subset of JavaScript. För att stärka den digitala kompetensen bland svenska grundskole och gymnasieelever har programmering lagts in i läroplanen. De lärare som är tänkta att hålla i denna programmeringsundervisning har själva inte alltid tillräckliga kunskaper i programmering, varpå ett initiativ för att hålla en storskalig, öppen och internetbaserad kurs (MOOC) på svenska har startats av forskare på Kungliga Tekniska Högskolan (KTH). En av svårigheterna med att lära sig programmering är att förstå meddelandena som kompilatorn ger. Ett mål med denna studie är att sänka denna tröskel för studenten. Denna studie ämnar identifiera vanliga missuppfattningar om programmering hos nybörjare, för att designa en programvara som utför statisk analys av kod skriven av studenter och därefter ge återkoppling kring dessa missuppfattningar. Studien kombinerar den konstruktivistiska teorin om lärande med tankar om formativ bedömning för att automatisera den process som vanligtvis görs av en lärare eller lärarassistent vid bedömning av kod. En fenomenografisk studie görs för att identifiera lärares uppfattningar om vanliga missuppfattningar kring programmering genom att intervjua fem verksamma lärare på KTH. Resultatet från den studien används sedan för att konstruera kodexempel som belyser de identifierade missuppfattningarna. Därefter designas och implementeras en mjukvara som sedan evalueras genom att analysera totalt 77 fel, konstruerade av oberoende individer, uppdelade på fem större program. Den initiala studien resulterar i fem olika kategorier av missuppfattningar. Av de 77 evaluerade felen ger majoriteten en korrekt positionsangivelse och nästan alla ger en god indikation över var felet ligger. Omkring en fjärdedel av felen är parsningsfel, vilka aldrig når huvudmjukvaran som kräver att programmet är parsningsbart. Studien visar att vi lyckas designa och implementera en programvara som med goda resultat upptäcker vanliga missuppfattningar kring programmering hos nybörjare, baserat på det teoretiska ramverket. I kontexten av en kurs på internet kan programvaran behöva utvecklas med en mer avancerad syntaxanalys (eng. parser) samt lägga till dynamisk analys av program för att även kunna testa programmens korrekthet. Programvaran är begränsad till att analysera kod skriven i språket Javascriptish, vilken är en delmängd till JavaScript. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-231984TRITA-ITM-EX ; 2018:580application/pdfinfo:eu-repo/semantics/openAccess