Hoe leer ek Python vir kinders?

Hoe leer ek Python vir kinders?

My hoofwerk hou verband met data en programmering in R, maar in hierdie artikel wil ek praat oor my stokperdjie, wat selfs 'n bietjie inkomste inbring. Ek was nog altyd daarin geïnteresseerd om dinge aan vriende, klasmaats en medestudente te vertel en te verduidelik. Dit was ook altyd vir my maklik om 'n gemeenskaplike taal met kinders te vind, ek weet nie hoekom nie. Oor die algemeen glo ek dat die grootmaak en onderrig van kinders een van die belangrikste aktiwiteite van almal is, en my vrou is 'n onderwyser. So, sowat 'n jaar gelede, het ek in 'n plaaslike Facebook-groep geadverteer, 'n groep gevorm en een keer 'n week vir Scratch en Python begin onderrig. Nou het ek vyf groepe, my eie klas by die huis en individuele lesse. Hoe ek op hierdie manier gekom het en presies hoe ek kinders leer, sal ek jou in hierdie artikel vertel.

Ek woon in Calgary, Alberta, Kanada, so sommige dinge sal plaaslike besonderhede wees.

Kamer

Die beskikbaarheid van ruimte om te oefen was van die begin af 'n groot bekommernis. Ek het probeer om kantore en klaskamers te huur per uur te soek, maar het nie veel sukses gehad nie. Ons universiteit en SAIT, die plaaslike ekwivalent van MIT, bied klasse met en sonder rekenaars aan. Die pryse daar het geblyk nie baie menslik te wees nie, en op die ou end het dit geblyk dat die universiteit nie minderjariges toelaat nie, en SAIT verhuur oor die algemeen net aan sy eie studente. So, hierdie opsie is uitgeskakel. Daar is baie kantoorsentrums wat vergaderlokale en kantore per uur verhuur, daar is hele maatskappye wat 'n klomp opsies bied van 'n vol klaskamer tot 'n kamer vir vier mense. Ek het hoop gehad, aangesien Alberta 'n olieprovinsie is, is ons sedert 2014 in 'n trae krisis, en baie sakeruimtes is leeg. Ek moes nie gehoop het die pryse was so verregaande dat ek dit eers nie geglo het nie. Dit is makliker vir eienaars om in leë kantore te sit en koste te betaal as om te stort.

Op daardie oomblik het ek onthou dat ek gereeld my belasting betaal, en of ons liewe staat, of liewer, die stad Calgary, iets daar het. Dit het geblyk dat daar werklik is. Die stad het arenas vir hokkie en ander figuurskaatsspeletjies, en in hierdie arenas is daar kamers waar geharde yskrygers strategieë vir toekomstige gevegte bespreek. Kortom, elke arena het 'n paar kamers met tafels, stoele, 'n wit bord en selfs 'n wasbak met 'n ketel. Die prys is nogal goddelik - 25 Kanadese tugriks per uur. Ek het aanvanklik besluit om klasse vir 'n uur en 'n half te doen, so ek het die prys vir 'n les op $35 per klas in 'n groep van vyf mense vasgestel, om te vergoed vir die huur, en om iets in my sak te steek. Oor die algemeen het ek daarvan gehou om in die arenas te oefen, dit het een van die probleme opgelos - die meeste Russiessprekende mense woon in die suide, en ek woon in die noorde van die stad, so ek het 'n arena ongeveer in die middel gekies. Maar daar was ook ongerieflikhede. Die Kanadese burokrasie is goed en vriendelik, maar kan, om dit sagkens te stel, ietwat lomp wees. Daar is geen probleme wanneer jy gewoond raak aan die ritme en vooraf beplan nie, maar soms duik onaangename oomblikke op. Byvoorbeeld, op die stad se webwerf kan jy gerieflik 'n tyd en plek kies en 'n kamer bespreek, maar jy kan op geen manier betaal nie. Hulle maak self die oproepe en aanvaar kaartbetalings. Jy kan na die kantoor gaan en kontant betaal. Daar was 'n snaakse maar nie baie aangename oomblik toe ek gewag het vir hul oproep om vir die tweede les te betaal nie, dit het nie gekom nie, en op die laaste dag was ek vyftien minute laat kantoor toe. Ek moes sekuriteit met 'n astrante gesig nader en lieg dat die kamer bespreek is. Ons Kanadese neem my woord daarvoor in; hulle het my rustig ingelaat en niks nagegaan nie, maar ek sou dit nie doen as mense nie reeds op pad klas toe was nie.

