25
Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillä Prof. Jorma Sajaniemi Joensuun yliopisto, Tietojenkäsittelytiede [email protected] www.cs.joensuu.fi/~saja 11.4.2007

11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus

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

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

Taustaa

Page 4: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 23: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus

Yhteenveto

Page 24: 11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillähomes.jamk.fi/~huojo/seminaarit/Sem_2007/Sajaniemi... · 2007. 4. 16. · • Tiedon oppiminen: mielekkyysvaatimus

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

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