Hvordan jeg lĂŠrer barna Python

Hvordan jeg lĂŠrer barna Python

Min primÊre jobb handler om data og programmering pÄ R, men i denne artikkelen vil jeg fortelle om min hobby, som til og med gir en viss inntekt. Jeg har alltid vÊrt interessert i Ä fortelle og forklare noe til venner, klassekamerater og medstudenter. Jeg har ogsÄ alltid hatt lett for Ä finne felles sprÄk med barn, jeg vet ikke hvorfor. Generelt mener jeg at oppdragelse og utdanning av barn er en av de viktigste oppgavene av alle, og kona mi er ogsÄ pedagog. SÄ for omtrent ett Är siden la jeg ut en annonse i en lokal Facebook-gruppe, samlet en gruppe og begynte Ä lÊre bort Scratch og Python en gang i uken. NÄ har jeg fem grupper, mitt eget klasserom hjemme og individuelle timer. Hvordan jeg kom dit jeg er i dag og hvordan jeg underviser barn, vil jeg fortelle om i denne artikkelen.

Jeg bor i Canada, byen Calgary, provinsen Alberta, sÄ noen moment vil vÊre knyttet til lokale spesifikasjoner.

Rommet

Tilgjengeligheten av plass for undervisning har vĂŠrt et hovedproblem fra starten av. Jeg prĂžvde Ă„ lete etter kontorer og klasser til leie per time, men med lite hell. Universitetet vĂ„rt og SAIT — den lokale motparten til MIT — leier ut klasserom med og uten datamaskiner. Prisene der var ikke sĂŠrlig humane, og til slutt viste det seg at universitetet ikke slipper inn mindreĂ„rige, og SAIT leier kun ut til sine egne studenter. SĂ„ det alternativet falt bort. Det finnes mange kontorsentre som leier ut mĂžterom og kontorer per time, og det er hele selskaper som tilbyr mange alternativer, fra fullverdige klasser til smĂ„ rom for fire personer. Jeg hadde hĂ„p, ettersom Alberta er en oljeprovins, vi har hatt en langsom krise siden 2014, og mange nĂŠringslokaler stĂ„r tomme. Jeg skulle Ăžnske jeg ikke hadde hĂ„pet, prisene var sĂ„ skyhĂžye at jeg i begynnelsen ikke trodde mine egne Ăžyne. Eiere finner det enklere Ă„ la kontorene stĂ„ tomme og betale kostnadene enn Ă„ gi rabatter.

I recalled at that moment that I diligently pay my taxes, and wondered if our dear government, specifically the city of Calgary, has anything in store for me. It turned out that there is indeed quite a bit. The city has arenas for ice hockey and other figure skating activities, and within these arenas, there are rooms where tough ice warriors discuss strategies for upcoming battles. In short, each arena has a couple of rooms equipped with tables, chairs, a whiteboard, and even a sink with a kettle. The price is quite reasonable—25 Canadian dollars per hour. I initially planned to hold sessions lasting an hour and a half, so I set the price at $35 per person for a group of five, to cover the rental fee and hopefully pocket something for myself. Overall, I enjoyed working in the arenas, as it solved one of my issues—most Russian speakers live in the south, while I reside in the north of the city, so I chose an arena roughly in the middle. However, there were inconveniences. Canadian bureaucracy is nice and friendly, but, to put it mildly, can sometimes be a bit slow. There are no issues once you get accustomed to the pace and plan ahead, but sometimes unpleasant moments arise. For example, on the city's website, it’s easy to choose a time and place and reserve a room, but payment is a hassle. They call you to take payment over the phone. You can go to the office and pay in cash. There was a funny yet not so pleasant moment when I was waiting for their call to pay for the second session, didn’t get a call, and arrived at the office fifteen minutes late on the last day. I had to brazenly approach security and lie that the room was booked. We Canadians take people at their word, so they let me in without checking, but I wouldn’t do that if people weren’t already on their way to the session.

