Kuinka opetan Python lapsille?

Kuinka opetan Python lapsille?

Päätyöni liittyy dataan ja ohjelmointiin R, mutta tässä artikkelissa haluan puhua harrastuksestani, joka jopa tuo jonkin verran tuloja. Olen aina ollut kiinnostunut kertomaan ja selittämään asioita ystäville, luokkatovereille ja opiskelutovereille. Minun on myös aina ollut helppoa löytää yhteinen kieli lasten kanssa, en tiedä miksi. Yleisesti ottaen uskon, että lasten kasvattaminen ja opettaminen on yksi tärkeimmistä toiminnoista, ja vaimoni on opettaja. Joten noin vuosi sitten mainostin paikallisessa Facebook-ryhmässä, perustin ryhmän ja aloin opettaa Scratchia ja Pythonia kerran viikossa. Nyt minulla on viisi ryhmää, oma luokka kotona ja yksittäiset tunnit. Kerron sinulle tässä artikkelissa, kuinka tulin elämään tällä tavalla ja miten opetan lapsille.

Asun Calgaryssa Albertan osavaltiossa Kanadassa, joten jotkin asiat ovat paikallisia.

Huone

Harjoittelutilan saatavuus oli alusta asti suuri huolenaihe. Yritin etsiä toimistoja ja luokkahuoneita vuokralle tunneittain, mutta en onnistunut. Yliopistomme ja SAIT, MIT:n paikallinen vastine, tarjoavat kursseja tietokoneilla ja ilman. Siellä hinnat eivät osoittautuneet kovin inhimillisiksi, ja lopulta kävi ilmi, että yliopisto ei salli alaikäisiä ja SAIT vuokraa yleensä vain omille opiskelijoilleen. Tämä vaihtoehto siis poistettiin. On monia toimistokeskuksia, jotka vuokraavat kokoustiloja ja toimistoja tunneittain, on kokonaisia ​​yrityksiä, jotka tarjoavat joukon vaihtoehtoja täydestä luokkahuoneesta neljän hengen huoneeseen. Minulla oli toiveita, koska Alberta on öljyprovinssi, olemme olleet hitaassa kriisissä vuodesta 2014 lähtien ja monet liiketilat ovat tyhjiä. Minun ei olisi pitänyt toivoa; hinnat osoittautuivat niin törkeiksi, etten uskonut niitä aluksi. Omistajan on helpompi istua tyhjissä toimistoissa ja maksaa kuluja kuin kaataa.

Sillä hetkellä muistin, että maksan verojani säännöllisesti, ja onko siellä rakkaalla osavaltiollamme tai pikemminkin Calgaryn kaupungilla mitään. Kävi ilmi, että todellakin on. Kaupungissa on areenoita jääkiekolle ja muille taitoluistelulajeille, ja näillä areenoilla on huoneita, joissa karu jääsoturi keskustelee tulevien taisteluiden strategioista. Lyhyesti sanottuna jokaisella areenalla on pari huonetta, joissa on pöytiä, tuoleja, valkotaulu ja jopa pesuallas vedenkeittimellä. Hinta on aivan jumalallinen - 25 kanadalaista tugriksia tunnissa. Alun perin päätin pitää tunnit puolitoista tuntia, joten asetin tunnin hinnaksi 35 dollaria luokkaa kohden viiden hengen ryhmässä vuokran kompensoimiseksi ja jotain taskuusi laittamiseksi. Yleensä pidin treenaamisesta areenoilla, se ratkaisi yhden ongelmista - suurin osa venäjänkielisistä ihmisistä asuu etelässä, ja minä asun kaupungin pohjoisosassa, joten valitsin areenan suunnilleen keskeltä. Mutta oli myös haittoja. Kanadan byrokratia on hyvää ja ystävällistä, mutta voi lievästi sanottuna olla hieman kömpelöä. Ei ole ongelmia, kun rytmiin tottuu ja suunnittelee etukäteen, mutta välillä tulee epämiellyttäviä hetkiä. Esimerkiksi kaupungin verkkosivuilla voit kätevästi valita ajan ja paikan sekä varata huoneen, mutta et voi maksaa millään tavalla. He soittavat itse ja hyväksyvät korttimaksut. Voit mennä toimistolle ja maksaa käteisellä. Oli hauska mutta ei kovin miellyttävä hetki, kun odotin heidän soittoaan maksaakseni toisen oppitunnin, se ei tullut, ja viimeisenä päivänä olin viisitoista minuuttia myöhässä toimistosta. Minun piti lähestyä turvaa röyhkeillä kasvoilla ja valehdella, että huone oli varattu. Me kanadalaiset luotamme sanani: he päästivät minut sisään rauhallisesti eivätkä tarkistaneet mitään, mutta en tekisi niin, jos ihmiset eivät olisi jo matkalla tunnille.

