Ինչպե՞ս սովորեցնել Python երեխաներին:

Ինչպե՞ս սովորեցնել Python երեխաներին:

Իմ հիմնական աշխատանքը կապված է տվյալների և ծրագրավորման հետ R, բայց այս հոդվածում ես ուզում եմ խոսել իմ հոբբիի մասին, որը նույնիսկ որոշակի եկամուտ է բերում։ Ինձ միշտ հետաքրքրել է ընկերներին, դասընկերներին և համակուրսեցիներին պատմել և բացատրել: Ինձ համար միշտ էլ հեշտ է եղել երեխաների հետ ընդհանուր լեզու գտնելը, չգիտեմ ինչու: Ընդհանրապես, ես կարծում եմ, որ երեխաների դաստիարակությունն ու ուսուցումը ամենից կարևոր գործերից մեկն է, իսկ կինս ուսուցչուհի է։ Այսպիսով, մոտ մեկ տարի առաջ ես գովազդեցի տեղական ֆեյսբուքյան խմբում, ստեղծեցի խումբ և սկսեցի դասավանդել Scratch և Python շաբաթը մեկ անգամ: Հիմա ունեմ հինգ խումբ, սեփական դասարան տանը և անհատական ​​պարապմունքներ։ Ինչպես ես սկսեցի ապրել այսպես և ինչպես եմ սովորեցնում երեխաներին, ես ձեզ կպատմեմ այս հոդվածում:

Ես ապրում եմ Կալգարիում, Ալբերտա, Կանադա, ուստի որոշ բաներ կլինեն տեղական առանձնահատկություններ:

Սենյակը

Պրակտիկայի համար տարածքի առկայությունը ի սկզբանե լուրջ մտահոգություն էր: Փորձեցի ժամ առ ժամ որոնել վարձով վարձով տրվող գրասենյակներ և դասասենյակներ, բայց առանձնապես չհաջողվեց: Մեր համալսարանը և SAIT-ը՝ MIT-ի տեղական համարժեքը, առաջարկում են դասեր համակարգիչներով և առանց համակարգիչների: Այնտեղ գները պարզվեց, որ այնքան էլ մարդկային չէին, և վերջում պարզվեց, որ համալսարանն անչափահասներին թույլ չի տալիս, իսկ ՍԱԻԹ-ը հիմնականում վարձակալում է միայն սեփական ուսանողներին։ Այսպիսով, այս տարբերակը վերացավ։ Կան բազմաթիվ գրասենյակային կենտրոններ, որոնք ժամերով վարձում են նիստերի սենյակներ և գրասենյակներ, կան ամբողջ ընկերություններ, որոնք առաջարկում են մի շարք տարբերակներ՝ լիարժեք դասասենյակից մինչև չորս հոգու համար նախատեսված սենյակ: Ես հույսեր ունեի, քանի որ Ալբերտան նավթային նահանգ է, մենք 2014 թվականից դանդաղ ճգնաժամի մեջ ենք, և շատ բիզնես տարածքներ դատարկ են: Ես չպետք է հույս ունենայի, գներն այնքան աղաղակող ստացվեցին, որ սկզբում նույնիսկ չհավատացի: Սեփականատերերի համար ավելի հեշտ է նստել դատարկ գրասենյակներում և վճարել ծախսերը, քան թափել:

