Hvordan jeg underviser bĂžrn i Python.

Hvordan jeg underviser bĂžrn i Python.

Mit mit data og programmering pÄ R, men i denne artikel vil jeg gerne fortÊlle om min passion, som endda genererer en vis indkomst. Jeg har altid haft en interesse i at fortÊlle og forklare ting til venner, klassekammerater og studiekammerater. Jeg har ogsÄ altid haft let ved at finde fÊllesskab med bÞrn, jeg ved ikke hvorfor. Generelt mener jeg, at opdragelse og undervisning af bÞrn er en af de vigtigste opgaver af alle, og min kone er lÊrer. SÄ for omkring et Är siden gav jeg en annonce i en lokal gruppe pÄ Facebook, samlede en gruppe og begyndte at undervise i Scratch og Python en gang om ugen. Nu har jeg fem grupper, et klasselokale hjemme og individuelle lektioner. Hvordan jeg kom til denne livsstil, og hvordan jeg faktisk underviser bÞrn, vil jeg fortÊlle i denne artikel.

Jeg bor i Canada, i byen Calgary, provinsen Alberta, sÄ nogle punkter vil vÊre relateret til lokale forhold.

Lokale

At finde plads til undervisning var fra starten et hovedproblem. Jeg forsÞgte at lede efter kontorer og klassevÊrelser til leje pr. time, men ikke med stor succes. Vores universitet og SAIT - den lokale pendant til MIT - lejer klassevÊrelser bÄde med og uden computere. Priserne viste sig at vÊre ret urimelige, og det viste sig, at universitetet ikke tillader mindreÄrige, mens SAIT kun udlejer til sine egne studerende. SÄ denne mulighed faldt bort. Der er mange kontorcentre, som udlejer mÞdelokaler og kontorer pr. time, og der er hele firmaer, der tilbyder en masse muligheder fra fuld klasselokale til smÄ rum til fire personer. Jeg havde hÄb, da Alberta er en olieprovins, og vi har haft en lavkonjunktur siden 2014, og mange erhvervslokaler stÄr tomme. Jeg hÄbede forgÊves, priserne var sÄ hÞje, at jeg ikke kunne tro det i starten. Ejerne foretrÊkker at lade deres kontorer stÄ tomme og betale omkostningerne frem for at sÊnke priserne.

I was reminded at that moment that I diligently pay my taxes, and I wondered if our dear government, specifically the city of Calgary, had anything to offer. It turns out they do. The city has arenas for playing hockey and other ice sports, and in these arenas, there are rooms where tough ice warriors discuss strategies for future battles. In short, each arena has a couple of rooms with tables, chairs, a whiteboard, and even a sink with a kettle. The price is quite reasonable—25 Canadian dollars per hour. I initially decided to hold sessions for an hour and a half, so I set the price at $35 per person in a group of five to cover the rent and put something in my pocket. Overall, I enjoyed working in the arenas, as it solved one of my problems—most Russian speakers live in the south, while I live in the north of the city, so I chose an arena roughly in the middle. However, there were also inconveniences. Canadian bureaucracy is good and friendly but can, to put it mildly, be a bit cumbersome. There are no issues if you get used to the rhythm and plan ahead, but sometimes unpleasant moments arise. For example, you can easily choose the time and place on the city's website, reserve a room, but you can't pay there—not at all. They call you on the phone to take card payments. You can go to the office and pay in cash. There was a funny but not very pleasant moment when I was waiting for their call to pay for the second session, didn't receive it, and arrived at the office fifteen minutes late on the last day. I had to boldly approach the security and lie that the room was booked. We Canadians take people at their word, so they let me in without checking anything, but I wouldn’t have done that if people weren't already heading to the session.