Dit is hoe ek deur die winter en lente gewerk het, en toe het veranderinge plaasgevind wat die laaste strooi was. Eerstens was die kantoor gesluit vir besoekers en hulle het aangebied om betalings per telefoon om die draai te aanvaar. Ek het ten minste 'n halfuur op die paadjie gesit voordat ek deurgekom het. Tweedens, as my liewe tannie vroeër vir 'n uur en 'n half by my betaal het, het een of ander meisie nou die foon geantwoord en gesê die betaling is net vir 'n uur. Op daardie tydstip was my groep of drie of twee mense, en die ekstra $12.5 was glad nie oorbodig nie. Natuurlik is ek ideologies, maar as my vrou my op straat uitgooi, dan sal daar niemand wees om te onderrig nie. Ek was toe nog werkloos.

En ek het besluit om na die biblioteek te gaan. Biblioteke verhuur wonderlike kamers heeltemal gratis, maar daar is een vangplek - jy kan nie kommersiële aktiwiteite doen nie. Selfs liefdadigheidsorganisasies word nie toegelaat om geld daar in te samel nie. Ek is meegedeel dat dit nie besonder beheer word nie, die belangrikste ding is om nie geld by die ingang te neem nie, maar ek hou regtig nie daarvan om die reëls te oortree nie. Nog 'n probleem is dat die kamers dikwels beset is en dit moeilik is om geskeduleerde klasse op een slag op een plek te hou. Ek het in die somer en vroeë winter in biblioteke onderrig, ek moes dié met spasie kies, en op die ou end het ek vyf of ses biblioteke verander. Toe begin ek twee maande vooruit 'n plek bespreek, en selfs toe het ek dit net in een klein biblioteek reggekry, die res het gereeld geen plekke vir die vereiste tyd gehad nie. En toe besluit ek om 'n rekenaarklas by die huis te maak. Ek het die bord neergesit, 'n tweede tafel en 'n paar ou monitors uit 'n advertensie gekoop. By die werk het die maatskappy vir my 'n nuwe kragtige skootrekenaar gekoop omdat ontleding op my rekenaar amper 24 uur geneem het. So, ek het 'n nuwe ou rekenaar gehad, 'n ou ou rekenaar, 'n skootrekenaar waarop my kleinding die skerm vergruis het, en 'n ou netbook waarop ek self die skerm verpletter het. Ek het hulle almal aan die monitors gekoppel en Linux Mint oral geïnstalleer, behalwe vir die netbook, waarop ek 'n baie ligte verspreidingskit geïnstalleer het, blyk dit, Pappy. Ek het nog 'n ou nuwe skootrekenaar, gekoop vir $200, ek het dit aan die TV gekoppel. Wat ook belangrik is, ons eienaar het onlangs ons vensters verander, en nou in plaas van die verskriklike, verbrokkelende ellende in die kamer, is daar nuwe wit rame. My vrou hou die sitkamer, kombuis en tweede slaapkamer vir 'n kleuterskool, so die hele vloer was bloot pedagogies. So, nou is alles reg met die perseel, kom ons gaan aan na onderrig.

Kras

Ek begin die basiese beginsels van programmering leer deur die Scratch-taal te gebruik. Dit is 'n taal wat klaargemaakte blokke gebruik, wat op 'n tyd by MIT uitgevind is. Die meeste kinders het Scratch al by die skool gesien, so hulle tel dit redelik vinnig op. Daar is klaargemaakte programme en lesplanne, maar ek hou glad nie daarvan nie. Sommige is vreemd – skep byvoorbeeld jou eie storie. Die hele program bestaan ​​uit ontelbare blokke say '<...>' for 2 seconds. Dit kan gesien word dat dit deur baie kreatiewe individue uitgevind is, maar met hierdie benadering kan jy leer hoe om klassieke Indiese spaghetti-kode te skryf. Van die begin af praat ek oor beginsels soos DRY Ander versamelings van take is redelik goed, maar kinders begryp vinnig die essensie en begin dit soos 'n masjiengeweer doen. Gevolglik doen hulle in een les wat hulle in vyf moes gedoen het. En om take te soek en te kies neem baie persoonlike tyd in beslag. Oor die algemeen herinner Scratch nie meer aan 'n taal nie, maar aan 'n IDE, waar jy net moet onthou waar om te klik en waar om te soek wat. Sodra studente min of meer gemaklik is, probeer ek hulle na Python oorplaas. Selfs my sewejarige meisie skryf eenvoudige programme in Python. Wat ek as die voordeel van Scratch sien, is dat dit basiese konsepte bevat wat op 'n speelse manier aangeleer word. Om een ​​of ander rede is dit baie moeilik vir almal, sonder uitsondering, om die idee van 'n veranderlike te verstaan. Ek het eers vinnig die onderwerp deurgekyk en aanbeweeg totdat ek voor die feit te staan ​​gekom het dat hulle nie eers geweet het wat om daaraan te doen nie. Nou bestee ek baie tyd aan veranderlikes en keer voortdurend daarna terug. Jy moet 'n dom hamerwerk doen. Ek verander verskillende veranderlikes op die skerm en laat hulle hul waardes uitspreek. Scratch het ook beheerstrukture en waardekontroles, soos while, for of if in luislang. Hulle is redelik maklik, maar daar is probleme met geneste lusse. Ek probeer om verskeie take met 'n geneste lus te gee, en sodat die aksie daarvan duidelik is. Daarna gaan ek oor na funksies. Selfs vir volwassenes is die konsep van funksie nie voor die hand liggend nie, en nog meer vir kinders. Ek gaan lank aan oor wat 'n funksie in die algemeen is, ek praat van 'n fabriek wat items as insette ontvang en goedere uitreik, oor 'n kok wat kos maak van rou bestanddele. Dan maak ons ​​'n "maak 'n toebroodjie"-program met produkte, en dan maak ons ​​'n funksie daarvan, waarna die produkte as parameters deurgegee word. Ek leer funksies klaar met Scratch.

python

Alles is eenvoudiger met Python. Daar is 'n goeie boek Python for Kids, waaruit ek leer. Alles is standaard daar - lyne, volgorde van operasies, print(), input() ens. Geskryf in maklike taal, met humor, kinders hou daarvan. Dit het 'n gebrek wat algemeen is vir baie programmeringsboeke. Soos in die beroemde grap - hoe om 'n uil te teken. Ovaal - sirkel - uil. Die oorgang van eenvoudige konsepte na taamlik komplekse konsepte is te skielik. Dit neem my verskeie sessies om die voorwerp aan die puntmetode te heg. Aan die ander kant, ek is nie haastig nie, ek herhaal dieselfde ding op verskillende maniere totdat ten minste een of ander prentjie bymekaar kom. Ek begin met veranderlikes en hamer dit weer uit, hierdie keer in Python. Veranderlikes is soort van 'n vloek.

