Minulla on projekti opettaa lapset tekemään hauskoja ja hyödyllisiäkin asioita niillä välineillä, joilla oikeasti saa jotain aikaan, toisin sanoen komentoriviohjelmilla. Yritän muistaa blogata projektin etenemisestä.
(nettipäiväkirja 29.10.2019) Thought I'd start playing with sound programming again. It's because I gave my daughter an assignment to play me a tune, "one that neither ends nor loops". Turns out it's not too easy to do without any kind of programming skill :) And like a good kid, my daughter produced a scratch program playing random notes on a pretty weird distribution. (...)
(nettipäiväkirja 20.02.2015) [Unixia lapsille] -projektin sijaan olen viime aikoina tehnyt lapsilleni tehtäviä. Näiden tehtävien pointti on milloin mikin, mutta oikeastaan niiden ''yhteinen'' tarkoitus on tutustuttaa lapsia uusiin alueisiin eli antaa virikkeitä, ja sen lisäksi vain yksinkertaisesti viettää mukavaa aikaa yhdessä. Niinpä tehtävät ovat sitä hauskempia, mitä laveammin ne esittelevät eri alueita. (...)
Muistan, että joskus pienenä pirpanana, kun harjoittelin ohjelmoimaan, pidin tiettyjä kieliä "leluina" (Basic, Logo) ja toisia jotenkin "ammattimaisina" tai "asiallisina" (C, C++). (Myöhemmin tein näistä ja muista ennakkoluuloista näyttelyn, [näyttely: ohjelmointikielten kuvat].) Samanlaisia jaotteluita tulee vastaan muissakin työvälineissä: Centos on "vakavasti otettava" Linux-jakelu kun Ubuntu on "lelu", Oracle "todellinen" tietokanta, PostgreSQL "lelu" (tai MySQL "oikea", SQLite "lelu", riippuen keneltä kysyy). Jossain vaiheessa CORBA oli vakavasti otettava teknologia ja HTTP-kyselyiden tekeminen suoraan taustapalveluihin epäilyttävää h4xxorointia, vaikka sittemmin tämä jälkemmäinen onneksi lanseerattiin uudella nimellä (REST), ja sitten se onkin ollut katu-uskottavaa. Jos vain ihmiset suostuisivat vielä uskomaan, että skeemallinen JSON ei ole yhtään sen ammattimaisempaa kuin skeematon. (...)
Olennaisesti, nämä ovat aiheita, joista voi järjestää esityksiä / keskusteluita / työpajoja [nörtti ja geek] -henkisille ihmisille. (...)
Muistilista asioista, joita pitää muistaa joskus tehdä lasten kanssa: (...)
Piti muuten valittamani, että käyttämäni UCBLogo on muuttunut ''epävakaammaksi'' uudemmissa versioissaan. Olen itse käyttänyt versiota 5.5, joka kaatuu silloin tällöin satunnaisesti. Uudempi 6.0-versio näyttäisi kaatuvan säännöllisesti tarpeeksi monen viivan piirtämisen jälkeen. Aargh! Tämä rikkoo rankasti yhden edellytyksen niistä, [mitä tarvitaan ohjelmoinnin opettamiseen lapsille]. (...)
Ajattelin tehdä muutamia tehtäviä lapsilleni: (...)
'''Huom. Varsinainen sivu on siirretty tänne:''' https://confluence.csc.fi/display/virkistys/CSC%3an%20ohjelmointikerho (...)
Olen taas sluibaillut omien lasteni opettamisesta erikseen, koska olen pyörittänyt [CSC:n ohjelmointikerho]a. Mutta aina joskus opetan myös erikseen omia lapsiani. Tänään kysyin keskimmäiseltä, onko jotain, mitä hän erityisesti haluaisi opetella, ja hän näytti käsillään "semmoinen, jossa kuva pyörii tälleen". Tämä oli mielenkiintoinen haaste, ja koska sellaisen toteuttaminen ei oikeasti vaadi kovin pitkää ohjelmaa, katsoimme. (...)
(Tähän juttuun on kuvitusta tarjolla: https://www.flickr.com/photos/myscience/sets/72157644742760547/) (...)
Aikoinani, 7-vuotiaana vuonna 1986, opettelin ohjelmointia ala-asteellani Logo-ympäristössä. Tämä ohjelmointiympäristö on edelleen mielestäni yksi parhaita opetusympäristöjä niin ohjelmoinnin kuin ajattelunkin kannalta. Sen ainoa varsinainen "puute" oli se, että komennot koostuivat kirjaimista ja numeroista; tämä teki ohjelmoinnin oppimisen vaikeaksi niille, jotka eivät vielä olleet tajunneet kirjaimia ja numeroita. (...)
Palvelimen ylläpitoharjoitukset ovat olleet katkolla, kun lasten palvelimeen tuli mystinen ongelma. Se osoittautui loppunjen lopuksi rikkoutuneeksi virtalähteeksi, mutta selvittelyyn kesti aika kauan -- jotenkin tietotekniikkaongelmien selvittelyyn aina kestää. Mutta nyt saatiin ainakin käydyksi läpi se perusasia, mitä pitää ''aina'' tehdä, kun ollaan oltu verkosta irti jonkin aikaa: sudo apt-get update, sudo apt-get upgrade. (...)
Ainakin japanilaisessa ja yhdysvaltalaisessa kulttuurissa on mielenkiintoinen juonne: [kilpakumppanuus] ja sen ihannointi. En oikeastaan tiedä tätä muusta kuin näiden kulttuurien tuottamasta viihteestä. Ja sehän onkin oikea auktoriteetti esimerkiksi ihanteiden suhteen. (...)
Minun on pitänyt jonkin aikaa kertoa, miten lasten tietokoneoppitunnit etenevät. Tällä kertaa olemme työskennelleet aika paljon Logo-kielellä (minkä ehkä olette voineet arvata muista päiväkirjamerkinnöistä). (...)
Pidin tällä kertaa "monikulmioista tähtiä" -oppitunnin. Idis on siinä, että kun osataan esim. viisi-, seitsen- tai kahdeksankulmio, tehdäänkin se niin, että kerrotaan kääntymismäärä kahdella tai kolmella. Siis tämä: (...)
Taas edistymisraportti lasten opettamisesta. (...)
Myös lasten palvelinprojekti etenee, vaikkakin hitaasti. Asensimme 11-vuotiaan kanssa FTB-palvelimen (modattu Minecraft-palvelin) tälle lasten omalle palvelimelle. Siinä tuli vähän kertausta normaaleista tiedostonhallintakomennoista (mkdir, ls, cd, jne.), ohjelmien asentamisesta (sudo apt-get install, myös wget ja unzip), sekä joistain ylläpitokomennoista (sudo adduser, sudo passwd, top, netstat -a | grep LISTEN, free, df --si). Asensimme screenin ja Javan. Oikeastaan ainoa varsinaisesti uusi asia oli screenin käyttö (ajetaan serveriä screenissä), muu oli kertausta. Varsinkin vi:n käytön kertaus FTB-serverin asetustiedostojen muokkaamisessa oli arvokasta. (...)
Tänään oli taas pari oppituntia Logon merkeissä. Viisivuotiaalla oli uusi sotku-kehrä-vipperä-tunti, mutta lapsi ei osannut kovin omatoimisesti ehdottaa kokeiltavia ohjelmanpätkiä, joten se ei ollut kovin palkitsevaa. Sen sijaan hän halusi kokeilla ihan omatoimisesti piirtämistä, ja sai aikaan: (...)
Minulla on projekti opettaa lapset tekemään hauskoja ja hyödyllisiäkin asioita niillä välineillä, joilla oikeasti saa jotain aikaan, toisin sanoen komentoriviohjelmilla. Yritän muistaa blogata projektin etenemisestä. (...)
Pidin taas muutamia oppitunteja lapsille. Mukavaa, kun on joululoma, niin ehtii tekemään tällaista. Yksityistunnit ovat lisäksi käteviä sikäli, että muut lapset saavat puuhailla mieleisiään asioita, kun yhdellä on oppitunti, eikä kukaan ylikuormitu (paitsi ehkä minä?). (...)
Ajattelin, että Unix-komentojen käyttöä saattaisi motivoida paremmin, jos lapset saisivat oman ylläpidettävän koneen, johon otetaan yhteyttä ssh:lla ylläpitotoimia (ja muuta) varten. Voivat sitten pyörittää siellä haluamiaan palvelimia jne. (...)
Yritän ehtiä selittää joskus tarkemmin, mitä oikeastaan opetan lapsille ja miten. Sitä odotellessa, tässä on muutama juttu: (...)
Linuxissa (tai jossain muussa, jossa on jotain /dev/dsp:a vastaavaa, esim. nyky-Debianeissa yleensä ALSAn apuriohjelma aplay) pääset äänisynteesin alkuun mukavasti: (...)
Tässä Unixin opettamisessa lapsille on käytössäni yksi hyvin, hyvin tärkeä ominaisuus, jota ilman en suoraan sanoen pystyisi opettamaan ainakaan viisivuotiaalle mitään. Se on bashin (ja monen muunkin shellin) ominaisuus, että varhempia käskyjä pystyy hakemaan ylöspäinnuolella. (...)
* [Unix-peruskurssi] * [tekstityökalut] * http://sange.fi/~atehwa/unix-kurssi/yleista/nimeys.html * http://sange.fi/~atehwa/unix-kurssi/lyhyet/huomautuksia.html * http://sange.fi/~atehwa/unix-kurssi/kurssimoniste.pdf * http://sange.fi/~atehwa/unix-kurssi/prosessit.pdf * http://sange.fi/~atehwa/unix-kurssi/putket.pdf * http://sange.fi/~atehwa/unix-kurssi/lyhyet/slausekkeet.html * http://sange.fi/~atehwa/unix-kurssi/oikeudet.pdf * [virtues of the Unix shell] * [Unixia lapsille] (...)
Olen jatkanut ''sox''-ohjelman toiminnan selvittelemistä. Se on oikeastaan ihan hyvin dokumentoitu, mutta järjettömän monimutkainen ja täynnä historiallista painolastia. Kaikilla efekteillä on argumenteilleen vähän erilainen syntaksi, ja jos jokin efekti on osoittautunut kömpelöksi käyttöliittymältään, sen tilalle on yleensä tehty uusi. Niinpä esimerkiksi kanavien vähentämiseen soveltuvia efektejä on kolme: ''channels'', ''mixer'' ja ''remix''. (Lisäksi syötetiedostot voi yhdistellä mix-metodilla, mutta se ei ole "efekti".) (...)
Olen viime aikoina omaan rauhalliseen tahtiini edistellyt lapsille Unixin käytön opettamista, ks. [nettipäiväkirja 18.10.2013], [nettipäiväkirja 27.10.2013] ja [nettipäiväkirja 01.11.2013]. Ajattelin taas kertoa, mitä olen tehnyt lasten kanssa. (...)
Olen opetellut käyttämään sox-ohjelmaa, koska haluan, että lapseni pystyvät syntetisoimaan musiikkia Unix-putkirakenteilla. sox on hieno, mutta käyttöliittymästä näkee, että ajateltu peruskäyttötapaus ei ole putkitus vaan yhden tiedoston muuntaminen toiseksi. Tiedostoformaattien automaattitunnistus ei toimi putkissa, ja soxille pitää erikseen kertoa, että haluaa tuloksen stdoutiin. Vertaa tätä: (...)
Sain vinkin hyvästä blogista, http://girlscantcode.blogspot.fi/ (...)