Very human touch

Eräs mielenkiintoinen idea täällä Aalto-yliopistossa on fuksipaimennus. Eli, koneellisesti tehtävän tarkastuksen lisäksi ihmissilmä lukee, arvioi ja kommentoi ohjelman läpi. Mielestäni tämä ei ole vain tarpeellista, vaan myös välttämätöntä.

Luvan kanssa käytän erään toisen kurssin esimerkkiä:

public class Esimerkki {

public static void main(String[] args){

    int valinta = Pop.valitseNappula("Valitse:", "kivi", "paperi", "sakset" );
    double vastaus = Math.random();

    if (vastaus < 1.0/3.0 ){
        vastaus = 0;
    } else if (vastaus < 2.0 / 3.0){
        vastaus = 1;
    } else {
        vastaus = 2;
    }

// aloita tarkastelu!
    if(valinta == 0){
        if(vastaus == 0){
            Pop.tell("Valitsen kiven. Tasapeli.");
        } else if (vastaus == 1){
            Pop.tell("Valitsen paperin. Voitin.");
        } else {
            Pop.tell("Valitsen sakset. Voitit.");
        }
    } else if(valinta == 1){
        if(vastaus == 0){
            Pop.tell("Valitsen kiven. Voitit.");
        } else if (vastaus == 1){
            Pop.tell("Valitsen paperin. Tasapeli.");
        } else {
            Pop.tell("Valitsen sakset. Voitin.");
        }
    } else {
        if(vastaus == 0){
            Pop.tell("Valitsen kiven. Voitin.");
        } else if (vastaus == 1){
            Pop.tell("Valitsen paperin. Voitit.");
        } else {
            Pop.tell("Valitsen sakset. Tasapeli.");
        }
    }
}
}

Spagettisuudeltaan koodi on varmasti nyt al dente, juuri sopivalla tavalla tahmaista. Koneellinen tarkastus kuitenkin toteaa, että toteutus on hyvä, se suorittaa tehtävänannon, kun taas ihmissilmä näkee, että ohjelman ratkaisulogiikkaa voisi parantaa — ja voikin sitten antaa tästä vinkkejä opiskelijoille: ”Oletko miettinyt tätä toteutusta ihan loppuun asti?” tai ”Huomaatko, että tämän voisi esittää myös tällä tavalla?”

Toinen syy ylevän koodin parannuksen — mistä toivottavasti jäi mieleen jotain sellaisia periaatteita ja kikkoja joita voi soveltaa sitten itse — lisäksi on tuoda sosiaalista kanssakäymistä (niin, jopa teekkareiden kanssa) opiskelijoiden ja henkilökunnan välille; näyttää että tuolla jossain on joku, jolle palautuksesi merkisevät jotain.

Tämä on ehkä vaikeampi näistä kahdesta tavoitteesta, koska viestien pitäisi kuulostaa luonnollisilta, mikä on ainakin minulle hankalaa. Kyllä sitä katsoo, että miten kierros on mennyt — ja veikkaan, että me kaikki assarit haluamme, että ne menisi ihmisillä hyvin. Mutta, miten saada tämä yhteydenotto kuulostamaan vielä enemmän inhimilliseltä, sellaiselta, että se oikeasti ei vain auttaisi sen tietosisällön kanssa, vaan ottaisi huomioon sen sosiaalisen tukemisen puolen paremmin?

Ehkä tästä päästään siihen suurimpaan kysymykseen. Minkälaisena opiskelijat sitten tuntevat nämä viestit: onko niistä apua ja tukea omaan oppimiseen — vai onko ne vain turhaa spämmiä? En tiedä. Vaikka kovasti pidän ajatuksesta, että koneellisen tarkastuksen lisäksi myös ihminen arvioi koodin, onko se sitten kuitenkaan vaivan väärtti?

Mainokset

Trackbacks / Pingbacks

  1. Viisi ohjetta prujaajalle « Assarin vastaanotto - lokakuu 5, 2011

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s

%d bloggers like this: