چگونه پایتون را به بچه ها یاد بدهم؟

چگونه پایتون را به بچه ها یاد بدهم؟

کار اصلی من مربوط به دیتا و برنامه نویسی است R، اما در این مقاله می خواهم در مورد سرگرمی خود صحبت کنم که حتی درآمدی نیز به همراه دارد. من همیشه علاقه داشتم که چیزی را برای دوستان، همکلاسی ها و همکلاسی ها بگویم و توضیح دهم. همچنین همیشه برای من یافتن زبان مشترک با بچه ها آسان بود، نمی دانم چرا. در کل معتقدم تربیت و تربیت فرزندان یکی از مهم ترین فعالیت هاست و همسرم معلم است. بنابراین، حدود یک سال پیش، من در یک گروه محلی فیس بوک تبلیغ کردم، یک گروه گرفتم و یک بار در هفته شروع به آموزش اسکرچ و پایتون کردم. الان پنج گروه دارم، کلاس خودم در خانه و درس انفرادی. چگونه به چنین زندگی ای رسیدم و دقیقاً چگونه به کودکان آموزش می دهم، در این مقاله خواهم گفت.

من در کانادا، کلگری، آلبرتا زندگی می کنم، بنابراین برخی از نکات مربوط به ویژگی های محلی خواهد بود.

اتاق

داشتن مکانی برای تمرین از همان ابتدا یک مشکل اساسی بود. سعی کردم ساعتی به دنبال دفاتر و کلاس هایی برای اجاره بگردم، اما خیلی موفق نبودم. دانشگاه ما و SAIT - معادل محلی MIT - کلاس‌ها را با و بدون کامپیوتر می‌گذرانند. قیمت ها در آنجا خیلی انسانی نبود، اما در نهایت معلوم شد که دانشگاه به افراد زیر سن قانونی اجازه ورود نمی دهد و SAIT عموماً فقط به دانشجویان خود اجاره می دهد. بنابراین این گزینه حذف شد. مراکز اداری زیادی وجود دارند که اتاق‌ها و دفاتر را ساعتی اجاره می‌کنند، شرکت‌های کاملی هستند که مجموعه‌ای از گزینه‌ها از یک کلاس کامل تا یک اتاق چهار نفره را ارائه می‌دهند. من امیدوار بودم، از آنجایی که آلبرتا یک استان نفتی است، ما از سال 2014 با یک بحران سطح پایین مواجه بودیم و بسیاری از مناطق تجاری خالی هستند. بیهوده امیدوار بودم، قیمت ها آنقدر بالا بود که در ابتدا حتی آن را باور نکردم. نشستن در دفاتر خالی و پرداخت هزینه ها برای صاحبان آسان تر از تخلیه است.

در آن لحظه یادم افتاد که من مرتب مالیات می دهم و آیا ایالت عزیز ما یا بهتر است بگوییم شهر کلگری آنجا چیزی دارد؟ معلوم شد که واقعا وجود دارد. این شهر دارای میدان هایی برای بازی هاکی و سایر اسکیت بازی است و در این عرصه ها اتاق هایی وجود دارد که جنگجویان یخ سرسخت در مورد استراتژی های نبردهای آینده بحث می کنند. به طور خلاصه، هر سالن دارای چند اتاق با میز، صندلی، تخته سفید و حتی یک سینک با کتری است. قیمت کاملاً الهی است - 25 توگریک کانادایی در ساعت. من در ابتدا تصمیم گرفتم کلاس ها را یک ساعت و نیم انجام دهم، بنابراین قیمت یک کلاس را 35 دلار برای هر بینی در یک گروه پنج نفره تعیین کردم تا اجاره را جبران کنم، خوب، چیزی را در جیبم بگذارم. به طور کلی، من دوست داشتم در عرصه ها تمرین کنم، یکی از مشکلات را حل کرد - اکثر روسی زبانان در جنوب زندگی می کنند و من در شمال شهر زندگی می کنم، بنابراین تقریباً در وسط این عرصه را انتخاب کردم. اما ناراحتی هایی نیز وجود داشت. بوروکراسی کانادا خوب و دوستانه است، اما، به بیان ملایم، می تواند کمی کند باشد. وقتی به ریتم عادت کنید و از قبل برنامه ریزی کنید هیچ مشکلی وجود ندارد، اما گاهی اوقات لحظات ناخوشایندی وجود دارد. به عنوان مثال، در وب سایت شهر، می توانید زمان و مکان را به راحتی انتخاب کنید، اتاق رزرو کنید، اما به هیچ وجه نمی توانید پرداخت کنید. آنها تماس تلفنی برقرار می کنند و پرداخت کارت را می پذیرند. می توانید به دفتر مراجعه کنید و نقدی پرداخت کنید. یک لحظه خنده دار اما نه چندان خوشایند بود که منتظر تماس آنها برای پرداخت هزینه درس دوم بودم، منتظر نشدم و روز آخر با پانزده دقیقه تاخیر به دفتر رسیدم. مجبور شدم با پوزه گستاخانه به نگهبانان نزدیک شوم و به دروغ بگویم که اتاق رزرو شده است. ما کانادایی‌ها حرفمان را قبول می‌کنیم، آنها با آرامش به من اجازه ورود دادند و چیزی را بررسی نکردند، اما اگر مردم قبلاً در راه کلاس نبودند، این کار را نمی‌کردم.

