Мен балаларға Python тілін қалай үйретемін

Мен балаларға Python тілін қалай үйретемін

Менің негізгі жұмысым деректер мен бағдарламалаумен байланысты R, бірақ бұл мақалада мен өзімнің хоббиім туралы айтқым келеді, ол тіпті біраз табыс әкеледі. Мен әрқашан достарыма, сыныптастарыма және курстастарыма бір нәрсені айтып, түсіндіруге қызығатынмын. Балалармен ортақ тіл табу маған әрқашан оңай болды, неге екенін білмеймін. Жалпы, бала тәрбиесі мен оқыту – ең маңызды жұмыстың бірі деп есептеймін, ал менің жұбайым – ұстаз. Осылайша, шамамен бір жыл бұрын мен жергілікті Facebook тобында жарнама жасап, топ құрып, аптасына бір рет Scratch және Python тілдерін үйрете бастадым. Қазір бес топ, үйде өз сыныбым және жеке сабақтарым бар. Мен қалай өмір сүрдім және балаларды қалай оқытамын, мен сізге осы мақалада айтамын.

Мен Калгариде, Альберта, Канадада тұрамын, сондықтан кейбір нәрселер жергілікті ерекшеліктер болады.

Бөлме

Тәжірибе өткізу үшін кеңістіктің болуы басынан бастап маңызды мәселе болды. Мен сағат сайын жалға берілетін кеңселер мен оқу бөлмелерін іздеп көрдім, бірақ нәтиже болмады. Біздің университет пен SAIT, MIT-тің жергілікті баламасы, компьютермен және компьютерсіз сабақтар ұсынады. Ондағы бағалар адамгершілігі жоқ болып шықты, ақырында университет кәмелетке толмағандарды жібермейді, ал SAIT негізінен тек өз студенттеріне жалға береді. Осылайша, бұл опция жойылды. Кездесу бөлмелері мен кеңселерді сағатына жалға алатын көптеген кеңсе орталықтары бар, толық сыныптан төрт адамға арналған бөлмеге дейін көптеген нұсқаларды ұсынатын тұтас компаниялар бар. Мен үміттендім, Альберта мұнай провинциясы болғандықтан, біз 2014 жылдан бері баяу дағдарысты бастан кешірдік және көптеген бизнес орындары бос. Мен үміттенбеуім керек еді; бағалар соншалықты шектен шыққаны сонша, мен оларға алғашында сенбедім. Қоқыс тастағаннан гөрі иелеріне бос кеңселерде отыру және шығындарды төлеу оңайырақ.

Сол кезде мен салықты үнемі төлейтінімді және біздің қымбатты мемлекетіміздің, дәлірек айтсақ, Калгари қаласында бірдеңенің бар-жоғын есіме түсірдім. Шынымен де бар екені белгілі болды. Қалада хоккей және басқа да мәнерлеп сырғанау спортына арналған ареналар бар және бұл ареналарда қатал мұз жауынгерлері болашақ шайқастардың стратегияларын талқылайтын бөлмелер бар. Қысқасы, әр аренада үстел, орындық, ақ тақта, тіпті шәйнегі бар раковина бар бір-екі бөлме бар. Бағасы өте құдай - сағатына 25 канадалық тугрик. Бастапқыда мен бір жарым сағат сабақ өткізуді шештім, сондықтан мен бес адамнан тұратын топтағы сабақтың бағасын 35 доллар деп белгілеп, жалдау ақысын өтеу үшін және қалтамға бірдеңе салып қойдым. Жалпы, мен ареналарда жаттығуды ұнататынмын, бұл бір мәселені шешті - орыстілділердің көпшілігі оңтүстікте тұрады, ал мен қаланың солтүстігінде тұрамын, сондықтан мен шамамен ортадағы манежді таңдадым. Бірақ қолайсыздықтар да болды. Канадалық бюрократия жақсы және мейірімді, бірақ жұмсақ тілмен айтқанда, біршама ыңғайсыз болуы мүмкін. Ритмге үйреніп, алдын ала жоспарлағанда қиындықтар болмайды, бірақ кейде жағымсыз сәттер туындайды. Мысалы, қаланың веб-сайтында уақыт пен орынды ыңғайлы түрде таңдап, бөлмені брондауға болады, бірақ сіз ешбір жолмен төлей алмайсыз. Олар өздері телефон соғып, карта төлемдерін қабылдайды. Кеңсеге барып, қолма-қол төлей аласыз. Екінші сабаққа ақы төлеу үшін олардың қоңырауын күтіп отырғанымда күлкілі, бірақ өте жағымды емес сәт болды, ол келмеді, ал соңғы күні кеңсеге он бес минут кешігіп келдім. Мен қауіпсіздікке дөрекі жүзбен жақындап, бөлме брондалған деп өтірік айтуға тура келді. Біз канадалықтар менің сөзімді қабылдаймыз; олар мені сабырлы түрде кіргізді және ештеңені тексермеді, бірақ егер адамдар сабаққа бармаған болса, мен мұны жасамас едім.

