Kuidas ma õpetan lapsi Pythoni

Kuidas ma õpetan lapsi Pythoni

Minu peamine töö on seotud andmete ja programmeerimisega, kuid selles artiklis tahan rääkida oma hobist, mis isegi toob mingit tulu. Mul on alati olnud huvi jagada ja selgitada asju sõpradele, klassikaaslastele ja ülikoolikaaslastele. Samuti olen alati suutnud lastega hästi suhelda, ma ei tea, miks. Üldiselt usun, et laste kasvatamine ja õpetamine on üks kõige olulisemaid tegevusi, ja minu naine on samuti õpetaja. Kokkuvõttes andsin umbes aasta tagasi kohalikus Facebooki grupis kuulutuse, kogusin grupi ja hakkasin õpetama Scratchi ja Pythoni kord nädalas. Nüüd on mul viis gruppi, oma klass kodus ja individuaaltunnid. Kuidas ma selleni jõudsin ja kuidas ma lapsi õpetan, räägin ma selles artiklis. RElan Kanadas, Calgarys, Alberta provintsis, nii et mõned aspektid on seotud kohalike eripäradega.

Ruum

Ruumi

Alghool, ettekirjad, kohtade olemasolu õppetööks oli algusest peale peamine probleem. Üritasin otsida büroosid ja klasse tundide kaupa eesmärgil, kuid mitte eriti edukalt. Meie ülikool ja SAIT – kohalik vastav variant MIT-le – rendivad klasse arvutitega ja ilma. Hinnad seal olid üsna kõrged ning lõpuks selgus, et ülikool ei luba alaealisi, ja SAIT rendib üldse ainult oma tudengitele. Nii et see variant langes ära. Paljudes bürookeskustes pakuvad koosolekuruume ja büroosid tundide kaupa, on terveid ettevõtteid, mis pakuvad hulgaliselt variante alates täis klassidest kuni nelja inimesega ruumideni. Ma olin lootnud, kuna Alberta on nafta provints ja alates 2014. aastast on meil kestnud kriis, mistõttu paljud äripinnad seisavad tühjalt. Kahjuks osutus see vale ootuseks, hinnad olid nii kõrged, et ma ei suutnud alguses isegi uskuda. Omanikele on lihtsam jätta tühjad bürood seisma ja maksta kulusid, kui turustada.

Sel hetkel meenutasin, et maksan makse korralikult ja kas meie kallil riigil, täpsemalt Calgary linnal, ei ole midagi pakkuda. Selgus, et on küll. Linnal on hokihalle ja muid uisuväljaku kohti, ning nendes hallides on ruume, kus karmid jääsõdalased arutavad tulevaste lahingute strateegiaid. Ühesõnaga, iga halli juurde kuulub paar ruumi, kus on lauad, toolid, tahvel ja isegi pesuahi koos veekeetjaga. Hind on enam-vähem mõistlik — 25 Kanada dollarit tunni eest. Olin algselt otsustanud teha 1,5 tunni kaupa, seega seadisin hinnaks 35 dollarit inimese kohta grupis, kus on viis liiget, et katta üüri ja endale ka midagi taskusse jätta. Üldiselt meeldis mulle tegutseda hallides, see lahendas ühe probleemi — enamik venekeelseid inimesi elab lõunas, samas kui mina elan linna põhjaosas, seetõttu valisin halli umbes keset linna. Kuid oli ka ebamugavusi. Kanada bürokraatia on hea ja sõbralik, kuid, õrnalt väljendudes, võib olla veidi kohmakas. Probleeme ei ole, kui harjuda rütmiga ja planeerida ette, kuid mõnikord tekivad ebameeldivad hetked. Näiteks on linna veebisaidil mugav valida aeg ja koht, broneerida ruum, kuid maksta ei saa, kuidagi. Nemad helistavad ja võtavad telefoni teel makse kaardiga. Võib minna kontorisse ja maksta sularahas. Oli naljakas, aga mitte väga meeldiv hetk, kui ma ootasin nende kõnet, et maksta teise tunni eest, kuid ei oodanud ning viimasele päeval jõudsin kontorisse viieteist minuti võrra hilja. Pidin julge näoga turvamehe poole tulema ja valetama, et ruum on broneeritud. Me, kanadalased, usume sõna, mind lasti rahulikult sisse ja ei kontrollitud midagi, aga ma ei oleks nii teinud, kui inimesed ei oleks juba tunnile tulemas.

