Би хүүхдүүдэд Python-ийг хэрхэн заадаг

Би хүүхдүүдэд Python-ийг хэрхэн заадаг

Миний үндсэн ажил бол өгөгдөл, програмчлалтай холбоотой R, гэхдээ энэ нийтлэлд би өөрийн хобби, тэр ч байтугай тодорхой хэмжээний орлого авчирдаг тухай ярихыг хүсч байна. Найз нөхөд, ангийнхан, ангийнхандаа юм ярьж, тайлбарлах сонирхолтой байсан. Хүүхдүүдтэй нийтлэг хэл олох нь надад үргэлж амархан байсан, яагаад гэдгийг би мэдэхгүй. Ер нь хүүхэд хүмүүжүүлэх, сургах нь хамгийн чухал ажил гэж би боддог, эхнэр маань багш хүн. Ингээд жил орчмын өмнө орон нутгийн фэйсбүүк группт сурталчилгаа хийж, групп үүсгэн долоо хоногт нэг удаа Scratch, Python зааж эхэлсэн. Одоо би таван бүлэгтэй, гэртээ өөрийн гэсэн ангитай, ганцаарчилсан хичээлтэй. Би яаж ингэж амьдрах болсон, яг яаж хүүхдүүдэд зааж сургадаг тухайгаа энэ нийтлэлд хэлэх болно.

Би Канадын Альберта мужийн Калгари хотод амьдардаг тул зарим зүйл орон нутгийн онцлог байх болно.

Өрөө

Дадлага хийх орон зай нь анхнаасаа л санаа зовоосон асуудал байсан. Түрээслэх оффис, анги танхимуудыг цаг цагаар хайж үзсэн ч төдийлөн амжилт олоогүй. Манай их сургууль болон орон нутгийн MIT-тэй дүйцэхүйц SAIT нь компьютертэй болон компьютергүй хичээлүүдийг санал болгодог. Тэндхийн үнэ тийм ч хүмүүнлэг биш болж, эцэст нь тус их сургууль насанд хүрээгүй хүүхдүүдийг зөвшөөрдөггүй, SAIT ерөнхийдөө зөвхөн өөрийн оюутнуудад түрээслүүлдэг болох нь тогтоогджээ. Тиймээс энэ сонголтыг хассан. Уулзалтын өрөө, оффисыг цагаар түрээслэдэг олон оффисын төвүүд байдаг бөгөөд бүтэн ангиас дөрвөн хүний ​​өрөө хүртэл олон сонголтыг санал болгодог бүхэл бүтэн компаниуд байдаг. Альберта бол газрын тосны муж учраас 2014 оноос хойш бид удаашралтай хямралд орж, олон бизнесийн орон зай хоосон байна гэж би найдаж байсан. Би найдах ёсгүй байсан; үнэ нь маш аймшигтай болсон тул би эхэндээ итгэсэнгүй. Эзэмшигчдэд хог хаяхаас илүү хоосон оффист суугаад зардлаа төлөх нь илүү хялбар байдаг.