SÄdan har jeg arbejdet om vinteren og forÄret, men sÄ skete der Êndringer, der blev den sidste drÄbe. For det fÞrste blev kontoret lukket for besÞgende, og de tilbÞd at tage betaling over telefonen om hjÞrnet. Jeg sad i mindst en halv time i gangen, fÞr jeg kom igennem. For det andet, hvis en sÞd dame tidligere tog imod min betaling for halvanden time, sÄ svarede der nu en ung pige, der sagde, at betalingen kun kunne ske for en time. PÄ det tidspunkt havde jeg en gruppe pÄ enten tre eller to personer, og de ekstra $12,5 var bestemt ikke overflÞdige. Jeg er selvfÞlgelig idealist, men hvis min kone smider mig ud pÄ gaden, sÄ bliver der ikke nogen til at undervise. Jeg var da ogsÄ uden arbejde.

SĂ„ jeg besluttede mig for at gĂ„ til biblioteket. Biblioteker udlejer vidunderlige rum helt gratis, men der er et problem – man mĂ„ ikke drive kommerciel aktivitet der. Selv velgĂžrende organisationer har ikke ret til at indsamle penge der. Jeg har hĂžrt, at det ikke bliver kontrolleret sĂ„ meget, det vigtigste er ikke at tage penge ved indgangen, men jeg bryder mig virkelig ikke om at overtrĂŠde reglerne. Endnu et problem er, at rummene ofte er optaget, og det er svĂŠrt at afholde kurser efter planen pĂ„ samme tid i Ă©t sted. Jeg har undervist pĂ„ biblioteker om sommeren og i begyndelsen af vinteren, og jeg mĂ„tte vĂŠlge dem, hvor der var plads, i sidste ende skiftede jeg mellem fem-seks biblioteker. SĂ„ begyndte jeg at booke plads to mĂ„neder i forvejen, og det lykkedes kun at gĂžre det i et lille bibliotek, mens der regelmĂŠssigt ikke var plads pĂ„ det nĂždvendige tidspunkt i de andre. Og sĂ„ besluttede jeg at lave et computerklasse derhjemme. Jeg hĂŠngte en tavle op, kĂžbte et andet bord og et par gamle monitore gennem annoncer. For arbejdet kĂžbte firmaet mig en ny kraftig bĂŠrbar, fordi min computer tog nĂŠsten 24 timer til analyser. I alt havde jeg en ny gammel computer, en gammel gammel computer, en bĂŠrbar, som min sĂžn knuste skĂŠrmen pĂ„, og en antik netbook, som jeg selv knuste skĂŠrmen pĂ„. Jeg tilsluttede dem alle til ĐŒĐŸĐœĐžŃ‚ore og installerede Linux Mint overalt, undtagen pĂ„ netbooken, som jeg satte et meget let distribution pĂ„, tror jeg, det var Puppy. Jeg har ogsĂ„ en gammel ny bĂŠrbar, kĂžbt for $200, som jeg tilsluttede til fjernsynet. Desuden, ikke uvĂŠsentligt, har vores landlady for nylig skiftet vores vinduer, og i rummet er der nu nye hvide rammer i stedet for den frygtelige, faldefĂŠrdige elendighed. Stuen, kĂžkkenet og det andet sovevĂŠrelse holder min kone som en bĂžrnehave, sĂ„ hele etagen er blevet rent pĂŠdagogisk. SĂ„ nu er rummet i orden, lad os gĂ„ videre til undervisingen.

Scratch