Mina tegelesin talve ja kevadega, kuid siis toimusid muudatused, mis said viimaseks tilkaks. Esiteks suleti kontor külastajatele ja pakuti võimalust maksta telefoni teel nurga taga. Olin ootamas vähemalt poolteist tundi, enne kui õnnestus läbi helistada. Teiseks, kui varem kena onu võttis minult makse poolteise tunni eest, siis nüüd vastas telefonile mingi tüdruk ja ütles, et makse on võimalik vaid ühe tunni eest. Minu grupis oli sel hetkel kas kolm või kaks inimest ning üleliigne $12.5 ei olnud sugugi liialt. Muidugi, ma olen ideaalide inimene, kuid kui naine mind tänavale viskab, siis ei ole kedagi, kellele õpetada. Siis olin veel tööta.

Ja otsustasin minna raamatukokku. Raamatukogud pakuvad suurepäraseid saale täiesti tasuta, kuid seal on üks aga — seal ei tohi tegeleda äritegevusega. Ieven vaestele organisatsioonidele ei ole lubatud seal raha koguda. Mulle on öeldud, et seda ei kontrollita eriti, peamine on mitte raha otse sissepääsul võtta, kuid ma ei armasta reeglite rikkumist. Veel üks probleem on see, et saalid on sageli seotud ja on keeruline korraldada tundideks ühes ja samas kohas. Ma õpetasin raamatukogudes suvel ja talve alguses, pidin valima need, kus oli ruumi, lõpuks vahetasin viis-kuus raamatukogu. Siis hakkasin kahte kuud ette ruumi broneerima ja isegi siis õnnestus see ainult ühes väikeses raamatukogus, teistes ei olnud regulaarselt vajalikul ajal ruumi. Ja siis otsustasin teha enda kodus arvutiklassi. Riputasin tahvli, ostsin kuulutuste kaudu teise laua ja paar vanemat monitori. Töö tõttu ostis firma mulle uue võimsa sülearvuti, kuna minu arvutis analüüs võttis peaaegu 24 tundi. Kokku oli mul uus vana arvuti, vana vana arvuti, sülearvuti, mille mu väike murdis ekraani ja iidne netbook, mille ekraani murdsin mina ise. Ühendasin nad kõik monitoridega ja panin igale poole Linux Mint'i, välja arvatud netbook, millele panin väga kerge distributsiooni, näib, et Puppy. Mul on veel üks vana uus sülearvuti, mis maksis $200, ühendasin selle teleriga. Samuti, mis on oluline, vahetas meie omanik hiljuti aknad, ja toas on nüüd kui mitte kohutavad lagunevad raamid, uued valged raamid. Elutuba, köök ja teine magamistuba on abikaasa lasteaiaga, nii et kogu korrus on puhtalt pedagoogiline. Nii et nüüd on ruumiga kõik hästi, liikuge otse õpetamise juurde.

Scratch