بنابراین زمستان و بهار را انجام دادم و سپس تغییراتی به وجود آمد که به آخرین نیش تبدیل شد. ابتدا، دفتر به روی بازدیدکنندگان بسته شد و به آنها پیشنهاد شد که از طریق تلفن پرداخت ها را بپذیرند. حداقل نیم ساعتی در راهرو نشستم تا از راه بروم. ثانیا اگر قبلا خاله عزیزم یک ساعت و نیم از من پول می گرفت، حالا فلان دختر گوشی را برداشت و گفت پرداخت فقط یک ساعت است. در آن زمان من یک گروه سه نفره و سپس دو نفره داشتم و 12.5 دلار اضافی اصلاً اضافی نبود. البته من ایدئولوژیک هستم، اما اگر همسرم مرا به خیابان بیاندازد، دیگر کسی نیست که درس بدهد. آن موقع هنوز بیکار بودم.

و تصمیم گرفتم به کتابخانه بروم. کتابخانه ها اتاق های زیبا را به صورت رایگان اجاره می دهند، اما یک چیز وجود دارد - شما نمی توانید فعالیت های تجاری انجام دهید. حتی موسسات خیریه هم اجازه ندارند در آنجا پول جمع کنند. به من گفته شد که این به ویژه کنترل نمی شود ، نکته اصلی این است که در ورودی همانجا پول نگیرید ، اما من واقعاً دوست ندارم قوانین را زیر پا بگذارم. مشکل دیگر این است که اتاق ها اغلب شلوغ هستند و برنامه ریزی کلاس ها به طور همزمان در یک مکان دشوار است. تابستان و اوایل زمستان در کتابخانه‌ها تدریس می‌کردم، باید آن‌هایی را که جایی بود انتخاب می‌کردم، در نتیجه پنج یا شش کتابخانه را تغییر دادم. سپس دو ماه قبل شروع به رزرو مکان کردم و بعد معلوم شد که فقط در یک کتابخانه کوچک انجام می شود، در بقیه مکان ها به طور منظم در زمان مناسب وجود نداشت. و بعد تصمیم گرفتم در خانه کلاس کامپیوتر بسازم. برد را گذاشتم، یک میز دوم و چند مانیتور قدیمی روی آگهی خریدم. در محل کار، شرکت برای من یک لپ تاپ قدرتمند جدید خرید، زیرا تجزیه و تحلیل در رایانه من تقریباً 24 ساعت طول کشید. در مجموع یک کامپیوتر قدیمی جدید داشتم، یک کامپیوتر قدیمی، یک لپ تاپ که صفحه کوچکم را خرد کرده بود و یک نت بوک قدیمی که خودم صفحه را روی آن له کردم. من همه آنها را به مانیتور وصل کردم و همه جا لینوکس مینت نصب کردم، به جز نت بوک که توزیع بسیار سبکی روی آن نصب کردم، ظاهراً پاپی است. یک لپ تاپ قدیمی هم دارم که 200 دلار خریده ام، آن را به تلویزیون وصل کردم. مهمتر از آن، میزبان ما اخیراً پنجره‌ها را برای ما عوض کرده است، و اتاق اکنون به جای افتضاح وحشتناک فروریخته، قاب‌های سفید جدیدی دارد. همسر اتاق نشیمن، آشپزخانه و اتاق خواب دوم را به عنوان مهدکودک نگه می دارد، بنابراین کل طبقه کاملاً آموزشی است. بنابراین، اکنون همه چیز با اتاق خوب است، بیایید مستقیماً به آموزش برویم.

خراش

