Automaattisen arvioinnin käytäntöjen yhtenäistäminen korkeakouluyhteisössä
Honkanen, Tommi (2020)
Honkanen, Tommi
2020
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-11-25
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202011228128
https://urn.fi/URN:NBN:fi:tuni-202011228128
Tiivistelmä
Ohjelmoinnin opettamisessa yksi suosituimmista työkaluista on automaattinen arviointi. Tätä sovelletaan Tampereen yliopiston Tuni+ -palvelussa useilla ohjelmoinnin kursseilla. Kursseilla automaattisen arvioinnin työkalut ovat kuitenkin muotoutuneet hyvin erilaisiksi alkuperäisestä pohjastaan, ja tiedekunnalla on useita toisistaan teknisesti eroavia kurssitoteutuksia. Tämä vaikeuttaa kurssien hallintaa, työkalujen ylläpitoa ja uuden henkilökunnan työtä kursseilla.
Tässä diplomityössä vastaamme kysymyksiin:"Miten Tuni+:ssa olevien ohjelmointikurssien automaattisia arvioijia voidaan yhtenäistää? Millaisilla työkaluilla ja käytännöillä tätä voidaan edesauttaa?". Kysymyksiin haetaan vastaus konstruktiivisen tapaustutkimuksen avulla rakentamalla uusi työkalu pohjautuen neljään Tampereen yliopistossa opetettavaan ohjelmoinnin kurssiin. Työkalun lähtökohtana on, että se on yhteensopiva Tuni+:n kanssa. Aluksi esittelemme ohjelmoinnin arviointia ja sen automatisointia, sekä sen pedagogisia vaikutuksia. Tämän jälkeen käymme läpi Tuni+:n arkkitehtuurin, ja määrittelemme mitä ominaisuuksia työkalun tulee sisältää. Lisäksi tutkimme jo olemassa olevia komponentteja ohjelmointikursseilta, ja etsimme myös menetelmiä, joilla havaitut ongelmat kurssien yhtenäisyydessä saadaan korjattua, jotta toteutukset olisivat samanlaisempia aiempaan verrattuna.
Työn tuloksena syntyi uusi työkalu, jolla Tuni+:aan voidaan alustaa uusia ohjelmoinnin kursseja. Työkalu myös noudattaa uutta yhtenäistettyä toteutusta, jossa tehtävien arvioinnista vastaa yksi pääskripti, joka hoitaa eri tyyppisten tehtävien arvioinnin. Uusia kursseja ja tehtäviä varten on myös luotu uusi pohjatoteutus Docker-kuville, joka sisältää Tuni+:n kannalta välttämättömät osat ja jonka päälle arviointia suorittavan Docker-säiliön kuva voidaan täydentää. Uusi työkalu, Docker-kuvan pohjatoteutus sekä yhtenäistämiseen käytetyt menetelmät soveltuvat sellaisenaan Tuni+:aan käytettäviksi. Työkalua käyttämällä uusien kurssien toteutukset ovat valmiiksi yhdenmukaisia vanhojen kurssien kanssa, jolloin niiden käyttöönotto ja jatkokehittäminen on helpompaa henkilökunnalle. Automatic assessment is one of the most popular tools in programming education. It is utilized on many programming courses on Tampere Universities’ learning management system Tuni+. However, the tools used on the courses have become very different from course to course, and the faculty has many courses with different technical implementations. This makes the management of courses, tools and the work of the course personnel harder.
In this thesis we answer the following questions:"How the automatic graders of programming courses in Tuni+ can be uniformed? What kind of tools and practices can be used to achieve this?" The answers for the questions are sought via constructive research by creating a new tool based on four programming courses taught in Tampere University. The basis of the tool is that it is compatible with Tuni+. We start by introducing how programming can be assessed, how the assessment can be automated and its pedagogic effects. After this we examine the architecture of Tuni+, and define what properties the tool must contain. In addition we go through existing components from the programming courses, and look for methods which can be used to uniform the courses’ implementations.
As a result of the thesis, we have a new tool which can be used to initialize a new programming course for Tuni+. The tool follows a new uniform implementation where a single main script handles the assessment process of all different exercises of a single course. A new Docker base image has also been created for the use of new courses and for new exercises, which contains all essential components required by Tuni+, and which can be used as a foundation for the actual Docker images used by the grading containers. The new tool, the Docker base image and the methods used in the uniforming can be used in Tuni+. Using the tool for creating new courses ensures that they are uniform with older courses, which makes the deployment and further development of the courses easier.
Tässä diplomityössä vastaamme kysymyksiin:"Miten Tuni+:ssa olevien ohjelmointikurssien automaattisia arvioijia voidaan yhtenäistää? Millaisilla työkaluilla ja käytännöillä tätä voidaan edesauttaa?". Kysymyksiin haetaan vastaus konstruktiivisen tapaustutkimuksen avulla rakentamalla uusi työkalu pohjautuen neljään Tampereen yliopistossa opetettavaan ohjelmoinnin kurssiin. Työkalun lähtökohtana on, että se on yhteensopiva Tuni+:n kanssa. Aluksi esittelemme ohjelmoinnin arviointia ja sen automatisointia, sekä sen pedagogisia vaikutuksia. Tämän jälkeen käymme läpi Tuni+:n arkkitehtuurin, ja määrittelemme mitä ominaisuuksia työkalun tulee sisältää. Lisäksi tutkimme jo olemassa olevia komponentteja ohjelmointikursseilta, ja etsimme myös menetelmiä, joilla havaitut ongelmat kurssien yhtenäisyydessä saadaan korjattua, jotta toteutukset olisivat samanlaisempia aiempaan verrattuna.
Työn tuloksena syntyi uusi työkalu, jolla Tuni+:aan voidaan alustaa uusia ohjelmoinnin kursseja. Työkalu myös noudattaa uutta yhtenäistettyä toteutusta, jossa tehtävien arvioinnista vastaa yksi pääskripti, joka hoitaa eri tyyppisten tehtävien arvioinnin. Uusia kursseja ja tehtäviä varten on myös luotu uusi pohjatoteutus Docker-kuville, joka sisältää Tuni+:n kannalta välttämättömät osat ja jonka päälle arviointia suorittavan Docker-säiliön kuva voidaan täydentää. Uusi työkalu, Docker-kuvan pohjatoteutus sekä yhtenäistämiseen käytetyt menetelmät soveltuvat sellaisenaan Tuni+:aan käytettäviksi. Työkalua käyttämällä uusien kurssien toteutukset ovat valmiiksi yhdenmukaisia vanhojen kurssien kanssa, jolloin niiden käyttöönotto ja jatkokehittäminen on helpompaa henkilökunnalle.
In this thesis we answer the following questions:"How the automatic graders of programming courses in Tuni+ can be uniformed? What kind of tools and practices can be used to achieve this?" The answers for the questions are sought via constructive research by creating a new tool based on four programming courses taught in Tampere University. The basis of the tool is that it is compatible with Tuni+. We start by introducing how programming can be assessed, how the assessment can be automated and its pedagogic effects. After this we examine the architecture of Tuni+, and define what properties the tool must contain. In addition we go through existing components from the programming courses, and look for methods which can be used to uniform the courses’ implementations.
As a result of the thesis, we have a new tool which can be used to initialize a new programming course for Tuni+. The tool follows a new uniform implementation where a single main script handles the assessment process of all different exercises of a single course. A new Docker base image has also been created for the use of new courses and for new exercises, which contains all essential components required by Tuni+, and which can be used as a foundation for the actual Docker images used by the grading containers. The new tool, the Docker base image and the methods used in the uniforming can be used in Tuni+. Using the tool for creating new courses ensures that they are uniform with older courses, which makes the deployment and further development of the courses easier.