Այդ պահին հիշեցի, որ ես կանոնավոր վճարում եմ իմ հարկերը, և արդյոք մեր սիրելի նահանգը, ավելի ճիշտ՝ Կալգարի քաղաքը, որևէ բան ունի այնտեղ։ Պարզվեց, որ իսկապես կա։ Քաղաքում կան հարթակներ հոկեյի և գեղասահքի այլ մարզաձևերի համար, և այդ ասպարեզներում կան սենյակներ, որտեղ կոպիտ սառցե մարտիկները քննարկում են ապագա մարտերի ռազմավարությունը: Մի խոսքով, յուրաքանչյուր արենա ունի մի քանի սենյակ՝ սեղաններով, աթոռներով, սպիտակ տախտակով և նույնիսկ լվացարանով թեյնիկով։ Գինը միանգամայն աստվածային է՝ 25 կանադական տուգրիկ ժամում։ Ես սկզբում որոշեցի դասեր անել մեկուկես ժամով, ուստի հինգ հոգանոց խմբում դասի համար դասի գինը սահմանեցի 35 դոլար, վարձը փոխհատուցելու և գրպանս մի բան դնելու համար։ Ընդհանրապես, ինձ դուր էր գալիս մարզահրապարակներում մարզվելը, դա լուծեց խնդիրներից մեկը՝ ռուսախոսների մեծ մասն ապրում է հարավում, իսկ ես՝ քաղաքի հյուսիսում, ուստի ընտրեցի ասպարեզը մոտավորապես մեջտեղում։ Բայց եղան նաև անհարմարություններ. Կանադական բյուրոկրատիան լավ է և ընկերասեր, բայց, մեղմ ասած, կարող է որոշ չափով անշնորհք լինել: Խնդիրներ չեն լինում, երբ ընտելանում ես ռիթմին ու նախապես պլանավորում ես, բայց երբեմն տհաճ պահեր են առաջանում։ Օրինակ, քաղաքի կայքում դուք կարող եք հարմար ժամանակ ընտրել և սենյակ ամրագրել, բայց ոչ մի կերպ չեք կարող վճարել: Նրանք իրենք են զանգերը կատարում և քարտով վճարումներ ընդունում։ Կարող եք գնալ գրասենյակ և վճարել կանխիկ: Մի զվարճալի, բայց ոչ այնքան հաճելի պահ կար, երբ սպասում էի նրանց զանգին, որպեսզի վճարեն երկրորդ դասը, այն չեկավ, և վերջին օրը ես տասնհինգ րոպե ուշացա գրասենյակ։ Ես ստիպված էի լկտի դեմքով մոտենալ անվտանգությանը և ստել, թե սենյակը ամրագրված է։ Մենք՝ կանադացիներս, ընդունում ենք իմ խոսքը, նրանք ինձ հանգիստ ներս թողեցին և ոչինչ չստուգեցին, բայց ես դա չէի անի, եթե մարդիկ արդեն դասի ճանապարհին չլինեին:

Ահա թե ինչպես ես աշխատեցի ձմռանը և գարնանը, և հետո տեղի ունեցան փոփոխություններ, որոնք վերջին կաթիլն էին: Նախ, գրասենյակը փակ էր այցելուների համար, և նրանք առաջարկեցին վճարումներ ընդունել հեռախոսի կողքին։ Առնվազն կես ժամ նստեցի միջանցքում, մինչև անցա: Երկրորդ, եթե նախկինում սիրելի մորաքույրս ինձնից մեկուկես ժամով վճարում էր, հիմա հեռախոսին մի աղջիկ պատասխանեց և ասաց, որ վճարումը ընդամենը մեկ ժամի համար է։ Այն ժամանակ իմ խումբը կա՛մ երեք հոգի էր, կա՛մ երկու հոգի, իսկ ավելորդ 12.5 դոլարը բոլորովին ավելորդ չէր։ Իհարկե, ես գաղափարական եմ, բայց եթե կինս ինձ փողոց նետի, ուրեմն դասավանդող չի լինի։ Այն ժամանակ դեռ գործազուրկ էի։

Եվ ես որոշեցի գնալ գրադարան։ Գրադարանները վարձակալում են հրաշալի սենյակներ բոլորովին անվճար, բայց կա մեկ բան՝ չես կարող առևտրային գործունեություն ծավալել։ Նույնիսկ բարեգործական կազմակերպություններին արգելված է այնտեղ գումար հավաքել։ Ինձ ասացին, որ դա առանձնապես չի վերահսկվում, հիմնականը մուտքի մոտ գումար չվերցնելն է, բայց ես իսկապես չեմ սիրում խախտել կանոնները: Մյուս խնդիրն այն է, որ սենյակները հաճախ զբաղեցված են, և դժվար է լինում պլանային պարապմունքներ անցկացնել մեկ վայրում: Ես դասավանդում էի գրադարաններում ամռանը և ձմռան սկզբին, պետք է ընտրեի տարածք ունեցողները, և վերջում փոխեցի հինգ-վեց գրադարան։ Այնուհետև ես սկսեցի տեղ պատվիրել երկու ամիս առաջ, և նույնիսկ այդ ժամանակ ինձ հաջողվեց դա անել միայն մեկ փոքրիկ գրադարանում, մնացածը կանոնավոր կերպով տեղ չունեին անհրաժեշտ ժամանակի համար: Եվ հետո որոշեցի տանը համակարգչային դաս պատրաստել: Ես կախեցի տախտակը, գովազդից գնեցի երկրորդ սեղան և մի երկու հին մոնիտոր։ Աշխատանքի ժամանակ ընկերությունն ինձ համար նոր հզոր նոութբուք գնեց, քանի որ իմ համակարգչի վրա վերլուծությունը տևեց գրեթե 24 ժամ: Այսպիսով, ես ունեի նոր հին համակարգիչ, հին հին համակարգիչ, նոթբուք, որի վրա իմ փոքրիկը սեղմում էր էկրանը, և հինավուրց նեթբուք, որի վրա ես ինքս ջարդում էի էկրանը: Բոլորը միացրի մոնիտորներին ու ամենուր տեղադրեցի Linux Mint, բացի նեթբուքից, որի վրա տեղադրեցի շատ թեթև բաշխիչ փաթեթ, կարծես Pappy: Ես դեռ հին նոր նոթբուք ունեմ, գնել եմ 200$, միացրել եմ հեռուստացույցին։ Կարևորը նաև այն է, որ մեր տերը վերջերս փոխել է մեր պատուհանները, և սենյակում տիրող սարսափելի, փլուզվող ախմախության փոխարեն մենք այժմ ունենք նոր սպիտակ շրջանակներ: Կինս մանկապարտեզի համար է պահում հյուրասենյակը, խոհանոցը և երկրորդ ննջասենյակը, այնպես որ ամբողջ հատակը զուտ մանկավարժական է։ Այսպիսով, այժմ ամեն ինչ լավ է տարածքի հետ, եկեք անցնենք դասավանդմանը:

Քորում

Ես սկսում եմ սովորեցնել ծրագրավորման հիմունքները Scratch լեզվով: Սա լեզու է, որն օգտագործում է պատրաստի բլոկներ, որոնք մի ժամանակ հորինվել են MIT-ում: Երեխաների մեծ մասն արդեն տեսել է Scratch-ը դպրոցում, ուստի նրանք բավականին արագ են այն վերցնում: Կան պատրաստի ծրագրեր և դասերի պլաններ, բայց ես դրանք ընդհանրապես չեմ սիրում։ Ոմանք տարօրինակ են. ստեղծեք ձեր սեփական պատմությունը, օրինակ: Ամբողջ ծրագիրը բաղկացած է անթիվ բլոկներից say '<...>' for 2 seconds. Երևում է, որ այն հորինել են շատ կրեատիվ անհատներ, բայց այս մոտեցմամբ դուք կարող եք սովորեցնել, թե ինչպես գրել դասական հնդկական սպագետտի կոդ։ Ես հենց սկզբից խոսում եմ այնպիսի սկզբունքների մասին, ինչպիսիք են D.R.Y. Առաջադրանքների այլ հավաքածուները բավականին լավն են, բայց երեխաները արագորեն գլուխ են հանում և սկսում են դրանք կատարել ավտոմատի պես: Արդյունքում նրանք մեկ դասի ընթացքում անում են այն, ինչ պետք է անեին հինգում։ Իսկ առաջադրանքների որոնումն ու ընտրությունը շատ անձնական ժամանակ է պահանջում: Ընդհանրապես, Scratch-ը ավելի շատ հիշեցնում է ոչ թե լեզու, այլ IDE, որտեղ պարզապես պետք է հիշել, թե որտեղ սեղմել և որտեղ փնտրել ինչ։ Հենց ուսանողները քիչ թե շատ հարմար են, ես փորձում եմ նրանց տեղափոխել Python։ Նույնիսկ իմ յոթ տարեկան աղջիկը Python-ով հասարակ ծրագրեր է գրում։ Այն, ինչ ես տեսնում եմ որպես Scratch-ի առավելությունն այն է, որ այն պարունակում է հիմնական հասկացություններ, որոնք սովորվում են խաղային ձևով: Չգիտես ինչու, բոլորի համար, առանց բացառության, շատ դժվար է հասկանալ փոփոխականի գաղափարը: Սկզբում ես արագ շրջեցի թեման և առաջ շարժվեցի, մինչև որ բախվեցի այն փաստի հետ, որ նրանք նույնիսկ չգիտեին, թե ինչ անել դրա հետ: Հիմա ես շատ ժամանակ եմ ծախսում փոփոխականների վրա և անընդհատ վերադառնում եմ դրանց։ Դուք պետք է ինչ-որ հիմար մուրճեր անեք: Ես փոխում եմ տարբեր փոփոխականներ էկրանին և ստիպում նրանց ասել իրենց արժեքները: Scratch-ն ունի նաև հսկիչ կառույցներ և արժեքների ստուգումներ, ինչպիսիք են while, for կամ if պիթոնի մեջ։ Դրանք բավականին հեշտ են, բայց խնդիրներ կան ներդիր օղակների հետ: Ես փորձում եմ մի քանի առաջադրանքներ տալ ներդիր օղակով, և որպեսզի դրա գործողությունը պարզ լինի։ Դրանից հետո անցնում եմ գործառույթներին։ Նույնիսկ մեծահասակների համար ֆունկցիայի հասկացությունը ակնհայտ չէ, և առավել եւս երեխաների համար: Ես երկար շարունակում եմ այն ​​մասին, թե ընդհանրապես ինչ է գործառույթը, ես խոսում եմ մի գործարանի մասին, որը ապրանքներ է ստանում որպես մուտքագրում և թողարկում ապրանքներ, խոհարարի մասին, ով սնունդ է պատրաստում հումքից։ Այնուհետև պրոդուկտներով պատրաստում ենք «պատրաստել սենդվիչ» ծրագիր, այնուհետև դրանից ստեղծում ենք ֆունկցիա, որին փոխանցվում են ապրանքները որպես պարամետրեր։ Ես ավարտում եմ սովորելու գործառույթները Scratch-ով:

