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 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.
...
Asiasanat
Metadata
Näytä kaikki kuvailutiedotKokoelmat
- Pro gradu -tutkielmat [29739]
Lisenssi
Samankaltainen aineisto
Näytetään aineistoja, joilla on samankaltainen nimeke tai asiasanat.
-
Miksi Java-ohjelmointikielessä on funktiokielistä lainattuja ominaisuuksia
Vilavaara, Riikka (2020)Moniin oliopohjaisiin ohjelmointikieliin, kuten Javaan, on viime vuosina lisätty funktionaalisille ohjelmointikielle ominaiset lambda-lausekkeet. Tämän tutkielman tarkoituksena on selvittää, miksi oliopohjaiseen ... -
The extent of empirical evidence that could inform evidence-based design of programming languages : a systematic mapping study
Kaijanaho, Antti-Juhani (University of Jyväskylä, 2014) -
Evidence-based programming language design : a philosophical and methodological exploration
Kaijanaho, Antti-Juhani (University of Jyväskylä, 2015)Background: Programming language design is not usually informed by empirical studies. In other fields similar problems have inspired an evidence-based paradigm of practice. Such a paradigm is practically inevitable in ... -
Keskeisistä haasteista funktionaalisen ohjelmointiparadigman oppimisessa
Lahtinen, Oskari (2023)Funktionaalisten ohjelmointikielten ominaisuuksia on lisätty viime vuosikymmeninä myös muihin ohjelmointikieliin. Funktionaalisen ohjelmointiparadigman oppimiseen liittyy kuitenkin useita haasteita. Näitä haasteita ovat ... -
Multithread concurrency in a single thread environment
Pallari, Jaakko (2015)On olemassa kasvava tarve saada sovellukset toimimaan yhdenaikaisesti. Sovellukset voidaan rakentaa noudattamaan reaktiivista tyyliä yhdenaikaisuuden avustamiseksi. Elm ohjelmointikieli tarjoaa keinon rakentaa sovelluksia ...
Ellei toisin mainittu, julkisesti saatavilla olevia JYX-metatietoja (poislukien tiivistelmät) saa vapaasti uudelleenkäyttää CC0-lisenssillä.