Akateeminen rehellisyys Ohjelmointi 1 -kurssilla

Tällä kurssilla tärkeintä on ohjelmoinnin oppiminen. Kurssin opettaja ja koko henkilökunta on sitoutunut siihen, että pyrimme tarjoamaan sellaiset olosuhteet ja opetusmenetelmät, että jokainen opiskelija voi itse oppia kurssin oppisisällön. Kaiken sen työn, minkä palautat kurssilla arvosteltavaksi (demot, harjoitustyö, jne.), on oltava lähtökohtaisesti sinun omaasi ja itse tehtyä.

Jos opiskelija lainaa osana työtään jonkun toisen ohjelmakoodia, tekstiä, kuvia tms., lainatun osuuden on erotuttava selvästi. Jos työ on tehty ryhmä- tai yhteistyönä, työssä on kerrottava tästä. Koodin tai sen osan kopioiminen suoraan lähdemateriaaleista tulkitaan plagioinniksi, etenkin jos lähdeviitteitä ei ole asianmukaisesti ilmoitettu.

1. Mikä on hyväksyttyä?

Kurssilla tunnistetaan, että vuorovaikutus opettajien, ohjaajien, toisten opiskelijoiden, mentoreiden ja tuutoreiden kanssa on hyödyllistä ohjelmoinnissa. Ryhmätyöskentely on sekä hyväksyttyä että hyödyllistä silloin, kun kukin ryhmän jäsen on tuonut omalla toiminnallaan lähtökohtaisesti tasavertaisen panoksen työn kokonaisuuteen ja samalla niin, että jokainen on myös tehnyt kaikki kurssilla vaaditut suoritukset.

Ryhmätyöskentelyyn osallistuneiden nimet on mainittava vastauksessa, ja koodiin merkittävä kommentein riittävällä tarkkuudella se, mikä osuus on kenenkin työn tulosta. Kukin ryhmäläinen palauttaa kuitenkin omat vastauksensa omalla tunnuksellaan TIMiin. Ryhmään osallistuneiden osuus tehtävän tekemiseen täytyy myös pystyä erikseen pyydettäessä kertomaan esimerkiksi suullisessa kuulustelussa. Tämä pätee sekä demotehtäviin että harjoitustyöhön.

Alla on yksi (kuvitteellinen) esimerkki sallitusta ryhmätyöskentelystä:

Työskentelet ohjelmasi parissa yhdessä ystäväsi Jukan kanssa, vaihdatte ideoita ohjelman debuggaamisesta ja myös muutamia testitapauksia. Saat myös ystävältäsi Marialta vinkin kirjoittaa tehtävä hieman elegantimmin, jolloin koodista tulee paremmin luettavaa. Työn lopussa ilmoitatte seuraavaa:

Keskustelimme tästä projektista Jukan ja Marian kanssa, ja kiitämme Jukkaa
ehdottamistaan testitapauksista (merkitty alla). Maria antoi hyvän
idean toteuttaa EtsiLahinPallo-funktio käyttäen hyväksi toista funktiota
(Etaisyys). 

Lisäksi lisäät yksityiskohtaisia kommentteja asianmukaisiin paikkoihin. Muutama testitapaus on merkitty kommentilla "Tämä testitapaus on Jukan ehdottama". Lisäät myös "Idea toteuttaa EtsiLahinPallo-funktio Etaisyys-funktiota hyödyntäen on Maryn keksimä" -virkkeen sopivaan kohtaan.

Tässä esimerkissä olet ymmärtänyt, miksi testitapaukset ovat hyödyllisiä. Ymmärrät myös, miten EtsiLahinPallo toimii ja kirjoitat toteutuksen itse, kun Maria selitti sen sinulle. Tämä on OK. Olet oppinut asioita tämän projektin kautta ja toistenne auttamisesta on ollut hyötyä. Akateemista vilppimenettelyä tai arvosanarangaistusta ei seuraa.

2. Mikä on kiellettyä?

Rakentavan vuorovaikutuksen ja toisen tekemän työn hyväksikäytön välillä on olemassa raja. Demovastausten tai harjoitustyön plagiointi toisilta opiskelijoilta, verkosta tai aikaisempien vuosien demovastauksia hyväksi käyttäen on "lunttaamista", siis vilppiä, ja ehdottomasti kielletty.