'n Slim student, wat 'n paar maande gelede behendig veranderlikes op Skratch geklik het, lyk soos 'n ram by die nuwe hek en kan nie die X byvoeg met die Y, wat duidelik 'n reël hierbo op die bord geskryf is nie. Ons herhaal! Wat het 'n veranderlike? Naam en betekenis! Wat beteken die gelyke teken? Opdrag! Hoe kontroleer ons gelykheid? Dubbel gelyk teken! En ons herhaal dit weer en weer tot volkome verligting. Dan gaan ons oor na funksies, waar die verduideliking oor argumente die langste neem. Benoemde argumente, volgens posisie, by verstek, ensovoorts. Ons het nog nie klasse in enige groep bereik nie. Benewens Python, bestudeer ons gewilde algoritmes uit die boek, later meer daaroor.

Eintlik opleiding

My les is so gestruktureer: Ek gee teorie vir 'n halfuur, toets kennis, en konsolideer wat geleer is. Dit is tyd vir laboratoriums. Ek word dikwels meegevoer en praat tot 'n uur, dan is daar 'n halfuur oor vir oefening. Toe ek luislang geleer het, het ek die kursus gekyk Algoritmes en datastrukture Khiryanova van MIPT. Ek het baie van sy aanbieding en die struktuur van sy lesings gehou. Sy idee is dit: raamwerke, sintaksis, biblioteke raak verouderd. Argitektuur, spanwerk, weergawebeheerstelsels - dit is nog vroeg. As gevolg hiervan bly algoritmes en datastrukture oor wat lankal bekend is en altyd in 'n soortgelyke vorm sal wees. Ek onthou self net heelgetalle van die instituut pascal. Aangesien my studente meestal jonk is, van sewe tot vyftien jaar oud, glo ek dat dit belangriker is vir hul toekoms om die fondamente te lê as om vinnig 'n platformspeletjie in Python te skryf. Alhoewel, hulle wil 'n platform meer hê, en ek verstaan ​​hulle. Ek gee hulle eenvoudige algoritmes - 'n borrel, binêre soektog in 'n gesorteerde lys, omgekeerde Poolse notasie deur 'n stapel te gebruik, maar ons ontleed elkeen in groot detail. Dit het geblyk dat moderne kinders in beginsel nie weet hoe 'n rekenaar werk nie, ek sal jou ook vertel. Ek probeer om verskeie konsepte in elke lesing saam te snoer. Byvoorbeeld, 'n rekenaar - geheue/persentasie - geheue wat uit selle bestaan ​​(ek laat jou die geheueskyfie hou, raai hoeveel selle daar is) - elke sel is soos 'n gloeilamp - daar is twee toestande - waar/onwaar - en/of - binêre/desimale - 8bis = 1 greep - greep = 256 opsies - logiese datatipe op een bis - heelgetalle op een greep - float op twee grepe - string op een greep - die grootste getal op 64 bisse - 'n lys en 'n tupel van die vorige tipes. Ek maak 'n voorbehoud dat in 'n regte rekenaar alles ietwat anders is en die hoeveelheid geheue vir hierdie datatipes verskil, maar die belangrikste ding is dat ons self in die proses meer komplekse datatipes uit eenvoudiger skep. Datatipes is miskien die moeilikste ding om te onthou. Daarom begin ek elke les met ’n vinnige opwarming – een student noem die datatipe, die volgende gee twee voorbeelde, ensovoorts in ’n sirkel. Gevolglik het ek bereik dat selfs die jongste kinders vrolik skree – dryf! boolean! sewe, vyf! pizza, kar! Tydens 'n lesing trek ek gedurig eers die een of die ander, anders begin hulle vinnig neuse optrek en na die plafon kyk. En elkeen se kennisvlak moet elke nou en dan nagegaan word.

My studente hou nooit op om my te verstom nie, beide met hul onnoselheid en onverwagte intelligensie. Gelukkig meer dikwels met intelligensie.

Ek wou meer skryf, maar dit het geblyk net 'n blad te wees. Ek sal met graagte alle vrae beantwoord. Ek verwelkom enige kritiek op elke moontlike manier, ek vra julle net om meer verdraagsaam teenoor mekaar te wees in die kommentaar. Dit is 'n goeie artikel.

Bron: will.com

Voeg 'n opmerking