Тэр үед би татвараа тогтмол төлдөг, манай эрхэм мужид, эс тэгвээс Калгари хотод юу ч байгаа эсэхийг санав. Үнэхээр байдаг нь тогтоогдсон. Тус хотод хоккей болон бусад уран гулгалтын спортын талбайнууд байдаг бөгөөд эдгээр талбайд ширүүн мөсөн дайчид ирээдүйн тулааны стратегийн талаар ярилцдаг өрөөнүүд байдаг. Товчхондоо, талбай бүр ширээ, сандал, цагаан самбар, тэр ч байтугай данхтай угаалтуур бүхий хоёр өрөөтэй. Үнэ нь үнэхээр тэнгэрлэг юм - цагт 25 канад төгрөг. Би эхлээд нэг цаг хагас хичээл хийхээр шийдсэн тул таван хүнтэй нэг ангид 35 ам.доллар байхаар тогтож, түрээсийн төлбөрөө төлж, халаасандаа ямар нэгэн зүйл хийсэн. Ерөнхийдөө би талбай дээр дасгал хийх дуртай байсан, энэ нь нэг асуудлыг шийдсэн - ихэнх орос хэлтэй хүмүүс өмнөд хэсэгт амьдардаг, би хотын хойд хэсэгт амьдардаг тул би ойролцоогоор дундах талбайг сонгосон. Гэхдээ бас таагүй зүйл байсан. Канадын хүнд суртал нь сайн, найрсаг боловч бага зэрэг болхи байж магадгүй юм. Хэмнэлд дасаж, урьдчилан төлөвлөчихвөл ямар ч асуудал гардаггүй ч заримдаа таагүй мөчүүд гарч ирдэг. Жишээлбэл, хотын вэб сайт дээр та цаг хугацаа, газрыг хялбархан сонгож, өрөө захиалж болно, гэхдээ та ямар ч байдлаар төлбөр хийх боломжгүй. Тэд өөрсдөө утсаар ярьж, картаар төлбөрөө хүлээн авдаг. Оффис дээр очоод бэлнээр төлж болно. Хоёр дахь хичээлийнхээ төлбөрийг төлөхөөр тэдний дуудлагыг хүлээж байсан инээдтэй, гэхдээ тийм ч таатай биш мөч байсан ч ирээгүй бөгөөд сүүлчийн өдөр би оффис руу арван таван минут хоцорч ирсэн. Би хамгаалалтад увайгүй царайлан ойртож, өрөө захиалсан гэж худал хэлэх хэрэгтэй болсон. Канадчууд бид миний үгийг хүлээж авдаг; тэд намайг тайвнаар оруулаад юу ч шалгаагүй, гэхдээ хүмүүс хичээлдээ явах замдаа гараагүй байсан бол би үүнийг хийхгүй байсан.

Өвөл, хаврын улиралд би ингэж ажилласан бөгөөд дараа нь сүүлчийн дусал байсан өөрчлөлтүүд гарсан. Нэгдүгээрт, оффис зочдод хаалттай байсан бөгөөд тэд булан тойрон утсаар төлбөрөө хүлээн авахыг санал болгов. Хагас цагийн турш үүдэнд суув. Хоёрдугаарт, хэрэв миний хайрт нагац эгч надаас нэг цаг хагасын төлбөр авдаг байсан бол одоо нэг охин утсаа авч, төлбөрийг ердөө ганцхан цаг гэж хэлсэн. Тэр үед манай групп гурав юм уу хоёр хүн байсан бөгөөд илүү гарсан 12.5 доллар нь огтхон ч илүүц байсангүй. Мэдээж би үзэл сурталтай, гэхдээ эхнэр маань намайг гудамжинд гаргавал заах хүн олдохгүй. Тэр үед би ажилгүй хэвээр байсан.

Тэгээд би номын сан руу явахаар шийдсэн. Номын сангууд гайхамшигтай өрөөнүүдийг бүрэн үнэ төлбөргүй түрээслүүлдэг, гэхдээ нэг зүйл байдаг - та арилжааны үйл ажиллагаа явуулах боломжгүй. Тэнд буяны байгууллагууд хүртэл мөнгө цуглуулахыг хориглодог. Үүнд онцгой хяналт тавьдаггүй, гол нь орцонд мөнгө авахгүй байх ёстой гэж надад хэлсэн, гэхдээ би дүрэм зөрчих дургүй. Өөр нэг асуудал бол өрөөнүүд ихэвчлэн хүнтэй, хуваарийн дагуу нэг дор нэг дор хичээллэхэд хүндрэлтэй байдаг. Би зун, өвлийн эхэн цагт номын санд хичээл зааж, зайтайг нь сонгож, эцэст нь тав зургаан номын санг сольсон. Дараа нь би хоёр сарын өмнө байр захиалж эхэлсэн, тэр ч байтугай би үүнийг зөвхөн нэг жижиг номын санд хийж чадсан, үлдсэн нь шаардлагатай хугацаанд тогтмол байргүй байв. Тэгээд би гэртээ компьютерийн анги хийхээр шийдсэн. Би самбараа өлгөж, сурталчилгаанаас хоёр дахь ширээ, хэдэн хуучин монитор худалдаж авлаа. Миний компьютер дээр дүн шинжилгээ хийхэд бараг 24 цаг зарцуулагдсан тул ажил дээрээ компани надад шинэ хүчирхэг зөөврийн компьютер худалдаж авсан. Ингээд шинэ хуучин компьютер, хуучин компьютер, бяцхан үрийнхээ дэлгэцийг дардаг зөөврийн компьютер, өөрөө дэлгэцийг нь дардаг эртний нэтбүүктэй болсон. Би бүгдийг нь мониторуудтай холбож, Linux Mint-ийг хаа сайгүй суулгасан, нэтбүүкээс бусад нь маш хөнгөн түгээлтийн иж бүрдэл суулгасан бололтой, Паппи. Надад 200 доллараар худалдаж авсан хуучин шинэ зөөврийн компьютер байгаа, би үүнийг зурагттай холбосон. Мөн хамгийн чухал зүйл бол манай эзэн саяхан цонхоо сольсон бөгөөд өрөөнд байгаа аймшигт, сүйрч буй бүдүүлэг байдлын оронд бид шинэ цагаан хүрээтэй болсон. Манай эхнэр цэцэрлэгийн зочны өрөө, гал тогоо, хоёр дахь унтлагын өрөөг хадгалдаг тул бүх шал нь зөвхөн сурган хүмүүжүүлэх зориулалттай байв. За, одоо байранд бүх зүйл сайхан байна, заах руугаа орцгооё.

Зураас

Би Scratch хэлээр програмчлалын үндсийг зааж эхэлж байна. Энэ бол MIT-д нэгэн зэрэг зохион бүтээсэн бэлэн блокуудыг ашигладаг хэл юм. Ихэнх хүүхдүүд Scratch-ийг сургууль дээрээ аль хэдийн үзсэн тул тэд үүнийг маш хурдан авдаг. Бэлэн хөтөлбөр, хичээлийн төлөвлөгөө байдаг ч надад огт таалагддаггүй. Зарим нь хачирхалтай - жишээлбэл, өөрийн түүхийг бүтээ. Бүхэл бүтэн програм нь тоо томшгүй олон блокоос бүрдэнэ say '<...>' for 2 seconds. Үүнийг маш бүтээлч хүмүүс зохион бүтээсэн гэдгийг харж болно, гэхдээ энэ арга барилаар та Энэтхэгийн сонгодог спагетти кодыг хэрхэн бичихийг зааж болно. Би анхнаасаа л DRY гэх мэт зарчмуудын талаар ярьдаг.Бусад даалгаврын цуглуулга нэлээд сайн байдаг ч хүүхдүүд мөн чанарыг нь хурдан ойлгож, автомат буу шиг хийж эхэлдэг. Үүний үр дүнд тэд таван хичээлд хийх ёстой зүйлээ нэг хичээлээр хийдэг. Мөн даалгавруудыг хайх, сонгох нь хувийн цаг хугацаа их шаарддаг. Ерөнхийдөө Scratch нь хэлийг биш, харин IDE-г илүү санагдуулдаг бөгөөд та хаана дарж, хаанаас юу хайхаа санах хэрэгтэй. Оюутнууд илүү их эсвэл бага тухтай болмогц би тэднийг Python руу шилжүүлэхийг хичээдэг. Долоон настай охин маань хүртэл Python хэл дээр энгийн програм бичдэг. Миний Scratch-ийн давуу тал гэж харж байгаа зүйл бол тоглоомын аргаар сурсан үндсэн ойлголтуудыг агуулдаг. Зарим шалтгааны улмаас хувьсагчийн тухай ойлголтыг хүн бүр ойлгоход хэцүү байдаг. Эхлээд би сэдвийг хурдан гүйлгэж, тэд энэ талаар юу хийхээ ч мэдэхгүй байгаатай тулгартал цааш явав. Одоо би хувьсагчдад маш их цаг зарцуулж, тэдгээрт байнга эргэж ирдэг. Та тэнэг алх хийх хэрэгтэй. Би дэлгэцэн дээрх янз бүрийн хувьсагчдыг өөрчилж, утгыг нь ярьдаг болгодог. Scratch нь мөн хяналтын бүтэц, үнэ цэнийг шалгах гэх мэт while, for буюу if питон хэл дээр. Тэдгээр нь нэлээд хялбар боловч үүрлэсэн гогцоонд асуудал гардаг. Би үүрлэсэн гогцоотой хэд хэдэн даалгавар өгөхийг хичээдэг бөгөөд ингэснээр түүний үйлдэл тодорхой болно. Үүний дараа би функцууд руу шилждэг. Насанд хүрэгчдийн хувьд ч гэсэн функциональ ойлголт нь тодорхой бус, бүр хүүхдүүдэд илүү их байдаг. Би ер нь функц гэж юу болох талаар удаан ярилаа, орц болгон авч бараа гаргадаг үйлдвэр, түүхий эдээр хоол хийдэг тогоочийн тухай ярьж байна. Дараа нь бид бүтээгдэхүүнээр "сэндвич хийх" програмыг хийж, дараа нь бид функцийг гаргаж, бүтээгдэхүүнийг параметр болгон дамжуулдаг. Би Scratch ашиглан функцүүдийг сурч дуусгадаг.