Näin työskentelin läpi talven ja kevään, ja sitten tapahtui muutoksia, jotka olivat viimeinen pisara. Ensinnäkin toimisto suljettiin vierailijoilta ja he tarjoutuivat ottamaan vastaan ​​maksuja puhelimitse nurkan takana. Istuin käytävällä ainakin puoli tuntia ennen kuin pääsin läpi. Toiseksi, jos aiemmin rakas tätini otti minulta maksua puolitoista tuntia, niin nyt joku tyttö vastasi puhelimeen ja sanoi, että maksu on vain tunnin ajan. Tuolloin ryhmäni oli joko kolme tai kaksi henkilöä, ja ylimääräinen 12.5 dollaria ei ollut ollenkaan turha. Tietysti olen ideologinen, mutta jos vaimoni heittää minut kadulle, ei ole ketään opettajaa. Olin silloin vielä työtön.

Ja päätin mennä kirjastoon. Kirjastot vuokraavat ihania huoneita täysin ilmaiseksi, mutta siinä on yksi saalis - kaupallista toimintaa ei voi harjoittaa. Edes hyväntekeväisyysjärjestöt eivät saa kerätä siellä rahaa. Minulle kerrottiin, että tätä ei erityisesti valvota, tärkeintä ei ole ottaa rahaa sisäänkäynnillä, mutta en todellakaan pidä sääntöjen rikkomisesta. Toinen ongelma on, että huoneet ovat usein varattuja ja aikataulunmukaisia ​​tunteja on vaikea suorittaa kerralla yhdessä paikassa. Opetin kirjastoissa kesällä ja alkutalvella, piti valita ne, joissa oli tilaa, ja lopulta vaihdoin viisi tai kuusi kirjastoa. Sitten aloin varata paikan kaksi kuukautta etukäteen, ja silloinkin onnistuin vain yhdessä pienessä kirjastossa, muilla ei ollut säännöllisesti paikkoja vaaditulle ajalle. Ja sitten päätin tehdä tietokonetunnin kotona. Suljin taulun, ostin ilmoituksesta toisen pöydän ja pari vanhaa näyttöä. Töissä yritys osti minulle uuden tehokkaan kannettavan, koska tietokoneeni analysointi kesti melkein 24 tuntia. Minulla oli siis uusi vanha tietokone, vanha vanha tietokone, kannettava tietokone, johon pikkuiseni murskasi näytön, ja ikivanha netbook, johon murskasin näytön itse. Liitin ne kaikki näyttöihin ja asensin Linux Mintin kaikkialle, paitsi netbookiin, johon asensin erittäin kevyen jakelusarjan, näyttää siltä, ​​Pappy. Minulla on edelleen vanha uusi kannettava tietokone, ostettu 200 dollarilla, liitin sen televisioon. Tärkeää on myös se, että omistajamme vaihtoi äskettäin ikkunamme, ja huoneen kauhean murenevan kurjuuden sijaan meillä on nyt uudet valkoiset kehykset. Vaimoni pitää olohuoneen, keittiön ja toisen makuuhuoneen päiväkodille, joten koko kerros osoittautui puhtaasti pedagogiseksi. Eli nyt kaikki on kunnossa tilojen kanssa, siirrytään opetukseen.

Naarmu

