Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillä

Samankaltaiset tiedostot
Muuttujien roolit ohjelmoinnin opettamisessa. Jorma Sajaniemi

Muuttujien roolit Kiintoarvo cin >> r;

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Naps ja Bloom teollisuusrobotiikan Peda-Forum,

Muuttujien roolit ohjelmistoasiantuntijoiden kirjoittamissa Java-ohjelmissa

Oppimisaihiot opetuksessa Tomi Jaakkola, Sami Nurmi & Lassi Nirhamo Opetusteknologiayksikkö Turun yliopisto

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

1. Olio-ohjelmointi 1.1

8/20: Luokat, oliot ja APIt

Oppiminen verkossa - teoriasta toimiviin käytäntöihin

Muuttujien roolitutkimus

Tutkittua tietoa. Tutkittua tietoa 1

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

19/20: Ikkuna olio-ohjelmoinnin maailmaan

KEHO MUISTAA MIKSI LIIKKUMALLA OPPII. Anita Ahlstrand

Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa

11/20: Konepelti auki

KTKO104. Luento

Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises

Verkko-oppiminen: Teoriasta malleihin ja hyviin käytäntöihin. Marleena Ahonen. TieVie-koulutus Jyväskylän lähiseminaari

Opettajan pedagoginen ajattelu

Oppimisteoriat ja verkko-oppiminen. Jorma Enkenberg Joensuun yliopisto, Savonlinna

Kognitiivinen psykologia tutkii tiedonkäsittelyä. Neuropsykologia tutkii aivojen ja mielen suhdetta MITEN AIVOT TOIMIVAT?

Koulutuksen digitalisaatio Tulevaisuutta kohti

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen

Trialoginen oppiminen: Miten edistää kohteellista, yhteisöllistä työskentelyä oppimisessa?

Innostavaa vuorovaikutusta vai jäätävää puhetta?

Raino Vastamäki 1

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

7/20: Paketti kasassa ensimmäistä kertaa

Pariohjelmoinnilla lisää mielekkyyttä ohjelmoinnin opetukseen? Annika Alakastari

OPPIMINEN ja SEN TUKEMINEN Supporting learning for understanding

Innovative teaching practices

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Ohjelmistoarkkitehtuurit. Kevät

Rinnakkaisohjelmistot. Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004

Kunnallisjohdon seminaari / Koulutus ja osaaminen Mitä data tarjoaa koulutuksen johtamiseen ja oppimisen edistämiseen?

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

14/20: Keittokirja I

Java-kielen perusteet

SUKELLUS TULEVAISUUDEN OPPIMISEEN

OPPIMAAN OPPIMINEN - OPPIMISEN KOGNITIIVISET PERUSTEET. Jonna Malmberg Learning and Educational Technology Research Unit (LET)

Kurssin koodi ja nimi Ryhmä Päivä Aika Sali Viikot Henkilöt Course code and name Group Day Time Lecture Weeks Course staff

Tarvitseeko informaatioteknologia matematiikkaa?

15. Ohjelmoinnin tekniikkaa 15.1

Onnistuneen oppimisprosessin edellytyksiä verkossa

Case-opetusmenetelm. opetusmenetelmä. Mirja Anttila, Elina Kettunen, Kristiina Naski, Kaija Ojanperä

Hakemistojen sisällöt säilötään linkitetyille listalle.

5/20: Algoritmirakenteita III

MATKAILUALAN TIETEELLISIÄ LEHTIÄ julkaisufoorumin tasoluokittain

Trialogisen oppimisen suunnitteluperiaatteet

15. Ohjelmoinnin tekniikkaa 15.1

Sähköinen matematiikan ja ohjelmoinnin opintopolku alakoulusta yliopistoon. Mikko Lujasmaa, Salon lukio Mikko-Jussi Laakso, Turun yliopisto

Näkökulmia tietoyhteiskuntavalmiuksiin

Miten oppimista voi tehostaa?

AJATUKSIA KÄSITYÖTIETEEN ONTOLOGIASTA

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4. Olio-ohjelmoinista lyhyesti 4.1

Oppiminen verkossa - teoriasta toimiviin käytäntöihin

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Luottamuksen ja maineen rooli palveluperustaisten yhteisöjen muodostamisessa

Visuaalinen ohjelmointi tietotekniikan perusopetuksessa

Opiskelijoiden ja opettajien erilaiset käsitykset opettamisesta koulutuksen suunnittelun taustalla

Common Lisp Object System

Jype visualisointi ja automaattinen arviointi ohjelmoinnin opetuksessa

Lokikirjojen käyttö arviointimenetelmänä

Ohjelmistoarkkitehtuurit. Syksy 2010

TIES542 kevät 2009 Oliokielten erityiskysymyksiä

TIEA255 Tietotekniikan teemaseminaari ohjelmointikielet ja kehitysalustat. Antti-Juhani Kaijanaho. 16. helmikuuta 2011

Digitalisaatio oppimisen maailmassa. Tommi Lehmusto Digital Advisor Microsoft Services

Käytettävyys verkko-opetuksessa Jussi Mantere

Research in Chemistry Education

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

812336A C++ -kielen perusteet,

Turun yliopisto Kv-maisteriohjelmien uudet opiskelijat ohjelmittain aiemman tutkinnon maan mukaan

Ohjelmistojen suunnittelu

Ohjelmoinnin peruskurssien laaja oppimäärä

Sulautettu tietotekniikka Ubiquitous Real World Real Time for First Lives

DIPLOMITYÖ ARI KORHONEN

Onnistunut ohjelmistoprojekti

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Protokolla-analyysi (protocol analysis)

Kertaus: yleistys-erikoistus ja perintä

ColLab Uudet yhteisölliset teknologiat oppimisen tukena

Tietokantapohjaisen arviointijärjestelmän kehittäminen: kohti mielekästä oppimista ja opetusta

Projektipäällikkö/lehtori Paula Poikela, Rovaniemi Ammattikorkeakoulu (RAMK)

Käyttötapausanalyysi ja testaus tsoft

Tieto- ja viestintätekniikkaa opetustyön tueksi

Empiirinen koe PlanAnin kuvallisista metaforista

Aktiivinen elämäntapa ja terveellinen ruokavalio oppimisen tukena

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

ARVIOINTI UUDISTAMASSA OPETUSTA

Tarkkaavaisuus ja muisti

815338A Ohjelmointikielten periaatteet

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Tutkintorakenteet: Luonnontieteiden ja metsätieteiden tiedekunta Kieli- ja viestintäopinnot

Koulutusvastuun sisäinen jakautuminen Tampereen yliopistossa

Transkriptio:

11.4.2007 Ohjelmointikoulutuksen tehostaminen kognitiivisilla menetelmillä Prof. Jorma Sajaniemi Joensuun yliopisto, Tietojenkäsittelytiede Jorma.Sajaniemi@Joensuu.Fi www.cs.joensuu.fi/~saja

Taustaa Sisältö kognitiivinen psykologia ja ohjelmointi Eksperttiys ja skeemat muuttujien roolit Ohjelmoinnin oppimisesta oliometaforat Yhteenveto

Taustaa

Ohjelmoinnin osapuolet ja niiden rajoitukset Ohjelmoija Kognitio Työväline Nykytekniikka Tuote Edelliset

Kognition rajoituksia Muisti: työmuistin koko, muistijäljen vahvuus (tunnistus, palautus, häirintä) Prosessointi: tarkkaavaisuuden määrä Tiedon oppiminen: mielekkyysvaatimus Taidon oppiminen: automatisoitumisen hitaus, siirto-efektit Eksperttiys: skeemat ja strategiat

Selityskehyksiä Aistit Muistin koko Muistin sisältö Tunteet Persoonallisuus Ryhmäsuhteet (Saariluoma, 2004)

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

Eksperttiys ja skeemat

Skeemat Skeema: ihmisen muistissa oleva tietokokonaisuus, joka koodaa jonkin stereotypian/ilmentymän (käsite, toimintasarja, OO-suunnittelumalli,...) Muodostuvat attribuuteista ja niiden arvoista; muodostavat hierarkian (vrt. luokkakäsite ja luokkahierarkia)

Skeemat ohjelmoinnissa Skeeman puuttuminen johtaa epäoptimaaliseen toimintaan ja virheisiin Esim: Aloittelijalla ei ole kokonaissumman laskennalle skeemaa: +rain rainfall= sum rainsum = rainsum + rain; rainsum = 0; int rainsum; int rainsum;... rainsum = 0;... rainsum = rainsum + rain; (Rist, 1989)

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)

Opetuskokeilun tuloksia (Byckling & Sajaniemi, 2006)

Tarvittavat roolit Kiintoarvo Askeltaja Tuoreimman säilyttäjä Sopivimman säilyttäjä Kokooja Seuraaja Yksisuuntainen lippu Tilapäissäilö Järjestelijä Säiliö Kulkija maxlength i data largest sum prev errorsfound tmp sortarray pointlist curr

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ään kokonaisuuden ohjelmointitietoa Ekspertin hiljaista tietämystä, joka voidaan opettaa Käytön onnistumiseen vaikuttavat myös työmuistin kokorajoitukset

Roolit UML-kaavioissa (Byckling & al., 2006)

Ohjelmoinnin oppimisesta

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

Ohjelmoinnin alkeiden oppiminen Syntaksi on melko helppoa oppia Kaikki muu on vaikeaa muuttujan käsite kontrollirakenteiden yhdistely parametrien välitys... read(a); read(a); read(b); print(a,a,b); (Robins & al., 2003)

Oliot ensin ja Java Minimaalinen Java-ohjelma: määrä? mielekkyys? liittyminen olemassaolevaan? (Radenski, 2006)

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 aktiivista oppimista (Carroll & Mack, 1999)

Oliometaforat Olio: valvomo Attribuutti: monitori Metodin kutsu: työpaja Luokka: piirustuslehtiön sivu... Demo (Sajaniemi & al., 2006)

Yhteenveto

Kognitio ja ohjelmointi Ihmisen ajattelun rajoitukset vaikeuttavat suunnittelua, ohjelmointia, testaamista, oppimista,... Ajattelun rajoitusten vaikutuksia voidaan vähentää sopivilla menetelmillä ja apuvälineillä Menetelmien ja apuvälineiden suunnittelu vaatii ajattelun rajoitusten ja mentaalisten representaatioiden sisällön tutkimista Joitakin apuvälineitä on jo tehty tällä tavalla

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 Computing 13(3), 149-161. Byckling P., Sajaniemi J. (2006) Roles of Variables and Programming Skills Improvement. Proc. of the 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. for Computing 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 and Environments (HCC'02). IEEE, 37-39. Sajaniemi J., Ben-Ari M., Byckling P., Gerdt P., Kulikova Y. (2006) Roles of Variables in Three Programming 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