توسعه و استفاده از انتزاعات
انتزاعها با شناسایی الگوها و استخراج ویژگیهای مشترک از نمونههای خاص برای ایجاد تعمیمها[1] (مفاهیم عامتر) شکل میگیرند. استفاده از راهحلی که تعمیمیافته و طوری طراحیشده که امکان استفادهی مجدد و گسترده را داشته باشد، میتواند با مدیریت پیچیدگی، موجب سادهشدن فرآیند توسعه شود.
تا پایان پایهی دوازدهم، دانشآموزان باید بتوانند:
1. ویژگیهای مشترک از مجموعهای از فرآیندهای مرتبط یا پدیدههای پیچیده را استخراج کنند.
در تمام پایههای تحصیلی، دانشآموزان باید قادر به تشخیص الگوها باشند. دانشآموزان جوان باید بتوانند توالیهای مکرر در دادهها یا کُدها را از طریق قیاس با الگوهای بصری یا دنبالههای فیزیکی اشیاء شناسایی و توصیف کنند. در طول مسیر پیشرفتشان، دانشآموزان باید الگوها را به عنوان فرصتهایی برای «انتزاع» شناسایی کنند، مانند شناسایی الگوهای مکرر کُد که میتوانند به صورت کارآمدتر بهعنوان یک حلقه پیادهسازی شوند. در نهایت، دانشآموزان باید بتوانند ویژگیهای مشترک را از پدیدهها یا فرآیندهای پیچیدهتر استخراج کنند. برای مثال، دانشآموزان باید بتوانند ویژگیهای مشترک را در بخشهای متعدد کُد شناسایی کنند و یک بخش واحدی را جایگزین کنند که از متغیرها برای محاسبهی تفاوتها استفاده میکند. در یک رویه (تابع)، متغیرها به شکل مجموعهای از پارامترها هستند. هنگام کار با دادهها، دانشآموزان باید بتوانند جنبههای مهم را شناسایی کرده و الگوهایی را در مجموعه دادههای مرتبط مانند بازده محصول، روشهای کوددهی و شرایط آب و هوایی بیابند.
2. کارکردهای فناورانهی موجود را ارزیابی کنند و این کارکردها را در طرحهای جدید بگنجانند.
در تمام پایههای تحصیلی، دانشآموزان باید بتوانند از انتزاعاتِ کاملاً تعریف شدهای استفاده کنند که پیچیدگی را پنهان میکند. درست همانطور که یک ماشین جزئیات عملیاتی مانند مکانیک موتور را پنهان میکند، دستور «حرکت» در یک برنامهی رایانهای به جزئیات پنهانی متکی است که باعث میشود یک شی در صفحهی نمایش مکان خود را تغییر دهد. در طول مسیر پیشرفتشان، دانشآموزان باید بتوانند توابع از پیش تعریفشده را در طرحهای خود بگنجانند، و بدانند که نیازی به دانستن جزئیات اجرایی زیربنایی انتزاعیهایی که استفاده میکنند ندارند.
در نهایت، دانشآموزان باید مزایای عملکردهای موجود (به عنوان نمونههایی از انتزاعات) از جمله منابع فناورانهی ایجاد شده توسط افراد دیگر، مانند کتابخانهها و رابطهای برنامهنویسی (API) را درک کنند و در استفاده از آنها راحت باشند. دانشآموزان باید بتوانند با ارزیابی انتزاعات موجود، تعیین کنند کدامیک باید در طرحهایشان گنجانده شوند و چگونه باید آنها را ترکیب کنند. به عنوان مثال، دانشآموزان میتوانند با ترکیب خدمات موجود، مانند پایگاههای دادهی آنلاین که مختصات موقعیت جغرافیایی، نام خیابانها یا اطلاعات مصرف مواد غذایی را برمیگردانند، برنامههای کاربردی قدرتمندی بسازند.
3. ماژولها و نقاط تعاملیای ایجاد کنند که میتواند در موقعیتهای متعدد اِعمال شده و پیچیدگی را کاهش دهد.
پس از اینکه دانشآموزان تجربهای در شناسایی الگوها، تجزیه و تحلیل مسائل، استفاده از انتزاعات و استفاده از منابع موجود به دست آوردند، باید توسعهی انتزاعات خودشان را شروع کنند. در طول مسیر پیشرفتشان، دانشآموزان باید از فرصتهای بالقوه برای توسعهی ماژولهای قابل تعمیم استفاده کنند. برای مثال، دانشآموزان میتوانند با طراحی رویههایی که چندین بار در برنامه استفاده میشوند، برنامههای کارآمدتری بنویسند. این رویهها را میتوان با تعریف پارامترهایی تعمیم داد طوریکه خروجیهای متفاوتی را برای طیف وسیعی از ورودیها ایجاد کند. بعد از آن، دانشآموزان باید بتوانند سیستمهایی از ماژولهای تعاملی را طراحی کنند که هر کدام نقشی کاملاً مشخص دارند و برای دستیابی به یک هدف مشترک هماهنگ میشوند. در زمینهی برنامهنویسی شیگرا، طراحی ماژول ممکن است شامل تعریف تعاملات بین اشیا باشد. در این مرحله، این ماژولها که دادهها و رویهها را با هم ترکیب میکنند، میتوانند برای استفادهی مجدد در برنامههای دیگر طراحی و مستندسازی شوند. علاوه بر این، دانشآموزان میتوانند نقاط تعاملی مانند یک رابط کاربری ساده، متنی یا گرافیکی را طراحی کنند که پیچیدگی راهحل را کاهش میدهد و جزئیات پیادهسازی سطح پایینتر را پنهان میکند.
4. برای درک و ارزیابی نتایج بالقوه، نسبت به مدلسازی پدیدهها و فرآیندها اقدام کنند و نظامها (سیستمها) را شبیهسازی کنند.
دانشآموزان در تمام سطوح باید بتوانند الگوها، فرآیندها یا پدیدهها را شناسایی کنند و آنها را نشان دهند. با راهنمایی معلم، دانشآموزان جوان میتوانند برای توصیف یک الگوی ساده، مانند طلوع و غروب خورشید، نقاشی بکشند یا مراحل یک فرآیند مانند مسواک زدن را نشان دهند. آنها همچنین میتوانند یک انیمیشن برای مدلسازی یک پدیده مانند تبخیر ایجاد کنند. در طول مسیر پیشرفتشان، دانشآموزان باید درک کنند که رایانهها میتوانند پدیدههای دنیای واقعی را مدلسازی کنند و باید بتوانند از شبیهسازیهای رایانهای موجود برای یادگیری در مورد سیستمهای دنیای واقعی استفاده کنند. به عنوان مثال، آنها ممکن است از یک مدل از پیش برنامهریزی شده برای بررسی چگونگی تأثیر پارامترها بر یک سیستم، مانند سرعت گسترش یک بیماری استفاده کنند. دانشآموزان سالهای بالاتر باید بتوانند پدیدهها را بهعنوان سیستمهایی با قوانین حاکم بر تعاملات درون سیستم مدلسازی کنند. دانشآموزان باید این مدلها را در برابر مشاهدات دنیای واقعی تجزیه و تحلیل و ارزیابی کنند. برای مثال، دانشآموزان ممکن است با استفاده از یک ابزار برنامهنویسی، یک مدلِ ساده از زیستبومِ (اکوسیستمِ) تولیدکننده-مصرفکننده ایجاد کنند. در نهایت، آنها میتوانند مدلشان را با ایجاد تعاملات پیچیدهتر و واقعیتر بین گونهها، مانند شکار، رقابت، یا همزیستی توسعه دهند و مدل را بر اساس دادههای جمعآوریشده از طبیعت ارزیابی کنند.
[1] Generalizations