تمرین مفهومی


تمرین‌های مفهومی می‌خواهند مهارت‌های کلیدی لازم برای کار با یک زبان مشخص را به دانش‌آموز بیاموزند. این تمرین‌ها هم کارهای رایج در آن زبان را پوشش می‌دهند (مثلاً نحوه‌ی کار با رشته‌ها) و هم کارهای خاص‌تر خود آن زبان را (مثلاً مونادها، برنامه‌نویسی شیءگرا، توابع مرتبه‌بالا).

تمرین‌های مفهومی این ویژگی‌ها را دارند:

  • هر تمرین یک هدف یادگیری روشن دارد.
  • این تمرین‌ها مخصوص همان زبان‌اند و کلی نیستند.
  • از استاب‌ها و کدهای آماده استفاده می‌شود تا دانش‌آموز مجبور نشود کدهای غیرضروری را در تمرین‌ها یاد بگیرد یا بنویسد.

مفاهیم

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

دشواری

تمرین‌های مفهومی نباید به‌طور ذاتی با پیشرفت مسیر دشوارتر شوند. یک توسعه‌دهنده‌ی باتجربه در زبان X باید بتواند همه‌ی تمرین‌های مفهومی آن مسیر را با صرف حداکثر ۵ تا ۱۰ دقیقه برای حل هر تمرین پشت سر بگذارد. از آنجا که هر تمرین باید بر این متمرکز باشد که فرد برای اولین بار از یک مفهوم استفاده کند، و چون توسعه‌دهنده‌ی باتجربه آن مفهوم را در زبان X از قبل می‌داند، تمرین باید برای او نسبتاً بسیار ساده به نظر برسد. تمرین‌های بعدی ممکن است برای توسعه‌دهنده‌ای که با زبان X آشنا نیست دشوارتر به نظر برسند، اما تنها به این دلیل که تمرین بعدی مفهومی را آموزش می‌دهد که خودش پیچیده‌تر است (برای مثال، بیشتر افراد قبول دارند که یادگیری بازگشت برای اولین بار، موضوعی پیچیده‌تر از نگاشت یک حلقه از زبانی به زبان دیگر است).

بازخورد

تمرین‌های مفهومی منتورینگ نمی‌شوند. وقتی دانش‌آموزی ارسالی ثبت می‌کند که تست‌های یک تمرین مفهومی را پاس می‌کند، به دنبال یک Analyzer یا Representer می‌گردیم تا بازخورد بدهد. اگر هیچ‌کدام پیدا نشود، راه‌حل تأیید می‌شود. این کار بار آموزش را بر دوش خود تمرین می‌گذارد؛ تمرین باید مسیری روشن برای یادگیری مفهومی که آموزش می‌دهد فراهم کند.