برنامه نویسی برای کودکان – الفبای C++

27 مارس 2019

این چند روز تعطیلات عید و بارندگی شدید که همه جای ایران رو فرا گرفته، باعث شد بالاخره من توی ایام عید خونه باشم. در نتیجه فرصت رو برای آموزش برنامه نویسی به خواهر زاده های عزیزم مناسب دیدم و شروع کردم به ادامه ی آموزش زبان C++ به ابوالفضل (خواهرزاده ی بزرگترم که ۱۴ سالشه). قبل تر تلاش کردم به طاها که الان ۱۰ سالشه هم C++ بگم اما خب احساس کردم هنوز کمی زوده براش و درنتیجه HTML رو مناسب تر دیدم براش.

چرا C++ رو برای آموزش استفاده می کنم؟

شاید برای خیلی ها سوال پیش بیاد که چرا باید زبانی که به دشواری و پیچیدگی معروف هستش رو برای شروع برنامه نویسی به بچه ها یاد بدم؟! راستش همینطور که قبلا هم گفتم در ابتدا تصمیم داشتم از Scratch برای آموزش استفاده کنم. اما دیدم که برای بچه ها خیلی جذاب نیست و اونا دوست دارن با مسائل واقعی تر روبرو باشن. به طور خاص ابوالفضل بسیار علاقه داره که از برنامه نویسی برای ساخت ربات ها استفاده کنه! این یعنی اینکه به زودی باید با پلتفرمی به نام Arduino آشناش کنم که به زبان C++ در اون باید برنامه نویسی کنه.

البته چیزهایی که در ابتدا دارم به بچه ها یاد میدم در واقع همون مبانی مشترک C هستش. اما خب احساس کردم که کار با IO در C++ آسون تر باشه براشون تا استفاده از توابع printf و scanf.

دلیل مهم دیگه ای ام هست که من رو در یاد دادن C++ به بچه ها مصمم کرده اینه که مبنای بسیاری از زبان های برنامه نویسی مثل Java، C#، Javascript و … Syntax زبان C هستش. بنابرین این بچه ها در آینده با سرعت بیشتری می تونن خودشون رو با زبان های دیگه که رایج هست وفق بدن.

بریم سر اصل مطلب

قبل از هر کاری شاید بهتر باشه محیط مورد نیاز برای برنامه نویسی رو محیا کنیم. بچه ها باید بدونن چیزی که در موردش صحبت میشه کجا نوشته و ویرایش میشه و چطور برنامه باید اجرا بشه! من برای اینکار از Code::Blocks که یک IDE رایگان برای C/C++ هستش استفاده می کنم. من نسخه ای از اون رو که شامل کامپایلر GCC/G++ بود رو دانلود واستفاده کردم. اما شما هر محیطی که در اون راحت هستید رو می تونید استفاده کنید.

محیط CodeBlocks
محیط CodeBlocks

در ابتدا پروژه ی Console  ایجاد کردم. توضیح مختصری در رابطه با ساختار ابتدایی برنامه دادم. و به بچه ها فهموندم که هر کدی رو باید در بین آکلاد های تابع main و قبل از دستور return بنویسن.

Hello World یک کلیشه ی دوست داشتنی

جزو اولین سوال هایی که بچه ها می پرسن اینه که برنامه چجور اجرا میشه؟ نتیجه چیز هایی که می نویسیم کجا دیده میشه؟ برای این که مفهوم خروجی براشون کمی جا بی افته کافیه عبارت کیشه ای Hello World رو براشون به خروجی ببرین و بعد ببینید که از دیدن چیزی که نوشتن چطور ذوق زده میشن.

بعد اگر امکانش بود کنار برید و بزارید بچه چیزی که خودش دوست داره رو تایپ کنه. مراحل کامپایل و اجرای کد رو انجام بده و خروجی رو که معمولا اسم خودش هستش رو ببینه. باید بچه ها بدونن که هر عبارتی رو باید مابین دو ” (علامت نقل قول) بنویسن. شاید بد نباشه یکی از ” ها رو پاک کنید و به اونها نشون بدید که کامپایل برنامه با خطا مواجه میشه.

در ضمن می تونید برای فهم بیشتر عملیات ریاضی ساده که بچه ها از قبل با اونها آشنایی دارن رو اجرا کنید و اجازه بدید بچه ها هم این کار رو انجام بدن.

متغیر، این چغر بد بدن!

راستش تا اینجای کار برای من و بچه ها به راحتی گذشت. کلیات کار براشون قابل فهم بود. تا اینکه کم کم لازم دیدم مفهوم متغیر و انواع اون رو برای بچه ها تعریف کنم و توی ذهنشون جا بندازم. ساده ترین مثالی که میشه برای فهم متغیر زد اینه که متغیر رو نوعی ظرف در نظر بگیریم که دارای اسم و رنگ خاص (نوع) هستند. مثلا ظرفی آبی به اسم a که داخل اون عدد صحیح قرار داره. ظرفی زرد رنگ به اسم b که داخل اون عبارت های متنی جای میگیرن. به عقیده ی من لازم نیست بچه ها با تمام انواع آشنا بشن و این صرفا اونها رو گیج تر می کنه.

باید همیشه توی ذهنمون باشه که ادبیات برنامه نویسی هرچند برای ما جا افتاده و معقول هست. برای بچه ها خیلی ملموس و قابل فهم نیست. بنابر این تا جایی که می تونیم باید برای بچه ها مثال بزنیم و مفاهیم رو براشون تصویر سازی کنیم. در این حین بد نیست بچه ها رو با عملگر های ساده جمع + و تفریق- و مساوی = و همچنین ++ آشنا کنیم. باید به خوبی دستکاری محتوای متغیر و البته جایگزینی محتوا با نتیجه ی یک عملگر رو به بچه ها نوشن بدیم.

در ضمن این رو هم اضافه کنم که هیچ لزومی نداره بچه ها رو وارد جزئیات گیج کننده کنیم! اصلا لازم نیست با مثال های پیچیده و درهم به بچه ها تقدم عملگر ها رو بگیم. یا اینکه عملگرهای +=، -= و امثال اینها رو بگیم. بارها دیدم که بچه ها با روبرو شدن با جزئیات زیاد هنگ میکنن و خودشون رو ناتوان می بینن!

تمرین، تمرین و تمرین

هیچ کس بدون تمرین و ممارست برنامه نویس نشده و نخواهد شد. بنابرین تا می تونید برای بچه ها سوال طرح کنید و اونها رو برای حل مساله تنها بزارید. حتی گاهی اوقات اشتباهاتشون رو بهشون نگید و به جاش از اونها بخواید که برنامه رو اجرا کنند. مطمئنا بچه ها با دیدن ارور های قرمز و فهمیدن ایراد بعد از کمی تلاش خیلی خیلی بهتر قوائد برنامه نویسی رو یاد میگیرن!

۲ دیدگاه

  1. مورتی

    1 ژوئن 2019 at 11:00

    سلام برادر
    داشتم دنبال آهنگهای آسیایی تو نت میگشتم که با سرچ کردن Ekova – Sabura رسیدم به سایتت
    جالبه سبک زندگیت نزدیک به زندگی منم هست از نظر اینکه منم برنامه نویس و سفر برو اهل کارای فرهنگیم :))
    سایتت هم بسیار جالبه برام – خواستم اینم بهت بگم که عالیه همینطور و بهتر جلو برو

    1. احمد امیری وجدان

      2 ژوئن 2019 at 06:56

      زنده باشی دوست خوبم. خوشحالم از آشیناییت 🙂

پاسخ دهید