Myös sellainen ryhmätyöskentely, missä tehtävät jaetaan kesken ryhmäläisten niin, että joku ryhmäläisistä ei tee jotakin tehtävää tai osatehtävää, on edellisessä tekstikappaleessa mainittua toisten työn hyväksikäyttämistä. Edelleen, omien vastausten jakaminen toisille opiskelijoille on ehdottomasti kielletty.

3. Mitä tapahtuu, jos jään kiinni vilpistä?

Vilpin käsittelylle on asetettu prosessi Jyväskylän yliopistossa. Tarkemmat tiedot vilppi- ja plagiointitapauksen käsittelemisestä sekä vilpillisen toiminnan seurauksista löytyvät rehtorin asettamasta Vilppitapausten käsittely -päätöksestä.

4. Tärkeintä on uuden oppiminen

Ohjelmoinnin osaaminen on erittäin hyödyllinen taito niin myöhemmissä opiskeluissasi kuin työelämässä. Vaikka oppimista pyritään tukemaan niin sanotuilla ulkoisilla motivaattoreilla kuten demopisteillä, niin menemällä sieltä mistä aita on matalin pelkästään demopisteiden tai opintopisteiden toivossa on lopulta sinulle itsellesi opiskelijana ja tulevana asiantuntijana epäedullista.

# tekoaly

5. Tekoälystä ja kielimalleista

Saako tekoälyä ja/tai kielimalleja käyttää tällä kurssilla?

Lyhyt vastaus: Suosittelen vahvasti olemaan käyttämättä ChatGPT:tä, CoPilotia ja vastaavia. Ohjelmoinnin alkutaipaleella tekoälyn käytöstä on lähinnä haittaa. Laita myös AI avustimet pois päältä ohjelmointiympäristöstä (Riderissa ei ole oletuksena päällä).

Pitempi vastaus: Alla on pitkän puoleinen pohdinta tekoälyn ja kielimallien käyttämisestä Ohjelmointi 1 -kurssilla.

Ennen kuin käytät tekoälyä, niin mieti analogiana urheilijaa, jolle valmentaja on kirjoittanut harjoitusohjelmaan iltapäivälle 20 km lenkin. Lenkin alussa on kaksi viittaa: "1 km" ja "20 km". Kummanko urheilija valitsee?

5.1 Mikä kielimalli on?

Kielimalli on tekoälysovellus, joka tuottaa tekstiä, joka näyttää ihmisen kirjoittamalta. Kielimallit ovat yleistyneet viime vuosina, ja niitä käytetään esimerkiksi käännösohjelmissa, hakukoneissa ja sosiaalisen median alustoilla. Kielimallit (ja erityisesti niiden saatavuus ja käytettävyys tavallisille internetin käyttäjille) ovat kehittyneet viime aikoina nopeasti, ja ne pystyvät tuottamaan yhä luonnollisemman näköistä tekstiä. Yksi suosituimmista sovelluksista on ChatGPT, joka on osoittautunut monin tavoin hyödylliseksi kielimalliin pohjautuvaksi sovellukseksi, joka pystyy tuottamaan uskottavan näköistä tekstiä. Muita vastaavia sovelluksia ovat Bing, Bard, sekä erityisesti ohjelmointiin tarkoitettu GitHub Copilot.

Tekoäly pystyy tuottamaan uskottavan näköisiä vastauksia myös monenlaisiin ohjelmointitehtäviin. Tämä on herättänyt akateemisen henkilökunnan keskuudessa huolta siitä, että opiskelijat voivat käyttää kielimallia huijatakseen ohjelmointitehtävissä. Tämä ongelma on erityisen ajankohtainen Ohjelmointi 1 -kurssilla, jossa merkittävä osa opiskelusta tapahtuu itsenäisesti, ja opettajat eivät ole valvomassa opiskelijoiden tekemisiä. Tämä lisää mahdollisuuksia ja houkutuksia käyttää kielimallia tehtävien ratkaisemiseen epärehellisin keinoin.

