lauantai 23. joulukuuta 2023

Opiskelijan ohjelmointikirja. Vaiheittainen visuaalinen opas (Computer Coding - Python Projects for Kids, 2017)

Olen nuoresta asti ajatellut aina silloin tällöin, että olisi kiva kokeilla ohjelmointia, mutta ohjelmat ovat olleet minusta liian kalliita ja/tai 400-500-sivuiset tiheästi kirjoitetut, tylsän näköiset (englanninkieliset) ohjelmointioppaat eivät ole vaikuttaneet erityisen helposti lähestyttäviltä, joten en ole tehnyt sitä. Lastenosastolla osui kuitenkin silmiin tällainen kirja, joka ratkaisi molemmat ongelmat: kirja on runsaasti kuvitettu, siinä on hauskan tuntuisia projekteja ja ohjelmakoodi annetaan siinä valmiina. Python-ohjelman (nimi tulee Monty Pythonista, ei käärmeestä) voi ladata ilmaiseksi netistä, ja suhteellisesta helppoudestaan huolimatta tätä ohjelmointikieltä käytetään myös esim. lääketieteessä, liiketaloudessa, elokuvien animoinnissa ja jopa avaruuslennoissa.

Kirjan suomenkielinen nimi on harhaanjohtava, koska tekstistä ja kirjan projekteista käy selvästi ilmi, että kirja on suunnattu noin 10-vuotiaille lapsille. Tässä on toisaalta kirjan ongelma - minun on vaikea uskoa, että monet kymmenvuotiaat suomalaislapset jaksaisivat kirjoittaa kirjan englanninkielisiä, loppuvaiheessa aika pitkiäkin ohjelmakoodeja, joissa jokaisen kirjaimen ja merkin pitää olla täsmälleen oikein. (Tätä varten olisi muuten ollut hyvä, jos kirjan alussa olisi neuvottu helpot tavat valita, kopioida (Ctrl+C) ja liittää (Ctrl+V) tekstiä, koska monet koodinpätkät toistuvat ohjelmissa lähes samanlaisina.)

Kirja on suomennettu hyvin ja huolellisesti. Esimerkkiohjelmien käyttäjän näkemät lauseet on suomennettu, mutta muuten ohjelmat ovat alkuperäismuodossaan, joten esim. ohjelmien muuttujat ja funktioiden nimet ovat englanninkielisiä. Pythonin komentoja ei tietenkään voi suomentaa, mutta mm. nämä muuttujat ja funktionnimet olisi kuitenkin voinut kääntää, mikä olisi tehnyt ohjelmista helpommin kirjoitettavia ja ymmärrettäviä suomalaiselle, varsinkin lapselle, joka ei välttämättä ymmärrä käytettyjen englanninkielisten sanojen merkitystä ollenkaan. Tämä olisi kyllä vaatinut paljon lisätöitä suomentamiseen, koska ohjelmakoodit ovat aika iso osa kirjaa ja kuten sanottu, niiden pitää olla täysin virheettömiä.

Muuten kirja on kuitenkin oikein hyvin tehty ja ottaa kohderyhmänsä hyvin huomioon. Siinä on paljon pieniä ja hupaisia, varmastikin Pythonilla tehtyjä, hauskan alkeellisen näköisiä tietokonegrafiikkakuvia. Siinä ei anneta vain ohjelmakoodeja, vaan kerrotaan myös ohjelmien suunnittelun periaatteista yleisesti, ja jokaisen projektin alussa on ohjelman vuokaavio, jota on hyvä miettiä ennen kuin rupeaa koodaamaan. Vaikka perusohjelmien koodit annetaan valmiina (mikä mahdollistaa sen, että kuka tahansa voi saada ne toimimaan, kunhan on tarpeeksi huolellinen), projektien jälkeen annetaan lisäksi paranteluehdotuksia, joiden avulla voi testata omia taitojaan. Kirjassa myös selitetään ohjelmien ja niiden komentojen toiminta, ainakin osaksi.

Esimerkkiohjelmat ovat sellaisia, joita lapset varmastikin pitävät hauskoina (esim. tietokilpailu, matopeli ja muita pelejä, robotin, lemmikin tai tähtitaivaan piirtäminen ja paljon muuta), mutta joita minun oli aikuisenakin hauska tehdä ja kokeilla. On vain jotenkin siistiä, kun saa tietokoneen tekemään jotain, mitä haluaa, vaikkei se olisikaan kovin monimutkaista, ja kirja herättää tunteen siitä, että saattaisi olla mahdollista suunnitella ja tehdä myös omia ohjelmiaan. Pelkästään tämän kirjan avulla omien ohjelmien tekeminen ei kuitenkaan onnistu, koska kirja heittää lukijansa/käyttäjänsä suoraan syvään päähän ja siinä käytetään melko usein myös sellaisia komentoja, joiden toiminta ei kirjasta avaudu eikä niitä selitetä, ne vain annetaan siinä valmiina (esimerkiksi kun tehtiin hiiren liikkeisiin ja käyttäjän toimintaan tai toimimattomuuteen reagoiva "lemmikki"). Tämä ei toisaalta ole ihme - innostuin tutustumaan myös yliopisto-opiskelijoille suunnattuun englanninkieliseen Python-ohjelmointioppaaseen (Introduction to Python Programming and Data Structures), joka etenee simppeleistä asioista monimutkaisempiin, ja jotkin tämän lasten kirjan komennot selitetään siinä ehkä vasta sivuilla 200-300 tai myöhemminkin.

Tässä lapsille suunnatussa kirjassa on toisaalta hienoa, että ohjelmissa käytetään myös monimutkaista ja pidemmälle edenneiden käyttäjien koodia, koska ainakin minä ymmärrän asiat paremmin kun teen ne itse, eivätkä esim. silmukat ja funktioiden määrittely tunnu niin vaikeilta, kun niitä on jo käyttänyt melkein huomaamattaan itse jossakin ohjelmassa. Toisaalta tämä tapahtui sen kustannuksella, että joitakin komentoja en ymmärtänyt ollenkaan, mutta se ei ole niin vaarallista. Pythonista yleensä täytyy kuitenkin sanoa, että vaikka sitä oppii käyttämään aika helposti ja nopeasti, ainakin sen alkuvaiheessa, sen englanninkieliset virheilmoitukset ovat noviisille usein melko käsittämättömiä eivätkä ollenkaan käyttäjäystävällisiä (mutta niitäkin aloin vähitellen ymmärtää).

Yksi lasten kirjan projekteista. Tylsännäköinen koodi (taustalla vasemmalla) saattaa synnyttää kauniita kuvioita. Ohjelma on myös animoitu, niin että tähtiä syttyy "taivaalle" koko ajan lisää.

Eniten pidin Turtle-grafiikasta eli piirtämisestä ohjelman avulla: Pythonilla pystyi tekemään helposti geometrisia kuvioita sekä vaihtelemaan niiden väriä, kokoa, sijaintia ja suuntaa, mikä mahdollisti kaikkea kivaa ja kiinnostavaa. Aikuisten kirjan myöhempien lukujen tehtävissä piirrettiin esimerkiksi  fraktaaleja, minkä osaaminen olisi aika mahtavaa. Ja kun tein jonkin verran noita aikuisten kirjan tehtäviä ennen kuin innostukseni hiipui, ihastuin myös siihen, miten yksinkertaisella ja helpolla koodilla pystyi laskemaan esim. matemaattisten sarjojen arvoja tai alkulukuja, joiden laskeminen laskimella tai tietokoneellakin olisi vienyt todella paljon aikaa. Siis jos onnistui kirjoittamaan koodin oikein (matemaattisissa tehtävissä usein kyllä yllättävän helppoa): saatoin käyttää parikin tuntia jonkin sellaisen tehtävän ratkaisukoodin miettimiseen (aikuisten kirjan tehtäviin ei ollut ratkaisuja), jonka vastaukset olisi Excelillä pystynyt laskemaan parissa minuutissa. Monia kirjan matemaattisia tehtäviä ei olisi kuitenkaan luullakseni pystynyt laskemaan Excelillä.

Ohjelmointia oli kiva kokeilla ja se oli mukavaa aivojumppaa, mutta se ei ole minulle järin tarpeellista ja pystyn hyvin elämään ilman sitäkin. Pidän analogisista asioista (kuten paperikirjoista), ja vaikka noin kolmen viikon ajan olin tosi innostunut koodaamisesta, se jäi melkein kokonaan, koska elämässä on paljon muutakin. Oli kuitenkin hauska huomata, että tietokoneohjelmien tekeminen ei ole mitään ylivoimaisen vaikeaa salatiedettä ja että on mahdollista tehdä omia ohjelmia. Oli myös hyvä saada käsitys ohjelmoinnin periaatteista, koska tietokoneohjelmia tulee kuitenkin käytettyä melko paljon - oli opettavaista saada tietää jotain siitä, miten ne on tehty, sekä tiedostaa, että ratkaisut olisi usein voitu tehdä myös toisella tavalla.