من شروع به ارائه اصول برنامه نویسی با زبان اسکرچ می کنم. این زبانی است که از بلوک های آماده استفاده می کند که در آن زمان در MIT اختراع شد. اکثر بچه ها قبلاً در مدرسه خراش دیده اند، بنابراین به سرعت به آن عادت می کنند. برنامه ها و طرح های درسی آماده ای وجود دارد، اما من آنها را اصلا دوست ندارم. برخی از موارد عجیب - به عنوان مثال، داستان خود را ایجاد کنید. کل برنامه از بلوک های بی شماری تشکیل شده است say '<...>' for 2 seconds. مشاهده می شود که توسط افراد بسیار خلاق اختراع شده است، اما با این رویکرد می توانید نحوه نوشتن کد اسپاگتی کلاسیک هندی را آموزش دهید. من از همان ابتدا در مورد اصولی مانند DRY صحبت می کنم. مجموعه کارهای دیگر کاملاً خوب هستند، اما بچه ها سریع به اصل مطلب می رسند و شروع به ساختن آنها مانند مسلسل می کنند. در نتیجه در یک درس کاری را انجام می دهند که باید در پنج درس انجام می دادند. و جستجو و انتخاب کارها به زمان شخصی زیادی نیاز دارد. به طور کلی، اسکرچ بیشتر شبیه یک زبان نیست، بلکه یک IDE است، جایی که شما فقط باید به یاد داشته باشید که کجا کلیک کنید و کجا به دنبال چیزی بگردید. به محض اینکه دانش آموزان کم و بیش تسلط پیدا کردند، سعی می کنم آنها را به پایتون ترجمه کنم. من حتی یک دختر هفت ساله دارم که برنامه های ساده ای با پایتون می نویسد. چیزی که من به عنوان فایده اسکرچ می بینم این است که مفاهیم اولیه ای دارد که به شیوه ای بازیگوش یاد می گیرند. به دلایلی درک ایده یک متغیر برای همه بدون استثنا بسیار دشوار است. در ابتدا سریع این تاپیک را مرور کردم و ادامه دادم تا اینکه متوجه شدم آنها اصلاً نمی دانند با آن چه کنند. اکنون زمان زیادی را به متغیرها اختصاص می دهم و دائماً به آنها برمی گردم. شما باید swotting احمقانه انجام دهید. متغیرهای مختلف را روی صفحه تغییر می‌دهم و آنها را وادار می‌کنم مقدارشان را بگویند. Scratch همچنین دارای ساختارهای کنترلی و بررسی ارزش، مانند while, for یا if در پایتون آنها به راحتی داده می شوند، فقط مشکلاتی در مورد حلقه های تو در تو وجود دارد. من سعی می کنم چندین کار را با یک حلقه تو در تو انجام دهم و به طوری که عملکرد آن بصری باشد. پس از آن، به توابع می‌روم. حتی برای بزرگسالان، مفهوم عملکرد واضح نیست، و حتی بیشتر برای کودکان. مدت‌هاست که من به طور کلی عملکرد را به صلیب می‌کشم، درباره کارخانه‌ای صحبت می‌کنم که اشیا را به عنوان ورودی دریافت می‌کند، اما کالاها را عرضه می‌کند، درباره آشپزی که از محصولات خام غذا درست می‌کند. سپس برنامه ای برای "ساخت ساندویچ" با محصولات ایجاد می کنیم و سپس یک تابع از آن می سازیم که محصولات به عنوان پارامتر به آن ارسال می شوند. در مورد مطالعه توابع، من با خراش تمام می کنم.

پایتون

با پایتون راحت تر است. یک کتاب خوب به نام پایتون برای کودکان وجود دارد و من از آن برای آموزش استفاده می کنم. همه چیز در آنجا استاندارد است - خطوط، ترتیب عملیات، print(), input() و غیره. به زبانی ساده، با طنز نوشته شده است، کودکان آن را دوست دارند. این یک نقص مشترک در بسیاری از کتاب های برنامه نویسی دارد. همانطور که در یک جوک معروف - چگونه یک جغد بکشیم. بیضی - دایره - جغد. از مفاهیم ساده انتقال خیلی ناگهانی به مفاهیم نسبتاً پیچیده. چندین جلسه طول می کشد تا یک شی را به متد نقطه وصل کنم. از طرفی من عجله ندارم، همین کار را به روش های مختلف تکرار می کنم تا حداقل یک نوع تصویر ظاهر شود. من با متغیرها شروع می کنم و دوباره آنها را چکش می کنم، این بار در پایتون. متغیرها یک نفرین هستند.

یک دانش آموز زودباور، که چند ماه پیش ماهرانه متغیرهای روی خراش را کلیک کرده است، مانند یک قوچ در یک دروازه جدید به نظر می رسد و نمی تواند X را با Y اضافه کند، که به وضوح روی تخته در خط بالا نوشته شده است. ما تکرار میکنیم! یک متغیر چه چیزی دارد؟ نام و معنی! علامت مساوی به چه معناست؟ وظیفه! چگونه برابری را بررسی کنیم؟ علامت مساوی دو برابر! و بنابراین بارها و بارها تا روشن شدن کامل تکرار می کنیم. سپس به سمت توابع می رویم، جایی که توضیح در مورد آرگومان ها بیشترین زمان را می برد. آرگومان های نامگذاری شده، بر اساس موقعیت، به طور پیش فرض، و غیره. هنوز به کلاس نرسیدیم علاوه بر پایتون، الگوریتم‌های محبوب را از کتاب مطالعه می‌کنیم که بعداً در مورد آن بیشتر توضیح خواهیم داد.