Мен қыс пен көктемде осылай жұмыс істедім, содан кейін соңғы тамшы болған өзгерістер болды. Біріншіден, кеңсе келушілер үшін жабық болды және олар бұрышта телефон арқылы төлемдерді қабылдауды ұсынды. Мен өтпей тұрып, кем дегенде жарты сағат дәлізде отырдым. Екіншіден, бұрын қымбатты нағашы апам менен бір жарым сағатқа төлем алса, қазір телефонға бір қыз жауап беріп, төлем бір сағатқа ғана екенін айтты. Ол кезде менің тобым не үш-екі адам болатын, ал қосымша 12.5 доллар артық болған жоқ. Әрине, мен идеологиялықпын, бірақ әйелім мені көшеге лақтырып жіберсе, үйрететін ешкім болмайды. Мен ол кезде әлі жұмыссыз едім.

Ал мен кітапханаға баруды шештім. Кітапханалар тамаша бөлмелерді толығымен тегін жалға береді, бірақ бір қулық бар - сіз коммерциялық қызметпен айналыса алмайсыз. Онда тіпті қайырымдылық ұйымдарына ақша жинауға рұқсат етілмейді. Маған бұл ерекше бақыланбайтынын айтты, бастысы кіре берісте ақша алмау керек, бірақ мен ережені бұзғанды ​​ұнатпаймын. Тағы бір мәселе, бөлмелер жиі толтырылады және жоспарлы сабақтарды бір уақытта бір жерде өткізу қиын. Жазда және қыстың басында кітапханаларда сабақ бердім, бос орындарды таңдауға тура келді, соңында бес-алты кітапхананы ауыстырдым. Содан кейін мен екі ай бұрын орын брондай бастадым, содан кейін мен мұны тек бір шағын кітапханада жасай алдым, қалғандарында үнемі қажетті уақытқа орын жоқ. Содан кейін мен үйде компьютерлік сынып жасауды шештім. Мен тақтаны іліп, жарнамадан екінші үстел мен бірнеше ескі монитор сатып алдым. Жұмыста компания маған жаңа қуатты ноутбук сатып алды, себебі менің компьютерімде талдау 24 сағатқа жуық уақытты алды. Сонымен, менде жаңа ескі компьютер, ескі ескі компьютер, кішкентай балам экранды басып тастайтын ноутбук және экранды өзім басып тастайтын көне нетбук болды. Мен олардың барлығын мониторларға қосып, Linux Mint-ті барлық жерде орнаттым, нетбуктан басқа, мен өте жеңіл тарату жинағын орнатқанмын, меніңше, Паппи. Менде әлі ескі жаңа ноутбук бар, оны 200 долларға сатып алдым, мен оны теледидарға қостым. Ең бастысы, біздің иесі жақында терезелерімізді ауыстырды, ал бөлмедегі қорқынышты, құлап бара жатқан бейшараның орнына бізде жаңа ақ жақтаулар бар. Менің әйелім балабақшаға арналған қонақ бөлмені, асүйді және екінші жатын бөлмені ұстайды, сондықтан бүкіл қабат таза педагогикалық болып шықты. Сонымен, қазір үй-жайда бәрі жақсы, сабаққа көшейік.

сызат

