28-09-2016، 14:04
ال سویگرت، متخصص برنامهنویسی و آموزش برنامهنویسی به کودکان، تاکنون چندین کتاب در این حوزه برای کودکان و دانشآموزان زیر ۱۵ سال نوشته است. به عقیده وی، نیازی نیست والدین برنامهنویسی یاد گرفته باشند یا برنامهنویس حرفهای باشند، بلکه کافی است بتوانند بهخوبی با کودکان بازی و آنها را درگیر فعالیت سرگرمکنندهای کنند تا ذهن کودک با قدرت فوقالعادهاش روالها و دستورات را یاد بگیرد و به خاطر بسپارد و مهارتهای کدنویسیاش رشد کند. سویگرت در مقاله پیش رو، سالها تجربه خود را در آموزش کدنویسی و برنامهنویسی به کودکان در قالب شش ترفند به والدین منتقل میکند؛ اصولی که اعتقاد دارد با رعایت آنها، حتی اگر والدین هیچ دانشی در این حوزه نداشته باشند؛ فرزندشان بهخوبی به دنیای برنامهنویسها قدم میگذارد.
1. اسکرچ برای کودکان سنین پایین؛ پایتون برای کودکان سنین بالاتر
دانشگاه MIT زبان برنامهنویسی اسکرچ را توسعه میدهد. اسکرچ، یک ابزار رایگان برنامهنویسی کودکان است که بهراحتی در هر مرورگر مدرنی قابل اجرا است. برای دسترسی به این زبان به این سایت مراجعه کنید. این زبان از سبکهای بازیهای لگو در دهه ۸۰ و ۹۰ میلادی کپیبرداری کرده و فضای گرافیکی با جلوههای بصری مطلوبی را پیادهسازی کرده است.
کودکان ۸ تا ۱۳ سال میتوانند از رابطهای گرافیکی ساده و زیبای اسکرچ استفاده کنند. در اسکرچ میتوانید بهسادگی بلوکهایی از کدها را با ماوس یا دست به درون باکس اصلی بکشید و رها کنید تا نتیجه را ببینید. در این روش، اشتباه برنامهنویسی به معنایی که میشناسیم، رخ نمیدهد و کودکانی که با مفاهیم اولیه آشنایی ندارند، با مشکل مواجه نمیشوند.
با اسکرچ میتوان برنامههای سختتر و پیچیدهتر نیز ساخت، ولی کودکان بیشتر از ۱۳ سال بهتر است قبل از سن نوجوانی به سراغ زبان برنامهنویسی پایتون بروند. پایتون زبان برنامهنویسی سطح بالا و ساختارمندی است که برخلاف زبان C یا جاوا، دستورات و سینتکسهای سادهای دارد. میتواند کدهای قابل خواندن تولید کند - برخلاف پرل یا جاوااسکریپت- و جامعه بزرگ و دوستانهای از برنامهنویسها اطرافش شکل گرفتهاند که میتوانند شما را راهنمایی کنند. اگر فرزندتان با اسکرچ شروع به کدنویسی کند، پایتون بهترین زبان برنامهنویسی برای ورود به مرحله بعد است.
2. سورس کدهای برنامههای واقعی را نشان دهید و فقط دربارهشان صحبت نکنید
یک برنامهنویس بیشتر از آموزش تئوری و کتاب خواندن، به شهود عقلانی نیاز دارد. برای کودکی که قصد دارد برنامهنویسی را شروع کند، دیدن و لمس کدها بیشتر از درسهای خشک معرفی ساختار دستورات و سینتکسها مؤثر است.
کار با کدها و برنامههای واقعی، در مقایسه با صحبت کردن درباره مفاهیم دستورات و نحوه کدنویسی، موفقیت بسیار بیشتری در پی دارد. حتی بعد از یادگیری متغیرها، حلقهها، توابع و ساختار کلی برنامهها، مقابل یک ویرایشگر نشستن و شروع به کدزنی برای برنامه جدید کردن، بسیار خطرناک و ناامیدانه است.
باید کدهای آماده برنامهها را نشان کودک بدهید و با هم خطبهخط سورس کد را بررسی و توصیف کنید. اگر از ابزارهای آنلاین برای آموزش برنامهنویسی استفاده میکنید، سورس کد برنامهها و بازیهای کوچک را نشان دهید. برنامههایی را انتخاب کنید که کمتر از صد خط کد دارند.
3. بازی، پروژه برنامهنویسی سرگرمکنندهای است
برنامهنویسی بازیهای ویدیویی بهترین نقطه شروع عمومی برای بسیاری از کدنویسهای جوان است. بازیهایی مانند انگریبردز، ماین کرافت، فلاپی بردز، فایو نایتز و بسیاری از بازیهای دیگر منابع اولیه الهامبخشی هستند. کتابهای زیادی درباره نوشتن بازی با کدهای ساده منتشر شده و از جمله خودم کتابی با عنوان «Invent Your Own Computer Games with Python» نوشتهام که مفاهیم کدها را در کنار سورس کدهای پایتون برای چند بازی ساده شرح میدهم.
در اینجا باید به موضوع مهمی اشاره کنم؛ کودکان دوست دارند خیلی سریع به سراغ برنامهنویسی بازیهای بزرگ و معروف بروند، در حالی که هنوز در دنیای برنامهنویسی تازهوارد هستند. بازیهای ویدیویی بزرگ نیاز به گروههای توسعهدهنده، طراحان گرافیکی، هنرمندان گیمپلی و افراد دیگر دارد. برنامهنویسی بازی که نیاز به سطحی از طراحی گرافیکی و خلق شخصیت و فضا دارد، میتواند کودک را سرخورده و انگیزهاش را سرکوب کند. برای برنامهنویسان تازهکار اتمام یک بازی بسیار رضایتبخشتر و موفقیتآمیزتر از این خواهد بود که به سراغ یک پروژه عظیم بروند.
من با نرمافزارهای بازیسازی سادهای مانند «game maker» یا «game creation» برای کودکان مخالف هستم و اسکرچ را بیشتر توصیه میکنم؛ چراکه این نرمافزارها به دنبال آموزش برنامهنویسی نیستند، بلکه تنها هدفشان این است که یک بازی بهسرعت ساخته شود. محیطهای این برنامهها از نرمافزارهای آماده استفاده میکنند و با کدها کاری ندارند.
4. دستان خود را از روی صفحهکلید و ماوس بردارید
به اشتراکگذاری دانش، هیجانانگیز و نشان دادن روشهای برنامهنویسی به کودکان کار بزرگی است، اما باید بدانیم برنامهنویسی مهارتی است که باید با دست انجام شود. بنابراین، اجازه دهید کودکان خودشان با کامپیوتر کار کرده و کدنویسی کنند. از دخالت در کار کودکان هنگام کدنویسی، بهشدت اجتناب کنید و سعی نکنید خودتان یک دستور را کامل یا تصحیح کنید. اگر مجبور هستید روی منو یا آیکونی کلیک کنید، دستتان را روی صفحهنمایش گذاشته و از کودک بخواهید این کار را انجام دهد. گاهی تایپ برخی کدها سرعت عمل را افزایش میدهد، اما بهتر است خود کودک با تمرین بیشتر مهارتهای لازم را کسب کند؛ حتی اگر مدتزمان بیشتری صرف شود.
5. اگر در آموزشگاه درس میدهید، برای هر کودک یک کامپیوتر اختصاص دهید
اگر معلم جمعی از بچهها هستید، حتماً مانند کلاسهای آموزش موسیقی به هر کودک یک کامپیوتر اختصاص دهید. برنامهنویسی مهارتی است که باید با دست آموخته شود و تماشای آن هیچ فایدهای ندارد.
ممکن است برای تأمین هزینه هر کامپیوتر به ازای هر دانشآموز مشکل مالی داشته باشید. راهحل آن استفاده از کیتهای توسعه سختافزاری مانند Raspberry Pi است که یک کامپیوتر PC با قیمت ۷۰ دلار بوده و میتواند نیازهای ابتدایی را برآورده کند. وقتی برای این کیت صفحهکلید، ماوس و صفحهنمایش تهیه کنید، قیمت تمامشده بسیار کمتر از قیمت لپتاپ یا کامپیوتر رومیزی خواهد بود. توصیه من این است که از خریدن دستگاههایی مانند کروم بوک، آیپد و تبلتهای اندرویدی در این مورد خاص اجتناب کنید؛ چون نمیتوانند جایگزین کامپیوترهای رومیزی شوند و اجرای دستورات زبان برنامهنویسی پایتون روی آنها دشوار است.
اگر به هر دلیلی نمیتوانید به هر کودک یک کامپیوتر اختصاص دهید، بچههای کلاس را به دو گروه A و B تقسیم کنید و به صورت نوبتی هرکدام از گروهها را برای استفاده از کامپیوترها دعوت کنید. مزیت این روش، افزایش اعتماد به نفس در برخی دانشآموزان است. در ساعت مشخصی از گروه اول بخواهید جای خود را با گروه بعدی عوض کنند. هیچگاه اختیار این تغییر جا را به خود کودکان واگذار نکنید.
6. علوم کامپیوتری را نادیده بگیرید
اگر توسعهدهنده نرمافزار باشید، ممکن است مشتاق باشید بسیاری از مفاهیم و علومی را که در دانشگاه فرا گرفتهاید، با کودکتان به اشتراک بگذارید، شروع به آموزش الگوریتمهای بازگشتی یا حل مسئلههای معروف دنیای برنامهنویسی کنید. ممکن است این کار در ابتدا جذاب و سرگرمکننده به نظر برسد، اما در نهایت فایدهای برای کودک نخواهد داشت و ممکن است از برنامهنویسی منزجر شود. در شروع آموزش برنامهنویسی باید از آموزش بسیاری مفاهیم اجتناب کنید: مانند الگوریتمها و توابع برگشتی، برنامهنویسی شیگرا، الگوهای طراحی، ساختمان دادههای مبتنی بر لیست و آرایه، توابع هش، پروتکلهای شبکه، پایگاه دادههای SQL یا دستورات بسیار خاص.
در شروع کار بهتر است موضوعهای ابتدایی بیشتری را آموزش دهید تا اینکه به سراغ آموزشهای عمیق هر بحث بروید. اجازه بدهید کودکان جایگاه خود را در دنیای برنامهنویسی پیدا کنند و شور و شوق مورد نیاز را به دست آورند. در گامهای بعدی، خود کودک به سراغ کشف چیزهای جدید خواهد رفت و تلاش میکند مهارتهای خود را افزایش دهد تا تبدیل به برنامهنویسی حرفهای شود.