Ma alustan programmeerimise põhialuseid Scratchi keele abil. See keel kasutab valmis plokke, mis loodi kunagi MIT-is. Enamik lapsi on Scratchi koolis juba näinud, mistõttu on selle omandamine suhteliselt lihtne. On olemas valmis programmid ja õppetooted, kuid mulle need üldse ei meeldi. Mõned on kummalised – näiteks loo oma lugu. Kogu programm koosneb arvukatest plokkidest. say '' for 2 seconds. On näha, et selle lõi väga loominguline seltskond, kuid sellise lähenemisega saab õpetada kirjutama klassikalist India spagetikoodi. Mina aga räägin algusest peale D.R.Y. põhimõtetest. Teised ülesande kogumikud on üsna head, kuid lapsed taipavad kiiresti asja sisu ja hakkavad neid nagu kuulipildur tegema. Lõpuks teevad nad ühe tunni jooksul seda, mida pidanuks tegema viie tunni jooksul. Ülesannete leidmiseks ja valimiseks kulub palju isiklikku aega. Üldiselt meenutab Scratch rohkem mitte keelt, vaid IDE-d, kus tuleb lihtsalt meeles pidada, kuhu klikata ja kus midagi otsida. Kui õpilased natuke harjuvad, üritan ma nad Pythonile üle viia. Mul on isegi seitsmeaastane tüdruk, kes kirjutab Pythoni peal lihtsaid programme. Scratchi kasulikkus seisneb selles, et seal on hulgaliselt põhikontseptsioone, mis omandatakse mängulisel viisil. Kõigirühmas on mingil põhjusel üli raske mõista muutuja mõtet. Alguses läbis ma selle teema kiirelt ja läksin edasi, kuni kohtusin olukordadega, kus nad ei teadnud, mida sellega peale hakata. Nüüd pühendan muutujatele palju aega ja naasen kogu aeg nende juurde. Pean tegelema tasase õppimisega. Muudan ekraanil erinevaid muutujaid ja panen neid nende väärtusi rääkima. Scratchis on ka kontrollstruktuurid ja väärtuste kontrollid, nagu samal ajal, for või if Pythonis. Need tulevad piisavalt kergesti, ainult sisestatud tsüklitega on probleeme. Püüan anda mitu ülesannet, kus on sisestatud tsükkel, ja et selle tegevus oleks selgelt väljendatud. Pärast seda liigun funktsioonide juurde. I even täiskasvanutele on funktsiooni mõisted mõnikord ebaselged, rääkimata lastest. Ma selgitan pikalt, mis on funktsioon, räägin tehases, mis võtab sisendina esemeid ja väljastab tooteid, kokast, kes valmistab toitu toorainetest. Siis teeme programmi „valmista võileib” koos koostisosadega ja seejärel teeme sellest funktsiooni, millele koostisosad edastatakse parameetrites. Funktsioonide õppimisega lõpetan skratšiga.

Python

Pythoni puhul on kõik lihtsam. On hea raamat 'Python for Kids', mille järgi ma õpetan. Kõik on standardne — stringid, tehete järjekord, print(), input() jne jne. Kirjutatud kerge, huumoriga, lastele meeldib. Tal on puudus, mis on tüüpiline paljudele programmeerimisraamatutele. Nagu kuulus naljajutt — kuidas joonistada öökulli. Ovaal — ring — öökull. Lihtsatest mõistetest on üleminek keerulistele kontseptsioonidele liiga järsk. Minul läheb objektide ja meetodite punktiga seondumise selgitamiseks mitu tundi. Teisest küljest, ma ei kiirusta, kordab sama erinevate sünkroniseerimiste kaudu, kuni tekib vähemalt mingi arusaam. Alustan muutujatest ja jahmun neid uuesti, juba Pythonis. Muutujad on nagu mingi needus.

Kavalik üliõpilane, kes paar kuud tagasi vilkalt muutujaid skripti läbi klikkis, vaatab nagu lambaliha uusi väravaid ja ei saa kokku panna x-i ja y-d, mis on ilusti laua peal ridade kaupa kirjutatud. Kordame! Mida on muutuja juures? Nimi ja väärtus! Mida tähendab võrdusmärk? Määramine! Ja kuidas me kontrollime võrdust? Kahekordne võrdusmärk! Nii kordame veel ja veel, kuni täieliku selguse saavutamiseni. Siis liigume funktsioonide juurde, kus argumendide selgitamine võtab kõige rohkem aega. Nimetatud argumendid, positsioonid, vaikeväärtused ja nii edasi. Klassideni pole me veel üheski grupis jõudnud. Lisaks raamatust Pythonile uurime populaarseid algoritme, sellest hiljem.