5.2 Miksi opiskelija käyttäisi kielimallia huijatakseen?

Opiskelija saattaa perustella itselleen kielimallin käyttöä esimerkiksi seuraavasti:

  1. Helppous: Tehtävät voivat olla haastavia tai aikaa vieviä, ja voi tuntua houkuttelevalta käyttää kielimallia saadakseen ratkaisu nopeasti ilman vaivannäköä tai tutkimustyötä.

  2. Ahdistus tai paine: Opiskelija saattaa kokea ahdistusta tai suorituspainetta, erityisesti jos heillä on vaikeuksia ymmärtää käsitteitä tai saada tehtävä ratkaistua. Kielimallilta saatava valmis vastaus voi tuntua houkuttelevalta tapalta välttää stressiä ja saada pisteet tehtävästä.

  3. Aikapula: Opiskelija saattaa olla kiireinen tai hänellä voi olla paljon muita velvoitteita. Tällöin hän voi hakea nopeaa ratkaisua kielimallilta suorittaakseen tehtävän nopeasti ja käyttääkseen aikansa muihin tärkeisiin asioihin.

  4. Muutkin tekevät niin: Opiskelija saattaa kokea, että hänellä on oikeus käyttää sitä, koska muutkin opiskelijat tekevät niin. Toisaalta opiskelija saattaa myös kokea, että kielimallin käyttö on sallittua, koska sitä ei ole erityisesti kielletty.

5.3 Miksi kielimallin käyttö voi olla haitallista?

Ensinnäkin, kielimallin tuottaman koodin suora kopiointi ja sen käyttäminen omana vastauksena on kiellettyä. Jyväskylän yliopiston ohjeiden ja linjausten (2023, kohta 4) mukaan "kielimallin tuottaman tekstin suora sisällöllinen lainaaminen ilman viitteistystä on vilpillistä toimintaa, plagiointia ja sepittämistä, ja plagiointitapauksissa opintosuoritus voidaan arvioida hylätyksi".

On lisäksi muita syitä, miksi Ohjelmointi 1 -kurssilla ei ole järkevää pyytää ChatGPT:ltä tai vastaavalta sovellukselta valmiita vastauksia ohjelmointikurssin kysymyksiin.

  1. Opetuksen tarkoitus: Ohjelmointikurssi ja sen tehtävät on suunniteltu opettamaan opiskelijoille tärkeitä ohjelmointikäsitteitä, ongelmanratkaisutaitoja ja ohjelmoinnin perusideaa. Pyytämällä valmiita vastauksia ChatGPT:ltä ohitat tämän oppimismahdollisuuden.

  2. Itsenäinen oppiminen: Tehtävien ratkaiseminen auttaa sinua kehittämään ongelmanratkaisutaitojasi, koodin lukemisen kykyäsi ja taitojasi käsitteiden soveltamisesta erilaisiin tilanteisiin. Ongelmien ratkaiseminen itsenäisesti kehittää taitojasi ja itseluottamustasi ohjelmoinnin parissa. Pyytämällä valmiita vastauksia menetät mahdollisuuden itsenäiseen oppimiseen ja kykyjesi kehittämiseen.

  3. Ammatilliset taidot: Työelämässä sinulta odotetaan kykyä perustella ratkaisusi ja selittää, miksi olet valinnut tietyt lähestymistavat ohjelmointitehtävissä. Pyytämällä kielimallilta valmiita vastauksia et kehitä tätä kykyäsi perustella ratkaisuja, mikä voi vaikuttaa haitallisesti tuleviin työtehtäviin ja projekteihin, joissa sinun on pystyttävä selittämään ja puolustamaan tekemääsi työtä.

  4. Eettiset periaatteet: Huijaaminen tai vilpillinen toiminta on vastoin eettisiä periaatteita, joita yliopistot ja oppilaitokset edistävät. Käyttämällä valmiita vastauksia toimit epäeettisesti muita opiskelijoita kohtaan, jotka käyttävät aikaa ja vaivaa tehtävien itsenäiseen ratkaisemiseen.

5.4 Miten kielimallia voi käyttää hyödyllisesti?