Edit 24.12.23.

Opiskelijan ohjelmointikirja. Vaiheittainen visuaalinen opas, 2018 [kirjassa ei suomenkielisen painoksen julkaisuvuotta, katsottu kirjaston sivuilta] (Computer Coding - Python Projects for Kids, 2017). Tekijät: Carol Vorderman, Craig Steele, Claire Quigley, Martin Goodfellow, Daniel McCafferty ja Jon Woodcock. Kustantaja: readme.fi. Suomennos: Veli-Pekka Ketola. Kansi: Marko Tapani. 224 sivua.

sunnuntai 3. joulukuuta 2023

Norman Angell: The Great Illusion - Now (1938 edition) (rauhannobelistit 1933)

Tänä vuonna Nobelin rauhanpalkinnon sai iranilainen Narges Mohammadi, joka on ollut vangittuna jo vuosia, koska hän taistelee iranilaisten tunnuslauseen mukaan "naisten, elämän ja vapauden" puolesta. Taas yksi todella rohkea ihminen, joka puolustaa oikeudenmukaisuutta kaikista vaikeuksista, väkivallasta ja vapaudenriistosta huolimatta - hän ei esimerkiksi ole saanut tavata nyt 16-vuotiaita kaksosiaan kahdeksaan vuoteen - ja jaksaa pitkästä vankeudestaan huolimatta kannustaa ja rohkaista muita vankeja. Ja ainakin toinen iranilainen Nobelin rauhanpalkinnon saanut nainen - ensimmäinen oli Shirin Ebadi. Onnea voittajalle! Ehdokkaina oli myös muita ihmisiä ja järjestöjä, jotka taistelevat sinnikkäästi paremman maailman puolesta.

Minulla on ollut noin vuoden tauko rauhannobelisteista kirjoittamisessa. Siihen on vaikuttanut se, että bloggaaminen on yleensäkin tänä vuonna ollut tavallista hankalampaa, mutta tärkein syy on se, että olen nyt rauhannobelistisarjassani 1930-luvulla, joka on todella masentava ajanjakso rauhan kannalta, varsinkin kun tietää, mitä 1940-luvulla tapahtui.

1930-luku ei ollut mitään tasapainoista tai rauhallista aikaa, mikä selvisi hyvin tätä englantilaisen Norman Angellin (Ralph Lanen) kirjaa lukiessa. Aloitin kirjan lukemisen jo viime vuonna, ja pidin sitä kiinnostavana, mutta nykyisen maailmantilanteen huomioon ottaen niin masentavana luettavana, etten ole aikomuksistani huolimatta saanut luettua sitä tänä vuonna enempää. 1930-luvullakin vallanhaluinen diktaattori halusi valloittaa naapurimaita, mutta toisin kuin nyt, myös onnistui tässä, koska muut Euroopan maat ajattelivat ensin, että asia ei kuulu niille. Onneksi olemme oppineet jotain - ukrainalaiset taistelevat meidän kaikkien vapauden ja sellaisen maailman puolesta, jossa ihmiset saavat elää rauhassa omassa maassaan.

Norman Angell (1872-1967) julkaisi vuonna 1909 pitkän pamfletin Europe's Optical Illusion, joka tuli myöhemmin tunnetuksi nimellä The Great Illusion ja oli ilmeisesti melkoisen tunnettu ja vaikutusvaltainen teos, koska rauhanpalkinnon perusteena mainitaan juuri se. Tähän vaikutti varmasti se, että kirja on kirjoitettu mielenkiintoisesti. Kolmekymmentä vuotta myöhemmin (1938) kirjasta julkaistiin tämä uusi laajennettu painos, jossa Angell haluaa osoittaa ensimmäisen maailmansodan aattona julkaistujen teesiensä pätevän myös 1930-luvulla sekä vaikuttaa ihmisiin asioiden muuttamiseksi, siinä määrin kuin asioita tuossa tilanteessa vielä pystyi muuttamaan.

