🏆 درس‌های روبی

درس ۲۳ روبی: پروژه‌ی پایانی پایتون‌کار جوان

آخرین درس رده‌ی ۳ یک امتحان نیست، یک پروژه است. کودک با همه‌ی ابزارهایی که یاد گرفته، مسئله‌ای باز را با ربات روبی حل می‌کند و راه‌حل خودش را طراحی می‌کند.

هدف پروژه‌ی پایانی

در درس ۲۳ روبی، برخلاف درس‌های قبل، فقط یک جواب درست وجود ندارد. مسئله باز است و کودک باید خودش تصمیم بگیرد از کدام بلوک‌ها، حلقه‌ها، شرط‌ها و حسگرها استفاده کند. هدف، سنجش توانایی ترکیب مهارت‌ها و شکستن مسئله‌ی بزرگ به گام‌های کوچک است.

این پروژه همه‌ی هدف‌های رده‌ی ۳ را پوشش می‌دهد: تسلط بر repeat و while، تصمیم‌گیری با if / else، استفاده از حسگرها و تفکر الگوریتمی.

مفهوم برنامه‌نویسی: تجزیه‌ی مسئله

برنامه‌نویسان حرفه‌ای هیچ‌وقت یک مسئله‌ی بزرگ را یک‌جا حل نمی‌کنند. آن را به زیرمسئله‌ها می‌شکنند، هر بخش را جدا می‌سازند و آزمایش می‌کنند و بعد قطعه‌ها را کنار هم می‌گذارند. به این مهارت «تجزیه» می‌گویند و یکی از ستون‌های تفکر محاسباتی است.

برای والدین: پروژه‌ی پایانی جایی است که کودک از «دنبال‌کننده‌ی دستور» به «طراح راه‌حل» تبدیل می‌شود. اشتباه کردن در این مرحله طبیعی و حتی مفید است؛ مهم این است که کودک بتواند خطا را پیدا و برطرف کند.

فعالیت قدم‌به‌قدم با ربات روبی

نمونه‌ای از یک مسئله‌ی باز: روبی باید در مسیری جواهرها را جمع کند و آن‌ها را روی خانه‌ی هدف بگذارد. بخش اول با حسگر onItem حل می‌شود: while not frontIsWall: if onItem: pickUp، سپس forward داخل همان حلقه. بخش دوم رساندن روبی به هدف است: turnRight و while not onTarget: forward و در آخر putDown.

در حالت بلوکی، کودک ابتدا هر بخش را جدا می‌سازد: یک بلوک «♾️ تا وقتی» با «❓ اگر» و «✊ بردار» برای جمع کردن، یک حلقه‌ی دیگر برای رسیدن به هدف و «🖐 بگذار» در پایان. حسگر holding هم کمک می‌کند بررسی شود روبی واقعاً چیزی در دست دارد یا نه.

  • ✅ مسئله را بخوان و بخش‌های آن را روی کاغذ بنویس
  • ✅ برای هر بخش ابزار مناسب را انتخاب کن
  • ✅ هر بخش را جدا بساز و آزمایش کن
  • ✅ بخش‌ها را کنار هم بگذار و کل برنامه را اجرا کن
  • ✅ برنامه را کوتاه‌تر و عمومی‌تر کن

اشتباه‌های رایج و راه رفعشان

بزرگ‌ترین اشتباه، ساختن کل برنامه یک‌جا و بعد گیج شدن در خطاهاست. خطای دیگر فراموش کردن جهت روبی بین بخش‌هاست؛ مثلاً بعد از حلقه‌ی اول، روبی رو به دیوار است و حلقه‌ی دوم اجرا نمی‌شود. حلقه‌های بی‌پایان و ترتیب نادرست شرط‌ها هم در این مرحله دوباره سر می‌زنند.

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

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

فعالیت بدون کامپیوتر و نکته برای معلم

قبل از رفتن سراغ اپ، کودک برنامه‌اش را به زبان فارسی روی کاغذ بنویسد، مثل «تا وقتی به دیوار نرسیدی: اگر جواهر دیدی بردار، یک قدم برو». بعد آن را برای یک هم‌کلاسی بخواند تا با مهره روی نقشه‌ی کاغذی اجرا کند. این شبه‌کد، پل طبیعی میان فکر و کد است.

معیار ارزیابی رده‌ی ۳ در طرح درس روبی این است: آیا راه‌حل عمومی بود؟ از حلقه و شرط درست استفاده شد؟ کد تمیز بود؟ از کودک بخواهید راه‌حلش را برای کلاس یا خانواده توضیح دهد.

ارتباط با پایتون واقعی و قدم بعدی

کودکی که پروژه‌ی پایانی را حل کرده، طبق طرح درس آکادمی روبی آماده‌ی یادگیری پایتون واقعی است. ساختارهای repeat، while و if / else که به سبک پایتون نوشته، همان ستون‌های اصلی هر برنامه‌ی پایتونی هستند؛ مثلاً repeat(4) در پایتون به شکل for i in range(4) نوشته می‌شود.

در ادامه، مسیر پیشرفته‌ی روبی سراغ مفاهیم فنی‌تر می‌رود: لیست و آرایه برای نگه‌داشتن فهرست جواهرها، تابع و پارامتر برای شکستن مسئله، حلقه‌ها و شرط‌های تو در تو و دیباگ و بهینه‌سازی برنامه.

سوال‌های پرتکرار

پروژه‌ی پایانی جواب ثابت دارد؟

نه، مسئله باز است و راه‌حل‌های مختلفی درست‌اند. در روبی راه‌حل کوتاه‌تر و عمومی‌تر امتیاز بیشتری می‌گیرد.

بعد از درس ۲۳ کودک چه کار کند؟

می‌تواند به حالت کد و چالش‌های آزادتر برود و با مسیر پیشرفته‌ی روبی پایتون واقعی، تابع، لیست و الگوریتم‌های مسیریابی را یاد بگیرد.

اگر کودک در پروژه گیر کرد چه کنیم؟

جواب ندهید؛ بپرسید مسئله از چند بخش تشکیل شده و کدام بخش کار می‌کند. معمولاً با شکستن مسئله، کودک خودش راه را پیدا می‌کند.