Jeg begyndte at undervise i grundlĂŠggende programmering med Scratch-sproget. Det er et sprog, der bruger fĂŠrdige blokke, som oprindeligt blev opfundet pĂ„ MIT. De fleste bĂžrn har allerede set Scratch i skolen, sĂ„ det lĂŠrers hurtigt. Der er fĂŠrdige programmer og undervisningsplaner, men jeg kan slet ikke lide dem. Nogle er mĂŠrkelige – skab din egen historie, for eksempel. Hele programmet bestĂ„r af utallige blokke. say '' for 2 seconds. Det er tydeligt, at det er blevet opfundet af meget kreative mennesker, men med denne tilgang kan man lĂŠre at skrive klassisk indisk spaghetti-kode. Jeg fortĂŠller fra starten om principper som D.R.Y. Andre opgavebĂžger er ganske gode, men bĂžrnene fanger hurtigt essensen og begynder at lĂžse dem hurtigt. I sidste ende laver de i Ă©n lektion, hvad de burde have lavet pĂ„ fem. Og det tager meget af min personlige tid at finde og udvĂŠlge opgaver. Generelt minder Scratch mere om en IDE end et sprog, hvor man bare skal huske, hvor man skal klikke og hvor man skal lede. SĂ„ snart eleverne er nogenlunde fortrolige, prĂžver jeg at overfĂžre dem til Python. Jeg har endda en syv-Ă„rig pige, der skriver simple programmer i Python. Hvor jeg ser vĂŠrdien i Scratch, er, at der er nogle grundlĂŠggende begreber, der bliver lĂŠrt pĂ„ en legende mĂ„de. Af en eller anden grund er alle uden undtagelse meget svĂŠre at forstĂ„ ideen om en variabel. I starten gik jeg hurtigt igennem dette emne og gik videre, indtil jeg indsĂ„, at de overhovedet ikke vidste, hvad de skulle gĂžre med det. Nu bruger jeg meget tid pĂ„ variabler og vender konstant tilbage til dem. Jeg mĂ„ arbejde med ren gentagelse. Jeg ĂŠndrer forskellige variabler pĂ„ skĂŠrmen og fĂ„r dem til at sige deres vĂŠrdi. Scratch har ogsĂ„ kontrolstrukturer og vĂŠrdikontroller, sĂ„som while, til eller if i Python. De er relativt lette at forstĂ„, men der kan vĂŠre problemer med indlejrede lĂžkker. Jeg prĂžver at give flere opgaver med indlejrede lĂžkker, sĂ„ handlingen er tydelig. Derefter gĂ„r jeg videre til funktioner. Selv for voksne kan idĂ©en om en funktion vĂŠre uklar, og for bĂžrn er det endnu svĂŠrere. Jeg taler lĂŠnge om, hvad en funktion egentlig er, jeg forklarer om en fabrik, der fĂ„r genstande pĂ„ indgangen og leverer varer, om en kok, der laver mad af rĂ„varer. Derefter laver vi et program, der 'laver en sandwich' med ingredienser, og derefter laver vi det om til en funktion, hvor ingredienserne gives som parametre. Jeg slutter med at lĂŠre funktioner, nĂ„r jeg er fĂŠrdig med Scratch.

Python

Med Python er det enklere. Der er en god bog, Python for Kids, som jeg bruger til at undervise. Det er alt sammen standard - strenge, rĂŠkkefĂžlge af operationer, print(), input() og osv. Den er skrevet i et letforstĂ„eligt sprog med humor, som bĂžrnene synes godt om. Den har en ulempe, der er fĂŠlles for mange bĂžger om programmering. Som i den kendte vittighed — hvordan man tegner en ugle. Oval — cirkel — ugle. Der er et alt for bratt skifte fra enkle begreber til ret komplekse koncepter. Jeg bruger flere lektioner bare pĂ„, at objekter forbindes med metoder ved hjĂŠlp af punktnotation. PĂ„ den anden side har jeg ikke travlt, jeg gentager det samme pĂ„ forskellige mĂ„der, indtil jeg danne et eller andet billede. Jeg starter med variable og gĂ„r igen igennem dem, nu i Python. Variable er en form for forbandelse.

Den kloge studerende, der for et par mÄneder siden snildt hÄndterede variable pÄ Scratch, kigger som et fÄr pÄ nye mÄl og kan ikke finde ud af at lÊgge x sammen med y, som tydeligt stÄr skrevet pÄ tavlen ovenfor. Vi gentager! Hvad er der med en variabel? Et navn og en vÊrdi! Hvad betyder lighedstegnet? Tildeling! Og hvordan tjekker vi lighed? Dobbelt lighedstegn! Og sÄ gentager vi igen og igen, indtil fuld oplysning opnÄs. Derefter gÄr vi videre til funktioner, hvor det tager lÊngst tid at forklare om argumenter. Navngivne argumenter, positioner, standard osv. Vi er ikke nÄet til klasser i nogen gruppe endnu. Udover Python fra bogen studerer vi populÊre algoritmer, om dette senere.