Python

Պիթոնի հետ ամեն ինչ ավելի պարզ է։ Կա մի լավ գիրք Python երեխաների համար, որից ես սովորեցնում եմ: Այնտեղ ամեն ինչ ստանդարտ է` տողեր, գործողությունների կարգ, print(), input() և այլն: Գրված է հեշտ լեզվով, հումորով, երեխաներին դուր է գալիս: Այն ունի ծրագրավորման շատ գրքերի ընդհանուր թերություն: Ինչպես հայտնի կատակի մեջ՝ ինչպես նկարել բու: Օվալ - շրջան - բու: Պարզ հասկացություններից բավականին բարդ հասկացությունների անցումը չափազանց կտրուկ է։ Ինձնից մի քանի նիստ է պահանջվում օբյեկտը կետային մեթոդին կցելու համար: Մյուս կողմից, ես չեմ շտապում, ես նույն բանը կրկնում եմ տարբեր ձևերով, մինչև գոնե ինչ-որ պատկեր հավաքվի։ Ես սկսում եմ փոփոխականներից և նորից հանում դրանք, այս անգամ Python-ում: Փոփոխականները մի տեսակ անեծք են:

Խելացի ուսանողը, ով մի քանի ամիս առաջ հմտորեն սեղմում էր Skratch-ի փոփոխականները, կարծես խոյ լինի նոր դարպասի մոտ և չի կարող X-ը ավելացնել Y-ով, որը հստակ գրված է տախտակի վրա վերևի մի տողով: Կրկնում ենք! Ի՞նչ ունի փոփոխականը: Անուն և իմաստ! Ի՞նչ է նշանակում հավասարության նշանը: Հանձնարարություն! Ինչպե՞ս ենք ստուգում հավասարությունը: Կրկնակի հավասար նշան! Եվ մենք կրկնում ենք սա նորից ու նորից մինչև ամբողջական լուսավորություն: Այնուհետև անցնում ենք ֆունկցիաներին, որտեղ արգումենտների բացատրությունն ամենաերկարն է տևում։ Անվանված փաստարկներ, ըստ դիրքի, լռելյայն և այլն: Մենք դեռ ոչ մի խմբում դասերի չենք հասել։ Բացի Python-ից, մենք ուսումնասիրում ենք գրքից հայտնի ալգորիթմներ, այդ մասին ավելի ուշ:

Իրականում, վերապատրաստում

Իմ դասը կառուցված է այսպես՝ ես կես ժամ տալիս եմ տեսություն, ստուգում եմ գիտելիքները և համախմբում սովորածը: Լաբորատորիաների ժամանակն է: Հաճախ տարվում եմ ու խոսում մինչև մեկ ժամ, հետո կես ժամ է մնում պրակտիկայի համար։ Երբ ես սովորում էի պիթոն, ես դիտում էի դասընթացը Ալգորիթմներ և տվյալների կառուցվածքներ Խիրյանովը MIPT-ից. Ինձ շատ դուր եկավ նրա ներկայացումը և դասախոսությունների կառուցվածքը։ Նրա գաղափարը սա է՝ շրջանակները, շարահյուսությունը, գրադարանները հնանում են։ Ճարտարապետություն, թիմային աշխատանք, տարբերակների կառավարման համակարգեր՝ դեռ վաղ է։ Արդյունքում, ալգորիթմներն ու տվյալների կառուցվածքները մնում են, որոնք հայտնի են վաղուց և միշտ կլինեն նույն ձևով: Ես ինքս միայն ամբողջ թվեր եմ հիշում պասկալ ինստիտուտից։ Քանի որ իմ ուսանողները հիմնականում երիտասարդ են՝ յոթից տասնհինգ տարեկան, ես կարծում եմ, որ նրանց ապագայի համար ավելի կարևոր է հիմքեր դնելը, քան արագ հարթակ խաղ գրել Python-ում: Չնայած, նրանք ավելի շատ հարթակ են ուզում, և ես նրանց հասկանում եմ։ Ես նրանց տալիս եմ պարզ ալգորիթմներ՝ պղպջակ, երկուական որոնում տեսակավորված ցուցակում, հակադարձ լեհական նշում՝ օգտագործելով ստեկը, բայց մենք վերլուծում ենք յուրաքանչյուրը շատ մանրամասն: Պարզվեց, որ ժամանակակից երեխաները սկզբունքորեն չգիտեն, թե ինչպես է աշխատում համակարգիչը, ես ձեզ նույնպես կասեմ: Ես փորձում եմ յուրաքանչյուր դասախոսության մեջ մի քանի հասկացություններ կապել: Օրինակ՝ համակարգիչ - հիշողություն/տոկոս - հիշողություն՝ կազմված բջիջներից (թույլ կտամ պահել հիշողության չիպը, գուշակել, թե քանի բջիջ կա) - յուրաքանչյուր բջիջ նման է լամպի - կա երկու վիճակ՝ ճիշտ/կեղծ - և/կամ - երկուական/տասնորդական - 8 բիթ = 1 բայթ - բայթ = 256 տարբերակ - տվյալների տրամաբանական տեսակը մեկ բիթում - ամբողջ թվերը մեկ բայթի վրա - float երկու բայթով - string մեկ բայթի վրա - ամենամեծ թիվը 64 բիթով - ցուցակ և կրկնակի նախորդ տեսակներից: Ես վերապահում եմ անում, որ իրական համակարգչում ամեն ինչ ինչ-որ չափով տարբերվում է, և այս տվյալների տեսակների համար հիշողության ծավալը տարբեր է, բայց գլխավորն այն է, որ մենք ինքներս գործընթացում ավելի բարդ տվյալների տիպեր ենք ստեղծում ավելի պարզներից: Տվյալների տեսակները, թերևս, ամենադժվարն են հիշելու համար: Այդ իսկ պատճառով ես յուրաքանչյուր դաս սկսում եմ արագ տաքացումով. մեկը նշում է տվյալների տեսակը, հաջորդը տալիս է երկու օրինակ և այլն՝ շրջանագծի մեջ: Արդյունքում ես հասա նրան, որ նույնիսկ ամենափոքր երեխաները ուրախ բղավում են. բուլյան! յոթ, հինգ! պիցցա, մեքենա! Դասախոսության ժամանակ ես անընդհատ քաշում եմ առաջինը կամ մյուսը, հակառակ դեպքում նրանք արագ սկսում են քիթ հավաքել և նայել առաստաղին։ Եվ յուրաքանչյուրի գիտելիքների մակարդակը պետք է պարբերաբար ստուգվի:

Իմ ուսանողները չեն դադարում զարմացնել ինձ՝ թե՛ իրենց հիմարությամբ, թե՛ անսպասելի խելքով։ Բարեբախտաբար, ավելի հաճախ խելքով:

Ես ուզում էի ավելին գրել, բայց պարզվեց, որ դա պարզապես թերթիկ է: Ես սիրով կպատասխանեմ բոլոր հարցերին։ Ողջունում եմ ցանկացած քննադատություն ամեն կերպ, պարզապես խնդրում եմ մեկնաբանություններում ավելի հանդուրժող լինել միմյանց նկատմամբ։ Սա լավ հոդված է:

Source: www.habr.com

Добавить комментарий