Hvordan lærer jeg Python til barn?

Hvordan lærer jeg Python til barn?

Mitt hovedarbeid er knyttet til data og programmering på R, men i denne artikkelen vil jeg snakke om hobbyen min, som til og med gir litt inntekt. Jeg har alltid vært interessert i å fortelle og forklare noe til venner, klassekamerater og klassekamerater. Det var også alltid lett for meg å finne et felles språk med barn, jeg vet ikke hvorfor. Generelt tror jeg at det å oppdra og utdanne barn er en av de viktigste aktivitetene av alle, og min kone er lærer. Så for omtrent et år siden annonserte jeg i en lokal Facebook-gruppe, fikk en gruppe og begynte å undervise i scratch og python en gang i uken. Nå har jeg fem grupper, egen klasse i huset og enkelttimer. Hvordan jeg kom til et slikt liv og nøyaktig hvordan jeg lærer barn, vil jeg fortelle i denne artikkelen.

Jeg bor i Canada, Calgary, Alberta, så noen punkter vil være relatert til lokale detaljer.

Rommet

Å ha et sted å øve var et stort problem helt fra begynnelsen. Jeg prøvde å se etter kontorer og klasser å leie på timebasis, men ikke særlig vellykket. Universitetet vårt og SAIT - den lokale ekvivalenten til MIT - tar kurs med og uten datamaskiner. Prisene der viste seg å være lite humane, men til slutt viste det seg at universitetet ikke slipper mindreårige inn, og SAIT leier stort sett bare ut til sine studenter. Så det alternativet ble droppet. Det er mange kontorsentre som leier møterom og kontorer på timebasis, det er hele bedrifter som tilbyr en haug med alternativer fra en fullverdig klasse til et rom for fire personer. Jeg hadde forhåpninger, siden Alberta er en oljeprovins, har vi hatt en lavnivåkrise siden 2014, og mange forretningsområder står tomme. Jeg håpet forgjeves, prisene viste seg å være så høye at jeg ikke en gang trodde det først. Det er lettere for eiere å sitte på tomme kontorer og betale utgifter enn å dumpe.

I det øyeblikket husket jeg at jeg regelmessig betaler skatt, og om vår kjære stat, eller rettere sagt, byen Calgary, har noe der. Det viste seg at det virkelig er det. Byen har arenaer for å spille hockey og annen kunstløp, og på disse arenaene er det rom hvor tøffe iskrigere diskuterer strategier for fremtidige kamper. Kort sagt, hver arena har et par rom med bord, stoler, en hvit tavle og til og med en vask med vannkoker. Prisen er ganske guddommelig - 25 kanadiske tugriks per time. Jeg bestemte meg først for å holde kurs i halvannen time, så jeg satte prisen for en klasse på $35 per nese i en gruppe på fem personer for å kompensere for husleien, vel, for å putte noe i lommen. Generelt likte jeg å trene på arenaer, det løste et av problemene – de fleste russisktalende bor i sør, og jeg bor nord i byen, så jeg valgte arenaen omtrent i midten. Men det var også ulemper. Det kanadiske byråkratiet er godt og vennlig, men det kan mildt sagt gå litt tregt. Det er ingen problemer når du blir vant til rytmen og planlegger fremover, men noen ganger er det ubehagelige øyeblikk. For eksempel, på byens nettside, kan du enkelt velge tid og sted, reservere et rom, men du kan ikke betale på noen måte. De ringer og aksepterer kortbetalinger. Du kan gå til kontoret og betale kontant. Det var et morsomt, men ikke veldig hyggelig øyeblikk da jeg ventet på at de skulle ringe for å betale for den andre leksjonen, jeg ventet ikke, og den siste dagen var jeg femten minutter forsinket til kontoret. Jeg måtte nærme meg vaktene med frekt snuteparti og lyve at rommet var booket. Vi kanadiere tar vårt ord for det, de slapp meg rolig inn og sjekket ingenting, men jeg ville ikke gjort det hvis folk ikke allerede var på vei til timen.

Så jeg gjorde vinter og vår, og så ble det endringer som ble dråpen. Først ble kontoret stengt for besøkende og tilbød seg å ta imot betalinger på telefon rundt hjørnet. Jeg satt i midtgangen i minst en halvtime før jeg kom meg gjennom. For det andre, hvis før min kjære tante tok betaling fra meg for en og en halv time, nå tok en jente opp telefonen og sa at betalingen bare var for en time. På den tiden hadde jeg en gruppe på tre, deretter to personer, og de ekstra $ 12.5 var ikke overflødige i det hele tatt. Selvfølgelig er jeg ideologisk, men hvis kona sparker meg ut på gaten, så er det ingen som underviser. Da var jeg fortsatt arbeidsledig.

Og jeg bestemte meg for å gå til biblioteket. Bibliotekene leier ut flotte rom gratis, men det er én ting – du kan ikke drive kommersiell virksomhet. Selv veldedige organisasjoner har ikke lov til å samle inn penger der. Jeg ble fortalt at dette ikke er spesielt kontrollert, det viktigste er å ikke ta penger ved inngangen akkurat der, men jeg liker virkelig ikke å bryte reglene. Et annet problem er at rommene ofte er travle og det er vanskelig å planlegge undervisning samtidig på ett sted. Jeg underviste på bibliotekene om sommeren og tidlig vinter, jeg måtte velge de der det var plass, som et resultat byttet jeg fem-seks bibliotek. Så begynte jeg å bestille plass to måneder i forveien, og så viste det seg å bare gjøres i ett lite bibliotek, i resten var det regelmessig ingen steder til rett tid. Og så bestemte jeg meg for å lage en datatime hjemme. Jeg hengte opp brettet, kjøpte et ekstra bord og et par gamle monitorer på annonsen. På jobb kjøpte selskapet meg en ny kraftig bærbar datamaskin, fordi analysen tok nesten 24 timer på datamaskinen min. Totalt hadde jeg en ny gammel datamaskin, en gammel gammel datamaskin, en bærbar PC som fikk min lille skjerm knust og en eldgammel netbook som jeg knuste skjermen på selv. Jeg koblet dem alle til skjermer og installerte Linux mint overalt, bortsett fra netbooken, som jeg installerte en veldig lett distribusjon på, det virker som det er rart. Jeg har også en gammel ny laptop kjøpt for $200, jeg koblet den til TVen. Enda viktigere, verten vår byttet nylig vinduene for oss, og rommet har nå nye hvite rammer i stedet for den forferdelige kollapsede elendigheten. Kona beholder stue, kjøkken og soverom nummer to som barnehage, så hele etasjen viste seg å være rent pedagogisk. Så, nå er alt bra med rommet, la oss gå direkte til undervisningen.

Ripe

Jeg begynner å gi det grunnleggende om programmering med Scratch-språket. Dette er et språk som bruker ferdige blokker, oppfunnet på den tiden ved MIT. De fleste barna har allerede sett riper på skolen, så de blir raskt vant til det. Det finnes ferdige programmer og timeplaner, men jeg liker dem ikke i det hele tatt. Noen rare - lag din egen historie, for eksempel. Hele programmet består av utallige blokker say '<...>' for 2 seconds. Det kan sees at det ble oppfunnet av veldig kreative individer, men med denne tilnærmingen kan du lære hvordan du skriver en klassisk indisk spaghettikode. Helt fra starten snakker jeg om prinsipper som DRY.Andre samlinger av oppgaver er ganske bra, men barna kommer raskt til poenget og begynner å lage dem som et maskingevær. Som et resultat gjør de i én leksjon det de burde ha gjort på fem. Og det tar mye personlig tid å søke og velge oppgaver. Generelt er scratch mer som ikke et språk, men en IDE, hvor du bare trenger å huske hvor du skal klikke og hvor du skal lete etter noe. Så snart elevene er mer eller mindre mestret, prøver jeg å oversette dem til pyton. Jeg har til og med en syv år gammel jente som skriver enkle programmer i python. Det jeg ser på som fordelen med scratch er at den har slike grunnleggende konsepter som læres på en leken måte. Av en eller annen grunn er det veldig vanskelig for alle uten unntak å forstå ideen om en variabel. Først løp jeg raskt gjennom dette emnet og gikk videre til jeg kom over det faktum at de ikke visste hva de skulle gjøre med det i det hele tatt. Nå bruker jeg mye tid på variabler og går stadig tilbake til dem. Du må gjøre dum swotting. Jeg endrer forskjellige variabler på skjermen og får dem til å si verdien. Scratch har også kontrollstrukturer og verdisjekker, som f.eks while, for eller if i python. De gis ganske enkelt, bare det er problemer med nestede løkker. Jeg prøver å gi flere oppgaver med en nestet løkke, og slik at handlingen er visuell. Etter det går jeg videre til funksjoner. Selv for voksne er funksjonsbegrepet ikke åpenbart, og enda mer for barn. Lenge korsfester jeg hva en funksjon er generelt, snakker om en fabrikk som tar imot gjenstander som innspill, men gir ut varer, om en kokk som lager mat av råvarer. Deretter lager vi et program for å "lage en sandwich" med produkter, og så lager vi en funksjon ut av det, som produkter sendes til som parametere. På studiet av funksjoner avslutter jeg med scratch.

