Uuden 2016 OPS:in http://koodiaapinen.fi/ops2016/ mukana ohjelmointi on tulossa kouluihin. Miten teidän mielestänne pitäisi ohjelmointia opettaa/opiskella kouluissa? Ensimmäisenä ovat aloittamassa 1-6 lk:t peruskoulussa ja heti seuraavana vuonna 7-9 lk:t. Lukio tulee sitten varmaan jossain välissä mukaan. Täältä löytyy jo jonkin verran asiasta sanottua: http://koodiaapinen.fi/koodauksesta-sanottua/
Eikö opettajien tietotekniikkataidot ole melko kehnoja - oppilaatkin osaavat monin paikoin paremmin kuin opettaja, joka selittää Wordin käyttöä. Tällainen mielikuva itselläni on. Hienoa jos toimii, mutta epäilen hieman.
Parastahan olisi tietysti laatia tason mukaan tehtäviä. Hyville oppilaille voisi olla ohjelmointipainotteinen yläaste ja lukio samaan tapaan kuin nykyään on urheilu-, matematiikka- ja luonnontiede- yms. lukioita. Aloittelijoille sitten helpompia tehtäviä. Tai sitten Putkapostien tapainen arviointisysteemi, jossa tehtävistä saa perustiedoilla raavittua jonkun numeron mutta hyvät osaajat erottuvat huonoista.
Ei mitään tylsää teoriaa vaan "Hello Word!" heti peliin ja siitä sitten käytännön harjoitteluun. Koululaisille oma web-palvelin, johon jokainen saa väsätä omat nettisivut ja php-perusteet siinä sivussa. PHP-haaste ja putkaposti bonuksena mukaan, erittäin hyviä tehtäviä ja harjoituksia noista löytyy!
Mun mielestä varsinaista ohjelmointia ei ole edes järkevää yrittää opettaa ennen kuin oppilaat osaavat englannin alkeet / perusteet "luontevasti". Mutulla arvioisin että siten aikaisintaan neloselta tai jopa vitosluokalta. Ellei joku sitten halua tehdä esimerkiksi pythonin päälle suomikerrosta, joka mäppää tarvittavat standardikirjaston funktiot suomeksi ja piilottaa englannin kielen "pois näkyvistä". Muuten käy niin, ettei heikkolahjaisemmille oppilaille ole mitään järkeä edes osallistua tunneille.
Tuosta opsin tiivistelmästä en osaa parsia, että mitä noilla virkkeen pituisilla kuvauksilla oikeasti aiotaan.
Ohjelmointia voi käsitellä melko samalla tavalla kuin fysiikkaa tai kemiaa. Ei kannata pyrkiä pelkästään käytäntöön ja hienouteen (kuten ei kemiassakaan vain tehdä jänniä kokeita) vaan keskittyä tarpeeksi teoriaan. Tarkoitan tällä sitä, että ei ole realistista opettaa kaikkia tekemään omia ohjelmia edes helpoilla ohjelmointikielillä, mutta sen sijaan on realistista ja erittäin toivottavaa opettaa, mitä tietokone tekee ja mistä ohjelmoinnissa on ajatuksena kysymys. Päästäisiin sitten vähitellen eroon ihmisistä, joiden tietokone ”kiukuttelee” ja ”kieltäytyy tekemästä” ja ”ei ymmärrä”.
Teoriapainotuksesta huolimatta monia asioita voi tutkia kynällä ja paperilla tai leikkeinä ja peleinä paljon viihtyisämmin ja havainnollisemmin kuin tietokoneella. Lajittelualgoritmeja voidaan suorittaa kilpaa numerolappusilla. Tietorakenteita voidaan koota numerokorteista, esimerkiksi joka pulpetille yksi tietorakenne, kierroksella siirrytään aina seuraavalle pulpetille ja lisätään oikeaan kohtaan oikealla algoritmilla satunnaisesti poimittu luku. Kaikenlaisia algoritmeja voidaan ajaa pareittain niin, että yksi prosessoi (rajallisella työmuistillaan) ja toinen pitää kirjaa (kuin varsinainen keskusmuisti). Vastaavasti korkeamman tason järjestelmiä voidaan tutkia vaikka niin, että yksi henkilö on yksi olio, jolla on vaikka paperille listattuna mahdollisia toimintoja, ja järjestelmän avulla saadaan suoritettua jokin toiminto. (Tämä olisi myös arjessa hyödyllinen taito, koska näinhän moni asia oikeasti tapahtuu: pyydetään toista henkilöä hoitamaan jokin asia ja jatketaan itse sitten, kun tulos on saatu.) Mahdollisuudet ovat rajattomat! Tällaisesta oppiaineesta voisi tulla menestys, kaikille sopiva älyjumppa- ja leikkituokio.
Käytännön ohjelmoinnista ainakin tekstimuotoinen koodaaminen pitäisi suosiolla jättää isommille lapsille ja ehkä jopa vapaaehtoiseksi. Opettelun apuvälineenä helpommin voisi toimia jokin visuaalinen ”ohjelmointiympäristö”. Kuitenkin on mielestäni epärealistista ajatella, että kaikki lapset oppisivat ohjelmoimaan itsenäisesti jotain hyödyllistä. Valmiiden ohjelmien kopioiminen kirjasta tietokoneelle (tai kopiointi netistä) ei myöskään kehitä kovin paljon. Siksi voisi olla parempi tehdä hauska mutta rajoittunut ympäristö, jossa hieman ohjelmoinnin henkisesti ratkaistaan pieniä pulmia tai rakennellaan jotain kivaa. Mainittakoon tässä yhteydessä Logo-ohjelmointikieli ja RoboZZle-tehtävät sekä klassikkopeli The Incredible Machine.
Täytyy miettiä, mikä on sellaista sivistystä, jonka jokainen lapsi pystyy omaksumaan aiheesta. Eihän moni osaa soveltaa edes matematiikkaa arkielämässä kuin yhteen- ja kertolaskun verran; harva laskee ja vertailee esimerkiksi lainan korkoja itse, vaikka koulussa opetetaan tähän tarvittavat tiedot. Turha siis kuvitella, että ohjelmoinnistakaan tulisi sen syvällisempää kansalaistaitoa. Mielestäni kannattaa tähdätä reaaliaineena aidosti yleissivistävään tasoon ja sitten taideaineiden tyyppisesti antaa mahdollisuuksia omiin projekteihin ja tukea ohjelmoinnin käyttöä muissa oppiaineissa. Hyviä käyttökohteita ovat matemaattisten tehtävien ratkaisu ja erilaiset simulaatiot ja numeeriset ratkaisut fysiikassa ja kemiassa.
TapaniS kirjoitti:
PHP-haaste ja putkaposti bonuksena mukaan, erittäin hyviä tehtäviä ja harjoituksia noista löytyy!
Ei kaikki putkapostit ole järkeviä, mutta on siellä opettavaisiakin tehtäviä. Oppilaat voivat ihmetellä, miksi MD5-hyökkäys ei ratkea. Käytännössä tuossa pärjää parhaiten se, joka saa houkuteltua eniten porukkaa omaan hajautetun laskennan projektiin.
Mutu että ohjelmointi itsessään on lopulta tärkeä tai edes hyödyllinen taito melko harvalle. Tärkeämpää olisi opetella ymmärtämään erilaisia tietotekniikan työkaluja, konsepteja ja tekniikoita. Muunmuassa tekstinkäsittelytaidot jäävät melko monella asteelle "tässä on Word, tästä siihen laitetaan kuvia ja tästä tehdään tekstistä isompaa". Tärkeämpää olisi esimerkiksi esitellä mitä on tekstinkäsittely ja mitä työkaluja siihen löytyy, miten tekstiä formatoidaan ja tyylitellään oikeaoppisesti, jne.
Työkalujen käytön opettelemisesta voitaisiin myös tehdä mielenkiintoisempaa liittämällä ne muuhun opetukseen. Sanotaan vaikka että äidinkielen opettajalla on menossa tarinoiden kerrontaan liittyvä kurssi, ja että tietotekniikassa samalla ryhmällä on menossa esitysgrafiikkakurssi. Opettajat voisivat yhteistyössä toteuttaa ryhmälle jakson, jossa äidinkielen puolella suunnitellaan tarina, piirretään sen eteneminen kaaviona ja tehdään kuvakäsikirjoitus. Lopulta tietotekniikan puolella tehdään esitysgrafiikkaesitys, jossa tarina etenee diasta toiseen käyttäen esityksen sisäisiä linkkejä. Samalla voitaisiin käydä läpi esimerkiksi hakukoneiden käyttöä lähdemateriaalin hakemiseen, tekijänoikeuksia, kuva- ja ääniformaatteja, tekstin-, kuvan- ja äänenkäsittelyä, jne. Lopulta tuloksena olisi oppilaiden itsensä alusta loppuun toteuttama peli, jota voisi ylpeänä laittaa opettajan tai kaverit pelaamaan.
Samalla tavalla myös ohjelmoinnin tulisi olla osana muuta opetusta. Ei opetella ohjelmointia tylsästi ja reaalimaailmaan liittymättömästi "tässä on olio, tässä on algoritmi", vaan tuodaan ohjelmointi enemmänkin ratkaisuksi oikeisiin ongelmiin. Esimerkiksi pelikurssi, jossa pääasiana on tehdä peli, mutta työkaluna pitää käyttää sopivaa ohjelmointiympäristöä (esim. Jypeli: https://trac.cc.jyu.fi/projects/npo/wiki/
Metabolixin kanssa olen tosiaan samaa mieltä siitä, että opetuksen pitäisi olla yleissivistävää ja toimia muiden aineiden tukena ja myös niiden kanssa yhteistyössä. Samaa mieltä en kuitenkaan ole lajittelualgoritmien tai muiden tietorakenteiden opettelusta; nämä ovat todennäköisesti asioita jotka eivät kovin helposti monelle aukene, ja löytyvät tarvittaessa melko helposti alan kirjallisuudesta / internetistä kun/jos niille löytyy tarvetta. Mikäli joillain oppilailla näihin asioihin toisaalta olisi innostusta, voisi koulu toisaalta järjestää erillisiä syventäviä valinnaisia kursseja / kerhotoimintaa asian tiimoilta.
Vaikka kaikesta opetuksesta ei tietenkään voi tehdä kaikille mieluista ja mielenkiintoista, on mielestäni silti tärkeää yrittää. Oppiminen tapahtuu helpommin mikäli aihe on mielenkiintoinen ja lähempänä oppilaiden omaa elämää :)
Huh, tulipa taas jaarittelumonologi. Nojaa, nettiin mahtuu ;)
Jotenkin tuntuu, että ensimmäiset tehtävät YO-koetasolla voivat olla ihan vaan jonkun LaTeX-paketin käyttöä. Siis pitää piirtää fysiikan tehtävästä vapaakappalekuva tai kemiassa molekyylimalli tai matikassa tyyliin http://tex.stackexchange.com/questions/170192/
LaTeXin käyttäminen ei ole ohjelmointia (useimmiten), vaikka se hyödyllistä onkin. Tuskinpa "ohjelmointi" -nimisessä oppiaineessa sitä tehtäisiin. Sen sijaan perus tietojenkäsittelyssä LaTeX, HTML ja muut muotoilu- ja ladontakielet olisivat mainio aihe. HTML:ää opetetaankin jo aika paljon, mutta LaTeXia ei niinkään, vaikka se on varteenotettava haastaja Wordille ja muille "wysiwyg"-asiakirjakirjoittimille.
fergusq kirjoitti:
LaTeXin käyttäminen ei ole ohjelmointia (useimmiten)
Niin. Toisaalta sitä on myös käytetty ohjelmointiin. Tosin aika harvaan ohjelmointitehtävään käyttäisin sitä. Mutta varmaan LaTeXin perusteet joutuu jokatapauksessa opiskelemaan siinä vaiheessa kun matikan, fysiikan ja kemian YO-kokeet sähköistetään.
Jaska kirjoitti:
Mutta varmaan LaTeXin perusteet joutuu jokatapauksessa opiskelemaan siinä vaiheessa kun matikan, fysiikan ja kemian YO-kokeet sähköistetään.
Kokeen suorittaminen ei voi olla tällaisesta teknisestä taidosta kiinni, vaan kaavoja tullaan luultavammin kirjoittamaan joko kuvina tai jollain WYSIWYG-kaavaeditorilla.
Turatzuro kirjoitti:
Samaa mieltä en kuitenkaan ole lajittelualgoritmien tai muiden tietorakenteiden opettelusta; nämä ovat todennäköisesti asioita jotka eivät kovin helposti monelle aukene,
En ehdottanut, että niitä itsessään opeteltaisiin. Ehdotin, että niitä voidaan valmiista ohjeista suorittaa esimerkkeinä siitä, miten algoritmilla saavutetaan jokin järkevä lopputulos ja miten eri algoritmit ovat tehokkuudeltaan erilaisia.
LaTeX olisi kyllä itsessään erittäin hyvä vaihtoehto pakolliseksi työkaluksi kouluissa. Maailma olisi paljon parempi, jos ihmiset käyttäisivät tekstipohjaisia kieliä kaikenlaisten wysiwygohjelmien sijasta. Tekstitiedostosta näkee sentään kaiken mitä pitää nähdä, eikä mitään ole piilotettu loputtomien valikkorakenteiden taakse haittaamaan. Minut hyllytettiin aikoinaan tekstinkäsittelykokeesta koska marginaalini oli millin (millin!) liian vasemmalla. Sen siitä saa kun alkaa pelleilemään liukusäätimien kanssa. LaTeXin käyttäminen parantaisi myös asiakirjojen laatua, kun ei voi pilata asettelua peruuttamattomasti painamalla kerran väärästä napista.
Metabolix kirjoitti:
Jaska kirjoitti:
Mutta varmaan LaTeXin perusteet joutuu jokatapauksessa opiskelemaan siinä vaiheessa kun matikan, fysiikan ja kemian YO-kokeet sähköistetään.
Kokeen suorittaminen ei voi olla tällaisesta teknisestä taidosta kiinni, vaan kaavoja tullaan luultavammin kirjoittamaan joko kuvina tai jollain WYSIWYG-kaavaeditorilla.
Tai sitten järjestelmä tehdään siten, että tehtävät voi tehdä sekä WYSIWYGinä että tekstipohjaisena. Käsittääkseni jotkut liikuntarajoitteiset eivät pysty käyttämään hiirtä hyvin vaikka konekirjoitus tai kosketusnäytön käyttö sujuukin. Kaippa tuollainen järjestelmä voidaan suunnitella monenlaista ohjauslaitetta ja -menetelmää tukevaksi.
fergusq kirjoitti:
Maailma olisi paljon parempi, jos ihmiset käyttäisivät tekstipohjaisia kieliä kaikenlaisten wysiwygohjelmien sijasta.
Ihmiset ovat erilaisia, joten minusta olisi parempi, että kukin saisi valita sen tavan, jolla asiat saa tehtyä mukavimmin.
fergusq kirjoitti:
Minut hyllytettiin aikoinaan tekstinkäsittelykokeesta koska marginaalini oli millin (millin!) liian vasemmalla. Sen siitä saa kun alkaa pelleilemään liukusäätimien kanssa.
En ole koskaan ymmärtänyt tuollaisten millintarkkojen asiakirjastandardien hyötyä. Mutta tosiaan jos tehtävänannossa sanotaan että marginaalin täytyy olla 2,13 cm, niin sitten se varmaan kannattaa määritellä numeraalisesti, kuten kaikissa tuntemissani liukusäädintä tukevissakin tekstinkäsittelyohjelmissa on mahdollista tehdä.
fergusq kirjoitti:
LaTeXin käyttäminen parantaisi myös asiakirjojen laatua, kun ei voi pilata asettelua peruuttamattomasti painamalla kerran väärästä napista.
Vaikea uskoa että jotain tapahtuisi peruuttamattomasti, yleensä viimeisimmät muutokset voi perua "peru" toiminnolla. Ja voi varmaan Latexissakin tuhota "peruuttamattomasti" vaikka koko asiakirjan.
Grez kirjoitti:
fergusq kirjoitti:
LaTeXin käyttäminen parantaisi myös asiakirjojen laatua, kun ei voi pilata asettelua peruuttamattomasti painamalla kerran väärästä napista.
Vaikea uskoa että jotain tapahtuisi peruuttamattomasti, yleensä viimeisimmät muutokset voi perua "peru" toiminnolla. Ja voi varmaan Latexissakin tuhota "peruuttamattomasti" vaikka koko asiakirjan.
Tarkoitin lähinnä sitä, että muuttaa jotain asetusta, jonka toimintaa ei täysin ymmärrä. Tuskin mikään on oikeasti peruuttamatonta, mutta asioiden muuttaminen on vaikeaa, kun ei tiedä mistä valikosta lähteä korjausta etsimään. Varsinkin, jos ei ole kyseisiä toimintoja ennen ohjelmassa käyttänyt. (Käytän kotona LibreOfficea ja koulussa eri versioita Wordistä, joten se on hyvinkin mahdollista.) LaTeXissa kaikki asetukset on selvästi kirjattu komentoina tiedostossa.
Wysiwygit on ihan käteviä luonnosten tekemiseen, mutta valmiit eteenpäin annettavat asiakirjat kirjoitan usein puhtaaksi LaTeXilla.
En nyt usko että LaTeΧillakaan pystyy kovin mainioita dokumentteja ilman opiskelua tekemään. Toisaalta wysiwyg-editorillakin auttaa jos asiaa opiskelee eikä vain räpellä.
fergusq kirjoitti:
Minut hyllytettiin aikoinaan tekstinkäsittelykokeesta koska marginaalini oli millin (millin!) liian vasemmalla. Sen siitä saa kun alkaa pelleilemään liukusäätimien kanssa.
Missä ohjelmassa joutuu liukusäätimillä säätämään marginaalit? Ihan vain mielenkiinnosta.
Tuskin sellaista onkaan missää "joutuu" eli ei ole lainkaan mahdollisuutta antaa numeraalisesti.
Voihan esimerkiksi tuon Wordin mahdollisuuden säätää marginaalia hiirellä ajatella liukusäätimeksi, mutta pakkohan sitä ei ole käyttää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.