SÄ jeg har jobbet vinter og vÄr, og sÄ skjedde det endringer som ble det siste strÄet. For det fÞrste ble kontoret stengt for besÞkende, og de foreslo at man kunne betale over telefonen rundt hjÞrnet. Jeg satt i minst en halvtime i gangen fÞr jeg klarte Ä komme gjennom. For det andre, hvis en sÞt dame fÞr pleide Ä ta imot betaling for halvannen time, sÄ tok en eller annen jente opp telefonen nÄ og sa at betaling bare kunne gjÞres for én time. PÄ det tidspunktet hadde jeg gruppe som var enten tre eller to personer, og de ekstra $12,5 var absolutt ikke overflÞdige. Jeg er selvsagt engasjert, men hvis kona mi kaster meg ut pÄ gata, sÄ blir det ingen til Ä undervise. Da var jeg ogsÄ uten jobb.

Og eg bestemte meg for Ă„ dra til biblioteket. Bibliotekene tilbyr flotte rom helt gratis, men det er en hake — man kan ikke drive med kommersiell virksomhet der. Selv veldedige organisasjoner har ikke lov til Ă„ samle inn penger der. Jeg har fĂ„tt hĂžre at dette ikke blir kontrollert sĂ„ nĂžye, sĂ„ lenge man ikke tar inn penger der og da, men jeg liker veldig dĂ„rlig Ă„ bryte reglene. En annen utfordring er at rommene ofte er opptatt, sĂ„ det er vanskelig Ă„ holde timer etter timeplanen pĂ„ ett og samme sted. Jeg underviste pĂ„ bibliotekene om sommeren og i begynnelsen av vinteren, og mĂ„tte velge de som hadde plass, til slutt byttet jeg fem-seks biblioteker. Deretter begynte jeg Ă„ reservere plasser to mĂ„neder i forveien, men jeg fikk til dette bare i ett lite bibliotek; i de andre var det regelmessig fullt pĂ„ de tidene jeg trengte. Og da bestemte jeg meg for Ă„ lage et dataklasse hjemme. Jeg hengte opp en tavle, kjĂžpte et ekstra bord og et par gamle skjermer fra annonsene. Jobben min kjĂžpte en ny kraftig bĂŠrbar datamaskin til meg, fordi analysen tok nesten 24 timer pĂ„ min gamle datamaskin. SĂ„ jeg hadde en ny gammel datamaskin, en gammel gammel datamaskin, en laptop hvor skjermen ble knust av ungene mine, og en antikk nettbook, hvor skjermen ble knust av meg selv. Jeg koblet dem alle til skjermene og installerte Linux Mint over alt, unntatt nettbooken, hvor jeg satte inn en veldig lett distribusjon, som ser ut som Puppy. Jeg har ogsĂ„ en gammel ny laptop, kjĂžpt for $200, som jeg koblet til TV-en. En annen viktig ting er at vĂ„r vert nylig har byttet vinduer for oss, sĂ„ nĂ„ har vi nye hvite rammer i rommet i stedet for det forferdelige falleferdige elendigheten. Stuen, kjĂžkkenet og det andre soverommet er laget om til en barnehage av kona, sĂ„ hele etasje ble ren pedagogisk. SĂ„, nĂ„ er situasjonen med rommet bra, la oss gĂ„ videre til undervisningen.

Scratch

