Кантип мен балдарга Python үйрөтөм

Кантип мен балдарга Python үйрөтөм

Менин негизги ишим маалыматтар жана программалоо менен байланышкан R, бирок бул макалада мен бир аз киреше алып келген хоббим жөнүндө айткым келет. Мен ар дайым досторума, классташтарыма жана курсташтарыма айтып, түшүндүрүүгө кызыкчумун. Балдар менен тил табышуу мен үчүн ар дайым оңой болгон, эмне үчүн экенин билбейм. Дегеле балдарды тарбиялоо, окутуу эң маанилүү иштердин бири деп эсептейм, жубайым мугалим. Ошентип, болжол менен бир жыл мурун мен жергиликтүү Facebook тобуна жарнама берип, топ түзүп, жумасына бир жолу Scratch жана Python тилдерин үйрөтө баштадым. Азыр менин беш тайпам, үйдө өзүмдүн классым жана жеке сабактарым бар. Мен кантип ушундай жашоого келдим жана балдарды кантип үйрөтөм, мен бул макалада айтып берем.

Мен Калгариде, Альбертада, Канадада жашайм, андыктан кээ бир нерселер жергиликтүү өзгөчөлүктөр болот.

бөлмө

Машыгуу үчүн мейкиндиктин болушу башынан эле негизги көйгөй болгон. Мен саатына офистерди жана класстарды ижарага издеп көрдүм, бирок майнап чыккан жок. Биздин университет жана MITдин жергиликтүү эквиваленти болгон SAIT компьютер менен жана компьютерсиз сабактарды сунуштайт. Ал жактагы баалар адамгерчиликтүү эмес болуп чыкты, акыры университет жашы жете электерге уруксат бербейт, САИТ жалпысынан өз студенттерине гана ижарага берет экен. Ошентип, бул параметр жок кылынды. Жолугушуу залдарын жана кеңселерди саатына ижарага алган көптөгөн кеңсе борборлору бар, толук класстан төрт кишилик бөлмөгө чейин көптөгөн варианттарды сунуш кылган бүтүндөй компаниялар бар. Мен үмүттөнгөн элем, Альберта мунай провинциясы болгондуктан, биз 2014-жылдан бери солгун кризисте болдук жана көптөгөн бизнес мейкиндиктери бош. Мен үмүт кылбашым керек эле, баалар ушунчалык ашынгандыктан, адегенде аларга ишенген жокмун. Кожоюндарына таштандыга караганда бош кеңселерде отуруп, чыгымдарды төлөө оңой.

Ошол учурда мен салыктарды такай төлөп турганымды эстедим, биздин сүйүктүү мамлекетибизде, тагыраак айтканда, Калгари шаарында эч нерсе барбы? Чынында эле бар экен. Шаарда хоккей жана башка көркөм муз тебүү спортунун ареналары бар жана бул ареналарда муз үстүндөгү эр жүрөк жоокерлер келечектеги салгылашуулардын стратегияларын талкуулашкан бөлмөлөр бар. Кыскасы, ар бир аренада стол, отургуч, ак тактай, жада калса чайнеги бар раковина бар бир-эки бөлмө бар. Баасы абдан кудайлык - саатына 25 канадалык тугрик. Мен башында бир жарым саат сабак өтүүнү чечтим, ошондуктан беш кишиден турган топтун ар бир классынын баасын 35 доллар деп коюп, ижара акысын төлөп, чөнтөгүмө бир нерсе салып койдум. Дегеле ареналарда машыгуу мага жакты, бул көйгөйлөрдүн бирин чечти – орус тилдүүлөрдүн көбү түштүктө, мен болсо шаардын түндүгүндө жашайм, ошондуктан болжол менен ортодогу аренаны тандадым. Бирок ыңгайсыздыктар да болду. Канадалык бюрократия жакшы жана достук, бирок, жумшак айтканда, бир аз олдоксон болушу мүмкүн. Ыргакка көнүп, алдын ала пландап койгондо эч кандай кыйынчылык болбойт, бирок кээде жагымсыз учурлар да болот. Мисалы, шаардын веб-сайтында сиз ыңгайлуу убакытты жана жерди тандап, бөлмө ээлеп койсоңуз болот, бирок эч кандай жол менен төлөй албайсыз. Телефон чалууларды өздөрү жасашат жана карта менен төлөмдөрдү кабыл алышат. Кеңсеге барып накталай төлөсөңүз болот. Экинчи сабакка төлөө үчүн алардын чалууларын күтүп жатканымда күлкүлүү, бирок анча жагымдуу эмес учур болду, ал келбей калды, акыркы күнү кеңсеге он беш мүнөт кечигип келдим. Мен бейкапар жүз менен күзөткө келип, бөлмө брондолгон деп калп айтууга туура келди. Биз, канадалыктар менин сөзүмдү кабыл алабыз, алар мени тынч киргизип, эч нерсе текшерген жок, бирок адамдар класска бара элек болсо, мен муну кылмак эмесмин.

Мен кыш менен жазды ушинтип иштедим, анан акыркы тамчы болгон өзгөрүүлөр болду. Биринчиден, кеңсе келгендер үчүн жабык жана алар бурчта телефон аркылуу төлөмдөрдү кабыл алууну сунушташты. Мен өткүчө жарым саат дегенде коридордо отурдум. Экинчиден, буга чейин сүйүктүү жеңем менден бир жарым саатка төлөм алса, азыр бир кыз телефонго чалып, төлөм бир саатка эле деп айтты. Ал кезде менин тобум үч же эки кишиден турган, ашыкча 12.5 доллар деле ашыкча болгон эмес. Албетте, мен идеологиялык адаммын, бирок аялым мени көчөгө ыргытып жиберсе, анда үйрөтө турган эч ким жок. Мен ошондо дагы жумушсуз элем.

Ошондо мен китепканага барууну чечтим. Китепканалар сонун бөлмөлөрдү толугу менен акысыз ижарага беришет, бирок бир нерсе бар - сиз коммерциялык иш-аракеттерди жүргүзө албайсыз. Жада калса кайрымдуулук уюмдарына ал жерде акча чогултууга тыюу салынган. Мага бул өзгөчө көзөмөлгө алынбайт, эң негизгиси кире бериште акча албаш керек деп айтышты, бирок мен эреже бузганды жактырбайм. Дагы бир көйгөй, бөлмөлөр көп орун алгандыктан, пландуу сабактарды бир жерде бир убакта өткөрүү кыйын. Жайкысын, кышынын башында китепканаларда сабак берчүмүн, бош орундары барларды тандап, аягында беш-алты китепкананы алмаштырдым. Анан мен эки ай мурун орун брондой баштадым, ошондо да мен муну бир кичинекей китепканада гана жасай алдым; Анан мен үйдө компьютердик класс жасоону чечтим. Мен тактаны илип, экинчи столду жана жарнамадан бир нече эски мониторлорду сатып алдым. Жумушта компания мага жаңы күчтүү ноутбук сатып алды, анткени менин компьютеримдеги анализ дээрлик 24 саатты алды. Ошентип, менде жаңы эски компьютер, эски эски компьютер, кичинекей балам экранды эзген ноутбук жана өзүм экранды эзген байыркы нетбук бар болчу. Мен алардын бардыгын мониторлорго туташтырдым жана Linux Mintти бардык жерге орноттум, нетбуктан башкасы, ага абдан жеңил бөлүштүрүүчү комплект орнотулган окшойт, Паппи. Менде дагы эле эски жаңы ноутбук бар, 200 долларга сатып алдым, аны телевизорго туташтырдым. Дагы бир маанилүү нерсе, биздин кожоюн жакында терезелерибизди өзгөрттү, ал эми бөлмөдөгү коркунучтуу, талкаланган караңгылыктын ордуна, бизде жаңы ак рамкалар бар. Келинчегим бала бакчанын конок бөлмөсүн, ашканасын жана экинчи уктоочу бөлмөсүн сактайт, ошондуктан бардык кабат таза педагогикалык болуп чыкты. Ошентип, азыр жайлар менен баары жакшы, келгиле, окутууга өтөбүз.

Scratch