Yliopiston linjauksen mukaisesti kielimallia voi lähtökohtaisesti käyttää opiskelun tukena. Myös Ohjelmointi 1 -kurssilla kielimalleja voi käyttää hyödyllisiin tarkoituksiin, kunhan sen käyttö tapahtuu rajatusti ja opiskelija arvioi sen antamia tuloksia kriittisesti. Kielimallista voi olla merkittävästi apua oppimisessa ja ymmärryksen syventämisessä. Sen sijaan, että pyytäisit suoria vastauksia tehtäviin, keskity sen tarjoaman tiedon hyödyntämiseen, kysymysten esittämiseen ja konseptien selventämiseen. Näin voit kehittää ohjelmointitaitojasi ja ymmärrystäsi aiheesta, mikä auttaa sinua menestymään Ohjelmointi 1 -kurssilla ja tulevissa ohjelmointitehtävissäsi.

  1. Käsitteiden selventäminen: Voit kysyä kielimallita ohjelmointikäsitteiden selityksiä ja saada perustietoa eri aiheista esimerkiksi kysymällä "Anna esimerkki muuttujan käyttämisestä C#-kielessä". Tämä voi auttaa sinua ymmärtämään paremmin ohjelmoinnin perusteita ja teoriaa.

  2. Voit tietyissä tilanteissa kysyä kielimallilta vinkkiä tehtävän edistämiseen, aivan kuten kysyisit opettajalta vinkkiä. Yksi mahdollinen kysymys voisi olla (tämä esimerkki on ChatGPT:stä):

Kysymys: Voitko antaa vinkin mikä tässä koodissa on vikana (mutta älä paljasta vastausta)?

    public static string PidempiMerkkijono(string jono1, string jono2)
    {
        if (jono1 >= jono2) return jono1;
        else return jono2;
    }

Vastaus: 
Yksi mahdollinen vika tässä koodissa liittyy merkkijonojen vertailuun. Tarkastele, miten 
merkkijonojen vertailu toimii ja millä perusteella päätetään, kumpi merkkijono palautetaan.

Tällä kyseisellä kerralla vasta kolmas generoitu vastaus oli hyödyllinen (käytettiin Regenerate response -toimintoa). Kahdella ensimmäisellä kerralla vastauksessa pyydettiin "tarkastelemaan, miten merkkijonojen vertailu toimii ja millä perusteella päätetään, kumpi merkkijono palautetaan", joka ei ole oikeastaan kovin hyödyllinen vinkki.

Vinkkien kysyminen voi olla riskialtista kahdesta syystä. Ensinnäkin, opiskelijan oltava erityisen huolellinen kysymyksen kanssa. Kysymyksessä on korostettava, että vastauksessa ei antaa valmista ratkaisua tai valmiiksi korjattua koodia -- eihän opettajakaan toimisi niin. Toisaalta opiskelijan on joka tapauksessa arvioitava kielimallin antama vastaus huolellisesti, sillä vastaus ei ole aina välttämättä hyödyllinen tai edes oikein.

  1. Käytännön koodiesimerkit: Voit pyytää esimerkkejä tai pieniä koodinpätkiä, jotka havainnollistavat tiettyjä ohjelmointikäsitteitä. Tällaiset esimerkit voivat auttaa sinua hahmottamaan, miten tietyt käsitteet toteutetaan käytännössä. Esimerkiksi "taulukoiden käyttö C#-kielessä" voi antaa sinulle esimerkin taulukon luomisesta ja käyttämisestä. Näihin esimerkkeihin on kuitenkin suhtauduttava vastaavalla kriittisyydellä kuin kohdan 2 vinkkeihin. Turvallisinta on varmistaa aina opettajalta, että kielimallin antama esimerkki on oikein ja hyödyllinen.

5.5 Lähteet

JYU ohjeet ja linjaukset (2023). Tekoälypohjaisten sovellusten käyttö opiskelussa - JYU ohjeet ja linjaukset. Viitattu 27.6.2023. https://www.jyu.fi/fi/opiskelijalle/opintoja-ohjaavat-saadokset/tekoalypohjaisten-sovellusten-kaytto-opiskelussa-jyu-ohjeet-ja-linjaukset

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.