
Minu peamine töö on seotud andmete ja programmeerimisega R, kuid selles artiklis tahan ma rÀÀkida oma hobi kohta, mis isegi toob mingi sissetuleku. Mul on alati olnud huvi rÀÀkida ja selgitada midagi sĂ”pradele, klassikaaslastele ja ĂŒlikoolikaaslastele. Samuti olen ma alati leidnud lihtsasti ĂŒhist keelt lastega, ei tea, miks. Ăldiselt arvan, et laste kasvatamine ja Ă”petamine on ĂŒks kĂ”ige olulisemaid tegevusi, ja mu naine on Ă”petaja. Umbes aasta tagasi panin kohaliku Facebooki grupi kaudu kuulutuse vĂ€lja, kogusin grupi ja hakkasin Ă”petama Scratchi ja Pythonit kord nĂ€dalas. Praegu on mul viis gruppi, oma klass kodus ja individuaalsed tunnid. Kuidas ma sinna eluteele jĂ”udsin ja kuidas ma lapsi Ă”petan, rÀÀgin ma selles artiklis.
Elan Kanadas, Calgary linnas, Alberta provintsis, nii et mÔned hetked vÔivad olla seotud kohalike eripÀradega.
Ruum
Ruumide olemasolu tundus alguses peamiseks probleemiks. Proovisin leida kontoreid ja klasse tunni kaupa ĂŒĂŒrimiseks, kuid mitte eriti edukalt. Meie ĂŒlikool ja SAIT â kohaliku sarnane MIT â pakuvad klasse arvutitega ja ilma. Hinnad osutusid seal mitte just inimlikeks ja lĂ”puks selgus, et ĂŒlikool ei lase alaealisi ning SAIT ĂŒĂŒrib ainult oma tudengitele. Nii et see variant kukkus lĂ€bi. On palju kontorikeskusi, mis ĂŒĂŒrivad koosolekuruume ja kontoreid tunni kaupa, on terveid ettevĂ”tteid, mis pakuvad palju variante alates tĂ€isklassidest kuni nelja inimese tubadeni. Mul oli lootust, kuna Alberta on naftaprovinss, meil on alates 2014. aastast aeglane kriis ja paljud Ă€riruumid seisavad tĂŒhjana. Kahjuks olin ma liiga lootusrikas, hinnad osutusid nii kĂ”rgeteks, et ma ei uskunud alguses isegi. Omanikele on lihtsam jĂ€tta kontorid tĂŒhjaks ja katta kulud, kui et hinnaalandusi teha.
Sel hetkel meenutasin, et maksan korralikult makse, ja kas meie kallil riigil, tĂ€psemalt Calgary linnal, ei ole midagi. Selgus, et on kĂŒll. Linnas on hoki- ja iluuisuareene, ning nendes areenides on ruumid, kus karmid jÀÀsĂ”dalased arutavad tulevaste lahingute strateegiaid. LĂŒhidalt öeldes, igas areenis on paar ruumi laudade, toolide, valge tahvli ja isegi kraanikausi ja veekeetjaga. Hind on vĂ€gagi mĂ”istlik â 25 Kanada dollarit tunni eest. Otsustasin algselt teha tunde ĂŒhe ja poole tunni kaupa, seetĂ”ttu seadistasin hind grupi jaoks, kus on viis inimest, $35, et katta ĂŒĂŒr ja midagi ka enda taskusse panna. Ăldiselt meeldis mulle areenidel treenida, see lahendas ĂŒhe probleemidest â enamik venekeelseid inimesi elab lĂ”unas, samas kui mina elan linna pĂ”hjaosas, seetĂ”ttu valisin areeni umbes keset linna. Kuid mugavustega kaasnesid ka ebamugavused. Kanada bĂŒrokraatia on hea ja sĂ”bralik, kuid, pehmelt öeldes, vĂ”ib olla mĂ”ningal mÀÀral kohmakas. Pole probleemi, kui harjud rĂŒtmiga ja planeerid ette, kuid mĂ”nikord tekivad ebameeldivad hetked. NĂ€iteks, linnapea lehelt on mugav valida aega ja kohta, broneerida ruum, kuid maksta ei saa, ĂŒldse mitte. Nad helistavad ise telefoniga ja vĂ”tavad makse kaardiga. VĂ”ib minna kontorisse ja maksta sularahas. Oli naljakas, aga mitte eriti meeldiv hetk, kui ootasin nende kĂ”net, et maksta teise tunni eest, ei saanud kĂ”net, ja kontorisse hilinesin viisteist minutit viimasel pĂ€eval. Pidin julgelt vaidma turvameestele, et ruum on broneeritud. Me, kanadalased, usume sĂ”na-sĂ”nalt, ning nad lasid mind rahulikult sisse ega hakanud midagi kontrollima, kuid ma ei teeks nii, kui inimesed poleks juba tundidele teel.
Nii ma tegelesin talvel ja kevadel, aga siis tulid muutused, mis olid viimane tilk. Esiteks suleti kontor kĂŒlastamiseks ja pakuti maksta telefoni teel nurga taga. Ma istusin vĂ€hemalt pool tundi koridoris, enne kui sain lĂ€bi helistada. Teiseks, kui varem armas tĂ€di vĂ”ttis minult maksepoolteist tundi, siis nĂŒĂŒd vastas torusse mĂ”ni tĂŒdruk ja teatas, et makse on ainult tunni kaupa. Sellel hetkel oli mul grupis kas kolm vĂ”i kaks inimest, ja need ĂŒleliigsed $12.5 polnud sugugi ĂŒleliigsed. Olen kĂŒll ideaalide inimene, aga kui naine mind tĂ€navale viskab, siis pole kedagi, kes Ă”petaks. Tol ajal olin ma veel tööhĂ”ivevaba.
Ja otsustasin minna raamatukokku. Raamatukogud annavad suurepĂ€raseid ruume tĂ€iesti tasuta, kuid seal on ĂŒks konks â ei tohi tegeleda Ă€ritegevusega. IEven heategevusorganisatsioonid ei tohi seal raha koguda. Mulle on öeldud, et seda ei kontrollita eriti, peamine on mitte vĂ”tta raha sissepÀÀsu eest otse seal, kuid ma ei armasta reeglite rikkumist. Teine probleem on see, et toad on sageli hĂ”ivatud, ja on keeruline korraldada tunde ajakavas ĂŒhes ja samas kohas. Olen Ă”petanud raamatukogudes suvel ja talve alguses, pidin valima need, kus on ruumi, lĂ”puks vahetasin viis vĂ”i kuus raamatukogu. Siis hakkasin broneerima kohta kahe kuu ette, ja ikkagi Ă”nnestus seda teha ainult ĂŒhes vĂ€ikeses raamatukogus, teistes oli regulaarselt ruumi puudu Ă”igel ajal. Siis otsustasin teha arvutiklassi kodus. Panin seinale tahvli, ostsin kuulutuse kaudu teise laua ja paar vanaaegset monitori. Töö jaoks ostis firma mulle uue vĂ”imsa sĂŒlearvuti, sest minu arvutis vĂ”ttis analĂŒĂŒs peaaegu 24 tundi. Kokku oli mul uus vana arvuti, vana vana arvuti, sĂŒlearvuti, kelle ekraani purustas mu pisike, ja iidne netbook, mille ekraan purustasin mina ise. Ăhendasin nad kĂ”ik monitoridega ja panin igale poole Linux Mint'i, vĂ€lja arvatud netbook, millele panin vĂ€ga kerge distributsiooni, paari. Mul on veel ĂŒks vana uus sĂŒlearvuti, mille ostsin 200 dollari eest, ja ĂŒhendasin selle televiisoriga. Veel, mis on mĂ€rkimisvÀÀrne, meie peremees vahetas hiljuti meie aknad ning toas on nĂŒĂŒd koleda ja laguneva jura asemel uued valged raamid. Elutuba, köök ja teine magamistuba on mu naise poolt lasteaiaks muudetud, seega on kogu korrus selgelt pedagoogiline. Nii et nĂŒĂŒd on ruumiga kĂ”ik hĂ€sti, liikuge otse Ă”petamise juurde.
Scratch
Alustan programmeerimise aluste Ă”petamist Scratchi keeles. See keel kasutab valmis blokke, mis loodi kunagi MITis. Enamik lapsi on juba koolis Scratchi nĂ€inud, seetĂ”ttu Ă”pitakse seda suhteliselt kiiresti. On valmis programme ja tundide plaane, aga need ei meeldi mulle ĂŒldse. Ăhed on kummalised â loo oma lugu, nĂ€iteks. Kogu programm koosneb arvukatest blokktest. ĂŒtle '<...>' 2 sekundi jooksulNĂ€ib, et selle on loonud vĂ€ga loomingulised inimesed, kuid sellise lĂ€henemisega on vĂ”imalik Ă”petada kirjutama klassikalist India spagetikoodi. Mina rÀÀgin alates algusest D.R.Y. pĂ”himĂ”tetest. Teised ĂŒlesande kogumid on kĂŒll head, kuid lapsed mĂ”istavad kiiresti sisu ja hakkavad neid nagu automaadist vĂ€lja kuulutama. Tulemuseks on, et ĂŒhe tunni jooksul teevad nad seda, milleks pidid viit tundi kulutama. Ja ĂŒlesannete leidmiseks ja valimiseks kulub palju isiklikku aega. Ăldiselt meenutab Scratch rohkem IDE-d, kus tuleb lihtsalt meeles pidada, kuhu klĂ”psata ja kus midagi otsida. Kui Ă”pilased on enam-vĂ€hem sisse elanud, pĂŒĂŒan ma neid Pythoni viia. Mul on isegi seitsme-aastane tĂŒdruk, kes kirjutab Pythonis lihtsaid programme. Scratchi kasuks nĂ€en ma, et seal on mĂ”ned pĂ”hikĂ€sitused, mis omandatakse mĂ€ngulisel viisil. Miks kĂ”ikide jaoks on Ă€kki nii raske mĂ”ista muutuja ideed? Alguses kiirustasin ma selle teemaga ja lĂ€ksin edasi, kuni kohtusin olukorraga, et nad ei tea ĂŒldse, mida sellega teha. NĂŒĂŒd pööran muutujaitele palju tĂ€helepanu ja tulen pidevalt tagasi nende juurde. Pean tegema tĂŒĂŒpilist pingutust. Muutujad muutuvad ekraanil ja sunnin neid rÀÀkima oma vÀÀrtustest. Scratchis on ka kontrollstruktuurid ja vÀÀrtuste kontrollimised, nagu while, for vĂ”i if Pythonis. Need antakse piisavalt kergesti, ainult sisemiste silmadega on probleeme. PĂŒĂŒan anda mitu ĂŒlesannet koos sisemise tsĂŒkli ja selle tegevuse, et see oleks visuaalselt selge. PĂ€rast seda lĂ€hen funktsioonide juurde. Isegi tĂ€iskasvanutele on funktsiooni mĂ”iste mĂ”istamatult, laste jaoks veelgi enam. Maru palju seletan, mis on funktsioon, rÀÀgin tehase kohta, mis vĂ”tab vastu esemeid ja vĂ€ljastab kaupu, kokast, kes toorainest toitu valmistab. Siis teeme programmi "tee vĂ”ileib" koostisosadega, ja seejĂ€rel teeme sellest funktsiooni, millele koostisosad edastatakse parameetritena. Funktsioonide Ă”ppimisega lĂ”petan Scratchi kasutada.
Python
Pythoni on lihtsam kasutada. On hea raamat "Python for Kids", mille jĂ€rgi Ă”petan. Seal on kĂ”ik standardne - stringid, tehte jĂ€rjekord, print(), input() jne nĂ”nda. Kirjutatud kergesti, huumoriga, lastele meeldib. Sellel on puudus, mis on paljude programmeerimisraamatute ĂŒhine joon. Nagu tuntud naljas â kuidas joonistada öökulli. Ovaal â ring â öökull. Lihtsatest mĂ”istetest on liiga jĂ€rsk ĂŒleminek ĂŒsna keerulistele kontseptidele. Mul vĂ”tab aega, et selgeks teha, kuidas objekt ĂŒhendub meetodiga punktiga; selleks kulub mitu tundi. Teisalt ei kiirusta ma, kordan sama erineval moel, kuni siiski mingi pilt tekib. Alustan muutujatest ja lahkan neid uuesti ja uuesti, juba Pythonis. Muutujad on nagu mingi needus.
Arvestatav ĂŒliĂ”pilane, kes paar kuud tagasi osavalt muutujaid skriptis klikkis, vaatab nagu loll uus vĂ€rav ja ei suuda kokku panna x-i ja y-d, mis on selgelt mustandil kirjutatud. Kordame! Mis on muutuja? Nimi ja vÀÀrtus! Mida tĂ€hendab vĂ”rdusmĂ€rk? Omistamine! Kuidas me kontrollime vĂ”rdsust? Kahekordne vĂ”rdusmĂ€rk! Ja nii kordame ikka ja jĂ€lle, kuni tĂ€ieliku arusaamiseni. Siis liigume funktsioonide juurde, kus kĂ”ige kauem vĂ”tab aega argumentide selgitamine. Nimetatud argumendid, positsioonipĂ”hised, vaikimisi jne. Klassideni pole me veel ĂŒheski grupis jĂ”udnud. Lisaks Pythoni raamatu jĂ€rgi Ă”pime populaarseid algoritme, sellest edasi.
Ăpe ise
Minu tund on korraldatud nii â pool tundi annan teooriat, kontrollin teadmisi, kinnitan Ă”pitu. Tund â praktikad. Sageli lĂ€hen kaasa ja rÀÀgin kuni tunni, siis jÀÀb praktikale vastavalt pool tundi. Kui ma Ă”ppisin Pythoni, vaatasin kursuse Algoritmid ja Andmestruktuurid Hirjanov from MIPT. I really liked his presentation and structure of the lectures. His idea is that frameworks, syntax, librariesâbecome outdated. Architecture, teamwork, version control systemsâare still premature. In the end, what remains are algorithms and data structures, which have been known for a long time and will always exist in a similar form. I myself remember only the integers from Pascal at the institute. Since my students are mainly young, aged seven to fifteen, I believe it is more important for their future to lay the foundations than to quickly write a platformer in Python. Although they want the platformer more, and I understand them. I teach them simple algorithmsâbubble sort, binary search in a sorted list, reverse Polish notation using a stack, but we analyze each in great detail. It turned out that modern kids do not know how a computer works at all, so I explain that too. I try to connect several concepts together in each lecture. For example, a computerâmemory/processâmemory made of cells (I let them hold a memory stick, guess how many cells are here)âeach cell like a light bulbâhas two statesâtrue/falseâand/orâbinary/decimalâ8 bits = 1 byteâbyte = 256 variantsâlogical data type on one bitâintegers on one byteâ tekst on two bytesâ string on one byteâthe largest number on 64 bitsâa list and a tuple of the previous types. I clarify that in a real computer, everything is somewhat different, and there is a different amount of memory for these data types, but the main point is that we ourselves create more complex data types from simpler ones during the process. Data types are perhaps the most complex thing to remember. Therefore, I start each lesson with a quick warm-upâone student names a data type, the next brings two examples, and so on in a circle. Eventually, I achieved a situation where even the youngest kids cheerfully shoutâfloat! boolean! seven, five! pizza, car! During the lecture, I constantly pick on one or the other; otherwise, they quickly start picking their noses and looking at the ceiling. And the knowledge level of each needs to be checked in the meantime.
My students continue to amaze me both with their stupidity and their unexpected cleverness. Fortunately, cleverness is more frequent.
Soovin rohkem kirjutada, aga nii on juba palju. Vastan hea meelega kĂ”igile kĂŒsimustele. Igat kriitikat ootan suure huviga, palun olge kommentaarides ĂŒksteise suhtes tolerantsemad. See on positiivne artikkel.
Allikas: habr.com