Angellin pääteesi oli luullakseni se, että valtioiden välillä oli nykyaikana (1909 ja 1938) taloudellisesti niin tiukat kytkökset, että toisen maan valloittamisesta ei olisi valloittajamaalle käytännössä mitään hyötyä. Hän myös varoitti siitä, että Euroopan maat ovat 1930-luvulla sulkeneet silmänsä Hitlerin valloituksilta ja Italian fasismilta välinpitämättömyytensä tai kommunismin vastustamisen takia. Angell pyrki todistamaan, että sota on järjetöntä, taloudellisesti ja muutenkin (hän ei kuitenkaan ota huomioon, että tämä ei auta, kun valtaa yksinvaltaisesti käsissään pitävät ihmiset eivät ole järkeviä). Hän halusi poistaa ne väärinkäsitykset ja illuusiot, joiden vuoksi valtiot ryhtyvät sotimaan keskenään sekä todistaa, että yhteistyö on kaikille osapuolille edullisempaa kuin sotiminen.

Luin tätä hyvin tiiviisti painettua kirjaa sivulle 150 asti, mutta muistikuvat ovat melkoisesti haalistuneet lähes vuoden aikana. Kirjassa oli kuitenkin paljon kiinnostavaa ja itsenäistä ajattelua eikä se ollut selvästi sidoksissa mihinkään tiettyyn puolueeseen tai ajattelutapaan. Jos innostun lukemaan sitä joskus myöhemmin (aika epätodennäköistä), kirjoitan siitä lisää. Angell, joka sanoo kirjassaan tehneensä rauhantyötä yli 30 vuotta ja joka toimi myös mm. työväenpuolueen kansanedustajana, varmastikin ansaitsi rauhanpalkintonsa ja ansaitsisi myös kirjansa paremman esittelyn.

National self-sufficiency involves what The Great Illusion called the economics of cannibalism. "It is quite clear," that book imagines one cannibal saying to another, "that I must eat you, or you must eat me. Let us come to a friendly agreement about it." If indeed it were true, argues this book, that the only source of food for either of those two parties was the body of the other, the two would not come to a friendly agreement about it, however much goodwill they put into the negotiation. They would fight. But they would fight equally if the assumption each made were not true at all, but each supposed it to be; if, in fact, there was plenty of food available for both in the higher branches of the trees which neither could reach alone but quite accessible if only one would stand on the shoulders of the other, and then divide the spoil. But the fact that ample food was available if only they would turn to co-operation would not affect their conduct so long as they stuck resolutely to the cannibalistic view of the economic situation, refusing to question established and familiar conceptions. (75)

Jos 1930-luvun lopun rauhannobelistien kirjojen lukeminen tuntuu minusta edelleen mahdottomalta, hyppään 1940-luvun rauhannobelisteihin, niin saan tämän oman haasteeni taas etenemään. Katsotaan, ainakin yritän nyt lukea myös muita 1930-luvun nobelisteja. Ja pakkohan näitä ei ole lukea aikajärjestyksessä, mutta pidän siitä, millaisen näkökulman kronologinen järjestys antaa tapahtumiin sekä ajattelun muuttumiseen länsimaissa (länsimaissa, koska vielä ei ole ollut tietoakaan muunmaalaisista rauhannobelisteista).

Kirjahaku Finnasta Angellin ja Great Illusionin nimellä antoi kiinnostavaa lisätietoa tästä kirjasta. Se oli aikanaan bestselleri, alkuperäinen kirja suomennettiin jo vuonna 1912 nimellä Valtojen näköhäiriö: tutkielma sotilasvallan merkityksestä kansojen taloudelliselle ja yhteiskunnalliselle asemalle, ja alkuteoksesta on otettu vuonna 2010 näköispainos, joka on nyt Maanpuolustuskorkeakoulun kirjaston kokoelmissa. Se on myös otettu mukaan kansainvälisiä suhteita käsittelevään uuteen (2013) lukemistoon: "Classics of International Relations introduces, contextualises and assesses 24 of the most important works on international relations of the last 100 years". Melkoinen klassikko siis, jota pidetään ilmeisesti nykyäänkin tärkeänä, mutta varmastikin vain harvan tuntema ainakin meillä Suomessa.

Sadan vuoden lukuhaaste: 1930-luku.

Norman Angell: The Great Illusion - Now (1938 edition). Penguin Books Limited. 287 sivua (112 sivua uutta tekstiä: The Great Illusion in 1938; sivuilla 113-274(?) vuoden 1909 kirja lyhennettynä versiona; sivuilla 275-282 The Final Moral (eli johtopäätökset siitä, miten pitäisi toimia). [Sivunumerot eivät välttämättä ole täysin oikein, mutta olen jo palauttanut kirjan, joten en voi tarkistaa niitä.]