Пайтон

Питонтой бол бүх зүйл илүү хялбар байдаг. Хүүхдэд зориулсан Python сайн ном байдаг, тэр номыг нь би сургадаг. Тэнд бүх зүйл стандарт байдаг - шугам, үйл ажиллагааны дараалал, print(), input() гэх мэт. Хялбар хэллэгээр, хошин шогийн хэлбэрээр бичсэн нь хүүхдүүдэд таалагддаг. Энэ нь олон програмчлалын номонд нийтлэг байдаг дутагдалтай байдаг. Алдарт хошигнол шиг - шар шувууг хэрхэн зурах вэ. Зууван - тойрог - шар шувуу. Энгийн ойлголтоос нэлээд төвөгтэй ойлголт руу шилжих нь хэтэрхий огцом юм. Объектыг цэгийн аргад хавсаргахад надад хэд хэдэн сесс шаардлагатай. Нөгөөтэйгүүр, би яарах зүйлгүй, ядаж хэдэн зураг гарч ирэх хүртэл ижил зүйлийг янз бүрийн аргаар давтана. Би хувьсагчдаас эхэлж, энэ удаад Python хэл дээр дахин цохино. Хувьсагч нь нэг төрлийн хараал юм.

Хэдэн сарын өмнө Skratch дээр хувьсагчдыг овжин дарж байсан ухаалаг оюутан шинэ хаалган дээр байгаа хуц шиг харагдаж, самбар дээр тодорхой бичсэн Y үсэгтэй X-г нэмж чадахгүй. Бид давтаж байна! Хувьсагчд юу байх вэ? Нэр, утга! Тэгш тэмдэг нь юу гэсэн үг вэ? Даалгавар! Бид тэгш байдлыг хэрхэн шалгах вэ? Давхар тэнцүү гэсэн тэмдэг! Бүрэн гэгээрэх хүртэл бид үүнийг дахин дахин давтана. Дараа нь бид аргументуудын тайлбар хамгийн удаан үргэлжлэх функцууд руу шилжинэ. Нэрлэсэн аргументууд, байрлалаар, анхдагчаар гэх мэт. Бид аль ч бүлгийн ангидаа хараахан хүрээгүй байна. Python-оос гадна бид номноос алдартай алгоритмуудыг судлах болно, дараа нь энэ талаар дэлгэрэнгүй авч үзэх болно.

Үнэндээ сургалт

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

Миний шавь нар тэнэг зан, гэнэтийн оюун ухаанаараа намайг гайхшруулдаг. Аз болоход, ихэнхдээ оюун ухаантай байдаг.

Илүү их юм бичмээр байсан ч зүгээр л нэг хуудас болчихсон. Би бүх асуултанд хариулахдаа баяртай байх болно. Би аливаа шүүмжлэлийг бүх талаас нь хүлээн авдаг, би зүгээр л коммент хэсэгт бие биедээ илүү хүлээцтэй хандахыг хүсч байна. Энэ сайн нийтлэл байна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх