Kiel mi instruas Python al infanoj?

Kiel mi instruas Python al infanoj?

Mia ĉefa laboro rilatas al datumoj kaj programado en R, sed en ĉi tiu artikolo mi volas paroli pri mia ŝatokupo, kiu eĉ alportas iom da enspezo. Mi ĉiam interesiĝis pri rakontado kaj klarigado de aferoj al amikoj, samklasanoj kaj samideanoj. Ankaŭ ĉiam estis facile por mi trovi komunan lingvon kun infanoj, mi ne scias kial. Ĝenerale mi kredas, ke eduki kaj instrui infanojn estas unu el la plej gravaj agadoj el ĉiuj, kaj mia edzino estas instruisto. Do, antaŭ ĉirkaŭ unu jaro, mi reklamis en loka Fejsbuka grupo, formis grupon kaj komencis instrui Scratch kaj Python unufoje semajne. Nun mi havas kvin grupojn, mian propran klason hejme kaj individuajn lecionojn. Kiel mi vivis tiel kaj ĝuste kiel mi instruas infanojn, mi rakontos al vi en ĉi tiu artikolo.

Mi loĝas en Kalgario, Alberto, Kanado, do iuj aferoj estos lokaj specifaĵoj.

La ĉambro

Havebleco de spaco por praktiki estis grava zorgo de la komenco. Mi provis serĉi oficejojn kaj klasĉambrojn por luado je horo, sed ne havis multe da sukceso. Nia universitato kaj SAIT, la loka ekvivalento de MIT, ofertas klasojn kun kaj sen komputiloj. La prezoj tie montriĝis ne tre humanaj, kaj finfine montriĝis, ke la universitato ne permesas neplenaĝulojn, kaj SAIT ĝenerale lupas nur al siaj propraj studentoj. Do, ĉi tiu opcio estis forigita. Estas multaj oficejaj centroj, kiuj luas kunvenejojn kaj oficejojn je la horo, ekzistas tutaj kompanioj, kiuj ofertas amason da ebloj de plena klasĉambro ĝis ĉambro por kvar homoj. Mi havis esperojn, ĉar Alberto estas naftoprovinco, ni estas en malvigla krizo ekde 2014, kaj multaj komercaj spacoj estas malplenaj. Mi ne devintus esperi; la prezoj montriĝis tiel skandalaj, ke mi komence eĉ ne kredis ilin. Estas pli facile por posedantoj sidi en malplenaj oficejoj kaj pagi kostojn ol forĵeti.

En tiu momento, mi memoris, ke mi regule pagas miajn impostojn, kaj ĉu nia kara ŝtato, aŭ pli ĝuste, la urbo Kalgario, havas ion tie. Montriĝis, ke vere ekzistas. La grandurbo havas arenojn por hokeo kaj aliaj artsketadosportoj, kaj en tiuj arenoj ekzistas ĉambroj kie krudaj glacimilitistoj diskutas strategiojn por estontaj bataloj. Resume, ĉiu areno havas kelkajn ĉambrojn kun tabloj, seĝoj, blanka tabulo kaj eĉ lavujo kun kaldrono. La prezo estas sufiĉe dia - 25 kanadaj tugriks hore. Mi komence decidis fari klasojn por horo kaj duono, do mi fiksis la prezon por leciono je $35 po klaso en grupo de kvin homoj, por kompensi la lupagon, kaj meti ion en mian poŝon. Ĝenerale, mi ŝatis labori en la arenoj, ĝi solvis unu el la problemoj - la plej multaj ruslingvanoj loĝas en la sudo, kaj mi loĝas en la nordo de la urbo, do mi elektis arenon proksimume en la mezo. Sed estis ankaŭ ĝenoj. La kanada burokratio estas bona kaj amika, sed, por paroli milde, povas esti iom mallerta. Ne estas problemoj, kiam oni alkutimiĝas al la ritmo kaj antaŭplanas, sed foje aperas malagrablaj momentoj. Ekzemple, en la retejo de la urbo vi povas oportune elekti tempon kaj lokon kaj rezervi ĉambron, sed vi ne povas pagi, iel ajn. Ili mem faras la telefonvokojn kaj akceptas kartpagojn. Vi povas iri al la oficejo kaj pagi kontante. Estis amuza sed ne tre agrabla momento, kiam mi atendis ilian vokon por pagi la duan lecionon, ĝi ne venis, kaj en la lasta tago mi malfruis dek kvin minutojn al la oficejo. Mi devis alproksimiĝi al sekureco kun senhonesta vizaĝo kaj mensogi, ke la ĉambro estas rezervita. Ni kanadanoj kredas mian vorton; ili enlasis min trankvile kaj nenion kontrolis, sed mi ne farus tion se homoj ne estus jam survoje al klaso.

