
Mitt huvudsakliga arbete handlar om data och programmering pÄ R, men i denna artikel vill jag berÀtta om mitt intresse som faktiskt ger en viss inkomst. Jag har alltid varit intresserad av att berÀtta och förklara saker för mina vÀnner, klasskamrater och studiekamrater. Jag har ocksÄ alltid haft lÀtt för att kommunicera med barn, jag vet inte varför. Generellt anser jag att uppfostran och utbildning av barn Àr en av de viktigaste sysselsÀttningarna av alla, och min fru Àr lÀrare. För ungefÀr ett Är sedan lade jag ut en annons i en lokal Facebook-grupp, samlade en grupp och började undervisa i Scratch och Python en gÄng i veckan. Nu har jag fem grupper, ett eget klassrum hemma och individuella lektioner. Hur jag kommit hit och hur jag undervisar barnen kommer jag att berÀtta om i denna artikel.
Jag bor i Kanada, i staden Calgary, provinsen Alberta, sÄ vissa aspekter kommer att vara relaterade till de lokala förhÄllandena.
Lokal
TillgĂ„ngen till undervisningslokaler har varit det största problemet frĂ„n början. Jag försökte leta efter kontor och klassrum att hyra per timme, men utan större framgĂ„ng. VĂ„rt universitet och SAIT â den lokala motsvarigheten till MIT â erbjuder klasser med och utan datorer. Priserna dĂ€r visade sig vara ganska orimliga, och det visade sig dessutom att universitetet inte tillĂ„ter minderĂ„riga, och SAIT hyr endast ut till sina egna studenter. SĂ„ den möjligheten föll bort. Det finns mĂ„nga kontorscentra som hyr ut mötesrum och kontor per timme, det finns hela företag som erbjuder massor av alternativ, frĂ„n fullt utrustade klassrum till smĂ„ rum för fyra personer. Jag hade hoppats, eftersom Alberta Ă€r en oljeprovins, vi har haft en lĂ„ngvarig kris sedan 2014, och mĂ„nga affĂ€rslokaler stĂ„r tomma. Jag hoppades förgĂ€ves, priserna visade sig vara sĂ„ absurda att jag först inte kunde tro det. För Ă€garna Ă€r det enklare att lĂ„ta kontoren stĂ„ tomma och betala sina kostnader Ă€n att dumpa priserna.
Vid det hĂ€r laget kom jag att tĂ€nka pĂ„ att jag betalar skatt i tid och undrade om det finns nĂ„got som vĂ„r kĂ€ra regering, eller snarare staden Calgary, kan erbjuda. Det visade sig att det faktiskt finns. Staden har arenor för att spela hockey och andra konstĂ„kningsaktiviteter, och i dessa arenor finns det rum dĂ€r strĂ€nga iskrigare diskuterar strategier för framtida strider. Kort sagt, varje arena har ett par rum med bord, stolar, en vit skrivtavla och till och med en disk med en vattenkokare. Priset Ă€r ganska rimligt â 25 kanadensiska dolla per timme. Jag beslutade mig frĂ„n början för att ha lektioner som var en och en halv timme lĂ„nga, sĂ„ jag satte priset för en lektion till 35 dollar per person i en grupp pĂ„ fem, för att kunna tĂ€cka hyreskostnaden och lĂ€gga nĂ„got i egen ficka. Totalt sett trivs jag med att hĂ„lla lektioner i arenorna, det löste ett av problemen â de flesta rysktalande bor pĂ„ södra sidan, medan jag bor pĂ„ norra sidan av staden, sĂ„ jag valde en arena ungefĂ€r mitt emellan. Men det fanns ocksĂ„ vissa besvĂ€r. Kanadensisk byrĂ„krati Ă€r bra och vĂ€nlig, men, för att sĂ€ga det lite mjukare, kan den ibland vara ganska trögrörlig. Det Ă€r inga problem nĂ€r man vĂ€njer sig vid rytmen och planerar i förvĂ€g, men ibland dyker obehagliga situationer upp. Till exempel kan man enkelt vĂ€lja tid och plats pĂ„ stadens webbplats, reservera ett rum, men det gĂ„r inte att betala pĂ„ nĂ€tet, pĂ„ nĂ„got sĂ€tt. De ringer sjĂ€lva och tar emot betalningar via telefon. Man kan ocksĂ„ Ă„ka till kontoret och betala kontant. Det var ett roligt men inte sĂ„ trevligt ögonblick nĂ€r jag vĂ€ntade pĂ„ deras samtal för att betala för den andra lektionen, men jag fick inget samtal, och kom för sent till kontoret med femton minuter sista dagen. Jag var tvungen att gĂ„ fram till sĂ€kerheten med en försynt min och ljuga om att rummet var reserverat. Vi kanadensare tror pĂ„ ordet, de slĂ€ppte in mig utan att kontrollera nĂ„got, men jag skulle inte ha gjort sĂ„ om inte folk redan var pĂ„ vĂ€g till lektionen.
SÄ jag höll pÄ hela vintern och vÄren, men sedan kom det förÀndringar som blev droppen. För det första stÀngde de kontoret för besökare och erbjöd att ta emot betalningar per telefon runt hörnet. Jag satt i minst en halvtimme i gÄngpassagen innan jag kom fram. För det andra, om en snÀll tant tidigare tog emot betalningen för en och en halv timme, sÄ svarade det nu en tjej som meddelade att betalningen endast gÀllde en timme. Vid det laget hade jag en grupp pÄ tre, ibland tvÄ personer, och de extra 12,5 dollarna var verkligen inte överflödiga. Jag Àr sjÀlvklart engagerad, men om min fru slÀnger ut mig pÄ gatan, sÄ finns det ingen kvar att undervisa. DÄ var jag dessutom utan jobb.
Jag bestĂ€mde mig för att gĂ„ till biblioteket. Bibliotek erbjuder fantastiska rum helt gratis, men det finns en hake â man fĂ„r inte bedriva kommersiell verksamhet dĂ€r. Ăven ideella organisationer fĂ„r inte samla in pengar dĂ€r. Jag hörde att det inte kontrolleras sĂ„ noga, det viktigaste Ă€r att man inte tar betalt vid ingĂ„ngen, men jag gillar inte att bryta mot regler. En annan problematik Ă€r att rummen ofta Ă€r upptagna och det Ă€r svĂ„rt att hĂ„lla kurser enligt ett schema pĂ„ samma tid och plats. Jag undervisade pĂ„ bibliotek under sommaren och i början av vintern, och jag fick vĂ€lja de som hade lediga rum, i slutĂ€ndan bytte jag mellan fem och sex bibliotek. Sen började jag boka plats tvĂ„ mĂ„nader i förvĂ€g, och det lyckades jag bara göra i ett litet bibliotek, i de andra fanns det regelbundet inga platser vid den tidpunkten. DĂ„ bestĂ€mde jag mig för att skapa en datorklass hemma. Jag hĂ€ngde upp en whiteboard, köpte ett andra bord och nĂ„gra gamla skĂ€rmar via annonser. Företaget köpte en ny kraftfull bĂ€rbar dator till mig, eftersom min dator tog nĂ€stan 24 timmar att analysera. SĂ„ nu hade jag en ny gammal dator, en gammal gammal dator, en laptop vars skĂ€rm min son krossade och en gammal netbook som jag sjĂ€lv hade krossat. Jag kopplade dem alla till skĂ€rmarna och installerade Linux Mint överallt, förutom pĂ„ netbooken, dĂ€r jag installerade en mycket lĂ€tt distribution, tror att det var Puppy. Jag har ocksĂ„ en gammal ny laptop som jag köpte för $200, jag kopplade den till TV:n. Dessutom har vĂ„r hyresvĂ€rd nyligen bytt fönstren, sĂ„ nu har vi nya vita ramar istĂ€llet för det fruktansvĂ€rda trasiga elĂ€ndet. Vardagsrummet, köket och det andra sovrummet hĂ„ller min fru som barntrĂ€dgĂ„rd, sĂ„ hela vĂ„ningen blev helt pedagogisk. SĂ„ nu Ă€r utrymmet bra, lĂ„t oss gĂ„ vidare till undervisningen.
Scratch
Jag börjar ge grunderna i programmering med sprĂ„ket Scratch. Det Ă€r ett sprĂ„k som anvĂ€nder fĂ€rdiga block, som utvecklades en gĂ„ng vid MIT. MĂ„nga barn har redan sett Scratch i skolan, sĂ„ de lĂ€r sig ganska snabbt. Det finns fĂ€rdiga program och lektionsplaner, men jag tycker inte om dem alls. Vissa Ă€r konstiga â skapa din egen historia, till exempel. Hela programmet bestĂ„r av otaliga block. say '' for 2 seconds. Det Ă€r tydligt att det har skapats av mycket kreativa personer, men med en sĂ„dan metod kan man lĂ€ra sig att skriva klassisk indisk spaghetti-kod. Jag börjar med en gĂ„ng att berĂ€tta om principer som D.R.Y. Andra uppgiftssamlingar Ă€r helt okej, men barnen förstĂ„r snabbt grunderna och börjar utföra dem som ur ett maskingevĂ€r. I slutĂ€ndan gör de pĂ„ en lektion vad de borde ha gjort pĂ„ fem. Och att söka och vĂ€lja uppgifter tar mycket personlig tid. Ăverhuvudtaget pĂ„minner Scratch mer om en IDE, dĂ€r man bara mĂ„ste memorera vart man ska klicka och var man ska leta. SĂ„ snart eleverna mer eller mindre behĂ€rskar det, försöker jag överföra dem till Python. Jag har till och med en sjuĂ„ring som skriver enkla program pĂ„ Python. DĂ€r jag ser nyttan med Scratch Ă€r de grundlĂ€ggande begreppen som lĂ€rs in pĂ„ ett lekfullt sĂ€tt. Av nĂ„gon anledning Ă€r det extremt svĂ„rt för alla att förstĂ„ idĂ©n med variabel. Jag skyndade mig förbi det Ă€mnet i början och gick vidare, tills jag insĂ„g att de överhuvudtaget inte visste vad de skulle göra med det. Nu Ă€gnar jag mycket tid Ă„t variabler och Ă„terkommer stĂ€ndigt till dem. Jag Ă€r tvungen att Ă€gna mig Ă„t det tröga repetitiva. Jag Ă€ndrar olika variabler pĂ„ skĂ€rmen och fĂ„r dem att sĂ€ga sina vĂ€rden. Scratch har ocksĂ„ kontrollstrukturer och vĂ€rdeprövningar, typ while, for eller if i Python. De introduceras ganska enkelt, men med inbĂ€ddade loopar kan det uppstĂ„ problem. Jag försöker ge flera uppgifter med en inbĂ€ddad loop, och sĂ„ att dess handling Ă€r tydlig. Efter detta gĂ„r jag vidare till funktioner. Ăven för vuxna kan begreppet funktion vara oklart, och för barn Ă€nnu mer. Jag pratar lĂ€nge om vad en funktion Ă€r, berĂ€ttar om en fabrik som tar emot objekt och levererar varor, om en kock som gör mat av rĂ„varor. Sedan gör vi ett program 'gör en smörgĂ„s' med ingredienserna, och sedan gör vi det till en funktion dĂ€r ingredienserna skickas som parametrar. Med funktionen avslutar jag med Scratch.
Python
Det Ă€r enklare med Python. Det finns en bra bok, Python for Kids, som jag anvĂ€nder för att lĂ€ra ut. DĂ€r Ă€r allt standard â strĂ€ngar, operatorprioritet, print(), input() och sĂ„ vidare. Skriven pĂ„ ett lĂ€ttförstĂ„eligt sprĂ„k med humor, barnen gillar det. Den har en nackdel som mĂ„nga programmeringsböcker har. Som i det kĂ€nda skĂ€mtet - hur man ritar en uggla. Oval - cirkel - uggla. ĂvergĂ„ngen frĂ„n enkla begrepp till ganska komplexa koncept Ă€r för abrupt. Jag lĂ€gger flera lektioner pĂ„ att förklara att objekt kopplas ihop med metoder med en punkt. Ă
andra sidan, jag har inget brÄttom, jag upprepar samma sak pÄ olika sÀtt tills en bild börjar klarna. Jag börjar med variabler och fortsÀtter att bearbeta dem, nu pÄ Python. Variabler Àr som en förbannelse.
Den smarta studenten, som för nÄgra mÄnader sedan snabbt knÀppte variabler pÄ Scratch, tittar nu som en fÄr pÄ nya dörrar och kan inte rÀkna ut x med y, som uppenbarligen Àr skrivna pÄ tavlan ovanför. LÄt oss repetera! Vad har en variabel? Ett namn och ett vÀrde! Vad betyder likhetstecknet? Tilldelning! Hur kontrollerar vi likhet? Med dubbelt likhetstecken! Och sÄ fortsÀtter vi att repetera igen och igen, tills full upplysning. Sedan gÄr vi vidare till funktioner, dÀr det tar lÀngst tid att förklara argument. Namngivna argument, positionsbaserade, standard och sÄ vidare. I ingen grupp har vi nÄtt klasser Ànnu. Förutom Python frÄn boken studerar vi populÀra algoritmer, mer om det senare.
Egentligen utbildning
Min lektion Ă€r organiserad sĂ„ hĂ€r - en halvtimme ger jag teori, kontrollerar kunskapen, förstĂ€rker det som har gĂ„tts igenom. En timme - labbar. Ofta blir jag entusiastisk och pratar i upp till en timme, vilket lĂ€mnar en halvtimme för praktiska övningar. NĂ€r jag lĂ€rde mig Python, gick jag igenom en kurs Algoritmer och datastrukturer Khiryanova frĂ„n MIPT. Jag gillade verkligen hans presentation och strukturen av förelĂ€sningarna. Hans idĂ© Ă€r att ramverk, syntax och bibliotek blir förĂ„ldrade. Arkitektur, samarbete och versionskontroll Ă€r fortfarande för tidigt. I slutĂ€ndan Ă€r det algoritmer och datatyper som har varit kĂ€nda lĂ€nge och alltid kommer att vara i liknande form. Jag sjĂ€lv kommer bara ihĂ„g heltal frĂ„n institutets Pascal. Eftersom mina elever Ă€r mestadels unga, frĂ„n sju till femton Ă„r gamla, anser jag att det Ă€r viktigare att lĂ€gga grunden för deras framtid Ă€n att snabbt skriva en plattformsspel i Python. Ăven om de hellre vill ha ett plattformsspel, och jag förstĂ„r dem. Jag ger dem enkla algoritmer â bubbelsortering, binĂ€r sökning i en sorterad lista, omvĂ€nd polsk notation med hjĂ€lp av en stack, men vi gĂ„r igenom varje noggrant. Det visade sig att moderna barn i princip inte vet hur en dator fungerar, sĂ„ jag berĂ€ttar ocksĂ„ om det. Jag försöker koppla ihop flera begrepp i varje förelĂ€sning. Till exempel, dator â minne/procces â minne av celler (jag lĂ„ter dem hĂ„lla en minnesmodul, gissa hur mĂ„nga celler som finns hĂ€r) â varje cell som en glödlampa â har tvĂ„ tillstĂ„nd â true/false â and/or â binĂ€r/decimal â 8 bit = 1 byte â byte = 256 alternativ â logisk datatyp pĂ„ en bit â heltal pĂ„ en byte â float pĂ„ tvĂ„ byte â strĂ€ng pĂ„ en byte â det största talet pĂ„ 64 bitar â lista och tuple frĂ„n de föregĂ„ende typerna. Jag pĂ„pekar att pĂ„ en riktig dator Ă€r allt nĂ„got annorlunda och antalet minnen för dessa datatyper varierar, men det viktigaste Ă€r att vi i processen sjĂ€lva skapar mer komplexa datatyper frĂ„n enklare. Datatyper Ă€r nog det svĂ„raste att komma ihĂ„g. DĂ€rför börjar jag varje lektion med en snabb uppvĂ€rmning â en elev nĂ€mner en datatyp, nĂ€sta ger tvĂ„ exempel, och sĂ„ vidare i cirkel. I slutĂ€ndan har jag uppnĂ„tt att Ă€ven de yngsta barnen glatt skriker â float! boolean! sju, fem! pizza, bil! Under lektionen drar jag stĂ€ndigt den ena eller den andra, annars börjar de snabbt pilla sig i nĂ€san och titta i taket. Faktiskt mĂ„ste jag kolla varje persons kunskapsnivĂ„ vid tillfĂ€llet.
Mina elever slutar aldrig att överraska mig bÄde med sin dumhet och ovÀntade klipskhet. Till min glÀdje Àr klipskheten oftare.
Jag ville skriva mer, men det blev ÀndÄ en lÄng text. Jag svarar gÀrna pÄ alla frÄgor. Jag vÀlkomnar all kritik, men snÀlla, lÄt oss vara mer toleranta mot varandra i kommentarerna. Det hÀr Àr en vÀnlig artikel.
KĂ€lla: habr.com