Alan opettaa ohjelmoinnin perusteita Scratch-kielellä. Tämä on kieli, joka käyttää valmiita lohkoja, jotka keksittiin kerralla MIT:ssä. Useimmat lapset ovat nähneet Scratchin jo koulussa, joten he ottavat sen käyttöön melko nopeasti. On olemassa valmiita ohjelmia ja tuntisuunnitelmia, mutta en pidä niistä ollenkaan. Jotkut ovat outoja - luo esimerkiksi oma tarinasi. Koko ohjelma koostuu lukemattomista lohkoista say '<...>' for 2 seconds. Voidaan nähdä, että sen keksivät erittäin luovat ihmiset, mutta tällä lähestymistavalla voit opettaa klassisen intialaisen spagettikoodin kirjoittamista. Alusta alkaen puhun periaatteista, kuten DRY. Muut tehtäväkokoelmat ovat melko hyviä, mutta lapset ymmärtävät nopeasti olemuksen ja alkavat tehdä niitä kuin konekivääri. Tämän seurauksena he tekevät yhdellä oppitunnilla sen, mitä heidän olisi pitänyt tehdä viidellä. Ja tehtävien etsiminen ja valitseminen vie paljon henkilökohtaista aikaa. Yleensä Scratch ei muistuta enemmän kieltä, vaan IDE:tä, jossa sinun tarvitsee vain muistaa, mistä napsauttaa ja mistä etsiä mitä. Heti kun opiskelijat ovat enemmän tai vähemmän mukavia, yritän siirtää heidät Pythoniin. Jopa seitsemänvuotias tyttöni kirjoittaa yksinkertaisia ​​ohjelmia Pythonilla. Näen Scratchin etuna sen, että se sisältää peruskäsitteitä, jotka opitaan leikkisällä tavalla. Jostain syystä kaikkien on poikkeuksetta erittäin vaikea ymmärtää muuttujan ideaa. Aluksi selailin nopeasti aihetta ja etenin eteenpäin, kunnes kohtasin tosiasian, etteivät he edes tienneet mitä tehdä asialle. Nyt käytän paljon aikaa muuttujiin ja palaan niihin jatkuvasti. Sinun täytyy tehdä tyhmää vasaraa. Muutan eri muuttujia näytöllä ja panen ne puhumaan arvonsa. Scratchissa on myös ohjausrakenteita ja arvotarkistuksia, kuten while, for tai if pythonissa. Ne ovat melko helppoja, mutta sisäkkäisten silmukoiden kanssa on ongelmia. Yritän antaa useita tehtäviä sisäkkäisellä silmukalla ja niin, että sen toiminta on selkeä. Sen jälkeen siirryn toimintoihin. Edes aikuisille, toiminnan käsite ei ole ilmeinen, ja vielä enemmän lapsille. Jatkan pitkään siitä, mitä toiminto yleensä on, puhun tehtaasta, joka vastaanottaa tavaroita syötteenä ja luovuttaa tavaroita, kokista, joka tekee ruokaa raaka-aineista. Sitten tehdään "make a sandwich" -ohjelma tuotteista ja sitten tehdään siitä funktio, johon tuotteet välitetään parametreina. Opettelen toimintoja Scratchilla.

pytonkäärme

Pythonilla kaikki on yksinkertaisempaa. On olemassa hyvä kirja Python for Kids, josta opetan. Siellä kaikki on vakiona - linjat, toimintajärjestys, print(), input() jne. Helppolla kielellä, huumorilla kirjoitettu, lapset pitävät siitä. Siinä on monille ohjelmointikirjoille yhteinen virhe. Kuten kuuluisassa vitsissä - kuinka piirtää pöllö. Soikea - ympyrä - pöllö. Siirtyminen yksinkertaisista käsitteistä melko monimutkaisiin käsitteisiin on liian äkillistä. Objektin liittäminen pistemenetelmään kestää useita istuntoja. Toisaalta minulla ei ole kiirettä, toistan samaa asiaa eri tavoilla, kunnes ainakin jokin kuva muodostuu. Aloitan muuttujilla ja vasaroin ne uudelleen esiin, tällä kertaa Pythonissa. Muuttujat ovat eräänlainen kirous.

Älykäs opiskelija, joka pari kuukautta sitten napsauttaa näppärästi muuttujia Skratchissa, näyttää oinaan uudella portilla, eikä voi lisätä X:ää Y:n kanssa, mikä on selvästi kirjoitettu taululle rivin yläpuolelle. Toistamme! Mitä muuttujalla on? Nimi ja merkitys! Mitä yhtäläisyysmerkki tarkoittaa? Tehtävä! Miten tarkistamme tasa-arvon? Tupla yhtäläisyysmerkki! Ja toistamme tämän uudestaan ​​ja uudestaan ​​täydelliseen valaistumiseen asti. Sitten siirrytään funktioihin, joissa argumenttien selittäminen kestää pisimpään. Nimetyt argumentit sijainnin mukaan, oletuksena ja niin edelleen. Emme ole vielä saavuttaneet luokkia missään ryhmässä. Pythonin lisäksi tutkimme kirjasta suosittuja algoritmeja, niistä lisää myöhemmin.

