منظور از ” برنامه نویسی برای کودکان ” چیست؟

تعاریف مختلف از یک مفهوم:در نگاه اول، مجموعه اصطلاحات حوزه کامپیوتر می‌توانند بسیار شبیه به هم به نظر برسند، “کدنویسی”، “برنامه نویسی”، “تفکر رایانشی” و “علوم کامپیوتر” اغلب به جای یکدیگر استفاده می‌شوند و معنای یکسانی را در بردارند. اجازه دهید تا برای درک بهتر هر یک از این مفاهیم، به تعریف مختصر هر یک از آن‌ها بپردازیم:علوم کامپیوتر (Computer science):علم کامپیوتر به مطالعه عملکرد واقعی کامپیوترها اشاره می‌کند، و به صورت کلی به جنبه تئوری مفاهیم می‌پردازد. دانشمندان حوزه کامپیوتر عملیات‌های ممکن با سخت‌افزارها و نرم‌افزارها را آزمون و بررسی می‌کنند، (منظور از سخت‌افزار، مولفه‌ها و اجزای فیزیکی کامپیوتر مانند هارد درایو و مادربورد می‌باشد، و منظور از نرم‌افزار، برنامه‌ها و داده‌هایی می‌باشد که بر روی سخت افزار کامپیوتر قرار می‌گیرند).برای مثال مسائلی که توجه دانشمندان حوزه علوم کامپیوتر را به خود جلب کرده است می‌تواند شامل مورد زیر باشد:“آیا کامپیوترها می‌توانند به انسان‌ها کمک کنند تا سیستم‌های پیچیده مانند بدن انسان، سیستم‌های مالی یا اقلیم زمین را مدل‌سازی و بررسی نمود”تفکر محاسباتی (Computational thinking):تفکر محاسباتی ابزار فکری است که دانشمندان کامپیوتر برای بررسی سخت افزار و نرم افزارها از آن استفاده می‌کنند. به معنای ساده‌تر درک مسائل پیچیده و سپس ایجاد راه حل‌های ممکن می‌باشد، که سپس می‌توانیم این راه حل‌ها را به شیوه‌ای که کامپیوتر، انسان یا هر دو متوجه شوند، ارائه دهیم.برنامه نویسی کامپیوتر (Computer programming):فرآیند ایجاد کامپیوترهایی برای انجام فعالیت‌های مختلف می‌باشد، که معمولا با نوشتن خطوطی از کدهای کامپیوتری برای رسیدن به هدف مورد نظر میسر می‌شود. برای مثال:اگر من حروف ABC را تایپ کردم کامپیوتر فعالیت XYZ را انجام دهد.کدنویسی (Coding):با وجود اینکه معمولا از این واژه به جای سه مفهوم بالا استفاده می‌شود، کدنویسی بیان معاصرتر مفهوم برنامه نویسی کامپیوتر می‌باشد که به نوشتن کدهای کامپیوتری اشاره می‌کند که باعث می‌شود کامپیوتر فعالیت دلخواه شما را انجام دهد.چرا کودکان باید کدنویسی را یادبگیرند ؟چرا باید کودکان کدنویسی و تفکر رایانشی را یاد بگیرند؟امروزه یک فرضیه عمومی در کل جهان به وجود آمده است که معتقد است کودکان باید کدنویسی را یاد بگیرند زیرا ما به دانشمندان کامپیوتر بیشتری در دنیای امروز نیاز داریم. مهندسین نرم افزار بیشتر کمک خواهند کرد تا دنیای دیجیتالی امروز بهتر شکل بگیرد که حتی برای اقتصاد هم بد نخواهد بود.اما سوالی که برای والدین و یا معلمان مطرح خواهد شد این است که “اگر کودک من نخواهد در آینده دانشمند حوزه کامپیوتر شود، در این صورت این مهارت چه فوایدی برای او خواهد داشت؟”این حقیقت کاملا صحیح است که امروزه شرکت‌های بزرگ تکنولوژی (مانند گوگل، فیس بوک، اپل، تسلا و …) تنها مهندسین نخبه و خبره را جذب می‌کنند اما دلایل فراوان دیگری هم وجود دارد که چرا کودکان باید کدنویسی را فرابگیرند:1- کدنویسی، یافتن ایده های خلاقانه را به کودکان آموزش می دهد.کدنویسی برای کودکان به طور اساسی یک فرآیند خلاقانه است.دقیقا مانند آشپزی یا نقاشی، کودکان با کدنویسی نیز حس رضایت و نشاط را از شروع کار با هیچ دانسته‌ای و بعد تولید یک خروجی به دست خواهند آورد و حتی فراتر نیز خواهد رفت. در دنیای واقعی، فعالیت‌های خلاقانه معمولا با مواد فیزیکی محدود می‌شوند (مانند مواد اولیه برای آشپزی یا بوم رنگ برای نقاشی) اما با برنامه نویسی در دنیای بی‌نهایت مجازی، تنها محدودیتِ کودکان، تخیلات آن‌ها خواهد بود.2- برنامه نویسی درک تکنولوژی را ساده تر می کند.دانشگاه آکسفورد پیش بینی کرده است که در 20 سال آینده در حدود 47 درصد مشاغل در کشور آمریکا کاملا سیستمی خواهند شد. همچنین پیش بینی‌ها در مورد تعداد دستگاه‌هایی که در سال 2020 که در قالب اینترنت اشیا به یکدیگر متصل خواهند بود بین 20 بیلیون تا 75 بیلیون بوده است.به علت همین تکثیر دستگاه‌ها و کامپیوترها، نگرانی فزاینده‌ای در مورد افزایش اهمیت نقش هوش مصنوعی و کامپیوترها و به خصوص در رابطه با این موضوع که ماشین‌ها کارمندان انسانی را از محیط‌های کاری کنار خواهند زد، ایجاد شده است.درک فعالیت‌ها و کارهایی که ماشین‌ها می‌توانند انجام دهند و فعالیت‌هایی که نمی‌توانند انجام دهند به طور اساسی در حل این نگرانی بسیارکمک کننده خواهد بود. اگر ما بتوانیم به کودکان خود چگونگی مدل‌سازی دوباره دنیای تکنولوژیکی اطرافشان را بدهیم، به آن‌ها کمک خواهیم کرد تا به جای مصرف‌کننده بودن، خالق این تکنولوژی‌ها باشند.3- حل مساله و پشتکار را به کودکان یاد می دهد.هرکسی که تا به حال با کدها کار کرده باشد، از تازه کاران تا متخصصین این حوزه، به شما خواهند گفت که نوشتن کدها به سرعت چالش برانگیز خواهد شد، و یا به زبان ساده‌تر کدنویسی می‌تواند ناامید کننده باشد، خیلی خیلی ناامید کننده. اما این احساس بسیار سازنده خواهد بود زیرا کودکان فرا می‌گیرند که مشکلی برطرف نخواهد شد مگر اینکه به سرعت آن را برطرف کنید و آن را با شیوه‌های مختلف بررسی و آزمون نمایند.با معرفی برنامه نویسی، کودکان یاد می‌گیرند که در هنگام مواجه با یک مسئله برنامه نویسی، چندجانبه فکر کنند. برای مثال:اگر A+B کار نمی‌کند پس شاید A+C جواب درست است.همچنین کدنویسی به کودکان شیوه داشتن پشتکار در حل مسائل و تلاش برای یافتن یک راه حل را می‌آموزد.4- کودکان با انجام فعالیت ها، مفاهیم را بهتر یاد می گیرند.پدربزرگ علم آموزش کدنویسی، با نام سیمور پاپِرت، یکی از طرفداران سرسخت آموزش با ربات‌های برنامه نویسی به کودکان بوده است. او همچنین از طرفداران تئوری یادگیری از طریق انجام فعالیت‌ها بود و معتقد است که:“برنامه نویسی ربات به کودک کمک می‌کند تا در مورد انجام دادن کارها فکر کند.شما با انجام دادن کارها یاد می‌گیرید. اما شما زمانی بهتر یاد خواهید گرفت که به کاری که در حال انجام دادن هستید، فکر کنید و این چیزی است که بسیار حائز اهمیت می‌باشد.”5- همچنین کودکان یاد می گیرند تا در مورد تفکر و درک مسائل فکر کنند.پاپِرت همچنین در مورد حس اکتشاف و شگفتی کودکان در زمان اولین مواجهه با برنامه نویسی صحبت می‌کند:“زمانی که کودکان به کامپیوتر، فکر کردن را می آموزند، در مورد چگونگی فکرکردن خودشان نیز می اندیشند. و این فرآیند آنها را تبدیل به یک فرد معرفت شناس خواهد کرد، و این تجربه ای است که کمتر بزرگسالی آن را تجربه کرده است”. پاپرتتفکر رایانشی یک ابزار بسیار ارزشمند می‌باشد و قاعدتا یکی از ابزارهای تفکر قرن 21 می‌باشد که با اجرا شدن در زندگی ما می‌تواند تاثیرات شگرفی را ایجاد کند.تاریخچه آموزش کدنویسی به کودکان:آموزش برنامه نویسی به صورتی که ما امروزه با آن سر و کار داریم در حدود 60 سال پیش با یک لاک پشت آغاز شده است.اولین بار، جین پیاگِت (در سال های 1896 تا 1980) تئوری ساختار گرایی را مطرح کرد که به چگونگی وقوع فرآیند یادگیری اشاره می کرد.او معتقد بود که بشریت پایه و اساسِ یادگیری را به جای کسب دانش، بر پایه تجربیات گذشته خود و درک خود از دنیا بنا کرده است، اما کودکان دنیای اطراف خود را به صورت انسان‌های بزرگسال حس نمی‌کنند، بلکه آن‌ها شبیه به یک عامل فعال و پویا با دنیای اطراف خود ارتباط برقرار می‌کنند و تئوری‌ها و روش‌های رو به رشد خود را می‌سازند. قسمتی از این تئوری ساختار گرایی در برگیرنده ایده “تفکر اکتشافی” می‌باشد. این ایده بر این اساس است که کودکان از طریق انجام دادن و اکتشاف مسائل مختلف بهتر یاد می‌گیرند و آموزش می‌بینند.سال‌ها بعد این ایده توسط دانشمند و ریاضیدانی به نام سیمور پاپِرت (1928- 2016) پایه و اساس خود را پیدا کرد. پاپرت در سال 1960 در حالی که در دانشگاه MIT مشغول فعالیت بود توانست نرم افزار برنامه نویسی به نام Logo را ایجاد کند.با زبان برنامه نویسی LOGO، بچه‌ها می‌توانستند خطوط گرافیکی را با دستورات داده شده ایجاد کنند. این خطوط، چه بر روی صفحه نمایش و چه در دنیای واقعی، توسط یک ربات کوچک به نام turtle یا لاک پشت که یک قلم در دست دارد، انجام می‌گرفت. با استفاده از این لاک پشت، کودکان توانستند برای اولین بار همراه با بازی، برنامه نویسی‌های پیشرفته کامپیوتری را فرابگیرند و یک خروجی خلاقانه و خارج از صفحه نمایش را توسط یک شی فیزیکی ایجاد کنند (که در اینجا رباتی با نام turtle است).برنامه نویسی با زبان Logo، تئوری آموزشی ساختار گرایی را اجرا کرده است و دارای 4 جز اصلی می باشد:1- بچه‌ها با انجام دادن و تجربیات جدید یاد می‌گیرند.2- اشیایی که قابل لمس کردن هستند می‌توانند رویکردهای جدید تفکر را پشتیبانی کنند.3- ایده‌های قدرتمند افراد را قدرتمند می‌کند.4- بازخوردهایی که بچه‌ها با این نوع از زبان‌های برنامه نویسی از خودشان دریافت می‌کنند، به آن‌ها کمک می‌کند تا روند تفکراتشان و ارتباط آن‌ها با محیط را برای خودشان روشن‌تر سازد.این تحقیقات منجر به تکامل آموزش برنامه نویسی در سال‌های آتی شد که شامل این موارد می‌باشد:توریس نوعی دیگری از لاک پشت‌های برنامه نویس را در سال 1974 ایجاد کرد. بلوکه‌های برنامه نویسی قابل لمس دانشگاه MIT در سال 1990 منتشر شد، همچنین Lego (کیت‌های آموزشی که به کودکان اجازه ساختن و برنامه نویسی کردن ربات‌ها را می‌دهد) در سال 2013 به عنوان سومین نسل و آخرین نسل این حوزه آغاز به کار کرد، بلوکه‌های کدنویسی اسباب بازی‌ها نیز با نام Cubetto به عنوان نمونه ساده شده برنامه نویسی Logo تولید شد.بازنشر مطلب وبلاگ آکادمی یاسان