Мен Scratch тілі арқылы бағдарламалау негіздерін үйрете бастадым. Бұл бір уақытта MIT-те ойлап табылған дайын блоктарды қолданатын тіл. Көптеген балалар мектепте Scratch-ті көрген, сондықтан олар оны тез қабылдайды. Дайын бағдарламалар мен сабақ жоспарлары бар, бірақ маған мүлдем ұнамайды. Кейбіреулер біртүрлі - мысалы, өз тарихыңызды жасаңыз. Бүкіл бағдарлама сансыз блоктардан тұрады say '<...>' for 2 seconds. Оны өте креативті адамдар ойлап тапқанын көруге болады, бірақ бұл тәсіл арқылы классикалық үнді спагетти кодын жазуды үйретуге болады. Мен басынан бастап ҚҰРАҚ сияқты принциптерді айтамын.Басқа тапсырмалар топтамалары өте жақсы, бірақ балалар оның мәнін тез түсініп, автомат сияқты орындай бастайды. Нәтижесінде бес сабақта істеу керек нәрсені бір сабақта орындайды. Ал тапсырмаларды іздеу және таңдау көп уақытты алады. Жалпы, Scratch тілді емес, IDE-ді еске түсіреді, мұнда тек қай жерде басуды және қайдан нені іздеу керектігін есте сақтау керек. Оқушылар азды-көпті ыңғайлы болған кезде мен оларды Python-ға көшіруге тырысамын. Тіпті менің жеті жасар қызым Python тілінде қарапайым бағдарламалар жазады. Мен Scratch-тің артықшылығы ретінде көретінім, онда ойын түрінде үйренетін негізгі ұғымдар бар. Қандай да бір себептермен, кез келген адамға айнымалының идеясын түсіну өте қиын. Бастапқыда мен тақырыпты тез шолып шықтым және олар бұл туралы не істерін де білмейтін фактіге тап болғанша қозғалдым. Қазір мен айнымалыларға көп уақыт жұмсаймын және оларға үнемі ораламын. Сізге ақымақ соққылар жасау керек. Мен экрандағы әртүрлі айнымалыларды өзгертемін және олардың мәндерін айтуға мәжбүр етемін. Scratch-те басқару құрылымдары мен құндылық тексерулері бар, мысалы while, for немесе if питон тілінде. Олар өте оңай, бірақ кірістірілген ілмектермен проблемалар бар. Мен кірістірілген циклмен бірнеше тапсырма беруге тырысамын және оның әрекеті түсінікті болуы үшін. Осыдан кейін мен функцияларға көшемін. Тіпті ересектер үшін де функция ұғымы айқын емес, ал балалар үшін одан да көп. Мен жалпы функцияның не екенін ұзақ уақыт жалғастырамын, мен заттарды кіріс ретінде қабылдайтын және тауар шығаратын зауыт туралы, шикі ингредиенттерден тағам жасайтын аспаз туралы айтамын. Содан кейін біз өнімдермен «сэндвич жасау» бағдарламасын жасаймыз, содан кейін біз одан функция жасаймыз, оған өнімдер параметрлер ретінде беріледі. Мен Scratch көмегімен оқу функцияларын аяқтаймын.

Python

Питонмен бәрі оңайырақ. Балаларға арналған жақсы Python кітабы бар, мен оны үйретемін. Мұнда бәрі стандартты - сызықтар, операциялар тәртібі, print(), input() және т.б. Жеңіл тілмен, әзілмен жазылған, балаларға ұнайды. Оның көптеген бағдарламалау кітаптарына тән кемшілігі бар. Әйгілі әзілдегідей - үкі қалай салу керек. Сопақша - шеңбер - үкі. Қарапайым ұғымдардан біршама күрделі ұғымдарға көшу тым күрт. Нүкте әдісіне нысанды бекіту үшін маған бірнеше сеанс қажет. Екінші жағынан, мен асығыс емеспін, кем дегенде кейбір сурет жиналғанша, мен бір нәрсені әртүрлі тәсілдермен қайталаймын. Мен айнымалылардан бастаймын және оларды бұл жолы Python-да қайта соғамын. Айнымалылар қарғыстың бір түрі.

Бірнеше ай бұрын Skratch-те айнымалыларды ептілікпен басқан ақылды студент жаңа қақпада қошқарға ұқсайды және тақтада жоғарыдағы сызықта анық жазылған Y-мен Х-ті қоса алмайды. Қайталаймыз! Айнымалыда не бар? Аты мен мағынасы! Теңдік белгісі нені білдіреді? Тапсырма! Теңдікті қалай тексереміз? Қос теңдік белгісі! Біз мұны толық ағартуға дейін қайта-қайта қайталаймыз. Содан кейін біз аргументтер туралы түсініктеме ең ұзақ уақыт алатын функцияларға көшеміз. Атаулы аргументтер, орны бойынша, әдепкі бойынша және т.б. Біз әлі ешбір топтағы сабақтарға жеткен жоқпыз. Python-дан басқа, біз кітаптағы танымал алгоритмдерді зерттейміз, бұл туралы кейінірек.