Мен Scratch тили менен программалоонун негиздерин үйрөтө баштадым. Бул MITде бир убакта ойлоп табылган даяр блокторду колдонгон тил. Көпчүлүк балдар мектепте Scratch көрүшкөн, ошондуктан алар аны тез эле алышат. Даяр программалар, сабак пландары бар, бирок мага такыр жакпайт. Кээ бир кызыктай - мисалы, өз окуяны түзүү. Бүт программа сансыз блоктордон турат say '<...>' for 2 seconds. Аны абдан чыгармачыл инсандар ойлоп тапканын көрүүгө болот, бирок бул ыкма менен классикалык индиялык спагетти кодун кантип жазууну үйрөтө аласыз. Мен башынан эле DRY сыяктуу принциптер жөнүндө айтам, башка тапшырмалардын жыйнагы абдан жакшы, бирок балдар анын маңызын тез түшүнүп, автомат сыяктуу аткара башташат. Натый-жада беш сабакта аткарышы керек болгон нерсени бир сабакта аткарышат. Ал эми тапшырмаларды издөө жана тандоо жеке убакытты талап кылат. Жалпысынан алганда, Scratch тилди эмес, IDEди элестетет, анда сиз кайда басууну жана эмнени кайдан издөөнү эстеп калуу керек. Студенттер аздыр-көптүр ынгайлуу болоор замат, мен аларды Pythonго которууга аракет кылам. Менин жети жаштагы кызым да Python тилинде жөнөкөй программаларды жазат. Мен Scratchтин артыкчылыгы катары көргөн нерсем, анда ойноо жолу менен үйрөнүлгөн негизги түшүнүктөр камтылган. Кандайдыр бир себептерден улам, өзгөрүлмө идеясын түшүнүү ар бир адам үчүн өтө кыйын. Адегенде мен тез эле теманы барактап, алар бул тууралуу эмне кыларын да билбей калганына туш болгонго чейин уланттым. Азыр мен өзгөрмөлөргө көп убакыт коротом жана аларга дайыма кайрылып турам. Сиз бир аз акылсыз балка кылышыңыз керек. Мен экрандагы ар кандай өзгөрмөлөрдү өзгөртөм жана аларга өз баалуулуктарын сүйлөтөм. Scratch ошондой эле башкаруу структуралары жана баалуулуктарды текшерет, мисалы while, for же if питондо. Алар абдан оңой, бирок уяланган илмектерде көйгөйлөр бар. Мен бир нече тапшырмаларды уяланган цикл менен берүүгө аракет кылам жана анын иш-аракети түшүнүктүү. Андан кийин мен функцияларга өтөм. Чоңдор үчүн да функция түшүнүгү ачык эмес, ал тургай, балдар үчүн. Мен жалпысынан функция деген эмне экенин көпкө айтам, мен буюмдарды киргизүү катары кабыл алып, товар чыгарган завод жөнүндө, чийки ингредиенттерден тамак жасаган ашпозчу жөнүндө айтам. Андан кийин продуктылар менен “сендвич жасоо” программасын жасайбыз, андан кийин функцияны жасайбыз, ага продукттар параметр катары берилет. Мен Scratch менен функцияларды үйрөнүп бүтөм.

Python

Python менен баары жөнөкөй. Балдар үчүн жакшы Python китеби бар, аны мен үйрөтөм. Ал жерде бардыгы стандарттуу - линиялар, операциялардын тартиби, print(), input() жана башкалар. Жеңил тилде, юмор менен жазылган, балдарга жагат. Анын көптөгөн программалоо китептерине мүнөздүү кемчилиги бар. Атактуу тамашадагыдай - үкү кантип тартуу керек. Овал - тегерек - үкү. Жөнөкөй түшүнүктөрдөн кыйла татаал түшүнүккө өтүү өтө чукул. Объектти чекиттик ыкмага тиркөө үчүн мага бир нече сеанстар керектелет. Башка жагынан алганда, мен шашкан жокмун, жок дегенде кандайдыр бир сүрөт чогулганга чейин бир эле нерсени ар кандай жолдор менен кайталайм. Мен өзгөрмөлөрдөн баштайм жана аларды бул жолу Pythonдо кайра балка менен чыгарам. Өзгөрмөлөр каргыштын бир түрү.

Бир-эки ай мурун Skratch'те өзгөрмөлөрдү чебердик менен баскан акылдуу студент жаңы дарбазада кочкор сыяктуу көрүнөт жана жогоруда тактайда так жазылган Y тамгасы менен X кошо албайт. Биз кайталайбыз! Өзгөрмө эмнеге ээ? Аты жана мааниси! барабар белгиси эмнени билдирет? Тапшырма! Теңдикти кантип текшеребиз? Кош барабар белгиси! Жана биз муну толук агартууга чейин кайра-кайра кайталайбыз. Андан кийин биз функцияларга өтөбүз, мында аргументтер тууралуу түшүндүрмө эң көп убакытты талап кылат. Аты аталган аргументтер, абалы боюнча, демейки боюнча ж.б.у.с. Бир дагы группада сабакка жете элекпиз. Python'дон тышкары, биз китептен популярдуу алгоритмдерди изилдейбиз, бул жөнүндө кийинчерээк.

Чынында, тренинг

Сабагым минтип түзүлдү: жарым саат теория берем, билимди текшерем, үйрөнгөнүмдү бекемдейм. Лабораторияларга убакыт келди. Көбүнчө алагды болуп, бир саатка чейин сүйлөшөм, анан машыгууга жарым саат калды. Мен питон үйрөнүп жатканда курсту көрдүм Алгоритмдер жана маалымат структуралары Хирянов МИПТтен. Мага анын баяндамасы жана лекцияларынын түзүлүшү абдан жакты. Анын идеясы мындай: фреймворктор, синтаксис, китепканалар эскирип баратат. Архитектура, командалык иш, версияны башкаруу системалары - али эрте. Натыйжада, алгоритмдер жана маалымат структуралары көптөн бери белгилүү болгон жана дайыма окшош формада боло берет. Мен өзүм Паскаль институтунун бүтүн сандарын гана эстейм. Окуучуларым негизинен жаш, жети жаштан он беш жашка чейинкилер болгондуктан, Python тилинде платформа оюнун тез жазуудан көрө, алардын келечеги үчүн пайдубалын түптөө маанилүү деп эсептейм. Бирок, алар платформерди көбүрөөк каалашат жана мен аларды түшүнөм. Мен аларга жөнөкөй алгоритмдерди берем - көбүк, иреттелген тизмеде бинардык издөө, стек аркылуу тескери поляк белгилер, бирок биз алардын ар бирин майда-чүйдөсүнө чейин талдайбыз. Көрсө, азыркы балдар компьютердин кантип иштешин билишпейт экен, мен да айтып берейин. Мен ар бир лекцияда бир нече түшүнүктөрдү бириктирүүгө аракет кылам. Мисалы, компьютер - эстутум/пайыз - эс тутум клеткалардан турат (мен эстутум микросхемасын кармап турууга уруксат берем, канча клетка бар экенин билиңиз) - ар бир клетка лампочка сыяктуу - эки абал бар - чын/жалган - жана/же - бинардык/ондук - 8бит = 1 байт - байт = 256 вариант - бир биттеги логикалык маалымат түрү - бир байттагы бүтүн сандар - float эки байт боюнча - string бир байтта - 64 биттеги эң чоң сан - мурунку түрдөгү тизме жана кортеж. Мен чыныгы компьютерде бардыгы бир аз башкачараак жана бул маалымат түрлөрү үчүн эстутумдун көлөмү ар башка, бирок эң негизгиси, процессте биз өзүбүз жөнөкөйлөрдөн татаалыраак маалымат түрлөрүн түзөбүз деп эскертем. Маалымат түрлөрү, балким, эстеп калуу эң кыйын нерсе. Ошон үчүн мен ар бир сабакты тез жылытуудан баштайм – бир окуучу маалымат түрүн атайт, кийинкиси эки мисал келтирет жана башкаларды тегерек ичинде. Жыйынтыгында мен эң кичинекей балдар да шайыр кыйкырып - калкып кетүүгө жетиштим. логикалык! жети, беш! пицца, машина! Лекция учурунда мен тынымсыз бирин-бири биринчи тартам, антпесе алар тез эле мурундарын терип, шыпты карай башташат. Ал эми ар бир адамдын билим деңгээли анда-санда текшерилип турушу керек.

Окуучуларым акылсыздыгы жана күтүүсүз интеллекти менен мени таң калтырууну токтотпойт. Бактыга жараша, көбүнчө акыл менен.

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

Source: www.habr.com

Комментарий кошуу