Tämä sivusto pitää sisällään Python-ohjelmoinnin perusteiden opetteluun soveltuvia suomenkielisiä* harjoitustehtäviä. Tehtävien tekeminen (ylipäänsä osana oppimisprosessia) on erittäin suositeltavaa, sillä ohjelmoinnissa, jos missä, pätee erityisen hyvin sanonta; tekemällä oppii. Toiset meistä haluavat ryhtyä heti käyttämään uutta kieltä käytännön harjoitteiden parissa, toisille teoriapohjaisempi lähestymistapa on miellyttävämpi. Se miten sinä opettelet Python-ohjelmointikieltä on (toivottavasti) itsesi päätettävissä. Toivottavasti tämän sivuston harjoitukset kuitenkin auttavat sinua tässä prosessissa.
Harjoitusmateriaali on ensisijaisesti tarkoitettu läpikäytäväksi itsenäisesti, mutta sitä voi toki käyttää myös osana ohjattua koulutusta, soveltuvilta osin.
Harjoitusten läpikäymiseen menee (Python-ohjelmointiin vasta tutustuvalta) aikaa n. <täydennetään myöhemmin kokemusten mukaan> tuntia, riippuen suorittajan ohjelmointikokemuksesta sekä Python-kielen tuntemuksesta.
Materiaali soveltuu parhaiten Pythonin perusteiden opetteluun, materiaalissa on tällä hetkellä hyvin vähän vähänkään haasteellisempia tehtäviä edistyneemmille tai jo Pythonin perusteet omaaville ohjelmoijille.
* Englanninkielistä materiaalia on internetissä huomattavasti enemmän saatavilla, siksi tämä materiaali päätettiin kirjoittaa aluksi suomeksi, vaikka samalla rajattiinkin lukijakuntaa melkoisesti. Jokaisen ohjelmoijan perusosaamistaitoihin kuuluu englannin kielen taito ja internetissä suurin osa tiedosta onkin tarjolla vain "lontooksi" joka tapauksessa. Englanti on myös monen (suomalaisenkin) yrityksen virallinen sisäinen kieli.
Materiaalia on testattu Pythonin version 2.6 kanssa, mutta sen pitäisi toimia myös versioiden 2.5 ja 2.7 kanssa. Versio 3.x ei ole yhteensopiva kaikilta osin, mutta hyvin vähäisin muutoksin myös Python 3:sta voidaan käyttää harjoitusten tekoon. Esim. print on Python 3:ssa funktio, eli print "hei!" sijasta käytetään: print("hei!").
Materiaalia saatetaan päivittää myöhemmin huomioimaan erikseen myös Python 3.x. Jos sinulla on kokemuksia Python 3:n käytöstä sivuston harjoitusten kanssa, kuulisin siitä mielelläni.
Tällä hetkellä (10/2011) vielä Python 2.x on ehkä se suositeltavampi vaihtoehto kuin 3.x, riippuen siitä miten hyvin ollaan perillä Pythonin ulkopuolisten pakettien, tmv. riippuvuuksien, käyttötarpeesta ja miten nuo tarvittavat paketit tukevat Python-kielen versiota 3. Jos Python 3:n tuki puuttuu tarvitsemastasi paketista (etkä esim. keksi vaihtoehtoista toteutustapaa), suositeltavinta on silloin kirjoittaa Python 2.7 -koodia, joka on helposti siirrettävissä (toimii suoraan tai mahd. pienin muutoksin) Python 3.x -kantaan tulevaisuudessa. Lisätietoa Python 3:een siirtymisestä löytyy mm. python.org:n sivulta.
Harjoitusympäristönä voi käyttää mitä tahansa käyttöjärjestelmää, minne Python-tulkki on saatavissa (esim. Windows, Linux, Mac).
Jokainen kappale pitää sisällään Pythonin perusteiden hallintaan ohjaavia harjoituksia. Aihealuetta pyritään käymään läpi tyypillisillä aihealueeseen liittyvillä haasteilla, ohjaten käyttäjää itsenäisesti selvittämään miten ongelman voi ratkaista (esim. verkosta löytyvän materiaalin avulla). Harjoitusmateriaalissa ei käsitellä kaikkia mahdollisia Python-kielen saloja, tarkoitus on kuitenkin antaa hyvä yleiskuva Python-ohjelmointikielestä tekemällä laaja läpileikkaus kielen perusteisiin.
Harjoituksissa tarjotaan vinkkejä ja rajoituksia ratkaisumalleihin, milloin tämä nähdään hyväksi tai tarpeelliseksi. Tehtävässä annettu rajaus voi kuitenkin tarkoittaa sitä että ratkaisumallista ei tule se optimaalisin. Tämän syynä on usein harjoittaa jotain toista osa-aluetta, esim. käyttää for-rakennetta in-operaation sijasta, tai muuten tarjota lisähaastetta tehtävän tekoon.
Harjoitusten ja kappaleiden edetessä oletetaan käyttäjän tietävän aina enemmän ja enemmän Pythonin perusteista, näin ollen myöhemmät harjoitukset (myös kappaleen sisällä) ja kappaleet ovat keskimäärin haasteellisempia kuin ensimmäiset (tapauskohtaisia eroja on). Joidenkin kappaleiden loppupään tehtänumeroiden perässä lukee "(extra)". Nämä tehtävät voivat toimia lisätehtävinä, tai tehtävinä jotka sopivat myös hieman jo edistyneemmille Python-koodaajille.
Materiaali ei pidä sisällään ollenkaan vastauksia. Monet harjoitukset (riippuen onko ratkaisumallia rajoitettu vai ei) voi ratkaista monella eri tavalla. Tärkeintä on kuitenkin että päästään haluttuun lopputulokseen, eli saadaan harjoitus tehtyä onnistuneesti. On suositeltavaa käyttää (mahdollisuuksien mukaan) kokeneempia (miel. kuitenkin Python-) ohjelmoijia hyödyksi arvioimaan omia ratkaisumalleja. Se että ratkaisu toimii ei tarkoita vielä sitä, että ratkaisu on virheetön, toimii erilaisilla syötteillä tai on ylipäänsä hyvin koodattu. Näissä asioissa kokeneemmat ohjelmoijat voivat auttaa harjoituksen tekijää eteenpäin.
Miksi harjoituksiin sitten ei ole oikeita vastauksia?
Oikeiden vastausten puuttuminen estää fuskaamisen, eli ratkaisu pitää miettiä alusta loppuun itse. Tarkoitus on vahvasti ohjata oppimiseen käytännön kautta, kannustaen itsenäiseen ongelmanratkaisuun ja oppimiseen hyväksikäyttäen saatavilla olevia (esim. verkosta löytyviä) resursseja.
Copyright © 2011-2017 ELOSOL