Jeg begynner Ă„ gi grunnleggende programmering med Scratch-sprĂ„ket. Dette er et sprĂ„k som bruker ferdige blokker, og som ble oppfunnet pĂ„ MIT. De fleste barna har sett Scratch pĂ„ skolen, sĂ„ det er relativt enkelt Ă„ lĂŠre. Det finnes ferdige programmer og undervisningsplaner, men jeg liker dem ikke i det hele tatt. Noen er merkelige — lag din egen historie, for eksempel. Hele programmet bestĂ„r av uendelige blokker. say '' for 2 seconds. Det er tydelig at dette er skapt av svĂŠrt kreative sinnelag, men med en slik tilnĂŠrming kan man lĂŠre Ă„ skrive klassisk indisk spaghetti-kode. Jeg begynner allerede fra starten Ă„ forklare prinsipper som D.R.Y. Andre oppgavesamlinger er ganske gode, men barna fanger raskt opp essensen og begynner Ă„ lĂžse oppgaver som om de kommer fra en maskingevĂŠr. Som et resultat gjĂžr de pĂ„ Ă©n time det de burde ha gjort pĂ„ fem. Det gĂ„r mye personlig tid til Ă„ lete etter og plukke ut oppgaver. Generelt minner Scratch mer om en IDE enn om et sprĂ„k, hvor man bare mĂ„ huske hvor man skal klikke og hvor man skal lete. SĂ„ snart elevene er noenlunde fortrolige, prĂžver jeg Ă„ overfĂžre dem til Python. Jeg har til og med en sju-Ă„ring som skriver enkle programmer i Python. Hvor jeg ser nytten av Scratch er i de grunnleggende konseptene som lĂŠres pĂ„ en lekende mĂ„te. Av en eller annen grunn er det utrolig vanskelig for alle Ă„ forstĂ„ ideen om en variabel. I begynnelsen fĂłr jeg raskt gjennom dette emnet og gikk videre, til jeg stĂžtte pĂ„ at de faktisk ikke visste hva de skulle gjĂžre med det. NĂ„ bruker jeg mye tid pĂ„ variabler og kommer stadig tilbake til dem. Jeg mĂ„ drive med kjedelig repetisjon. Jeg endrer forskjellige variabler pĂ„ skjermen og fĂ„r dem til Ă„ si verdiene sine. Scratch har ogsĂ„ kontrollstrukturer og verdikontroller, som while, for eller if i Python. De er lette Ă„ lĂŠre, men med innviklede slĂžyfer kan det oppstĂ„ problemer. Jeg prĂžver Ă„ gi flere oppgaver med innviklede slĂžyfer, slik at handlingene blir tydelige. Etter det gĂ„r jeg videre til funksjoner. Selv for voksne er begrepet funksjon ofte uklart, og for barn er det enda mer. Jeg bruker mye tid pĂ„ Ă„ forklare hva en funksjon egentlig er, snakker om et fabrikkanlegg som tar inn objekter og gir ut varer, om en kokk som lager mat av rĂ„varer. Deretter lager vi programmet 'lag en sandwich' med ingredienser, og sĂ„ gjĂžr vi det om til en funksjon der ingrediensene sendes inn som parametere. Jeg avslutter med Ă„ lĂŠre dem om funksjoner i Scratch.

Python

Med Python er alt enklere. Det finnes en god bok, Python for Kids, og den bruker jeg til Ă„ lĂŠre. Der er alt standard — strenger, rekkefĂžlge av operasjoner, print(), input() og og sĂ„ videre. Den er skrevet pĂ„ et lettforstĂ„elig sprĂ„k, med humor, som barna liker. Den har en svakhet som mange programmeringsbĂžker har. Som i den kjente vitsen — hvordan tegne en ugle. Oval — sirkel — ugle. Fra enkle konsepter er det et brĂ„tt hopp til ganske komplekse begreper. Jeg bruker flere timer pĂ„ Ă„ forklare at et objekt bindes opp med metoden ved hjelp av punktum. PĂ„ den annen side, jeg har ikke hastverk, jeg gjentar det samme pĂ„ forskjellige mĂ„ter til det dannes et bilde. Jeg begynner med variabler og hammerer pĂ„ dem, allerede i Python. Variabler er en eller annen form for forbannelse.

Den klÞktige studenten, som for et par mÄneder siden elegant klikket pÄ variabler i Scratch, ser pÄ det som et lam foran nye porter og kan ikke legge sammen x med y, som tydelig er skrevet pÄ tavlen ovenfor. La oss gjenta! Hva har en variabel? Navn og verdi! Hva betyr likhetstegnet? Tildeling! Og hvordan sjekker vi likhet? Dobbelt likhetstegn! Og slik gjentar vi igjen og igjen, inntil full klarhet. SÄ gÄr vi videre til funksjoner, der tar det lengst tid Ä forklare om argumenter. Navngitte argumenter, posisjonsargumenter, standard osv. Vi har ikke nÄdd klasser i noen gruppe ennÄ. I tillegg til Python i boken studerer vi populÊre algoritmer, mer om det senere.