Itse asiassa koulutus

Tuntini on rakentunut näin: annan teoriaa puoli tuntia, testaan ​​tietoa ja lujitan opittua. On laboratorioiden aika. Usein innostun ja puhun jopa tunnin ajan, sitten on puoli tuntia aikaa harjoituksiin. Kun opiskelin pythonia, katsoin kurssin Algoritmit ja tietorakenteet Khiryanov MIPT:stä. Pidin todella hänen esityksestään ja hänen luentojensa rakenteesta. Hänen ideansa on tämä: viitekehykset, syntaksi, kirjastot ovat vanhentumassa. Arkkitehtuuri, tiimityö, versionhallintajärjestelmät – se on vielä aikaista. Tämän seurauksena jäljelle jäävät algoritmit ja tietorakenteet, jotka ovat olleet tiedossa pitkään ja tulevat aina olemaan samanlaisessa muodossa. Itse muistan vain kokonaislukuja Pascal-instituutista. Koska opiskelijani ovat enimmäkseen nuoria, 8-1-vuotiaita, uskon, että heidän tulevaisuudelleen on tärkeämpää luoda perusta kuin kirjoittaa nopeasti tasohyppelypeli Pythonilla. Tosin he haluavat tasohyppelyä enemmän, ja ymmärrän heitä. Annan heille yksinkertaisia ​​algoritmeja - kupla, binäärihaku järjestetyssä luettelossa, käänteinen puolalainen merkintäpinon avulla, mutta analysoimme jokaisen erittäin yksityiskohtaisesti. Kävi ilmi, että nykyaikaiset lapset eivät periaatteessa tiedä kuinka tietokone toimii, kerron myös sinulle. Yritän yhdistää jokaisella luennolla useita käsitteitä. Esimerkiksi tietokone - muisti/prosentti - soluista koostuva muisti (annen sinun pitää muistisirun, arvaa kuinka monta solua siinä on) - jokainen solu on kuin hehkulamppu - on kaksi tilaa - tosi/epätosi - ja/tai - binääri/desimaali - 256 bittiä = XNUMX tavu - tavu = XNUMX vaihtoehtoa - looginen tietotyyppi yhdellä bitillä - kokonaislukuja yhdellä tavulla - float kahdella tavulla - string yhdellä tavulla - suurin luku 64 bitillä - lista ja monikko edellisistä tyypeistä. Teen varauksen, että todellisessa tietokoneessa kaikki on hieman erilaista ja muistin määrä näille tietotyypeille on erilainen, mutta pääasia on, että me itse prosessissa luomme monimutkaisempia tietotyyppejä yksinkertaisemmista. Tietotyypit ovat ehkä vaikeinta muistaa. Siksi aloitan jokaisen oppitunnin nopealla lämmittelyllä - yksi oppilas nimeää tietotyypin, seuraava antaa kaksi esimerkkiä ja niin edelleen ympyrässä. Tuloksena saavutin, että pienimmätkin lapset huusivat iloisesti - kellu! boolean! seitsemän, viisi! pizza, auto! Luennolla vedän jatkuvasti ensin yhtä tai toista, muuten he alkavat nopeasti poimimaan nenään ja katsomaan kattoa. Ja jokaisen tietotaso on tarkistettava silloin tällöin.

Opiskelijani eivät lakkaa hämmästyttämästä minua, sekä tyhmyydellä että odottamattomalla älykkyydellä. Onneksi useammin älykkyydellä.

Halusin kirjoittaa lisää, mutta siitä tuli vain arkki. Vastaan ​​mielelläni kaikkiin kysymyksiin. Otan kaikenlaisen kritiikin vastaan ​​kaikin tavoin, pyydän vain olemaan suvaitsevaisempia toisianne kohtaan kommenteissa. Tämä on hyvä artikkeli.

Lähde: will.com

Lisää kommentti