ضرورت آموزش برنامه نویسی به کودکان

علوم کامپیوتری و آشنایی با آن ها امروزه نقشی اساسی را در زندگی روزمره ما بازی میکنند و بدون اطلاعات و آگاهی در مورد آن ها زندگی روزمره به سختی به پیش خواهد رفت و در بسیاری از جنبه ها با مشکل روبرو خواهیم شد. این امر در تمامی زمینه های زندگی بشر امروزی نمود دارد و بیشتر از همه در زمینه های شغلی و آینده ی کاری افراد تاثیر گذار بوده است. بسیاری از موقعیت های شغلی و تحصیلی هستند، که عملا نیازمند داشتن مهارت، سابقه و استعداد در زمینه برنامه نویسی و مفاهیم دیگر علوم کامپیوتر هستند. به عنوان مثال، عملا بسیاری از ابزارهایی که در رشته های مختلف فنی-مهندسی و علوم پایه، چه در محیط آکادمیک و چه در محیط کار کاربرد دارند، تا حدود زیادی، با این فرض ساخته شده اند که فرد استفاده کننده، تا حدودی با موضوع برنامه سازی کامپیوتری و طرز تفکر یک دانشمند علوم کامپیوتر، آشناست.
از نظر آموزشی، یاد گرفتن برنامه نویسی برای یک کودک یا نوجوان، باعث ایجاد تصویری منطقی تر از فرایند کار کامپیوترها می شود؛ به نحوی که دیگر در هنگام تفکر در مورد یک سیستم کامپیوتری، یک شبکه و یا یک نرم افزار، به دید یک فرایند علّی و کاملا منطقی آن را بررسی می کنند و تصوری غیر واقعی و جادوگرانه از این سیستم ها در ذهن شان ایجاد نمی شود. ضمن این که، آموزش برنامه نویسی و رویکردهای برنامه سازی، در کنار ایجاد یک تفکر منطقی و مسلط تر، شامل آموزش و تقویت سایر مهارت ها، از جمله ریاضیات و منطق نیز می شود، و نسبت به رویکردهای سنتی، ماندگاری بیشتری را در ذهن دانش آموزان و دانشجویان ایجاد می نماید.
مهارت برنامه نویسی، مانند هر مهارت ریاضی و محاسباتی دیگر، غالبا بر دو موضوع استوار است: استعداد و تمرین. اما متأسفانه به دلیل فراهم نشدن امکانات و شرایط آموزشی برای کودکان و نوجوانان، معمولا استعداد برنامه نویسی این افراد به شکل مناسبی ظهور و بروز پیدا نمی کند و در نتیجه، تا زمانی که در دانشگاه و یا سنین بالاتر فرصتی پیش نیامده باشد، این استعدادهای ناب، مغفول می مانند و زمینه رشد آن ها، فراهم نمی شود.
اما خوشبختانه، امروزه با گسترش دنیای فناوری و توسعه سیستم های آموزش آنلاین و سایر رویکردهای آموزش نوین، ابزارها و فرصت های متنوعی برای آموزش برنامه‌ نویسی به کودکان و نوجوانان، ایجاد شده است. در این مقاله، از میان ابزارها و زبان های برنامه نویسی مورد استفاده برای این منظور چند مورد را انتخاب کرده ایم و مرور کوتاهی بر روی آن ها، خواهیم داشت.

زبان برنامه نویسی اسکرچ یا Scratch

زبان برنامه نویسی اسکرچ یا Scratch، پروژه بسیار مهمی است که توسط اسکرچ یا آزمایشگاه رسانه موسسه فناوری ماساچوست یا (MIT Media Lab) طراحی و توسعه یافته است و از جمله مهم ترین ابزارهای آموزش برنامه نویسی به کودکان محسوب می شود. یکی از مهم ترین ویژگی های این زبان برنامه نویسی، گرافیکی بودن فرایند ایجاد برنامه هاست و در واقع، کاربران برنامه را نمی نویسند؛ بلکه آن را ترسیم می کنند. این قابلیت، باعث می شود که استفاده کنندگان از این زبان برنامه نویسی، که اصولا افراد مبتدی، کودکان و نوجوانان هستند، به جای درگیر شدن با سختی های تایپ برنامه ها، دسته بندی دستورها، و رعایت گرامر زبان های برنامه نویسی، مستقیما و بدون هیچ واسطه ای، منطق و ایده پشت برنامه را، پیاده سازی کنند.
اساسا اسکرچ برای افراد بالای ۶ سال طراحی شده است و تا کنون، آزمایش های موفقیت آمیز بسیاری در خصوص مفید بودن این زبان برای آموزش مفاهیم برنامه نویسی به کودکان، پشت سر گذاشته شده است. پروژه های متنوع، برنامه ها، بازی ها و هزاران نمونه کار منتشر شده در وبسایت اختصاصی اسکرچ (در این لینک)، حاکی از تاثیرگذاری و موفقیت این پروژه بوده است.
محیط برنامه نویسی و کار اسکرچ بسیار ساده طراحی شده است و به صورت آنلاین و آفلاین (در دو نسخه) در دسترس کاربران قرار گرفته است. امکان ترجمه دستورها و بلوک ها نیز در این محیط قرار داده شده است، و خوشبختانه ترجمه فارسی نیز میان زبان های بین المللی این پروژه، مشاهده می شود. هر چند، نواقصی در ترجمه ها مشاهده می شود که امیدواریم به زودی رفع شوند. .

مایکروسافت اسمال بیسیک (Microsoft Small Basic)

زبان برنامه نویسی مایکروسافت اسمال بیسیک (Microsoft Small Basic) یک نسخه ساده شده از زبان برنامه نویسی بیسیک است، که توسط شرکت مایکروسافت توسعه داده شده ست و بیشتر برای افرادی طراحی شده است که، در زمینه برنامه نویسی مبتدی هستند. این زبان برنامه نویسی، فقط شامل ۱۴ کلمه کلیدی است و نرم افزار مربوط به محیط برنامه نویسی این زبان، بسیار کاربرپسند و ساده است.
مخاطبان و کاربران اصلی این زبان برنامه نویسی، افرادی هستند که می خواهند برنامه نویسی را یاد بگیرند و قبلا هیچ تجربه ای در این خصوص نداشته اند. از این رو، هم کودکان و نوجوانان، و هم بزرگسالان مبتدی می توانند از این زبان برنامه نویسی استفاده نمایند و وارد دنیای برنامه نویسی شوند. در میان استفاده کنندگان این زبان برنامه نویسی، حتی افرادی در سن ۸ سالگی مشاهده می شوند که پس آموزش این زبان، به راحتی توانسته اند به سمت زبان های برنامه نویسی سطح بالاتر، مانند ویژوال بیسیک (Visual Basic) کوچ نمایند.‬‬
این زبان برنامه نویسی برای نخستین بار، در ماه اکتبر سال ۲۰۰۸ میلادی و توسط مایکروسافت معرفی شد و برای استفاده نهایی، در ماه ژوئن سال ۲۰۱۱ منتشر شد. نخستین گروهی که به صورت آزمایشی از این زبان برنامه نویسی استفاده نمودند، عده ای از دانش آموز مقطع راهنمایی بودند، که والدین اکثر آن ها، از کارمندان مایکروسافت هستند. همچنین، در یک کارگاه آموزشی عملی، از این زبان برنامه نویسی برای آموزش برنامه نویسی به ۲۵ دختر نوجوان، که در مقطع دبیرستان مشغول به تحصیل بودند، استفاده شد. نتیجه همه این آزمایش ها، حاکی از کارایی این زبان، برای آموزش مبانی برنامه نویسی و برنامه سازی، به کودکان و نوجوانان است.

زبان برنامه نویسی آلیس یا Alice

آلیس نام یکی از شخصیت های داستانی در ادبیات کودکان است، که به نظر می رسد نام مناسبی برای یک زبان برنامه نویسی باشد؛ اما این بار آلیس نه در سرزمین عجایب، بلکه در سرزمین علوم کامپیوتر است. آلیس یا Alice نام یکی دیگر از زبان های برنامه نویسی طراحی شده برای کودکان و نوجوانان است، که به صورت سه بعدی پیاده سازی شده است. این زبان برنامه نویسی نیز، توسط دانشگاه کارنگی ملون (Carnegie Mellon) پشتیبانی می شود. با استفاده از این زبان برنامه نویسی، امکان ایجاد انیمیش های کامپیوتری، داستان های سه بعدی، بازی های سه بعدی و حتی فیلم وجود دارد.
تیم پشیتبان آلیس، که متشکل از دانشمندان و متخصصین حوزه های مختلف علوم کامپیوتر است، هدف اصلی خود را بر روی توسعه سیستمی گذاشته اند که در آموزش مفاهیم بنیادی علوم کامپیوتر و برنامه نویسی، بتواند به عنوان کمک کار معلمین و مدرسین مورد استفاده قرار گیرد. شیوه برنامه نویسی و استفاده از دستورها، بسیار ساده است و دانش آموزان، به سرعت مهارت لازم برای کار با این زبان برنامه نویسی را به دست خواهند آورد.

آردوینو یا Arduino

آردوینو یا Arduino یک پلاتفورم نمونه سازی متن باز (اوپن سورس) الکترونیک است، که شامل هر دو بخش سخت افزاری و نرم افزاری است. سخت افزار مورد استفاده از آردوینو با استفاده از یک زبان خاص شبیه به زبان برنامه نویسی سی (C) و سی پلاس پلاس (C++) برنامه ریزی می شود. با این حال که زبان برنامه نویسی مورد استفاده در آردوینو بسیار ساده است و امکان آموزش بسیار سریع اصول برنامه نویسی را فراهم می آورد، اما قطعا لذت به حرکت درآوردن یک روبات با استفاده از این کدها، چیزی کامل متفاوت و به یاد ماندنی تر است.
تا کنون نسخه های مختلفی از میکروکنترلرها و مدارهای آردوینو معرفی شده اند، که امکان پیاده سازی انواع مختلفی از پروژه های عملی را فراهم می آورند، که یک فرصت و فضای آموزشی بی نظیر را برای علاقه مندان، و به ویژه کودکان و نوجوانان فراهم می آورد. امکان پیاده سازی برنامه های آردینو در محیط های مختلف، برقراری ارتباط با حسگرها (سنسورها) و ادوات دیگر، امکان کنترل با استفاده از تلفن های هوشمند و تبلت، استفاده از زبان های برنامه نویسی دیگر (از جمله اسکرچ) برای پیاده سازی نرم افزارها و پروژه ها در این پلاتفورم، باعث توسعه قابل توجه این سیستم شده است، و از این رو، آردوینو عملا پر استفاده ترین سیستم آموزشی برای برنامه نویسی، الکترونیک و روباتیک محسوب می شود.

توفان ذهن لگو یا LEGO Mindstorms

همه ما با برند لگو یا LEGO و اسباب بازی های معروف آن آشنا هستیم و اثربخشی لگوها در تقویت قوه خلاقیت کودکان، بر کسی پوشیده نیست. پروژه توفان ذهن لگو یا LEGO Mindstorms، که مبدأ پیدایش آن نیز به آزمایشگاه رسانه MIT بر می گردد، یکی دیگر از ابزارهای مفید برای آموزش برنامه نویسی و روباتیک به کودکان و نوجوانان است.
در بسته های مربوط به این سیستم، همه ابزارهای لازم برای پیاده سازی پروژه های مختلف گنجانده شده است و افراد می توانند با استفاده از جعبه های فرمان، روبات لگوی خود را برنامه ریزی کنند. هر چند، استفاده از سایر زبان های برنامه نویسی برای طراحی پروژه های مبتنی بر لگو، امکان پذیر است. .