Faktisk lĂŠring

Timene mine er lagt opp slik — i en halvtime gir jeg teori, sjekker kunnskap, forsterker det som er lĂŠrt. En time — labrer. Ofte lar jeg meg rive med og foreleser i en time, da er det bare en halvtime igjen til praktisk arbeid. Da jeg lĂŠrte Python, sĂ„ jeg pĂ„ et kurs. Algoritmer og Datastrukturer Khiryanova fra ĐœĐ€ĐąĐ˜. Jeg likte veldig godt mĂ„ten han presenterte og strukturen pĂ„ forelesningene. Hans idĂ© er at rammeverk, syntaks, biblioteker – vil bli foreldet. Arkitektur, teamarbeid, versjonskontrollsystemer – er fortsatt tidlig. Til slutt gjenstĂ„r algoritmer og datatyper, som har vĂŠrt kjent i lang tid og vil alltid vĂŠre i en lignende form. Jeg husker selv bare heltall fra institutt-Pascal. Siden jeg har elever, hovedsakelig unge, fra sju til femten Ă„r, mener jeg at det er viktigere Ă„ legge grunnlaget for deres fremtid enn Ă„ skrive en plattformspiller pĂ„ Python sĂ„ raskt som mulig. Selv om de helst vil ha en plattformspiller, og jeg forstĂ„r dem. Jeg gir dem enkle algoritmer – boblesortering, binĂŠr sĂžk i et sortert liste, omvendt polsk notasjon ved hjelp av stakk, men vi gĂ„r gjennom hver enkelt veldig grundig. Det har vist seg at moderne barn ikke vet i prinsippet hvordan en datamaskin fungerer, sĂ„ jeg forklarer ogsĂ„ det. Jeg prĂžver Ă„ knytte flere begreper sammen i hver forelesning. For eksempel, datamaskin – minne/prosessor – minne fra celler (lar dem holde pĂ„ et minnemodul, gjet hvor mange celler det er her) – hver celle som en lyspĂŠre – det er to tilstander – true/false – and/or – binĂŠr/desimal – 8 bit = 1 byte – byte = 256 varianter – logisk datatyper pĂ„ ett bit – heltall pĂ„ en byte. float pĂ„ to bytes – strengen pĂ„ en byte – det stĂžrste tallet pĂ„ 64 bits – liste og tuple fra de forrige typene. Jeg understreker at i en ekte datamaskin er alt litt annerledes og det er et annet minne for disse datatypene, men viktigst av alt er at vi i prosessen lager mer komplekse datatyper fra enklere. Datatyper er, muligens, det mest kompliserte Ă„ huske. Derfor begynner jeg hver time med en rask oppvarming – Ă©n elev nevner datatyper, den neste gir to eksempler, og sĂ„ videre pĂ„ rundgang. Til slutt har jeg fĂ„tt til at selv de yngste barna energisk roper – float! boolean! sju, fem! pizza, bil! Under forelesningen trekker jeg stadig i den ene eller den andre, ellers begynner de raskt Ă„ grave i nesen og se opp i taket. Og sĂ„ mĂ„ jeg ogsĂ„ sjekke kunnskapsnivĂ„et til hver.

Mine elever slutter aldri Ä overraske meg bÄde med sin dumskap og uventede klÞkt. Heldigvis, oftere med klÞkt.

Jeg Þnsket Ä skrive mer, men tekstmengden har allerede blitt stor. Jeg svarer gjerne pÄ alle spÞrsmÄl. Enhver kritikk tas imot med glede, men jeg ber om at vi er mer tÄlmodige med hverandre i kommentarfeltet. Dette er en vennlig artikkel.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster