
Puna ime është e lidhur me të dhënat dhe programimin në R, por në këtë artikull dua të flas për pasionin tim, i cili madje sjell një të ardhur. Më ka interesuar gjithmonë të tregoj dhe shpjegoj diçka për miqtë, shokët e klasës dhe studentët. Gjithashtu, gjithmonë më ka qenë lehtë të gjej një gjuhë të përbashkët me fëmijët, nuk e di pse. Në përgjithësi, mendoj se edukimi dhe mësimi i fëmijëve janë disa nga aktivitetet më të rëndësishme, për më tepër që bashkëshortja ime është mësuese. Në përgjithësi, rreth një vit më parë kam shpallur një njoftim në grupin lokal në Facebook, kam formuar një grup dhe kam filluar të mësoj Scratch dhe Python një herë në javë. Tani kam pesë grupe, një klasë në shtëpi dhe mësime individuale. Si arrita të arrij deri këtu dhe si i mësoj fëmijët, do ta tregoj në këtë artikull.
Jetoj në Kanada, në qytetin Calgary, provinca Alberta, kështu që disa momente do të jenë të lidhura me specifikën lokale.
Lënda
Disponimi i vendit për mësime ka qenë problemi kryesor që nga fillimi. Kam provuar të kërkoj zyra dhe klasa me qira me orë, por jo shumë me sukses. Universiteti ynë dhe SAIT - analogu lokal i MIT - japin klasa me kompjuterë dhe pa. Çmimet atje rezultuan të ishin jo shumë njerëzore, dhe në fund doli që universiteti nuk i lejon të miturit, ndërsa SAIT i jep vetëm studentëve të vet. Pra, ky opsion u mbyll. Ka shumë qendra zyrash që japin dhoma për takime dhe zyra me orë, kanë edhe kompani të tëra që ofrojnë një mori mundësish nga klasa e plotë deri te dhoma për katër persona. Kisha shpresa, pasi Alberta është një provincë nafte, ku që nga viti 2014 kemi një krizë të zgjatur, dhe shumë hapësira biznesi qëndrojnë bosh. Nuk e dija se çmime ishin kaq të larta, saqë në fillim nuk e besova. Pronarët preferojnë të qëndrojnë në zyra bosh dhe të paguajnë shpenzimet, sesa të ofrojnë çmime më të ulëta.
Në atë moment, kujtova se paguaja rregullisht taksat dhe a kishte ndonjë gjë te shteti ynë të dashur, saktësisht — te qyteti i Calgary. Doli se kishte shumë. Qyteti kishte arena për lojë hokej dhe të tjera aktivitete akrobatike, dhe në këto arena kishte dhoma ku luftëtarët e ashpër të akullit diskutonin strategjitë për betejat e ardhshme. Në thelb, për çdo arenë ka disa dhoma me tavolina, karrige, tabllo të bardha dhe madje një lavaman me dyjak. Çmimi ishte krejtësisht i arsyeshëm — 25 dollarë kanadezë për orë. Fillimisht kisha vendosur të bëja seanca me një gjysmë ore, prandaj vendosa çmimin për seancë $35 për person në një grup prej pesë njerëzish, për të kompensuar qiranë dhe të kem diçka në xhepin tim. Në përgjithësi, më pëlqente të punoja në arena, kjo zgjidhte një nga problemet — shumica e rusishtfolësve jetonin në jug, ndërsa unë jetoj në veriperëndim të qytetit, prandaj zgjodha arenën rreth mesit. Por kishte edhe inconvenienca. Burokracia kanadeze është e mirë dhe miqësore, por, si të them më butë, ndonjëherë është paksa e ngadaltë. Nuk ka probleme kur përshtatesh me ritmin dhe planifikon paraprakisht, por ndonjëherë ndodhin situata të pakëndshme. Për shembull, në faqen e qytetit mund të zgjidhje lehtësisht kohën dhe vendin, të rezervosh një dhomë, por nuk mund të paguash, ashtu si ashtu. Ata vetë telefonojnë dhe marrin pagesat me kartë. Mund të shkosh në zyrë dhe të paguash me para. Kishte një moment qesharake, por jo shumë të këndshme, kur prita telefonatën e tyre për të paguar për seancën e dytë, nuk e mora atë, dhe në zyrë mbërrita me pesëmbëdhjetë minuta vonesë në ditën e fundit. Fola me guxim me rojën dhe gënjeva që dhoma ishte rezervuar. Ne, kanadezët, besojmë në fjalë, më lanë të hyj pa asnjë gjë për të kontrolluar, por nuk do të kisha bërë ashtu, po të mos kishte njerëz që po vinin për seancën.
Kështu që unë punova gjatë dimrit dhe pranverës, dhe pastaj ndodhi një ndryshim që ishte pikëpamja e fundit. Së pari, zyra u mbyll për vizitorët dhe ofruan që të pranoni pagesat përmes telefonit për mëngjesin. Qëndrova të paktën një gjysmë ore në hol, përpara se të arrija të telefonoj. Së dyti, nëse më parë një zonjë e këndshme më pranonte pagesën për një orë e gjysmë, tani në telefon u përgjigj një vajzë e cila tha se pagesa është vetëm për një orë. Në atë moment, grupi im ishte ndonjëherë tri, ndonjëherë dy persona, dhe $12.5 të tepruar nuk ishin më pak të vlefshme. Unë, sigurisht, jam idealist, por nëse gruaja më çon në rrugë, nuk do ketë askush për të mësuar. Atëherë isha akoma pa punë.
Dhe unë vendosa të shkoj në bibliotekë. Bibliotekat ofrojnë dhoma të shkëlqyera plotësisht falas, por ka një por — nuk lejohet të ushtrosh aktivitet tregtar. As organizatat bamirëse nuk kanë të drejtë të mbledhin para atje. Më thanë se kjo nuk kontrollohet aq shumë, e rëndësishme është të mos marrësh para në hyrje, por unë nuk e kam përzemër të shkel rregullat. Një problem tjetër — dhomat shpesh janë të zëna dhe është e vështirë të zhvillosh mësime sipas orarit në një kohë të vetme në një vend. Kam mësuar në biblioteka gjatë verës dhe fillim të dimrit, duhej të zgjidhja ato ku kishte vend, në fund e kam ndryshuar pesë-gjashtë biblioteka. Më pas fillova të rezervoj vendin dy muaj përpara, dhe vetëm në një bibliotekë të vogël arrita ta bëj, në të tjerat rregullisht nuk kishte vende në kohën e nevojshme. Dhe atëherë vendosa të krijoj një klasë kompjuterike në shtëpi. E vendosa një tabelë, bleva një tavolinë të dytë dhe disa monitore të vjetra përmes një njoftimi. Për punë, kompania më bleu një laptop të ri dhe të fuqishëm, sepse kompjuteri im kishte nevojë për gati 24 orë për analizë. Pra, ndihesha me një kompjuter të ri të vjetër, një kompjuter të vjetër, një laptop të cilin djaloshi im e shkatërroi ekranin dhe një netbook të lashtë, mbi të cilin unë vetë e shkatërrova ekranin. I lidhëm të gjithë me monitorët dhe vendosa Linux Mint kudo, përveç netbook-ut, për të cilin vendosa një distirbucion shumë të lehtë, duket, Puppy. Kam gjithashtu një laptop të vjetër të ri, blerë për $200, e lidha atë me televizorin. Gjithashtu, është e rëndësishme që pronari ynë na zëvendësoi dritaret, dhe tani në dhomë, në vend të një katastrofe të tmerrshme, kemi korniza të reja të bardha. Dhomën e ndenjës, kuzhinën dhe dhomën e dytë të gjumit, gruaja e mban si kopësht, prandaj i gjithë kati u bë pedagogjik. Pra, tani me ambientin gjithçka është mirë, le të kalojmë te mësimi.
Scratch
Unë filloj të jap themellet e programimit me gjuhën Scratch. Kjo është një gjuhë që përdor blloqe të gatshme, krijuar dikur në MIT. Shumica e fëmijëve e kanë parë tashmë Scratch në shkollë, prandaj e mësojnë mjaft shpejt. Ekzistojnë programe dhe plane mësimore të gatshme, por mua ato nuk më pëlqejnë aspak. Disa janë të çuditshme — krijo historinë tënde, për shembull. E gjithë programa përbëhet nga blloqe të pafund. say '' for 2 seconds. Është e qartë se është krijuar nga personalitete shumë krijuese, por me një qasje të tillë mund të mësojmë të shkruajmë një kod klasik indian spaghetti. Që nga fillimi, unë flas për parimet si D.R.Y. Grumbuj të tjerë të detyrave janë mjaft të mirë, por fëmijët shpejt e kuptojnë thelbin dhe fillojnë t'i bëjnë ato si me mitraloz. Në fund, për një mësim ata bëjnë atë që duhet të kishin bërë për pesë. Dhe për gjetjen dhe seleksionimin e detyrave kalon shumë kohë personale. Në përgjithësi, Scratch më shumë i ngjan jo një gjuhe, por një IDE, ku thjesht duhet të mbash mend se ku të klikosh dhe ku të kërkosh. Sapo nxënësit fillojnë të përshtaten, përpiqem t'i kaloj ata në Python. Madje kam një vajzë shtatëvjeçare që shkruan programe të thjeshta në Python. Ajo që shoh si një përfitim të Scratch-it është se ai ka disa koncepte themelore që mësohen në një mënyrë argëtuese. Për një arsye apo një tjetër, të gjithë kanë shumë vështirësi të kuptojnë idenë e variablës. Në fillim, unë kalova shpejt këtë temë dhe shkova më tej, derisa u përballa me faktin se ata nuk dinin asgjë se çfarë të bëjnë me të. Tani i kushtoj shumë kohë variablave dhe vazhdimisht kthej për të. Duhet të angazhohem në një goditje të padëshirueshme. Unë ndryshoj variabla të ndryshëm në ekran dhe i bëj ata të flasin vlerën e tyre. Gjithashtu, në Scratch ka struktura kontrolli dhe kontrollime vlerash, si while, për ose nëse në Python. Ato jepen mjaft lehtë, vetëm me ciklet e ndërthurura ndodhin disa probleme. Unë përpiqem të jap disa detyra me një cikël të ndërthurur, dhe që veprimi i tij është i dukshëm. Pas kësaj kaloj te funksionet. Edhe për të rriturit koncepti i funksionit është ndonjëherë i paqartë, e për fëmijët është akoma më shumë. Unë flas shumë gjatë për atë çfarë është një funksion, tregoj për fabrikën që merr artikuj në hyrje e jep produkte në dalje, për kuzhinierin që bën ushqim nga përbërës të papërpunuar. Më pas ne bëjmë programin 'bëj një sandviç' me përbërësit, dhe më pas e bëjmë atë funksion, të cilit përbërësit i kalohen si parametra. Kur studioj funksionet, unë përfundoj me Scratch-in.
Python
Me Python është më e thjeshtë. Ka një libër të mirë Python for Kids, me të cilin unë mësoj. Aty është gjithçka standarde — vargje, rendi i operacioneve, print(), input() Etc. It is written in a light style, with humor, and children enjoy it. It has a drawback common to many programming books. Like in the famous joke — how to draw an owl. Oval — circle — owl. The transition from simple concepts to quite complex ones is too abrupt. I spend several lessons explaining that an object is connected to a method by a dot. On the other hand, I don't rush, repeating the same thing in different ways until some picture begins to form. I start with variables and drill them again, already in Python. Variables are some kind of curse.
A clever student, who skillfully clicked on variables a couple of months ago, looks like a sheep at a new gate and cannot add x to y, which are clearly written on the board just above. Let's repeat! What does a variable have? A name and a value! What does the equals sign mean? Assignment! And how do we check equality? Double equals sign! And so we repeat again and again, until complete enlightenment. Then we move on to functions, where the explanation of arguments takes the longest. Named arguments, positional, default, and so on. We have not yet reached classes in any group. Besides Python from the book, we study popular algorithms, more on that later.
Actually, training
My lesson is arranged as follows — for half an hour I give theory, check knowledge, reinforce what has been covered. An hour — labs. Often I get carried away and lecture for an hour, so only half an hour is left for practice accordingly. When I was learning Python, I watched the course Algorithms and Data Structures Hiryanova nga MFTI. Më pëlqeu shumë mënyra e tij e prezantimit dhe struktura e leksioneve. Ideja e tij është se framework-et, sintaksa, bibliotekat - stërgjohen. Arkitektura, puna në grup, sistemet e kontrollit të versioneve - është akoma herët. Në fund mbeten algoritmet dhe strukturat e të dhënave, të cilat janë të njohura prej kohësh dhe do të jenë gjithmonë në një formë të ngjashme. Edhe unë vetë nga pascal i institutet kam vetëm integerët e mbaj mend. Meqenëse nxënësit e mi janë kryesisht të rinj, nga shtatë deri në pesëmbëdhjetë vjeç, mendoj se për të ardhmen e tyre është më e rëndësishme të vendosim bazat sesa të shkruajmë sa më shpejt një platformer në Python. Megjithatë, ata më shumë duan një platformer, dhe unë i kuptoj. Algoritmet që u jap janë të thjeshta - rendi i flluskës, kërkimi binar në një listë të renditur, notacioni polak i kundërt me anë të stack-ut, por ne çdo herë e shqyrtojmë shumë në detaje. Doli që fëmijët modernë nuk dinë as si funksionon një kompjuter, gjithashtu ua tregoj. Përpiqem në çdo leksion të lidhem me disa koncepte së bashku. Për shembull, kompjuter - memorie/proces - memoria prej qelizash (i jap të mbajë një modul memorie, guess, sa qeliza ka këtu) - çdo qelizë si një llambë - ka dy gjendje - true/false - and/or - binare/dekada - 8bit = 1byte - byte = 256 variante - lloji logjik i të dhënave në një bit - numra të plotë në një byte - filestream në dy byte - string në një byte - numri më i madh në 64 bit - lista dhe tupla nga llojet e mëparshme. Unë sqaroj se në kompjuterin real gjithçka është disi ndryshe dhe ka një sasi tjetër memorie për këto lloje të dhënash, por e rëndësishme është se ne në proces krijojmë lloje më të ndërlikuara të të dhënave nga më të thjeshtat. Llojet e të dhënave janë ndoshta gjëja më e vështirë për t'u mbajtur mend. Prandaj çdo herë filloj një aktivitet të shpejtë - një nxënës përmend llojin e të dhënave, nxënësi tjetër jep dy shembuj, dhe kështu në rreth. Në fund arrita që edhe fëmijët më të vegjël thonë me entuziazëm - float! boolean! shtatë, pesë! pizza, makinë! Gjatë leksionit vazhdimisht tërheq njëri-njëri, përndryshe ata nisën të këndellin dhe të shikojnë tavani. Po ashtu, niveli i njohurive të secilit duhet të kontrollohet herë pas here.
Nxënësit e mi nuk ndalojnë së bërë për të më befasuar si me budallallëkun e tyre, ashtu edhe me mençurinë e papritur. Mënyrën e mençurisë, fatmirësisht, më shpesh.
Doja të shkruaja më shumë, por dhe kështu doli një tekst i gjatë. Do t'i përgjigjem me kënaqësi të gjitha pyetjeve. Çdo kritikë e mirëpritur, vetëm lutje — të jemi më tolerantë ndaj njëri-tjetrit në komentet tona. Ky është një artikull i dashur.
Burimi: habr.com