پروژه کارگاه شگفتی یا Wonder Workshop

پروژه کارگاه شگفتی یا Wonder Workshop، که پیش از این با نام غیر رسمی Play-i شناخته می شد، با معرفی دو روبات به نام های نقطه (Dot) و خط (Dash)، کار خودش را شروع کرده است. این روبات ها، دو اسباب بازی معمولی نیستند؛ بلکه ابزارهایی حرف گوش کن هستند که کودکان می توانند با استفاده از ابزارهای ساده برنامه نویسی (مثلا اسکرچ)، از طریق کامپیوتر یا تبلت، برنامه های مورد نظر خود را، به عنوان دستور کار به روبات ها انتقال دهند. یک ویدئوی جالب در مورد این پروژه در این لینک (+) قابل مشاهده است. این روبات ها، به همراه ابزارهای مکملی که در کنار آن ها ارائه می شوند، امکان پیاده سازی انواع سناریوها را فراهم می آورند، که قطعا برای رشد و توسعه خلاقیت و استعدادهای کودکان و نوجوانان، می تواند بسیار موثر باشد. .

سایر زبان های برنامه نویسی

فهرست موارد معرفی شده در این نوشتار، قطعا کامل نیست و ابزارهای متنوع دیگری برای این منظور وجود دارند. فهرست کاملی از زبان های برنامه نویسی آموزشی در ویکی پدیا، و در این لینک ارائه شده اند، که اکثرا برای آموزش کودکان و نوجوانان قابل استفاده هستند. همچنین، فهرستی خلاصه تر، از مواردی که برای کودکان و نوجوانان مناسب تر هستند، در این لینک آمده است.
در این میان، اپلیکیشن های متنوعی نیز، برای آموزش برنامه نویسی به کودکان وجود دارند، که یک نمونه از آن ها، برنامه Move the Turtle برای iOS است. این اپلیکیشن، یکی از ابزارهای جالب برای آموزش برنامه نویسی به کودکان است که یادگرفتن آن، نیازمند منبع خاصی نیست و در واقع، به دلیل سادگی بیش از حد، اساسا این ابزار، خودش یک مرجع آموزشی است.

بررسی منابع آموزشی موجود

در کنار ابزارهایی که برای این منظور معرفی شدند، در بخش انتهایی این نوشته، قصد داریم که منابع آموزشی مفید برای آموزش مبانی برنامه نویسی و علوم کامپیوتر به کودکان و نوجوانان را، معرفی کنیم.
از میان منابع خارجی، یکی از مهم ترین منابع آموزش، پروژه CODE است، که ساعت کد (Hour of Code) یکی از مهم ترین حرکت های این پروژه، برای آموزش همگانی برنامه نویسی است. یکی دیگر از منابع آموزشی مهم، مجموعه کتاب های منتشر شده با عنوان علوم کامپیوتر برای کودکان است. این دوره آموزشی در Udemy نیز، اساسا برای کودکان و نوجوانان طراحی شده است. بخش ویژه کودکان در موسسه PluralSight نیز، یکی از منابع بسیار مهم است که از طریق این لینک در دسترس است.
از میان منابع ایرانی نیز، به عنوان یکی از کامل ترین مجموعه های آموزشی، می توان به فیلم های برنامه نویسی اسمال بیسیک (Small Basic) اشاره کرد که بر روی فرادرس ارائه شده است. اطلاعات تکمیلی مربوط به این مجموعه آموزشی، در این لینک قابل دریافت هستند. همچنین دوره آموزشی برنامه نویسی اسکرچ که بر روی سکان آکادمی ارائه شده است، یکی دیگر از منابع آموزشی مفید در این زمینه است.

تیم تحقیق و پژوهش سمیم