Jen kiel mi laboris tra la vintro kaj printempo, kaj tiam okazis ŝanĝoj, kiuj estis la lasta pajlo. Unue, la oficejo estis fermita al vizitantoj kaj ili proponis akcepti pagojn telefone ĉirkaŭ la angulo. Mi sidis sur la koridoro almenaŭ duonhoron antaŭ ol mi trapasis. Due, se pli frue mia kara onklino prenis pagon de mi por horo kaj duono, nun iu knabino respondis la telefonon kaj diris, ke la pago estas nur por horo. Tiam mia grupo estis aŭ tri aŭ du homoj, kaj la kromaj 12.5 USD tute ne estis superfluaj. Kompreneble, mi estas ideologia, sed se mia edzino elĵetos min sur la straton, tiam estos neniu por instrui. Mi estis ankoraŭ senlabora tiam.

Kaj mi decidis iri al la biblioteko. Bibliotekoj luas mirindajn ĉambrojn tute senpage, sed estas unu kapto - vi ne povas fari komercajn agadojn. Eĉ bonfaradoj ne rajtas kolekti monon tie. Oni diris al mi, ke ĉi tio ne estas precipe kontrolata, la ĉefa afero estas ne preni monon ĉe la enirejo, sed mi vere ne ŝatas malobei la regulojn. Alia problemo estas, ke la ĉambroj estas ofte okupataj kaj estas malfacile fari planitajn klasojn samtempe en unu loko. Mi instruis en bibliotekoj dum la somero kaj frua vintro, mi devis elekti tiujn kun spaco, kaj finfine mi ŝanĝis kvin aŭ ses bibliotekojn. Tiam mi komencis rezervi lokon du monatojn anticipe, kaj eĉ tiam, mi sukcesis fari tion nur en unu malgranda biblioteko; la ceteraj regule ne havis lokojn por la bezonata tempo. Kaj tiam mi decidis fari komputilan klason hejme. Mi pendigis la tabulon, aĉetis duan tablon kaj kelkajn malnovajn ekranojn de la anonco. Ĉe la laboro, la firmao aĉetis al mi novan potencan tekkomputilon ĉar analizo en mia komputilo daŭris preskaŭ 24 horojn. Do, mi havis novan malnovan komputilon, malnovan malnovan komputilon, tekkomputilon, sur kiu mia etulo dispremis la ekranon, kaj antikvan netbook, sur kiu mi mem dispremis la ekranon. Mi konektis ilin ĉiujn al la monitoroj kaj instalis Linux Mint ĉie, krom la netbook, sur kiu mi instalis tre malpezan distribukompleton, ŝajnas, Pappy. Mi ankoraŭ havas malnovan novan tekkomputilon, aĉetitan por $200, mi konektis ĝin al la televidilo. Gravas ankaŭ, ke nia posedanto lastatempe ŝanĝis niajn fenestrojn, kaj anstataŭ la terura, disfalanta mizero en la ĉambro, ni nun havas novajn blankajn kadrojn. Mia edzino tenas la salonon, kuirejon kaj duan dormoĉambron por infanĝardeno, do la tuta etaĝo montriĝis pure pedagogia. Do, nun ĉio estas en ordo kun la premisoj, ni transiru al instruado.

Gratu

Mi komencas instrui la bazojn de programado per la lingvo Scratch. Ĉi tio estas lingvo, kiu uzas pretajn blokojn, iam inventitajn ĉe MIT. Plej multaj infanoj jam vidis Scratch en la lernejo, do ili prenas ĝin sufiĉe rapide. Estas pretaj programoj kaj lecionplanoj, sed mi tute ne ŝatas ilin. Kelkaj estas strangaj - kreu vian propran rakonton, ekzemple. La tuta programo konsistas el sennombraj blokoj say '<...>' for 2 seconds. Oni povas vidi, ke ĝi estis inventita de tre kreivaj individuoj, sed per ĉi tiu aliro vi povas instrui kiel skribi klasikan hindan spagetokodon. Ekde la komenco, mi parolas pri principoj kiel DRY.Aliaj kolektoj de taskoj estas sufiĉe bonaj, sed infanoj rapide ekkaptas la esencon kaj komencas fari ilin kiel maŝinpafilo. Kiel rezulto, ili faras en unu leciono tion, kion ili devus fari en kvin. Kaj serĉi kaj elekti taskojn prenas multan personan tempon. Ĝenerale, Scratch pli memorigas ne pri lingvo, sed pri IDE, kie vi nur bezonas memori kie klaki kaj kie serĉi kion. Tuj kiam studentoj pli-malpli komfortas, mi provas transdoni ilin al Python. Eĉ mia sepjara knabino skribas simplajn programojn en Python. Kion mi vidas kiel la avantaĝo de Scratch estas, ke ĝi enhavas bazajn konceptojn, kiuj estas lernitaj en ludema maniero. Ial, estas tre malfacile por ĉiuj, sen escepto, kompreni la ideon de variablo. Komence mi rapide trarigardis la temon kaj pluiris ĝis mi alfrontis la fakton, ke ili eĉ ne sciis kion fari pri ĝi. Nun mi pasigas multan tempon pri variabloj kaj konstante revenas al ili. Vi devas fari stultan marteladon. Mi ŝanĝas malsamajn variablojn sur la ekrano kaj igas ilin paroli siajn valorojn. Scratch ankaŭ havas kontrolstrukturojn kaj valorkontrolojn, kiel ekzemple while, forif en pitono. Ili estas sufiĉe facilaj, sed estas problemoj kun nestitaj bukloj. Mi provas doni plurajn taskojn kun nestita buklo, kaj por ke ĝia ago estu klara. Post tio mi transiras al funkcioj. Eĉ por plenkreskuloj, la koncepto de funkcio ne estas evidenta, kaj eĉ pli por infanoj. Mi longe daŭrigas pri tio, kio ĝenerale estas funkcio, mi parolas pri fabriko, kiu ricevas objektojn kiel enigaĵon kaj eldonas varojn, pri kuiristo, kiu faras manĝaĵojn el krudaj ingrediencoj. Poste ni faras programon "faru sandviĉon" kun produktoj, kaj tiam ni faras funkcion el ĝi, al kiu la produktoj estas transdonitaj kiel parametroj. Mi finas lerni funkciojn per Scratch.

Python

Kun python ĉio estas pli simpla. Estas bona libro Python por Infanoj, el kio mi instruas. Ĉio estas norma tie - linioj, ordo de operacioj, print(), input() ktp. Skribita en facila lingvo, kun humuro, infanoj ŝatas ĝin. Ĝi havas difekton komunan al multaj programaj libroj. Kiel en la fama ŝerco - kiel desegni strigon. Ovalo - cirklo - strigo. La transiro de simplaj konceptoj al sufiĉe kompleksaj konceptoj estas tro abrupta. Mi bezonas plurajn sesiojn por ligi la objekton al la punktometodo. Aliflanke, mi ne hastas, mi ripetas la samon diversmaniere ĝis almenaŭ iu bildo kuniĝas. Mi komencas kun variabloj kaj martelas ilin denove, ĉi-foje en Python. Variabloj estas ia malbeno.

Saĝa studento, kiu antaŭ kelkaj monatoj lerte klakis variablojn sur Skratch, aspektas kiel virŝafo ĉe la nova pordego kaj ne povas aldoni la X kun la Y, kiu estas klare skribita sur la tabulo linio supre. Ni ripetas! Kion havas variablo? Nomo kaj signifo! Kion signifas la egala signo? Tasko! Kiel ni kontrolas egalecon? Duobla egala signo! Kaj ni ripetas ĉi tion denove kaj denove ĝis kompleta kleriĝo. Poste ni transiras al funkcioj, kie la klarigo pri argumentoj prenas la plej longan. Nomitaj argumentoj, laŭ pozicio, defaŭlte, ktp. Ni ankoraŭ ne atingis klasojn en neniu grupo. Krom Python, ni studas popularajn algoritmojn de la libro, pli pri tio poste.

Fakte, trejnado

Mia leciono estas strukturita tiel: mi donas teorion dum duonhoro, testas scion kaj solidigas tion, kio estis lernita. Estas tempo por laboratorioj. Mi ofte lasas min kaj parolas ĝis unu horo, poste restas duonhoro por ekzercado. Kiam mi lernis python, mi spektis la kurson Algoritmoj kaj Datumaj Strukturoj Khiryanov el MIPT. Mi tre ŝatis lian prezenton kaj la strukturon de liaj prelegoj. Lia ideo estas jena: kadroj, sintakso, bibliotekoj malnoviĝas. Arkitekturo, teamlaboro, versio-kontrolsistemoj - ankoraŭ estas frue. Kiel rezulto, algoritmoj kaj datumstrukturoj restas, kiuj estas konataj delonge kaj ĉiam estos en simila formo. Mi mem memoras nur entjerojn el la instituto paskalo. Ĉar miaj studentoj estas plejparte junaj, de sep ĝis dek kvin jaroj, mi kredas ke estas pli grave por ilia estonteco meti la fundamentojn ol rapide verki platformludon en Python. Kvankam, ili volas pli platformon, kaj mi komprenas ilin. Mi donas al ili simplajn algoritmojn - bobelon, binaran serĉon en ordigita listo, inversan polan notacion uzante stakon, sed ni analizas ĉiun tre detale. Montriĝis, ke modernaj infanoj principe ne scias, kiel funkcias komputilo, mi ankaŭ diros al vi. Mi provas kunligi plurajn konceptojn en ĉiu prelego. Ekzemple, komputilo - memoro/procento - memoro farita el ĉeloj (mi lasos vin teni la memorpeceton, divenu kiom da ĉeloj estas) - ĉiu ĉelo estas kiel ampolo - estas du statoj - vera/malvera - kaj/aŭ - duuma/decimala - 8bit = 1 bajto - bajto = 256 opcioj - logika datumtipo sur unu bito - entjeroj sur unu bajto - float sur du bajtoj - string sur unu bajto - la plej granda nombro sur 64 bitoj - listo kaj opo el la antaŭaj tipoj. Mi rezervas, ke en vera komputilo ĉio estas iom malsama kaj la kvanto de memoro por ĉi tiuj datumtipoj estas malsama, sed la ĉefa afero estas, ke ni mem en la procezo kreas pli kompleksajn datumtipojn el pli simplaj. Datumtipoj estas eble la plej malfacila afero por memori. Tial mi komencas ĉiun lecionon per rapida varmigo - unu studento nomas la datumtipon, la sekva donas du ekzemplojn, kaj tiel plu ronde. Rezulte mi atingis, ke eĉ la plej junaj infanoj gaje krias - flosas! bulea! sep, kvin! pico, aŭto! Dum prelego mi senĉese tiras unue unu aŭ la alian, alie ili rapide ekprenas la nazon kaj rigardas la plafonon. Kaj la nivelo de ĉies scio devas esti kontrolita de tempo al tempo.

Miaj studentoj neniam ĉesas mirigi min, ambaŭ per sia stulteco kaj neatendita inteligenteco. Feliĉe, pli ofte kun inteligenteco.

Mi volis skribi pli, sed ĝi montriĝis nur folio. Mi volonte respondos ĉiujn demandojn. Mi bonvenigas ajnan kritikon ĉiumaniere, mi nur petas vin esti pli toleremaj unu de la alia en la komentoj. Ĉi tio estas bona artikolo.

fonto: www.habr.com

Aldoni komenton