Egentlig undervisning

Min lektion er struktureret sĂ„dan, at jeg bruger en halv time pĂ„ teori, kontrollerer viden, og forstĂŠrker det, der er blevet lĂŠrt. En time — laboratorieĂžvelser. Jeg bliver ofte opslugt og holder foredrag i op til en time, sĂ„ der derfor kun er en halv time tilbage til praktik. Da jeg lĂŠrte Python, gennemgik jeg et kursus. Algoritmer og Datastrukturer Khiryanova fra MFTI. Jeg har virkelig nydt hans prĂŠsentation og strukturen i hans forelĂŠsninger. Hans idĂ© er, at rammer, syntaks og biblioteker bliver forĂŠldede. Arkitektur, teamwork, versionskontrolsystemer — det er stadig for tidligt. I sidste ende er det algoritmer og datastrukturer, som lĂŠnge har vĂŠret kendt og altid vil findes i en lignende form. Jeg selv kan kun huske integers fra institut-Pascal. Da mine elever hovedsageligt er unge, fra syv til femten Ă„r, mener jeg, at det er vigtigere at lĂŠgge grundlaget for deres fremtid end hastigt at skrive en platformer i Python. Selvom de hellere vil lave en platformer, og jeg forstĂ„r dem. Jeg giver dem enkle algoritmer — boblesortering, binĂŠr sĂžgning i en sorteret liste, omvendt polsk notation ved hjĂŠlp af en stak, men vi analyserer hver enkelt meget detaljeret. Det viste sig, at moderne bĂžrn i det hele taget ikke ved, hvordan en computer er bygget, sĂ„ det forklarer jeg ogsĂ„. Jeg forsĂžger at knytte flere begreber sammen i hver lektion. For eksempel, en computer — hukommelse/proces — hukommelse af celler (jeg lader dem holde et hukommelseschip, gĂŠt, hvor mange celler der er her) — hver celle som en lampe — har to tilstande — true/false — and/or — binĂŠr/decimal — 8bit = 1byte — byte = 256 muligheder — logisk datatypen pĂ„ Ă©t bit — heltal pĂ„ et byte — float pĂ„ to byte — string pĂ„ et byte — det stĂžrste tal pĂ„ 64 bit — en liste og tuple af de tidligere typer. Jeg understreger, at i en rigtig computer er det hele lidt anderledes og et andet antal hukommelse for disse datatyper, men det vigtigste er, at vi selv i processen skaber mere komplekse datatyper ud fra mere enkle. Datatyper er nok det svĂŠreste at huske. Derfor starter jeg hver lektion med en hurtig opvarmning — en elev nĂŠvner en datatyper, den nĂŠste giver to eksempler, og sĂ„ videre rundt. I sidste ende har jeg opnĂ„et, at selv de yngste bĂžrn ivrigt rĂ„ber — float! boolean! syv, fem! pizza, bil! Under forelĂŠsningen trĂŠkker jeg konstant i enten den ene eller den anden, ellers begynder de hurtigt at pille nĂŠse og kigge op i loftet. Og det er nĂždvendigt at tjekke hver enkelt persons viden indimellem.

Mine elever stopper aldrig med at overraske mig, bÄde med deres dumhed og uventede kvikhed. Heldigvis er kvikhed oftere.

Jeg ville skrive mere, men det blev allerede en lang tekst. Jeg svarer gerne pÄ alle spÞrgsmÄl. Al kritik er velkommen, men venligst vÊr tÄlmodige over for hinanden i kommentarerne. Dette er en venlig artikel.

Kilde: habr.com

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster