Lambda-lausekkeet tietorakenteiden käsittelyssä C#-kielessä satunnaistettu vertailukoe

Ohjelmointikielten eri ominaisuuksia on historiallisesti tutkittu vähän ihmislähtöisestä ja myös opetuksellisesta näkökulmasta. Työssä verrattiin lambda-lausekkeita silmukoihin C#-kielessä tietorakenteiden käsittelyssä. Tutkimus toteutettiin jakamalla yliopiston ensimmäisen ohjelmointikurssin opiske...

Full description

Bibliographic Details
Main Author: Pasanen, Rami
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:fin
Published: 2021
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/74399
Description
Summary:Ohjelmointikielten eri ominaisuuksia on historiallisesti tutkittu vähän ihmislähtöisestä ja myös opetuksellisesta näkökulmasta. Työssä verrattiin lambda-lausekkeita silmukoihin C#-kielessä tietorakenteiden käsittelyssä. Tutkimus toteutettiin jakamalla yliopiston ensimmäisen ohjelmointikurssin opiskelijat (n = 187) arpomalla kahteen ryhmään. Yksi ryhmä suoritti tutkimusta varten laaditut tehtävät lambda-lausekkeilla, ja toinen ryhmä suoritti tehtävät silmukoilla. Lambda-lausekkeita hyödynnettiin C#-kielen listan metodien kanssa. Tehtäviä oli yhteensä neljä. Osallistujien tehtävistä antamat aika-arviot ja vaikeustasoarviot sekä osallistujien tehtävistä saamat pistemäärät ja tehtävien yrityskerrat eivät sisältäneet tilastollisesti merkitseviä eroja. Poikkeuksena oli viimeinen tehtävä, johon lambda-lausekkeita käyttäneet opiskelijat tarvitsivat enemmän yrityskertoja. Laadullisessa analyysissa lambda-lausekkeet saivat opiskelijoilta kehuja, mikä yhdistettynä tilastollisen analyysin tuloksiin voi antaa perusteita lambda-lausekkeiden opettamiseen alkutason ohjelmointikursseilla sekä niiden hyödyntämiseen koodia kirjoitettaessa. Features of programming language have historically been researched poorly from a human factors and pedagogical perspective. In the study, lambda expressions were compared to loops within the context of handling data structures in C#. The study was performed by dividing CS1 students (n = 187) into two groups by random assignment. One group performed tasks created for the study by using lambda expressions, while the other group performed the tasks by using loops. Lambda expressions were used with methods of the C# list. There were four tasks in total. The participants' given assessments of task times and difficulty as well as their points and task attempts had no statistically significant differences, aside from the final task, which took more attempts to complete for students in the lambda group. In the qualitative analysis, lambda expressions received praise from students. Combined with the results of the statistical analysis, the positive response could make using lambda expressions in code and teaching them on early programming courses a justifiable choice.