Шын мәнінде, жаттығу

Менің сабағым мынадай құрылымдалған: жарты сағат теория беремін, алған білімімді тексеремін, алған білімімді бекітемін. Лабораториялардың уақыты келді. Көбінесе алданып, бір сағатқа дейін сөйлесемін, содан кейін жаттығуға жарты сағат қалды. Мен питонды үйреніп жүргенімде курсты көрдім Алгоритмдер және деректер құрылымдары Хирянов MIPT. Маған оның презентациясы мен дәрістерінің құрылымы қатты ұнады. Оның идеясы мынада: фреймворктар, синтаксис, кітапханалар ескіруде. Архитектура, командалық жұмыс, нұсқаларды басқару жүйелері - әлі ерте. Нәтижесінде, ұзақ уақыт бойы белгілі болған алгоритмдер мен деректер құрылымдары қалады және әрқашан ұқсас формада болады. Мен өзім Паскаль институтының бүтін сандарын ғана есімде сақтаймын. Шәкірттерім негізінен жас, жеті жастан он бес жасқа дейін болғандықтан, олардың болашағы үшін Python тілінде платформалық ойынды тез жазудан гөрі іргетасын қалау маңыздырақ деп есептеймін. Дегенмен, олар платформерді көбірек қалайды, мен оларды түсінемін. Мен оларға қарапайым алгоритмдерді беремін - көпіршік, сұрыпталған тізімдегі екілік іздеу, стек арқылы кері поляк белгісі, бірақ біз әрқайсысын егжей-тегжейлі талдаймыз. Қазіргі балалар компьютердің қалай жұмыс істейтінін білмейтіні белгілі болды, мен сізге айтайын. Мен әр дәрісте бірнеше ұғымды біріктіруге тырысамын. Мысалы, компьютер - жад/пайыз - ұяшықтардан тұратын жад (жад микросхемасын ұстауға рұқсат етемін, қанша ұяшық бар екенін тап) - әрбір ұяшық шам тәрізді - екі күй бар - ақиқат/жалған - және/немесе - екілік/ондық - 8бит = 1 байт - байт = 256 опция - бір биттегі логикалық деректер түрі - бір байттағы бүтін сандар - float екі байт бойынша - string бір байтта – 64 биттегі ең үлкен сан – алдыңғы түрлерден тізім және кортеж. Мен нақты компьютерде бәрі біршама басқаша және бұл деректер түрлері үшін жад көлемі әр түрлі екенін ескертемін, бірақ ең бастысы, біз өзіміз процесте қарапайымнан күрделірек деректер түрлерін жасаймыз. Деректер түрлері есте сақтау ең қиын нәрсе болуы мүмкін. Сондықтан мен әр сабақты жылдам қыздырудан бастаймын – бір оқушы деректер түрін атайды, келесісі екі мысал келтіреді және т.б. Нәтижесінде мен тіпті ең кішкентай балалардың да көңілді айқайлайтынына қол жеткіздім - қалқыма! логикалық! жеті, бес! пицца, көлік! Дәріс кезінде мен үнемі бірінші немесе екіншісін тартамын, әйтпесе олар мұрындарын тез жинап, төбеге қарай бастайды. Әр адамның білім деңгейін анда-санда тексеріп тұру керек.

Менің студенттерім өздерінің ақымақтығымен де, күтпеген ақылдылығымен де мені таң қалдыруды тоқтатпайды. Бақытымызға орай, көбінесе интеллектпен.

Мен көбірек жазғым келді, бірақ бұл жай ғана парақ болып шықты. Мен барлық сұрақтарға жауап беруге қуаныштымын. Мен кез келген сынды барлық жағынан құптаймын, тек түсініктемелерде бір-біріңізге толеранттылық танытуларыңызды сұраймын. Бұл жақсы мақала.

Ақпарат көзі: www.habr.com

пікір қалдыру