Usein kysyttyä
Ohjelmointiharrastuksesta yleisesti
Miksi harrastaa ohjelmointia?
Tärkein syy ohjelmoinnin harrastamiseen on se, että ohjelmointi on hauskaa! Ohjelmoimalla voi toteuttaa itseään tekemällä pelejä ja sovelluksia. Ohjelmoimalla oppii, millaiset pulmat ovat helppoja tietokoneelle, mutta vaikeita ihmiselle, ja toisin päin. Ohjelmoinnista on apua myös ongelmanratkaisun, loogisen ajattelun ja matemaattisten konseptien hahmottamisen kanssa.
Ohjelmointi ei tarkoita erilaisten teknisten laitteiden käytön opettelua tai tietokoneiden korjaamista. Ohjelmointiharrastus auttaa kuitenkin hahmottamaan, että joku on tehnyt kaikki käyttämämme tekniset laitteet ja niiden toiminnallisuuden - siihenkin, että voit juuri nyt lukea tätä tekstiä, on tarvittu ohjelmointia.
Kenelle ohjelmointiharrastus sopii?
Ohjelmointiharrastuksen voivat aloittaa kaikki. Omasta osaamisesta riippuu se, millä tavalla harrastus kannattaa aloittaa. Tutustu kerhoihin.
Ensimmäistä oikeaa ohjelmointikieltä valitessa voi miettiä, mitä haluaisi ohjelmoida. Kiinnostaisiko tehdä esimerkiksi interaktiivisia sovelluksia, tilastollista laskentaa, kilpaohjelmointitehtäviä tai omia nettisivuja? Tärkeintä on kuitenkin löytää sellainen materiaali tai projekti, jonka kanssa eteneminen tuntuu luontevalta ja jonka parissa haluaa viettää aikaa. Joka tapauksessa kestää jonkin aikaa, että osaa tarpeeksi esimerkiksi tehdäkseen kokonaisen pelin alusta asti itse. On myös paljon helpompi oppia muita ohjelmointikieliä, jos osaa jo yhtä, joten aloituskielellä ei ole siltä kannalta suurta merkitystä.
Nyrkkisääntönä Scratch on hyvä aloitusympäristö kenelle tahansa lukutaitoiselle - myös aikuinen aloittelija voi tutustua ohjelmoinnin peruskäsitteisiin Scratchin avulla. Python ja Java ovat esimerkkejä aloittelijoille sopivista tekstipohjaisista ohjelmointikielistä, joihin löytyy suomenkielisiä materiaaleja (kuten Linkin Python-materiaali ja Helsingin yliopiston Java-MOOC).
Millaisia tuen tarpeita lapsella on ohjelmointiharrastuksessa?
Kuten muussakin oppimisessa, myös ohjelmoinnin oppimisessa korostuu motivaation merkitys. Oppimisen kannalta erityisen suotuisa motivaation laji on sisäinen motivaatio. Sisäisesti motivoitunut oppija opiskelee, koska hän on kiinnostunut opittavasta aihepiiristä. Ohjelmointia harrastava sisäisesti motivoitunut lapsi haluaa siis oppia siksi, että ohjelmointi kiinnostaa häntä - ei siksi, että hänelle olisi esimerkiksi määritelty ulkoisia palkkioita kerhossa käymistä vastaan. Lapsen oma kiinnostus ohjelmointiharrastusta kohtaan onkin erityisen tärkeä lähtökohta harrastukselle.
Aikuisen tukea tarvitaan motivaation herättämisessä ja ylläpitämisessä. Mitä nuorempi lapsi on kyseessä, sitä enemmän tukea on hyvä tarjota oppimisprosessin tueksi. Muun muassa käsitykset itsestä oppijana, kyky ohjata omaa toimintaansa ja keskittyä pitkäjänteisesti opiskeltavaan asiaan kehittyvät vähitellen iän ja kokemuksen karttuessa.
Suosittelemme kannustamaan lasta ymmärtävään oppimiseen. Lapsen kanssa on hyvä keskustella, mitä hän on oppinut tehdessään projekteja. Koti-ilmapiirillä on vaikutusta lapsen asenteisiin: tärkeintä on luoda positiivinen ilmapiiri oppimiselle! Ei siis haittaa, vaikket itse ymmärtäisi paljoa lapsen oppimista sisällöistä, kunhan osoitat kiinnostusta ja tukeasi lapsen oppimista kohtaan.
Yritä varata aikaa käsitellä ohjelmointiin liittyviä aiheita yhdessä lapsesi kanssa. Jos käytettävissä ei ole paljoa aikaa, auta lapsi silti alkuun ohjelmoinnissa: Luokaa yhdessä tunnukset Scratchiin. Tunnusten luonti vaatii sähköpostiosoitteen muun muassa projektien jakamistoiminnon hyväksymistä varten. Tunnusten luonnin jälkeen näytä lapselle, mistä löytää materiaaleja ja ideoita projektien tekoon. Pyydä lasta näyttämään välillä, mitä on saanut aikaan, ja kysele, miten mikäkin toiminnallisuus on tehty. Ole kannustava ja keskity niihin puoliin lapsen tekemässä pelissä, jotka toimivat oikein. Keskustelkaa opituista asioista ja siitä, mitä lapsi haluaisi oppia seuraavaksi.
Rajanveto lapsen ruutu- tai peliajan ja ohjelmointiin varatun ajan välillä voi olla hankalaa. Yksi tapa on sopia lapsen kanssa, että ohjelmointiaikana saa pelata vain itse ohjelmoimiaan pelejä.
Mitä välineitä ohjelmointiin tarvitaan?
Linkin kerhoihin voi tulla, vaikkei kotona olisi mitään tietotekniikkaa. Harrastusta kuitenkin helpottaa se, jos lapsella on mahdollisuus ohjelmoida myös kotona tai esimerkiksi kirjastossa. Kerhoa on kuitenkin vain noin kaksi tuntia viikossa joidenkin viikkojen ajan, joten taidot pysyvät paremmin yllä, jos niitä pääsee harjoittelemaan myös kerhon ulkopuolella.
Scratchin käyttöön tarvitaan tietokone, jossa on toimiva nettiyhteys tai jolle on ladattu Scratchin offline -version. Hiiri tekee ohjelmoinnista mukavampaa, mutta ei ole välttämätön.
AppInventor-työkalulla tehdään sovelluksia Android-laitteelle, joten kotona tekemiseen tarvitaan käyttöön Android-puhelin tai -tabletti.
Pythonia tai Javaa koodatakseen on asennettava Python tai Java koneelle. Kannattaa myös asentaa sopiva tekstieditori, kuten Pycharm, NetBeans tai TMCBeans. Helsingin yliopiston versio NetBeansista eli TMCBeans mahdollistaa myös yliopiston MOOC-kurssien tekemisen. Nettiyhteyttä ei tarvita itse ohjelmointiin, kun kaikki tarpeellinen on asennettu, mutta usein tiedon hakeminen tai avun kysyminen auttaa pulmatilanteissa.
Millaista ohjelmointiharrastusta tukevaa yhteistä tekemistä kotona voi keksiä?
- Hello Ruby: kirja ja materiaali
- code.org: helppoja ohjelmointipulmia aloittelijoille netissä
- Lightbot: aloittelijaystävällinen sovellus, jossa opitaan ohjelmoinnillista ajattelua ohjaamalla robottia (saatavilla mobiililaitteille ja tietokoneelle)
- Code Combat: selaimessa pelattava ohjelmointipeli
- Matka ohjelmoinnin maailmaan - Opaskirja lapsille: satukirja, joka tutustuttaa ohjelmoinnilliseen ajatteluun
- Koululaisen ohjelmointikirja: kirja, joka opastaa Scratch- ja Python-ohjelmointia
- Pulmaario: kirja, joka sisältää matematiikan ja ohjelmoinnin tehtävä
Lapseni ohjelmointiprojekti ei toimi niin kuin hän haluaisi - mitä tehdään?
Ohjelmointia opeteltaessa tulee väistämättä esiin tarvetta ratkoa ongelmia, kun projekti ei toimikaan heti suunnitelman mukaisesti. Tästäkin on tärkeää keskustella lapsen kanssa. Korosta lapselle, että pulmatilanteet ovat tavallisia ohjelmoinnissa ja niistä ei kannata hätääntyä. Keskustelussa voi tuoda esille myös sen, että harrastus kehittää lapselle arvokasta taitoa ratkoa ongelmia.
Jos projekti ei toimi niin kuin lapsi haluaisi, selvitä ensin, mitä toiminnallisuutta lapsi yrittää toteuttaa ja miten hän toivoisi sen toimivan. Käykää läpi koodia (vaikket olisikaan itse perehtynyt ohjelmointiin), koska usein pelkkä keskustelukin auttaa lasta löytämään ratkaisun. Jos pulma ei millään tunnu ratkevan, Scratch-projekteja voi jakaa Linkin ylläpitämään Peliklinikkaan, jossa on mahdollista saada neuvoja ohjaajilta. Huomioithan, että tällöin sinun tulee hyväksyä lapsesi Scratch-projektien jakaminen (tätä koskeva viesti tulee Scratch-tunnuksien luomisen yhteydessä nimettyyn sähköpostiin). Apua pulmatilanteisiin saa myös ohjelmointikerhossa. Linkin ohjaajat auttavat mielellään projekteissa!
Linkin kerhotarjonnasta kysyttyä
Miten valitsemme sopivan kerhon lapselle/nuorelle?
Keskustelkaa yhdessä lapsen/nuoren kanssa kerhon valinnasta. Vaihtoehtojen tarkastelussa on avuksi Kerhot-sivun kerhojen kuvaukset. Linkin koordinaattorit auttavat myös mielellään kerhovalinnoissa ja vastaavat kysymyksiin sähköpostitse osoitteessa linkki-kerhot@cs.helsinki.fi.
Millaista kielitaitoa ohjelmointikerhoon osallistuminen edellyttää?
Linkin kerhoissa ohjaus ja ohjeet ovat suomeksi. Riittävä suomen kielen taito on siis välttämätön, jotta ymmärtää ohjeistuksen kerhossa. Joskus kerhoissamme on monikielisiä lapsia, jotka esittävät kysymyksiä englanniksi tai ruotsiksi. Ohjaajat pystyvät vastaamaan kysymyksiin englanniksi ja osa myös ruotsiksi, eli ei haittaa, jos lapsi/nuori muistaa esimerkiksi jonkin yksittäisen sanan vaikkapa vain ruotsiksi. Ohjelmointikerhon puitteissa emme valitettavasti pysty ohjaamaan yksittäisiä lapsia/nuoria kokonaan englanniksi tai ruotsiksi.
Jos kyseessä on valmiiksi koottu ryhmä englannin- tai ruotsinkielisiä lapsia, ohjauksen järjestäminen voi olla mahdollista. Jos toivot ryhmälle räätälöityä ohjausta englanniksi tai ruotsiksi, ota yhteyttä Linkin koordinaattoreihin ja kerro samalla tarkemmin ryhmäsi tarpeista.
Emme asu pääkaupunkiseudulla, mistä apua ohjelmoinnin oppimiseen?
Linkin virtuaalikerho toimii ajasta ja paikasta riippumatta. Myös ohjelmoinnin MOOC tarjoaa apua ohjelmoinnin oppimiseen netissä.
Lapseni ei pidä matematiikasta, voiko hän oppia ohjelmointia?
Matematiikka ja ohjelmointi usein yhdistetään toisiinsa, koska molemmissa korostuu loogisen ajattelun ja ongelmanratkaisutaitojen merkitys. Algoritmit (eli toimintaohjeet) ovat myös molemmilla tieteenaloilla läsnä. Toimintaohjeita sovelletaan kuitenkin monessa muussakin yhteydessä, kuin matematiikassa ja ohjelmoinnissa. Lapsi on tottunut toimimaan tietyn "kaavan" mukaan, jos on vaikkapa osallistunut leivontaan tai valmistautunut ulkoiluun pukemalla vaatteet päälle tietyssä järjestyksessä. Pohjimmiltaan kyse on samasta asiasta: tiettyjen toimintojen suorittamisesta määrätyssä järjestyksessä.
Ohjelmoinnin oppiminen ei varsinaisesti edellytä matematiikan taitoja tai matematiikasta pitämistä. Matematiikkaa tulee vastaan ohjelmoinnissa esimerkiksi koordinaatiston muodossa jo aikaisessa vaiheessa, mutta allekkainlaskua tai kertotaulua ei tarvita. Ohjelmointiharrastus voi tukea matematiikan oppimista, mutta on myös mahdollista keskittyä tekemään projekteja, jotka eivät juurikaan liity matematiikkaan. Olemme kuitenkin havainneet, että kerholaiset saavat usein ohjelmoinnin oppimisen kautta uudenlaista innostusta matematiikan soveltamiseen.
Lapsellani on erityistarpeita, voiko hän tulla Linkin kerhoon?
Linkin kerhoon ovat tervetulleita kaikenlaiset ohjelmoinnista kiinnostuneet lapset ja nuoret. Laita osoitteeseen linkki@cs.helsinki.fi tietoa lapsesi erityistarpeista, jotta voimme yhdessä miettiä, miten lapsesi saisi kerhosta mahdollisimman paljon irti.
Vanhempi voi esimerkiksi tulla lapsen tueksi mukaan kerhoon, jos tarvetta on. Kerhotila on esteetön. Visuaalinen Scratch-ohjelmointiympäristö ei sovellu näkövammaisille, mutta ruudunlukuohjelman avulla tekstipohjainen ohjelmointi onnistuu.