Tegelikult õppimine

Minu tund on korraldatud nii – pool tundi annan teooriat, kontrollin teadmisi, kinnitan õpitud. Tund – laborid. Tihti olen ma nii põnevil, et räägin tunni jagu, siis jääb harjutamiseks vastavalt pool tundi. Kui ma Pythonit õppisin, vaatasin läbi kursuse. Algoritmid ja Andmestruktuurid Khiryanoova MFTI-st. Mulle meeldis tema ettekande ja loengute struktuur. Tema idee on järgmine — raamistikud, süntaks, teegid — muutuvad vananenuks. Arhitektuur, meeskonnatöö, versioonihaldussüsteemid — need on veel varajased. Lõpuks jäävad alles algoritmid ja andmestruktuurid, mis on ammu tuntud ja jäävad alati sarnasesse vormi. Mina ise mäletan ainult integreeritavaid muutujate tüüpe instituudi Pascal’ist. Kuna mu õpilased on enamjaolt noored, seitsme kuni viieteistkümne aasta vanused, arvan, et nende tuleviku jaoks on olulisem rajada alus, kui võimalikult kiiresti kirjutada platvormer Pythonis. Kuigi nemad tahavad rohkem platvormerit, ja ma saan neid mõista. Annan neile lihtsaid algoritme — mull, binaarne otsing sorteeritud nimekirjas, pööratud poola notatsioon kuhja abil, kuid me analüüsime igaüht väga üksikasjalikult. Tuli välja, et tänapäeva lapsed ei tea üldiselt, kuidas arvuti töötab, ja seda räägin ma samuti. Püüan igas loengus siduda mitmeid mõisted kokku. Näiteks, arvuti — mälu/protsessor — mälu lahtritest (annan hoida mälumoodulit, arvake, kui palju siin on lahtri) — iga lahter nagu lamp — need on kaks olekut — true/false — and/or — binaarne/decimaalne — 8 bitti = 1 bait — bait = 256 varianti — loogiline andmetüüp ühel bitil — täisarvud ühel baitil — float kahel kahel — string ühel baitil — kõige suurem number 64 bitis — loend ja tupik eelmistest tüüpidest. Mainin, et reaalses arvutis on kõik pisut teisiti ja nende andmetüüpide jaoks on vajalik erinev mälu, aga peamine on see, et me ise protsessi käigus loome keerukamaid andmetüüpe lihtsamatest. Andmetüübid on võib-olla kõige keerulisem, mida meeles pidada. Seetõttu alustangi iga korda kiiresti soojendusega — üks õpilane nimetab andmetüübi, järgmine toob kaks näidet ja nii ringis. Lõpuks olen saavutanud selle, et isegi kõige nooremad lapsed karjuvad rõõmsalt — float! boolean! seitse, viis! pitsat, auto! Loengu ajal tõukan pidevalt ühte või teist, muidu hakkavad nad kiiresti ninasõõrmesse kraapima ja lae poole vaatama. Ja igaühe teadmiste taset tuleb aeg-ajalt kontrollida.

Mu õpilased üllatavad mind pidevalt nii oma rumaluse kui ka ootamatu leidlikkusega. Leidlikkusega, õnneks, sagedamini.

Ma tahan kirjutada rohkem, kuid sellestki sai juba pikk tekst. Vastan meeleldi kõikidele küsimustele. Iga kriitikat teretulnud, aga palun olgem üksteise suhtes kommentaarides sallivad. See on hea artikkel.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster