Kā iemācīt Python bērniem?

Kā iemācīt Python bērniem?

Mans galvenais darbs ir saistÄ«ts ar datiem un programmÄ“Å”anu R, bet Å”ajā rakstā vēlos pastāstÄ«t par savu hobiju, kas pat nes kaut kādus ienākumus. Mani vienmēr ir interesējis stāstÄ«t un skaidrot lietas draugiem, klasesbiedriem un kursa biedriem. Man arÄ« vienmēr ir bijis viegli atrast kopÄ«gu valodu ar bērniem, es nezinu, kāpēc. Kopumā uzskatu, ka bērnu audzināŔana un mācÄ«Å”ana ir viena no svarÄ«gākajām nodarbēm, un mana sieva ir skolotāja. Tāpēc apmēram pirms gada es reklamējos vietējā Facebook grupā, izveidoju grupu un sāku mācÄ«t Scratch un Python vienu reizi nedēļā. Tagad man ir piecas grupas, sava klase mājās un individuālās nodarbÄ«bas. Kā es nonācu lÄ«dz Ŕādai dzÄ«vei un tieÅ”i kā es mācu bērnus, es jums pastāstÄ«Å”u Å”ajā rakstā.

Es dzīvoju Kalgari, Albertā, Kanādā, tāpēc dažas lietas būs vietējās specifikas.

Istaba

Vietas pieejamÄ«ba praksei bija liela problēma jau no paÅ”a sākuma. Es mēģināju meklēt Ä«rējamos birojus un klases pa stundām, taču neizdevās. MÅ«su universitāte un SAIT, MIT vietējais ekvivalents, piedāvā nodarbÄ«bas ar un bez datoriem. Cenas tur izrādÄ«jās ne pārāk humānas, un beigās izrādÄ«jās, ka augstskola neielaiž nepilngadÄ«gos, un SAIT vispār Ä«rē tikai saviem studentiem. Tātad Ŕī iespēja tika izslēgta. Ir daudzi biroju centri, kas Ä«rē sanāksmju telpas un birojus stundās, ir veseli uzņēmumi, kas piedāvā virkni iespēju no pilnas klases lÄ«dz telpai četrām personām. Man bija cerÄ«bas, jo Alberta ir naftas province, kopÅ” 2014. gada mēs esam gausā krÄ«zē, un daudzas biznesa telpas ir tukÅ”as. Man nevajadzēja cerēt, cenas izrādÄ«jās tik nežēlÄ«gas, ka sākumā pat neticēju. Saimniekiem ir vieglāk sēdēt tukÅ”os birojos un maksāt izmaksas, nekā izgāzt.

Tajā brÄ«dÄ« es atcerējos, ka es regulāri maksāju nodokļus un vai mÅ«su mīļajam Å”tatam, pareizāk sakot, Kalgari pilsētai, tur kaut kas ir. IzrādÄ«jās, ka tieŔām ir. Pilsētā ir arēnas hokejam un citiem daiļslidoÅ”anas sporta veidiem, un Å”ajās arēnās ir telpas, kurās izturÄ«gie ledus karotāji apspriež turpmāko cīņu stratēģijas. ÄŖsāk sakot, katrā arēnā ir pāris istabas ar galdiem, krēsliem, baltu dēli un pat izlietni ar tējkannu. Cena diezgan dievÄ«ga - 25 Kanādas tugriki stundā. Sākotnēji nolēmu nodarbÄ«bas kārtot pusotru stundu, tāpēc noteicu stundas cenu 35 USD par klasi piecu cilvēku grupā, lai kompensētu Ä«ri un kaut ko ieliktu kabatā. Kopumā man patika sportot arēnās, tas atrisināja vienu no problēmām - lielākā daļa krievvalodÄ«go dzÄ«vo dienvidos, bet es dzÄ«voju pilsētas ziemeļos, tāpēc es izvēlējos arēnu aptuveni vidÅ«. Taču bija arÄ« neērtÄ«bas. Kanādas birokrātija ir laba un draudzÄ«ga, taču, maigi izsakoties, var bÅ«t nedaudz neveikla. Jau iepriekÅ” pierodot pie ritma un plānojot, problēmu nav, taču reizēm rodas nepatÄ«kami brīži. Piemēram, pilsētas mājaslapā jÅ«s varat ērti izvēlēties laiku un vietu un rezervēt istabu, bet jÅ«s nevarat samaksāt nekādā veidā. Viņi paÅ”i zvana un pieņem karÅ”u maksājumus. JÅ«s varat doties uz biroju un maksāt skaidrā naudā. Bija smieklÄ«gs, bet ne pārāk patÄ«kams brÄ«dis, kad gaidÄ«ju viņu zvanu, lai samaksātu par otro nodarbÄ«bu, tā nesanāca, un pēdējā dienā nokavēju piecpadsmit minÅ«tes uz biroju. Man nācās ar nekaunÄ«gu seju vērsties pie apsardzes un melot, ka istaba ir rezervēta. Mēs, kanādieÅ”i, pieņemam manu vārdu; viņi mani mierÄ«gi ielaida un neko nepārbaudÄ«ja, bet es to nedarÄ«tu, ja cilvēki jau nebÅ«tu ceļā uz nodarbÄ«bu.

Tā es strādāju ziemu un pavasari, un tad notika pārmaiņas, kas bija pēdējais piliens. Pirmkārt, birojs apmeklētājiem tika slēgts, un viņi piedāvāja pieņemt maksājumus pa tālruni aiz stūra. Nosēdēju uz ejas vismaz pusstundu, pirms tiku cauri. Otrkārt, ja agrāk mana mīļā tante ņēma no manis maksājumu par pusotru stundu, tad tagad kāda meitene atbildēja uz telefonu un teica, ka maksājums ir tikai par stundu. Toreiz manā grupā bija vai nu trīs vai divi cilvēki, un papildu 12.5 dolāri nemaz nebija lieki. Protams, esmu idejisks, bet, ja sieva mani izmetīs uz ielas, tad nebūs kam mācīt. Toreiz vēl biju bezdarbnieks.

Un es nolēmu doties uz bibliotēku. Bibliotēkas iznomā brÄ«niŔķīgas telpas pilnÄ«gi bez maksas, taču ir viens āķis - jÅ«s nevarat veikt komercdarbÄ«bu. Pat labdarÄ«bas organizācijas nedrÄ«kst tur vākt naudu. Man teica, ka tas netiek Ä«paÅ”i kontrolēts, galvenais ir neņemt naudu pie ieejas, bet man ļoti nepatÄ«k pārkāpt noteikumus. Problēma ir arÄ« tā, ka telpas bieži ir noslogotas un ir grÅ«ti novadÄ«t plānotās nodarbÄ«bas vienā reizē vienuviet. Es mācÄ«ju bibliotēkās vasarā un ziemas sākumā, man bija jāizvēlas tās, kurās ir vieta, un beigās nomainÄ«ju piecas vai seÅ”as bibliotēkas. Tad sāku rezervēt vietu divus mēneÅ”us iepriekÅ”, un arÄ« tad man izdevās to izdarÄ«t tikai vienā mazā bibliotēkā, pārējām regulāri nebija vietas vajadzÄ«gajam laikam. Un tad es nolēmu izveidot datorklasi mājās. Noliku dēli, nopirku otru galdu un pāris vecus monitorus no sludinājuma. Darbā uzņēmums man nopirka jaunu jaudÄ«gu klēpjdatoru, jo analÄ«ze manā datorā aizņēma gandrÄ«z 24 stundas. Tātad, man bija jauns vecs dators, vecs vecs dators, klēpjdators, kurā mans mazais drupināja ekrānu, un sens netbook, kuram es pats saspiedu ekrānu. Es tos visus savienoju ar monitoriem un visur uzstādÄ«ju Linux Mint, izņemot netbook, uz kura es uzstādÄ«ju ļoti vieglu sadales komplektu, Ŕķiet, Pappy. Man vēl ir vecs jauns portatÄ«vais, pirkts par 200$, pieslēdzu televizoram. SvarÄ«gi ir arÄ« tas, ka mÅ«su saimnieks nesen mums nomainÄ«ja logus, un Å”ausmÄ«gās, brÅ«koŔās istabās esoŔās sliktÄ«bas vietā tagad mums ir jauni balti rāmji. Mana sieva bērnudārzam patur dzÄ«vojamo istabu, virtuvi un otro guļamistabu, tāpēc viss stāvs izrādÄ«jās tÄ«ri pedagoÄ£isks. Tātad, tagad ar telpām viss kārtÄ«bā, pāriesim pie mācÄ«Å”anas.

Noskrāpēt

Es sāku mācÄ«t programmÄ“Å”anas pamatus, izmantojot Scratch valodu. Å Ä« ir valoda, kas izmanto gatavus blokus, kas savulaik tika izgudroti MIT. Lielākā daļa bērnu jau ir redzējuÅ”i Scratch skolā, tāpēc viņi to paņem diezgan ātri. Ir gatavas programmas un stundu plāni, bet man tie nemaz nepatÄ«k. Daži ir dÄ«vaini ā€“ izveidojiet, piemēram, savu stāstu. Visa programma sastāv no neskaitāmiem blokiem say '<...>' for 2 seconds. Var redzēt, ka to izgudroja ļoti radoÅ”i cilvēki, taču ar Å”o pieeju jÅ«s varat iemācÄ«t rakstÄ«t klasisko Indijas spageti kodu. No paÅ”a sākuma es runāju par tādiem principiem kā DRY.Citas uzdevumu kolekcijas ir diezgan labas, bet bērni ātri uztver bÅ«tÄ«bu un sāk tos darÄ«t kā ar ložmetēju. Rezultātā viņi vienā nodarbÄ«bā dara to, ko vajadzēja izdarÄ«t piecās. Un uzdevumu meklÄ“Å”ana un atlase aizņem daudz personÄ«gā laika. Vispār Scratch vairāk atgādina nevis valodu, bet IDE, kur tikai jāatceras, kur noklikŔķināt un kur ko meklēt. TiklÄ«dz studentiem ir vairāk vai mazāk ērti, es cenÅ”os viņus pārnest uz Python. Pat mana septiņgadÄ«gā meitene raksta vienkārÅ”as programmas Python valodā. Es uzskatu par Scratch priekÅ”rocÄ«bu, ka tajā ir ietverti pamatjēdzieni, kas tiek apgÅ«ti rotaļīgā veidā. Kādu iemeslu dēļ visiem bez izņēmuma ir ļoti grÅ«ti saprast mainÄ«gā lieluma ideju. Sākumā es ātri pārmeklēju tēmu un turpināju, lÄ«dz saskāros ar faktu, ka viņi pat nezināja, ko ar to darÄ«t. Tagad es pavadu daudz laika mainÄ«gajiem lielumiem un pastāvÄ«gi pie tiem atgriežos. Jātaisa stulba kalÅ”ana. Es mainu dažādus mainÄ«gos uz ekrāna un lieku tiem runāt savas vērtÄ«bas. Scratch ir arÄ« kontroles struktÅ«ras un vērtÄ«bu pārbaudes, piemēram, while, for vai if pitonā. Tie ir diezgan vienkārÅ”i, taču ir problēmas ar ligzdotām cilpām. Es cenÅ”os dot vairākus uzdevumus ar ligzdotu cilpu un tā, lai tā darbÄ«ba bÅ«tu skaidra. Pēc tam es pāreju uz funkcijām. Pat pieauguÅ”ajiem funkcijas jēdziens nav acÄ«mredzams, un vēl jo vairāk bērniem. Es ilgi runāju par to, kas ir funkcija kopumā, es runāju par rÅ«pnÄ«cu, kas saņem preces kā ievadi un izsniedz preces, par pavāru, kurÅ” gatavo ēdienu no izejvielām. Tad ar produktiem veidojam programmu ā€œtaisÄ«t sviestmaiziā€, un tad no tās izveidojam funkciju, kurai produkti tiek nodoti kā parametri. Pabeidzu apgÅ«t funkcijas ar Scratch.

Pitons

Ar python viss ir vienkārŔāk. Ir laba grāmata Python for Kids, no kuras es mācu. Tur viss ir standarta - rindas, darbÄ«bu secÄ«ba, print(), input() utt. UzrakstÄ«ts vieglā valodā, ar humoru, bērniem patÄ«k. Tam ir daudzām programmÄ“Å”anas grāmatām kopÄ«gs trÅ«kums. Kā jau slavenajā jokā ā€“ kā uzzÄ«mēt pÅ«ci. Ovāls - aplis - pÅ«ce. Pāreja no vienkārÅ”iem jēdzieniem uz diezgan sarežģītiem jēdzieniem ir pārāk pēkŔņa. Man ir vajadzÄ«gas vairākas sesijas, lai objektu pievienotu punktu metodei. No otras puses, es nesteidzos, atkārtoju vienu un to paÅ”u dažādos veidos, lÄ«dz sanāk vismaz kāda bilde. Es sāku ar mainÄ«gajiem un izmetu tos vēlreiz, Å”oreiz Python. MainÄ«gie ir sava veida lāsts.

Gudrs students, kurÅ” pirms pāris mēneÅ”iem veikli uzspieda mainÄ«gos uz Skratch, izskatās kā auns pie jaunajiem vārtiem un nevar pievienot X ar Y, kas ir skaidri rakstÄ«ts uz tāfeles rindiņu augstāk. Mēs atkārtojam! Kas ir mainÄ«gajam? Vārds un nozÄ«me! Ko nozÄ«mē vienādÄ«bas zÄ«me? Uzdevums! Kā mēs pārbaudām vienlÄ«dzÄ«bu? Dubultā vienādÄ«bas zÄ«me! Un mēs to atkārtojam atkal un atkal lÄ«dz pilnÄ«gai apgaismÄ«bai. Tad pārejam pie funkcijām, kur argumentu skaidroÅ”ana aizņem visilgāk. Nosauktie argumenti pēc pozÄ«cijas, pēc noklusējuma un tā tālāk. Mēs vēl neesam sasnieguÅ”i nodarbÄ«bas nevienā grupā. Papildus Python mēs pētām populāros algoritmus no grāmatas, vairāk par to vēlāk.

Patiesībā, apmācība

Mana stunda ir strukturēta Ŕādi: pusstundu pasniedzu teoriju, pārbaudu zināŔanas un nostiprināju apgÅ«to. Ir pienācis laiks laboratorijām. Es bieži aizraujos un runāju lÄ«dz stundai, tad atliek pusstunda praksei. Kad mācÄ«jos pitonu, skatÄ«jos kursu Algoritmi un datu struktÅ«ras Khiryanov no MIPT. Man ļoti patika viņa prezentācija un lekciju struktÅ«ra. Viņa ideja ir Ŕāda: ietvari, sintakse, bibliotēkas kļūst novecojuÅ”as. ArhitektÅ«ra, komandas darbs, versiju kontroles sistēmas ā€” tas vēl ir agrs. Rezultātā paliek algoritmi un datu struktÅ«ras, kas zināmas jau sen un vienmēr bÅ«s lÄ«dzÄ«gā formā. Es pats atceros tikai veselus skaitļus no institÅ«ta pascal. Tā kā mani skolēni pārsvarā ir jauni, no septiņiem lÄ«dz piecpadsmit gadiem, uzskatu, ka viņu nākotnei svarÄ«gāk ir likt pamatus, nevis ātri uzrakstÄ«t platformas spēli Python valodā. Lai gan viņi vairāk vēlas platformera, un es viņus saprotu. Es dodu viņiem vienkārÅ”us algoritmus ā€” burbulis, binārā meklÄ“Å”ana sakārtotā sarakstā, apgrieztā poļu apzÄ«mējums, izmantojot steku, bet mēs katru analizējam ļoti detalizēti. IzrādÄ«jās, ka mÅ«sdienu bērni principā nezina, kā darbojas dators, es arÄ« jums pateikÅ”u. Es cenÅ”os katrā lekcijā sasaistÄ«t vairākus jēdzienus. Piemēram, dators - atmiņa/procenti - atmiņa, kas sastāv no Ŕūnām (atļauÅ”os turēt atmiņas mikroshēmu, uzmini cik ir Ŕūnu) - katra Ŕūna ir kā spuldzÄ«te - ir divi stāvokļi - patiess/nepatiess - un/vai - binārs/decimāls - 8 biti = 1 baits - baits = 256 opcijas - loÄ£iskais datu tips vienā bitā - veseli skaitļi vienā baitā - float uz diviem baitiem - string vienā baitā - lielākais skaits uz 64 bitiem - saraksts un kortežs no iepriekŔējiem veidiem. Izdaru atrunu, ka reālā datorā viss ir nedaudz savādāk un atmiņas apjoms Å”iem datu tipiem ir atŔķirÄ«gs, bet galvenais, ka mēs paÅ”i procesā veidojam sarežģītākus datu tipus no vienkārŔākiem. Datu tipi, iespējams, ir visgrÅ«tāk atcerēties. Tāpēc katru stundu sāku ar ātru iesildÄ«Å”anos ā€“ viens skolēns nosauc datu veidu, nākamais dod divus piemērus un tā tālāk pa apli. Rezultātā panācu, ka pat mazākie bērni jautri kliedz - peld! BÅ«la! septiņi, pieci! pica, auto! Lekcijas laikā nemitÄ«gi velku pirmais vai otrs, citādi ātri sāk raut degunu un skatÄ«ties griestos. Un katra zināŔanu lÄ«menis Å”ad un tad ir jāpārbauda.

Mani skolēni nebeidz mani pārsteigt gan ar savu stulbumu, gan negaidīto inteliģenci. Par laimi, biežāk ar inteliģenci.

Es gribēju rakstÄ«t vairāk, bet tas izrādÄ«jās tikai palags. Labprāt atbildÄ“Å”u uz visiem jautājumiem. Es atzinÄ«gi vērtēju jebkuru kritiku visos iespējamos veidos, tikai aicinu bÅ«t iecietÄ«gākiem vienam pret otru komentāros. Å is ir labs raksts.

Avots: www.habr.com

Pievieno komentāru