Scratch در مقابل Python: کودکان به کدام ترتیب باید آنها را یاد بگیرند؟
یک نگاه عملی به این که آیا کودکان باید با Scratch یا Python شروع کنند، همراه با دستورالعملهای سنی و یک مسیر واقعی انتقال بین این دو.
والدین این سؤال را مدام پرسند، معمولاً درست بعد از اینکه بچه یک کمپ برنامهنویسی تمام کند یا برای برنامهنویسی "واقعی" بپرسد چون Scratch برایشان تری به نظر میرسد. پاسخ صحیح به سن و آنچه که بچه واقعاً میخواهد بسازد بستگی دارد، نه به اینکه کدام زبان بر روی یک رزومه بهتر به نظر برسد.
آنچه Scratch واقعاً تدریس میکند
Scratch، ساختهشده توسط MIT Media Lab، از بلوکهای drag-and-drop به جای syntax تایپ شده استفاده میکند. یک کودک بلوکهایی مانند "move 10 steps" و "if touching edge, bounce" را کنار هم میچسباند تا بازیها و انیمیشنهای مختلف بسازد. هیچ semicolon برای فراموشی نیست، هیچ خطای indentation نیست، هیچ traceback مرموز نیست.
این اهمیت بیشتری دارد تا آنکه به نظر برسد. کودکان در سن ۶ تا ۱۰ سال هنوز مدل ذهنی آن را میسازند که یک برنامه چیست: sequence، loops، conditionals، variables، events. Scratch syntax را برمیدارد تا اینکه آنها میتوانند کاملاً بر روی logic متمرکز شوند. یک هفت ساله میتواند یک بازی کاری ساخت با دو sprite که یکدیگر را تعقیب میکنند در کمتر از یک ساعت، و تماشای بازخورد بصری فوری آن است که باعث میشود که آنها به آن بازگردند.
سقف واقعی است، اما. Scratch زمانی که projectها پیچیده شوند مشکل دارد. هیچ function مناسبی با return values به روشی که Python دارد وجود ندارد، هیچ data structure واقعی فراتر از lists، و هیچ راهی برای کار با files، networks، یا APIs. کاربران جدی Scratch اطراف سن ۱۱ یا ۱۲ سال به این دیوار میخورند.
آنچه Python اضافه میکند زمانی که آنها آماده باشند
Python syntax واقعی را معرفی میکند: def، for، if/else، قواعد indentation که مهم هستند. این یک جهش واقعی در بار شناختی است. یک کودکی که هرگز برنامهنویسی نکرده است و با Python در سن ۸ سال شروع کند بسیاری از انرژی ذهنی خود را صرف دعوای با interpreter خواهد کرد — colons گمشده، types نامطابق، پیامهای IndentationError که برای آنها هنوز معنی ندارند.
اما Python دربهایی را باز میکند که Scratch هرگز نخواهد. کودکان میتوانند یک script بنویسند که ۲۰۰ فایل را در یک folder تغییر نام دهند، یک webpage را برای دادههای weather scrape کنند، یک Discord bot بسازند، یا turtle و pygame را استفاده کنند تا گرافیکها را با code واقعی به جای blocks بسازند. در حدود سن ۱۱ تا ۱۳ سال، بیشتر کودکان که قبلاً Scratch را انجام دادهاند از نظر شناختی برای این تغییر آماده هستند، به خصوص اگر محدودیتهای Scratch را از نزدیک دیده باشند و برای رفع آن انگیزه داشته باشند.
نقطه انتقال که واقعاً کار میکند
نرمترین مسیری که دیدهام Scratch-then-Python به عنوان یک تغییر سخت نیست — این استفاده از خود ناامیدی به عنوان trigger است. زمانی که یک کودک سعی میکند چیزی را در Scratch بسازد و نمیتواند (یک inventory system مناسب، save کردن دادهها بین sessions، صحبت کردن با یک API)، این لحظه برای معرفی Python است، چون حالا آنها دلیلی دارند تا overhead syntax را تحمل کنند.
ابزارهایی که شکاف را پل میکنند کمک میکنند:
- ذهنیت "convert to text" خود Scratch — برخی از educators بچهها را تشویق میکنند که ابتدا منطق Scratch خود را به انگلیسی ساده شرح دهند، که شگفتانگیز خوب با readability Python مطابقت دارد.
- ماژول
turtlePython از نظر بصری شبیه حرکت sprite Scratch است، بنابراین جهش احساس نمیشود که دوباره شروع کند. - Trinket.io یا Replit اجازه میدهند بچهها Python را در مرورگر اجرا کنند بدون setup، که مهم است چون نصب Python و configure کردن متغیرهای
PATHیک barrier واقعی برای یک ۱۰ ساله است (و صادقانه برای خیلی از بزرگسالان هم).
سن تنها متغیر نیست
یک کودکی که بهاطمینان در سن ۹ سال در حال خواندن و تایپ کردن است ممکن است زودتر از یک کودکی که ۱۲ سال دارد اما هنوز مهارتهای fine motor و reading را میسازد برای Python آماده باشد. دو سیگنال را تماشا کنید: آیا میتوانند بهطور معقولی بدون جستجوی هر کلید تایپ کنند، و آیا توسط ابهام ناامید میشوند یا debugging را به عنوان یک puzzle لذت میبرند؟ کودکان که
با کمک هوش مصنوعی نوشتهشده، بازبینی و منتشرشده توسط Michal Pilch (CISSP)، Korra Studio.
این یکی از یادداشتهای پایگاه دانش Korra Studio است — پلتفرم هر موضوع را با مربی یکبهیک جفت میکند.
شروع رایگانarrow_forward