python

Det er lettere med python. Det er en god bok som heter Python for Kids, og jeg bruker den til å undervise. Alt er standard der - linjer, operasjonsrekkefølge, print(), input() etc. Skrevet i lett språk, med humor, barn liker det. Den har en feil som er felles for mange programmeringsbøker. Som i en kjent vits - hvordan tegne en ugle. Oval - sirkel - ugle. Fra enkle begreper for brå overgang til ganske komplekse begreper. Det tar meg flere økter å feste et objekt til prikkmetoden. På den annen side har jeg ikke hastverk, jeg gjentar det samme på forskjellige måter til det i det minste dukker opp et slags bilde. Jeg starter med variabler og hamrer dem igjen, denne gangen i python. Variabler er en forbannelse.

En kvikk student, som for et par måneder siden behendig klikket variablene på ripen, ser ut som en ram ved en ny port og kan ikke legge til X-en med Y-en, som er tydelig skrevet på tavlen i linjen over. Vi gjentar! Hva har en variabel? Navn og betydning! Hva betyr likhetstegnet? Oppdrag! Hvordan sjekker vi likestilling? Dobbelt likhetstegn! Og så gjentar vi igjen og igjen, inntil fullstendig opplysning. Deretter går vi over til funksjoner, der forklaringen om argumenter tar lengst tid. Navngitte argumenter, etter posisjon, som standard, og så videre. Vi har ikke kommet oss til timen ennå. I tillegg til python studerer vi populære algoritmer fra boken, mer om det senere.

Egentlig trening

Leksjonen min er arrangert slik - i en halvtime gir jeg teori, sjekker kunnskap, konsoliderer det jeg har lært. Time - laboratorier. Ofte lar jeg meg rive med og sender opp til en time, så gjenstår det henholdsvis en halvtime til trening. Da jeg lærte python, anmeldte jeg kurset Algoritmer og datastrukturer Khiryanova fra MIPT. Jeg likte godt presentasjonen hans og strukturen på forelesningene. Tanken hans er at rammer, syntaks, biblioteker blir foreldet. Arkitektur, teamarbeid, versjonskontrollsystemer – det er for tidlig. Som et resultat er det algoritmer og datastrukturer som lenge har vært kjent og alltid vil være i lignende form. Selv husker jeg bare heltall fra instituttet Pascal. Siden studentene mine stort sett er unge, fra syv til femten år, tror jeg at det er viktigere for fremtiden deres å legge grunnlaget enn å raskt skrive en plattformspiller i python. Selv om de vil ha en plattformspiller mer, og jeg forstår dem. Jeg gir dem enkle algoritmer - en boble, et binært søk i en sortert liste, omvendt polsk notasjon ved hjelp av en stabel, men vi analyserer hver enkelt i detalj. Det viste seg at moderne barn i prinsippet ikke vet hvordan en datamaskin fungerer, sier jeg deg også. Jeg prøver å knytte flere begreper sammen i hver forelesning. For eksempel, en datamaskin - minne / prosessor - minne fra celler (la meg holde en minneplate, gjett hvor mange celler det er her) - hver celle er som en lyspære - det er to tilstander - sant / usant - og / eller - binær / desimal - 8bit = 1byte - byte = 256 alternativer - Boolsk datatype per bit - Heltall per byte - float på to byte string på en byte - det største tallet på 64 biter - en liste og en tuppel fra de tidligere typene. Jeg tar forbehold om at i en ekte datamaskin er alt noe annerledes og en annen mengde minne for disse datatypene, men hovedsaken er at vi selv lager mer komplekse datatyper fra enklere i prosessen. Datatyper er kanskje det vanskeligste å huske. Derfor starter jeg hver leksjon med en rask oppvarming – en elev navngir datatypen, den neste gir to eksempler, og så videre i en sirkel. Som et resultat oppnådde jeg at selv de minste barna muntert roper – flyt! boolsk! sju, fem! pizza, bil! Under forelesningen drar jeg hele tiden i det ene eller det andre, ellers begynner de fort å plukke nese og se i taket. Ja, og kunnskapsnivået til hver enkelt bør sjekkes mellom gangene.

Elevene mine slutter aldri å forbløffe meg både med sin dumhet og uventede kvikk. Oppfinnsomhet, heldigvis, oftere.

Jeg ville skrive mer, men likevel ble arket. Jeg vil svare på alle spørsmål med glede. Jeg tar imot all kritikk på alle mulige måter, bare en forespørsel - om å være mer tolerante overfor hverandre i kommentarfeltet. Dette er en god artikkel.

Kilde: www.habr.com

Legg til en kommentar