Programavimo nuotykiai
Labas, Rube Neįprastas būdas sužinoti apie KOMPIUTERIUS, PROGRAMAVIMĄ ir TECHNOLOGIJAS.
užduo Su visiem tėlėmis
s progr būsimiem amuo s tojam s
Programavimo nuotykiai
Įžanga tėvams
L
abas, Rube idėja gimė 2009-aisiais, kai mokiausi programuoti. Iškilus problemai, aš savęs paklausdavau, kaip maža arši mergaitė
su ja susidorotų. Tačiau tik 2013-aisiais nusprendžiau tapti vaikiškų knygų autore. Nuo tada suprasti technologijas žaidžiant, įsivaizduojant ir kuriant tapo mano aistra. Visi prisimename istorijas, formuojančias mūsų požiūrį į pasaulį. Tarsi nematomi draugai mūsų vaikystės istorijos lieka su mumis ir ilgus metus veikia mūsų skonį. Manau, mums reikia daugiau tokių nuomonių ir istorijų, kurios padėtų atskleisti žaismingąją programavimo pusę. Mokymosi pagrindas – žaidimas. Programavimas yra lyg kreidelės ar lego detalės – būdas išreikšti save. Ši knyga ne apie tai, kaip išmokti programuoti. Ji nemoko jokių konkrečių programavimo kalbų, tačiau supažindina su kompiuterinio mąstymo pagrindais, kurių prireiks kiekvienam būsimam mažajam programuotojui. Vaikai išmoks dideles problemas išskaidyti į mažas, ieškoti dėsningumo, žingsnis po žingsnio kurti planus ir nestandartiškai galvoti. Kiekviename skyriuje pateikiamos užduotėlės leis būsimiems mažiesiems programuotojams pasitelkti savo fantaziją. Kiekvienas skyrius – tai nedidelė Rubės pasaulio istorija, lyg devynios mažos kompiuterinio mąstymo pamokos. Ši knyga sukurta taip, kad vaikai užduotis spręstų kartu su tėvais. Galite perskaityti visą pasakojimą iškart arba sutelkti dėmesį į vieną skyrelį. Kiekviename skyrelyje pateikiamos užduotėlės, kurios kloja pamatus žaidimo ir kūrybingumo sampratai. Skirkite laiko užduotėlėms atlikti ir pakartoti. Normalu ir tikslinga klysti, o kartu pažiūrėti į tą pačią problemą kitu kampu. Visa tai – kompiuterinio mąstymo dalis. Įrankinės suteikia papildomos informacijos tėvams ir paaiškina su tema susijusias sąvokas. Visas sąvokas galite rasti terminų žodynėlyje. Helloruby.com/lt atsakymų rodyklėje taip pat galite rasti siūlomus atsakymus, dar daugiau užduotėlių ir kitos smagios veiklos, bei pamatyti, ką sukūrė viso pasaulio vaikai!
Rubė ir jos draugai Rubė ( Ruby ) 1 Apie mane: Man patinka mokytis naujų dalykų, tad aš nemėgstu nuleisti rankų. Mėgstu išreikšti savo nuomonę. Nori žinoti? Mano tėtis pats geriausias. Mano pokštai itin šmaikštūs. Aš labai išdykusi ir mėgstu keksiukus be braškių. Gimtadienis: Vasario 24 d. Pomėgiai:
Žemėlapiai, kodai
Mėgstamiausias posakis:
ir plepėjimas.
Slapta supergalia:
Mane erzina: Maišatis.
Kodėl?
Galiu įsivaizduoti neįmanomus dalykus.
Pingvinai Apie mus: Mes labai gudrūs, tačiau kartais kiti mano, kad esame ekscentriški. Mes bendraujame labai trumpais (ir dažnai grubiais) sakiniais. Mėgstame problemas – ypač jas skaidyti į mažesnes. Gimtadienis: Rugpjūčio 25 d. Pomėgiai: Mus erzina:
Mėgstamiausias Turėk posakis: pasirinkimų.
Raštuoti mezginiai, mįslės ir santrumpos. Kai sako, ką turime daryti. Nemėgstame spagečių.
Slapta supergalia:
Džangas ( Django ) 2 Apie mane: Turiu gyvatę vardu Pitonas (Python)3. Esu labai tvarkingas, užsispyręs ir gana tvirtas. Man patinka dalykai, kuriuos galima suskaičiuoti: neporiniai, poriniai, pirminiai, kubu, ištraukti šaknį, pirmyn ir atgal. Vis dėlto apie save negalvoju pernelyg rimtai. Gimtadienis: Vasario 20 d. Pomėgiai: Mane erzina:
4
Cirkas, filosofija ir
Mėgstamiausias Paprasta yra geriau posakis: nei sudėtinga.
pitoniški dalykai. Žmonės, stovintys aplink, kai laukiu eilėje.
Slapta supergalia:
Visuomet turiu sprendimą.
Ruby – interpretuojama programavimo kalba (čia ir toliau – red. past.), tekste ją įkūnija mergaitė vardu Rubė. Django – interpretuojama programavimo kalba, tekste ją įkūnija berniukas vardu Džangas. 3 Python – programavimo kalba, tekste ją atspindi gyvatė vardu Pitonas. 1
2
Mes vyresni nei kiti.
Snieginis Leopardas Apie mane: Kiek žinau, esu pats gražiausias, mandagiausias ir geriausiai išauklėtas Snieginis Leopardas. Dažnai kovoju su Robotais. (Tai šiek tiek beprasmiška, nes mes visi panašūs.) Gimtadienis: Pomėgiai: Mane erzina:
Birželio 8 d. Vienatvė, dzen ir pilatesas. Kad žmonės manęs prisibijo, nors aš labai mielas.
Mėgstamiausias posakis:
Galvok kitaip.
Slapta supergalia:
Beribis grožis.
Robotai Apie mus: Esame žaismingi, lankstūs ir greiti. Turime šimtus brolių ir seserų, kurie taip pat yra robotai. Laimingiausi būname tada, kai kartu ką nors statome. Gimtadienis: Pomėgiai: Mus erzina:
Rugsėjo 23 d. Kulinarijos laidos, pingvinai ir nauji draugai.
Mėgstamiausias posakis:
Kitų noras būti švariems ir pastoviems. Kam tai rūpi?
Slapta supergalia:
Būkime drauge. Nors atrodome maži, labai greitai augame.
Lapės Apie mus: Labai mėgstame naujus dalykus. Mums patinka užsiimti daržininkyste, auginti daug rūšių augalų ir gyvūnų (kartais ir vabalų). Smagu būti entuziastingoms, draugiškoms ir linksmoms, tačiau nebandykite riboti mūsų laisvės! (Tuomet tikrai supykstame.) Gimtadienis: Pomėgiai: Mus erzina:
Lapkričio 7 d. Daržininkystė, gekonai ir naktis. Visuomet būti saugioms!
Mėgstamiausias posakis:
Slapta supergalia:
Pirmyn!
Gebame suktis ir vartytis kūliais kaip niekas kitas.
5
6
1 dalis: Susipažink su Rube RUBĖ – maža mergaitė, turinti lakią vaizduotę. 7
Jai patinka palįsti po lova ir įsivaizduoti vabalus, kurie ten galėtų gyventi. Rubė nuolat kuria naujus šokių judesius, o jos mėgstamiausias žodis yra kodėl.
8
Rubės pasaulyje ji yra pagrindinė kūrėja ir architektė. Vieną dieną ji gydytoja, kitą – vabalų medžiotoja. Jos supergalia? Rubė gali kurti pasitelkusi vaizduotę. Viskas įmanoma, jei tik ji apie tai pagalvoja.
9
1 Susipažink su Rube Ką tik susipažinai su Rube. Tai bent mergaitė, ar ne? Ji nebijo išbandyti naujus dalykus, nes žino paslaptį: didelės problemos dažniausiai yra tik krūvelė susijusių mažesnių problemų. Kartais vienintelis būdas išmokti ką nors naujo – iš pradžių padaryti daugybę klaidų.
Įrankinė: Šie pratimai parodo, kaip kasdienybeje pateikti tikslius nurodymus, ir padeda suprasti, kaip svarbu pateikti nurodymus teisinga tvarka, atpažinti desninguma ir suskaidyti struktura. Kalbant apie kompiuterius ši informacija labai svarbi. Programavimas – tai nuoseklus nurodymu – ka ir kuriuo metu daryti – pateikimas kompiuteriui. Šios instrukcijos privalo buti gana paprastos, kad kompiuteris jas suprastu. Jos privalo buti aiškios ir išsamios. Kitu atveju kompiuteris darys klaidas. Netrukus ir tu mokesi galvoti apie problemas taip, kaip tai daro kompiuteris. Tai vadinama kompiuteriniu mastymu!
»Seka
70
»Išskaidymas
»Desningumo atpažinimas
1 pratimas: Seka
Valdingoji mažoji Rubė Ar pastebėjai, kad tvarkydama kambarį Rubė gudrauja? To ji išmoko iš kompiuterio. Kokius nurodymus duotum Rubei šiose situacijose? Ant popieriaus lapelio surašyk nurodymus, arba kitaip – instrukcijas:
• Valgyti pusryčius • Pakloti lovą • Pasnausti • Padengti stalą Pavyzdys: Dantų valymo instrukcijos Rubei 1. Užeik į vonios kambarį. 2. Paimk dantų šepetuką ir užtepk dantų pastos. 3. Išsižiok ir pradėk valytis dantis. Tęsk tol, kol visi dantys bus išvalyti. 4. Jei burnoje liko dantų pastos, išskalauk vandeniu. Jei ne – išeik iš vonios. Įsitikink, kad pateiki instrukcijas teisinga seka! Aš labai greitas ir tikslus, kai vadovaujuosi instrukcijomis. Tokių instrukcijų užrašymas žingsnis po žingsnio vadinamas programavimu!
Pabandyk pats Žaisk su draugu – vienas iš jusu bus Rube, o kitas žmogus tures paaiškinti, kaip atlikti anksciau paminetus darbus. Pradekite nuo pusryciu valgymo. Išskaidykite instrukcijas i smulkesnes užduotis, tikslias komandas. Kitas žmogus tegu apsimeta Rube ir stengiasi klaidingai suprasti komandas. Tuomet apsikeiskite vaidmenimis! 71
2 pratimas: Išskaidymas
Statyba Rubė puikiai geba įsivaizduoti ir kurti įvairius dalykus. Tai labai paprasta, kai supranti, kad visi dalykai yra sudaryti iš kitų, mažesnių dalykėlių. Rubė kuria…
...paukštį. Trūksta vienos detalės. Ar matai, kurios?
…vabalą. Iš šių detalių Rubė gali sukurti vabalą! Kurios detalės jai neprireiks?
...procesorių. Kurių trijų detalių ji nepanaudojo?
Pabandyk pats Išskaidyk viena iš savo piešiniu. Iš kokiu atskiru detaliu jis sudarytas? 72
3 pratimas: Desningumo atpažinimas
Rubės aprangos taisyklės Apžiūrėk drabužius Rubės spintoje. Ji tiksliai žino, ką nori vilkėti. Parodyk drabužius, kurie atitinka jos taisykles.
• Pirmadieniais aš dėviu taškuotus drabužius. • Antradieniais aš dėviu mėlynus arba geltonus drabužius. • Trečiadieniais aš dėviu tik tuos drabužius, kurių pavadinimas prasideda raide D. • Ketvirtadieniais užsidedu kepurę. • Penktadieniais dėviu baltus ir rožinius drabužius. • Savaitgaliais… Dabar tavo eilė sugalvoti Rubei taisyklę!
Helloruby.com/lt rasi popierines Rubes, kurias galesi išsispausdinti. 73
2 Užuominos Pasaulyje daug įdomių dalykų! Po tėčio stalu Rubė rado informacijos nuotrupų, tokių kaip Robotų adresas, kiek žingsnių iki Snieginio Leopardo, ir galiausiai sakinį, kuris buvo neteisingas – Rubė iškart tai suprato. Apžvelkime kitus įdomius skaičius ir žodžius.
Įrankinė: Šie pratimai padeda suprasti skirtingus duomenu tipus, kuriuos kompiuteris naudoja informacijai saugoti. Programavime šie duomenys saugomi kintamaisiais. Daugybe dalyku gali buti saugomi kintamaisiais: • Simboliu eilutes (angl. strings) – tai raides, skaiciai, tarpo simbolis ir kiti ženklai, kuriuos galima rasti kompiuterio klaviaturoje, rašomi kabutese. Štai taip: „Rube“. • Skaiciai, tokie kaip 1, 2, 3 arba 4,12. • Logines reikšmes (angl. booleans) – tai yra reikšmes, kurios gali buti arba „tiesa“ (angl. true), arba „netiesa“ (angl. false).
» Simboliu »Skaiciai eilutes
74
»Logines reikšmes
Kompiuteriniame žaidime gali išsaugoti tokius duomenis kaip žaidėjo vardas (simbolių eilutė), kiek taškų surinkai (skaičius) ir ar įveikei žaidimą, ar ne (loginė reikšmė).
4 pratimas: Simboliu eilutes
Tėčio klaviatūra Rubė mano, kad tėčio klaviatūra stebuklinga. Tačiau ši klaviatūra turi paslaptį: escčia paslėpti Rubės ir penkių jos draugų vardai. Sek kiekviena spalva ir atrask, koks vardas paslėptas. Suradęs vardą – užrašyk jį ant popieriaus.
!
esc
! A
“ #
% & / ( ) = ? : ; A R E J P B F Y A U F K “ # % & / ( ) = ? : ; O D * L A O G G I I Ė B T R E J P B F Y A U F K 1 2 3 Ž S U J S
I A G L U I N I R A I N Y Q A I SD M A O O W S D Ė = & / ( A) S O M ?D O :Ė I; W Q S P T S U S NO I L E V P DG SN J I AKLR DEN V 1 P 2A 3RO NŽ FD P B F YN A UN O * N Ė1 I 2 A3 G ŽL SUNJ I SN I R A I N Y A Pabandyk P T pats S U S N DR OA Ė I I NWYQ A S T O B G Ė
> <
> <
E PV TP SA R U D N S N O N G
Kai kurie mygtukai yra tušti. Ar gali sukurti naujus mygtukus? Ka jie galetu daryti? Ar gali užrašyti savo varda?
O N
Helloruby.com/lt gali išsispausdinti ir susikurti savo klaviatura. 75
G
5 pratimas: Skaiciai
Rubės arbatėlė Rubei patinka rengti arbatos gėrimo vakarėlius, tačiau jai reikia tavo pagalbos! Ar gali padėti Rubei patikrinti, kad viskas būtų paruošta arbatos gėrimo vakarėliui? • Ar visi svečiai turės kur atsisėsti? Padėk Rubei suskaičiuoti svečius. • Keli Rubės puodeliai yra rožiniai? Kiek yra geltonų? • Kuris pyragas supjaustytas į daugiau gabalėlių? Oranžinis ar žalias? • Kuris pyragas supjaustytas į mažiau gabalėlių? Suskaičiuok dalis ir sužinosi. • Kiekvienas bičiulis nori dviejų oranžinio pyrago gabalėlių. Ar užteks visiems? • Ant kurios lėkštės padėta daugiausiai skanėstų? Ant kurios mažiausiai?
Robotas
Robotas
Robotas 76
Pingvinas
Pingvinas
Lapė
Ping
La
6 pratimas: Logines reikšmes
Tiesa ar netiesa Rubė mėgsta viską tiksliai žinoti. Žinoti, kas yra tiesa (angl. true), o kas netiesa (angl. false) – dar vienas informacijos tipas. Padėk Rubei išspręsti šias mįsles. Kurios iš jų yra tiesa, o kurios ne?
Aš raudonas ir geltonas. Aš rožinis ir žalias. Aš laimingas.
Tiesa – Netiesa Tiesa – Netiesa Tiesa – Netiesa
Mano akys žalios. Aš turiu 6 spyglius. Aš nesu geltonas.
Tiesa – Netiesa Tiesa – Netiesa Tiesa – Netiesa
Aš turiu kojas. Aš turiu rankas ir kojas. Aš turiu rankas arba kojas.
Tiesa – Netiesa Tiesa – Netiesa Tiesa – Netiesa
Mano gudrybė? Norėdamas sužinoti, tiesa ar netiesa, atkreipk dėmesį į žodelius ir, arba ir ne.
P u ik u
Pabandyk pats Ši žaidima gali žaisti su visais savo žaislais. Sugalvok tris dalykus, kurie yra tiesa arba netiesa. Tegu tie dalykai buna sudetingi! Paklausk draugo, kurie iš ju yra tiesa. 77
3 Rubės planas Sukurpti planą labai smagu! Nors Rubė tiksliai nežino, kas nutiks, bet problemai išspręsti ji turi paruošusi planą žingsnis po žingsnio. Vis dėlto turimi planai ne visada suveikia ir kartais reikia sugalvoti naują planą. Kad ir kaip ten būtų, visuomet geriau turėti paruoštą planą, nei aklai blaškytis.
Įrankinė: Šie pratimai tave pirmiausia išmokys, kaip atpažinti žingsniu seka, reikalinga problemai išspresti, o tuomet – sukurti simbolines komandu instrukcijas. Toks instrukciju rinkinys vadinamas algoritmu. Algoritmai kuriami tam, kad sprestu problemas, pavyzdžiui, kaip ieškoti ar rušiuoti informacija. Kai kurie iš ju labai efektyvus, kiti labai greiti, o treti – tikslus. Bandydamas rasti kelia tarp dvieju tašku, kartais ieškai greiciausio maršruto, kartais norisi kuo mažiau sankryžu, o kartais nori sustoti ir pauostyti geles. Visa tai igyvendinti gali padeti skirtingi algoritmai.
»Algoritmas
78
»Seka
Algoritmas – oho, koks sudėtingas žodis, tačiau jis reiškia žingsnis po žingsnio planą, kuris padeda ką nors nuveikti. Kompiuteriams patinka šie simbolinėmis komandomis užrašyti žingsniai – taip mums lengviau suprasti.
7 pratimas: Algoritmai
Audinio raštas Pažiūrėk, ar atrasi, kuri taisyklė kuriam audinio raštui tinka. Dabar pasiimk popieriaus lapą ir, pasinaudojęs taisyklėmis, pabandyk sukurti naują audinio raštą kiekvienam užrašytam algoritmui.
Piešk linijas Tiesias Persipinančias Naudok tris spalvas
Piešk linijas Netiesias Nesiliečiančias Naudok keturias spalvas
Piešk taškelius Dviejų skirtingų dydžių Naudok penkias spalvas
Piešk linijas Zigzago formos Naudok dvi spalvas
79
8 pratimas: Algoritmai ir seka
L e n g v a k a ip dukart du
Sukurk žemėlapį
Dabar tavo eilė padėti Rubei nukeliauti pas draugus. Padėk Rubei keliauti naudodamasis rodyklėmis aukštyn, žemyn, dešinėn ir kairėn. Naudok tiek žingsnių, kiek tik prireiks. Pasiekęs langelį, kuriame nupieštas draugas, sustok ir pasisveikink. Saugokis mėlyno vandens (ir pasinaudok rudu tiltu)!
Pradėk čia
2
3
Eik dešinėn
Eik aukštyn
Eik kairėn
Sustok ir pasisveikink
Eik žemyn
yra sudarytos iš panašių į šias 3 Programos 3 instrukcijų sekų. Seka – tai tiesiog tam
tikra tvarka surašyti instrukcijos žingsniai.
80
3 • Pažymėk kiekvieną žingsnį rodykle, rodančia teisinga kryptimi. Štai pavyzdys, kaip nukeliauti pas Pingvinus:
3
3
2 • Kad pasiektum draugą, kartais gali prireikti kelių rodyklių. Žinai, ką? Galima paprasčiau! Užuot rašęs taip:
2
3
• Gali parašyti štai taip:
2
3
• Abu reiškia, kad reikia paeiti tris žingsnius į dešinę. Dabar kelias pas Pingvinus atrodo taip:
2
3
Dabar tokiu pačiu būdu užrašyk instrukcijas, kaip pasiekti Snieginį Leopardą, Lapes ir Robotus. Pirmiausia pabandyk užrašyti ilgąją versiją, o tuomet sugalvok, kaip ją sutrumpinti.
Pabandyk pats
Ant popieriaus lapo nupiešk kelia nuo namu iki mokyklos. Ar gali užrašyti instrukcijas, kaip ten nukeliauti? 81