11.4.2007 ohjelmointikoulutuksen tehostaminen kognitiivisilla...
TRANSCRIPT
![Page 1: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/1.jpg)
Ohjelmointikoulutuksentehostaminen kognitiivisilla
menetelmilläProf. Jorma Sajaniemi
Joensuun yliopisto, Tietojenkä[email protected]
www.cs.joensuu.fi/~saja
11.4.2007
![Page 2: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/2.jpg)
Sisältö• Taustaa
– kognitiivinen psykologia ja ohjelmointi• Eksperttiys ja skeemat
– muuttujien roolit• Ohjelmoinnin oppimisesta
– oliometaforat• Yhteenveto
![Page 3: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/3.jpg)
Taustaa
![Page 4: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/4.jpg)
Ohjelmoinnin osapuolet ja niidenrajoitukset
Ohjelmoija
Työväline Tuote
Kognitio
Nykytekniikka Edelliset
![Page 5: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/5.jpg)
Kognition rajoituksia
• Muisti: työmuistin koko, muistijäljenvahvuus (tunnistus, palautus, häirintä)
• Prosessointi: tarkkaavaisuuden määrä• Tiedon oppiminen: mielekkyysvaatimus• Taidon oppiminen: automatisoitumisen
hitaus, siirto-efektit• Eksperttiys: skeemat ja strategiat
![Page 6: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/6.jpg)
SelityskehyksiäAistit
Muistin koko
Muistin sisältö
Tunteet
Persoonallisuus
Ryhmäsuhteet(Saariluoma, 2004)
![Page 7: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/7.jpg)
Ohjelmoinnin psykologian tavoitteita• Ohjelmistotyön tehostaminen
– nykyisten kielten tehokkaampi hyväksikäyttö– kielten parantaminen ja uusien laatiminen– apuvälineiden hyväksikäyttö ja kehittäminen– menetelmien hyväksikäyttö ja kehittäminen
• Ohjelmoinnin oppimisen tehostaminen
• Ihmisen kognition ymmärtäminen
![Page 8: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/8.jpg)
Eksperttiys ja skeemat
![Page 9: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/9.jpg)
Skeemat
• Skeema: ihmisen muistissa olevatietokokonaisuus, joka koodaa jonkinstereotypian/ilmentymän (käsite,toimintasarja, OO-suunnittelumalli, ...)
• Muodostuvat attribuuteista ja niidenarvoista; muodostavat hierarkian (vrt.luokkakäsite ja luokkahierarkia)
![Page 10: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/10.jpg)
Skeemat ohjelmoinnissa• Skeeman puuttuminen johtaa
epäoptimaaliseen toimintaan ja virheisiin• Esim: Aloittelijalla ei ole kokonaissumman
laskennalle skeemaa:
(Rist, 1989)
+rain
rainfall=
sum
rainsum = rainsum + rain;
rainsum = 0;
int rainsum;
int rainsum;
...
rainsum = 0;
...
rainsum = rainsum + rain;
![Page 11: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/11.jpg)
Muuttujien roolit• Laskuri yleistyy askeltajaksi• Kokonaissumma yleistyy kokoojaksi• Muita: kiintoarvo, seuraaja, sopivimman
säilyttäjä, ...• Noviisitason ohjelmissa riittää 11 roolia• Soveltuu hyvin myös olio-ohjelmointiin• Tehostaa ohjelmoinnin opettamista• Automatisoituna auttaa ohjelmien ylläpidossa
(Sajaniemi, 2002; Sajaniemi & al., 2006)
![Page 12: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/12.jpg)
Opetuskokeilun tuloksia
(Byckling & Sajaniemi, 2006)
![Page 13: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/13.jpg)
Tarvittavat roolit
currKulkijapointListSäiliösortArrayJärjestelijätmpTilapäissäilöerrorsFoundYksisuuntainen lippuprevSeuraajasumKokoojalargestSopivimman säilyttäjädataTuoreimman säilyttäjäiAskeltajamaxLengthKiintoarvo
![Page 14: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/14.jpg)
Rooli skeemana• Rooli on muuttujan stereotyyppinen käyttötapa;
esim. kokooja:– kerää kokonaistuloksen jostain sarjasta– koodi: esittely, alustus, päivitys, käyttö– esimerkkejä: kokonaissumma, pankkitilin saldo,
lukuarvon kokoaminen yksittäisistä numeroista• Rooli kokoaa syntaktisen tiedon muruista
(millainen on sijoituslause) mielekkäänkokonaisuuden ohjelmointitietoa
• Ekspertin hiljaista tietämystä, joka voidaan opettaa• Käytön onnistumiseen vaikuttavat myös työmuistin
kokorajoitukset
![Page 15: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/15.jpg)
Roolit UML-kaavioissa
(Byckling & al., 2006)
![Page 16: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/16.jpg)
Ohjelmoinnin oppimisesta
![Page 17: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/17.jpg)
Oppimisen edellytyksiä
• Uuden tiedon kohtuullinen määrä• Uuden tiedon mielekkyys• Uuden tiedon liittyminen olemassaolevaan• Uuden tiedon mielekäs syventäminen• Taidon automatisoituminen (deklaratiivinen
tietoà proseduraalinen tieto)• Aiemmin opitun aiheuttama häirinnän
välttäminen
![Page 18: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/18.jpg)
Ohjelmoinnin alkeiden oppiminen
• Syntaksi on melko helppoa oppia• Kaikki muu on vaikeaa
– muuttujan käsite– kontrollirakenteiden yhdistely– parametrien välitys– ...
(Robins & al., 2003)
read(A);
read(A);
read(B);
print(A,A,B);
![Page 19: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/19.jpg)
Oliot ensin ja JavaMinimaalinen Java-ohjelma:
(Radenski, 2006)
määrä? mielekkyys? liittyminen olemassaolevaan?
![Page 20: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/20.jpg)
Mitä tehdä ?
• Aloita yksinkertaisemmilla asioilla
• Sido oliokäsitteet tuttuihin asioihin– UML, kutsupinot yms. eivät ole tuttuja– Metaforat ovat tuttuja
• yhteneväisyydet ja eroavuudet edistävät aktiivistaoppimista
(Carroll & Mack, 1999)
![Page 21: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/21.jpg)
Oliometaforat
• Olio: valvomo• Attribuutti: monitori• Metodin kutsu: työpaja• Luokka: piirustuslehtiön sivu• ...
• Demo(Sajaniemi & al., 2006)
![Page 22: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/22.jpg)
![Page 23: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/23.jpg)
Yhteenveto
![Page 24: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/24.jpg)
Kognitio ja ohjelmointi
• Ihmisen ajattelun rajoitukset vaikeuttavatsuunnittelua, ohjelmointia, testaamista, oppimista, ...
• Ajattelun rajoitusten vaikutuksia voidaan vähentääsopivilla menetelmillä ja apuvälineillä
• Menetelmien ja apuvälineiden suunnittelu vaatiiajattelun rajoitusten ja mentaalisten representaatioidensisällön tutkimista
• Joitakin apuvälineitä on jo tehty tällä tavalla
![Page 25: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus](https://reader036.vdocuments.site/reader036/viewer/2022071505/61250d7e3842fb20ac6cdc8a/html5/thumbnails/25.jpg)
Lähteitä• Byckling P., Gerdt P., Kuzniarz L., Sajaniemi J. (2006) Increasing Comprehensibility of Object
Models: Making the Roles of Attributes Explicit in UML Diagrams. Nordic Journal of Computing13(3), 149-161.
• Byckling P., Sajaniemi J. (2006) Roles of Variables and Programming Skills Improvement. Proc. ofthe 37th SIGCSE Technical Symp. on Computer Science Education (SIGCSE 2006), ACM, 413-417.
• Carroll J. R., Mack M. L. (1999) Metaphor, Computing Systems, and Active Learning. Int. J.Human-Computer Studies 51, 385-403.
• Radenski A. (2006) ”Python First”: A Lab-based Digital Introduction to Computer Science. Proc.11th Ann. SIGCSE Conf. on Innovation and Technology in Computer Science Education, Assoc. forComputing Machinery, 197-201.
• Rist R.S. (1989) Schema Creation in Programming. Cognitive Science 13, 389-414.• Robins A., Rountree J., Rountree N. (2003) Learning and Teaching Programming: A Review and
Discussion. Computer Science Education 13, 137-172.• Saariluoma P. (2004): Käyttäjäpsykologia. WSOY.• Sajaniemi J. (2002) An Empirical Analysis of Roles of Variables in Novice-Level Procedural
Programs. Proc. of IEEE 2002 Symposia on Human Centric Computing Languages andEnvironments (HCC'02). IEEE, 37-39.
• Sajaniemi J., Ben-Ari M., Byckling P., Gerdt P., Kulikova Y. (2006) Roles of Variables in ThreeProgramming Paradigms. Computer Science Education 16(4), 261-279.
• Sajaniemi J., Byckling P., Gerdt P. (2006) Metaphpor-Based Animation of OO Programs. Proc.SOFTVIS 06 ACM Symp. on Software Visualization, ACM, 173-174.
• Ohjelmoinnin psykologia: www.cs.joensuu.fi/pages/saja/ohj_emp.html• Muuttujien roolit: www.cs.joensuu.fi/~saja/var_roles