ابزارهای کدنویسی خلاقانه
فهرست مطالب
فراتر از اسکرچ (نرم افزارهای خلاقانه در برنامه های کاربردی واقعی):
برای بسیاری از کودکان، نوجوانان و یا بزرگسالان غیر حرفهای که برای اولین بار شروع به آموزش برنامه نویسی برای کودکان کردهاند، ابزارهای کدنویسی خلاقانه مانند اسکرچ نقطه شروع بسیار خوبی خواهد بود. این نرم افزار برنامه نویسی میتواند برای ایجاد بازیها و انیمیشنها، با استفاده از زبان های برنامه نویسی مبتنی بر بلوکه به کار گرفته شود.
اما سوال اینجاست که چگونه میتوان از این ابزارها برای تولید محصولات و پروژههای واقعی استفاده کرد تا بتوان از سطح پلت فرمِ کامپیوتری فراتر رفت!
در اینجا میخواهیم ارتباطِ میان یادگیری و ابزارهای خلاقانهی کدنویسی را توضیح دهیم، و یک لیست کوتاه از ابزارهای کدنویسی برای ایجاد پروژهای واقعی را ارائه دهیم:
کدنویسی یکی از مهمترین مهارتهای اساسی برای دانشآموزان میباشد و تلاش بسیاری شده است تا بتوان ابزارهایی را برای شروع یادگیری آسان و سریع آن ایجاد کرد. فرزند شما احتمالا با ابزارهایی مانند اسکرچ یا make code آشنا است اما مهمترین سوال این است که: آیا کودکان میتوانند مهارتهای دنیای واقعی را با استفاده از این سیستمها به دست بیاورند و بعد از کسب این مهارتها، چه چیزی را یاد میگیرند؟ طبیعی است که تمامی دانشآموزان در آینده برنامه نویس نخواهند شد، پس هدف از آموزش کدنویسی به کودکان چیست؟
محیطهای برنامه نویسی فراوانی برای فراگیران و افراد ناآشنا با کدنویسی طراحی شده است که میتوانند با آنها به نتایج فوق العادهای دست پیدا کنند، این محیطها در دسته کدنویسی خلاقانه قرار میگیرد، و محیطهای مبتنی بر کد تا سیستمهای چند رسانهای و تولید بازی را در بر میگیرد. این سیستمها میتوانند به عنوان گام بعدی برای فراگیران در نظر گرفته شوند، که میتوانند مهارتهای فراگرفته شده خود را در آن استفاده و پیاده سازی کنند.
ارتباط میان یادگیری و ابزارهای خلاقانه کدنویسی:
ابزارهای خلاقانه تکنولوژی طراحی شدهاند تا جنبه “خلاقیت” را در تکنولوژیهای قدرتمند امروزی ایجاد کنند و به هنرمندان، طراحان، نوآوران و کسانی که اولویت آنها کد نویسی نیست، امکان استفاده از این تکنولوژیها را بدهند، زیرا تمرکز اصلی این افراد بر روی ساخت و عملکرد سریع مسائل و تکرار سریع آنها است.
این ابزارها، ویژگیهایی مشترک زیادی در ارتباط با سیستمهای آموزشی دارند:
۱- شروع به کار آسانی دارند: تمامی این ابزارها ماژولهای سطح بالایی دارند که میتوانند به صورت مستقیم و بدون تنظیمات پیچیدهای استفاده شوند.
۲- تکرار: چرخه تولید و تست آنها بسیار سریع است و به محض اعمال تغییرات میتوانید نتایج خروجی را ببینید.
۳- خروجی چندرسانهای بسیار غنی: تمامی این ابزارها خروجی ویدیویی و شنیداری زنده و با کیفیتی را پشتیبانی میکنند.
۴- قابلیت توسعه: تمامی آنها میتوانند توسعه بیابند و قابلیتهای جدید، به خصوص دستگاههای ورودی جدید را پشتیبانی کنند.
۵- نتایجِ آراسته: ارائه خروجی نهایی، تمام و کمال به نظر میرسد.
از آنجایی که این ابزارها نقاط مشترک زیادی با محیطهای آموزشی دارند، در نتیجه میتوانند به عنوانِ گام بعدی برای فراگیران و یادگیری برنامههای کاربردی واقعی در نظر گرفته شود.
ابزارهای کدنویسی خلاقانه:
در این قسمت به بررسی سه دسته از محیطهای مختلف رایانهای میپردازیم که میتوانند برای پروژههای واقعی قابل استفاده باشند و به علاوه پیش نیازهای مشابهی دارند که دانشآموزان قبلا آنها را در دورههای پایه یادگرفتهاند:
۱- محیط های تولیدات چندرسانهای:
ابزارهای نرم افزاری زیادی وجود دارند که به نوآوران اجازه ساخت کارهای تعاملی را بدون نوشتن کدهای زیاد میدهد. این نرم افزارها حتی شیوه نصب را با استفاده از واسطهای گرافیکی توضیح میدهند به صورتی که بلوکهها و ماژولها میتوانند با یکدیگر متصل شوند و یک برنامه را ایجاد کنند.
نمونهای از ابزارهای خلاقانه چندرسانهای شامل Max/MSP, میباشد که ۳۰ سال قدمت دارد و همچنان جزوی از خانواده البتون (Albeton) میباشد. Max یکی از اولین سیستمهایی است که به کاربر اجازه تولید نرم افزار را با استفاده از اتصال ماژولها میدهد.
یکی دیگر از ابزارهای کدنویسی شگفتی آور Touch Designer, by Derivative Inc. میباشد. این ابزار به دلیل کیفیت بصری و عملکرد گرفیکی بالا و بلادرنگ معروف میباشد و اولین بار در سال ۲۰۰۸ عرضه شده است. این ابزار میتواند تنوع فراوانی از حسگرهای فیزیکی و سایر سیستمها را با یکدیگر ادغام کند و حتی در صورتی که بلوکههای از پیش ساخته شده آن کافی نباشند، با استفاده از پایتون میتوان آن را توسعه داد.
نمونهای از خروجی کار با استفاده از این ابزار این است که میتوان دیوارنگارههای ویدیویی را ایجاد کرد که با حرکت کاربران تغییر میکند:
۲- سیستمهای تولید بازی:
توسعه دهندگان بازیهای رایانهای، چالشهای یکسانی را به عنوان تکنولوژیستهای خلاق خواهند داشت. در سالهای اخیر، ابزارهای توسعه دهنده بازیهای رایانهای به صورت فزایندهای برای ساخت بازیهای تعاملی استفاده شده است.
Unity یکی از سیستمهای توسعه دهنده بازیهای رایانهای متداول میباشد که به توسعه دهنده اجازه میدهد تا بتواند نرم افزار خود را بر روی دستگاههای مختلف اعم از کامپیوتر، موبایل و کنسولهای بازی ویدیویی ایجاد کند. همچنین علت محبوبیت دیگر آن استفاده از بازار آنلاین Asset Store میباشد که به راحتی میتوان قطعات نرم افزاری مورد نیاز را از آن تهیه نمود. یکی دیگر از نقاط قوت یونیتی پشتیبانی قوی آن از واقعیت افزوده و واقعیت مجازی میباشد.
این امکان وجود دارد که در مدت زمان کوتاهی یک صحنه سه بعدی تعاملی را ساخته و آن را در دسترس کاربران با سیستمهای مختلف قرار داد. همچنین یونیتی از زبان برنامه نویسی C# پشتیانی میکند که بر مبنای C++ بوده اما ویژگیهای بسیار دیگری دارد که آن را قابل اعتمادتر و محکمتر میسازد.
به علاوه از یونیتی میتوان برای ساخت بازی شبیه سازی عمل جراحی رباتیک نیز استفاده نمود، که بر روی یک صفحه الکترونیکی به خصوص قرار گرفته و به لمس و یا قرار دادن اجسام بر روی آن واکنش نشان میدهد:
۳- چارچوبهای کدنویسی خلاقانه:
زمانی که نیاز به انعطافپذیری در سمت کاربر نیاز باشد هیچ جایگزینی برای نوشتن کدها وجود نخواهد داشت. در این میان بسیاری از سیستمهای جدید ایجاد شده اند که پروژههای مبتنی بر کد را آسان ساختهاند.
چارچوبهای برنامه نویسی فراوانی برای ساخت چندرسانهایها، دستگاههای جاسازی شده و یا یادگیری ماشین وجود دارد که Processing environment یکی از متدوالترین آنهاست و محیط کاربری بسیاری آسانی برای برنامه نویسی Java دارد. این ابزار رایگان و منبع باز بوده و شامل افزونههای فراوانی برای ایجاد افکتها و واسطها میباشد.
Cinder framework یک کتابخانه شامل ماژولهای فراوانی است که از گرافیک و تعاملپذیری بالایی برخوردار است و علت آن استفاده از زبان برنامه نویسی C++ میباشد. با وجود اینکه استفاده از زبان برنامه نویسی C++ سختتر از سیستمهای گرافیکی خالص است، با این حال استفاده از آن میتواند عملکرد بسیار بالایی را در چارچوبهایی مانند سیندر فراهم کند، که منجر به جلوگیری از هدر رفت زمان توسعه دهندگان میشود.
از سیندر میتوان برای ساخت نرم افزار کنترلی درخت روشنایی LED استفاده کرد که به توسعه دهنده اجازه میدهد تا برنامههای کاربردی رسانهای خود را با سرعت بالاتر ایجاد کند.
کی از مهمترین موضوعات روز دنیا که در سالهای اخیر ظهور کرده است هوش مصنوعی و یادگیری ماشین است. با وجود اینکه این رشته از جدیدترین رشتهها محسوب میشود اما از اهمیت زیادی برخوردار است و ابزارهای یادگیری بسیار خوبی را نیز دارا میباشد. این ابزارهای یادگیری به دلیل قدرت بالا و استفاده آسان میتوانند در برنامههای کاربردی نیز استفاده شوند.
یکی از نمونههای چشم گیر این حوزه Jupyter Notebooks میباشد. سیستمی که به شما اجازه میدهد تا برنامه نویسی پایتون را در یک صفحه وب انجام دهید، و نتایج گرافیکی و متنی را به صورت مستقیم در همان صفحه ببینید. پایتون برای کار در حوزه یادگیری ماشین بسیار کاربردی است.
Zumi robot from Robolink نیز یکی دیگر از ابزارهای یادگیری ماشین میباشد. که به فراگیران اجازه میدهد تا هوش مصنوعی و یادگیری ماشین را در قالب یک ماشین خودکار آزمایش کنند.
مسیر یادگیری:
سیستمهایی مانند اسکرچ و Makecode برای یادگیری مفاهیم پایه کدنویسی بسیار ایده آل هستند، برای مثال مفاهیمی مانند تکرار، شروط و متغیرها را آموزش میدهند. گرچه Make code یک گام از این مفاهیم نیز فراتر رفته و به شما اجازه میدهد تا برنامه خود را به دو صورت بلوکه و یا تایپ کردن اسکریپت پیاده سازی کنید.
دانشآموزی که شروع به یادگیری اسکرچ میکند در گام بعدی میتواند با makecode کار کند، و سپس به سراغ جاوا اسکریپت یا پایتون برود.
حتی موتورهای طراحی بازی نیز قابل دسترس خواهند بود و برای بسیاری از دانشآموزان هیجان انگیز است، که در این میان میتوان Unity را گزینهای مناسب در نظر گرفت.
در نتیجه برای والدین، معلمین و دانشآموزان که به دنبال پاسخ به سوالِ “بعد از اسکرچ چی؟” هستند، ابزارهای کدنویسی خلاقانه، مسیر شگفتانگیزی را پیش روی آنها قرار خواهد داد.