در واقع، آموزش

درس من به این ترتیب تنظیم شده است - به مدت نیم ساعت تئوری می دهم، دانش را بررسی می کنم، آنچه را که یاد گرفته ام تثبیت می کنم. ساعت - آزمایشگاه ها غالباً تا یک ساعت منحرف می شوم و پخش می کنم ، سپس به ترتیب نیم ساعت برای تمرین باقی می ماند. زمانی که پایتون یاد می گرفتم، دوره را مرور کردم الگوریتم ها و ساختارهای داده Khiryanova از MIPT. از ارائه و ساختار سخنرانی هاش خیلی خوشم اومد. ایده او این است که چارچوب ها، نحو، کتابخانه ها منسوخ می شوند. معماری، کار تیمی، سیستم های کنترل نسخه - هنوز خیلی زود است. در نتیجه، الگوریتم‌ها و ساختارهای داده‌ای وجود دارند که از دیرباز شناخته شده‌اند و همیشه به شکل مشابهی خواهند بود. من خودم فقط اعداد صحیح را از موسسه پاسکال به یاد دارم. از آنجایی که دانش‌آموزان من اکثراً جوان هستند، از هفت تا پانزده سال، من معتقدم که پایه‌ریزی برای آینده آنها مهم‌تر از نوشتن سریع پلتفرمر در پایتون است. اگرچه، آنها بیشتر یک پلتفرمر می خواهند و من آنها را درک می کنم. من الگوریتم‌های ساده‌ای را به آن‌ها می‌دهم - یک حباب، یک جستجوی دودویی در یک فهرست مرتب‌شده، با استفاده از یک پشته، نماد لهستانی معکوس، اما ما هر یک را با جزئیات زیاد تجزیه و تحلیل می‌کنیم. معلوم شد که بچه های مدرن اصولاً نمی دانند رایانه چگونه کار می کند ، من نیز به شما می گویم. من سعی می کنم در هر سخنرانی چندین مفهوم را به هم مرتبط کنم. به عنوان مثال، یک کامپیوتر - حافظه / پردازنده - حافظه از سلول ها (اجازه دهید یک صفحه حافظه را نگه دارم، حدس بزنید چند سلول در اینجا وجود دارد) - هر سلول مانند یک لامپ است - دو حالت وجود دارد - درست / نادرست - و / یا - باینری / اعشاری - 8 بیت = 1 بایت - بایت = 256 گزینه - نوع داده بولی در هر بیت - اعداد صحیح در هر بایت - float در دو بایت string در یک بایت - بزرگترین عدد در 64 بیت - یک لیست و یک تاپل از انواع قبلی. من رزرو می کنم که در یک رایانه واقعی همه چیز تا حدودی متفاوت است و مقدار حافظه متفاوتی برای این نوع داده ها وجود دارد، اما نکته اصلی این است که ما خودمان در این فرآیند انواع داده های پیچیده تری را از انواع ساده تر ایجاد می کنیم. انواع داده شاید سخت ترین چیز برای به خاطر سپردن باشد. بنابراین، من هر درس را با یک گرم کردن سریع شروع می‌کنم - یکی از دانش‌آموزان نوع داده‌ها را نام می‌برد، دانش‌آموز بعدی دو مثال می‌آورد و غیره در یک دایره. در نتیجه، من به آن دست یافتم که حتی کوچکترین بچه ها با شادی فریاد بزنند - شناور! بولی! هفت، پنج! پیتزا، ماشین! در طول سخنرانی مدام یکی را می کشم وگرنه سریع شروع به برداشتن بینی و نگاه به سقف می کنند. بله، و سطح دانش هر کدام باید بین دفعات بررسی شود.

شاگردانم هرگز با حماقت و هوش و ذکاوت سریع غیرمنتظره مرا شگفت زده نمی کنند. نبوغ، خوشبختانه، اغلب.

می خواستم بیشتر بنویسم، اما با این وجود برگه معلوم شد. با کمال میل به همه سوالات پاسخ خواهم داد. من از هر انتقادی به هر طریق ممکن استقبال می کنم، فقط یک درخواست - در نظرات با یکدیگر مدارا کنید. این یک مقاله ی خوب است.

منبع: www.habr.com

اضافه کردن نظر