ملخص
ليست هذه الصفحة درسًا آخر، بل هي الحصيلة النهائية للدورة: تذكّر بالأهداف التعلّمية السبعة التي وضعتها الخطة الدراسية في البداية، وتبيّن في رسم واحد الهدفَ الذي أُسند إليه كل درس من كل وحدة، وتشرح كيف عُمل على كل هدف على امتداد وحدات المحتوى الثماني، وتميّز الأهداف التي لها وحدة خاصة بها من الأهداف التي تسري في الدورة كلها، وتجمع ما تتركه الدورة أبعد من C++، وتعلّم قراءة التقييم الذاتي حسب الهدف، الذي يجمع المحاولة الأولى في تقييمات الخروج، وتشير إلى ما تتركه الدورة لدورة البرمجة بلغة C++ II.
أهداف التعلم
- أن يصوغ الأهداف العامة السبعة للدورة، ويتعرّف على الوحدات والدروس التي عُمل فيها على كل منها.
- أن يميّز الأهداف التي لها وحدة خاصة بها من الأهداف التي تسري في عدة وحدات، ولا سيما حلّ المسائل بتعاقب الترجمة والتصحيح الملازم له، والمواصفات والاختبار، وأن يشرح كيف يُتمرَّن على هذه الأهداف الأخيرة.
- أن يفصل، فيما تعلّمه في الدورة، ما يصحّ في أي لغة عن صورته في C++، وأن يشرح ما تتركه الدورة لدورة البرمجة بلغة C++ II.
- أن يقرّر، انطلاقًا من التقييم الذاتي حسب الهدف ومن الرسم ومن تحديات كل خلاصة، أي الوحدات وأي الدروس تحسن مراجعتها.
ما الذي وضعته الدورة غايةً لها
نشأت الدورة بغاية عامة: أن تعلّم كتابة برامج صحيحة من الصفر، جاعلةً موضوعها البرمجة نفسها لا لغة بعينها. واختارت لذلك أداة متطلّبة، هي C++، لأنها لا تخفي الآلة: فهي تُلزم بالتصريح بالأنواع، وتفصل الترجمة عن التنفيذ، وتُظهر الذاكرة وكلفة النسخ وحدود كل عدد، وتعاقب بالسلوك غير المعرَّف ما تتستّر عليه لغات أخرى. وقد بسط الدرس الذي يعرض الخطة الدراسية هذه الغاية في سبعة أهداف تعلّمية عامة، يحسن أن تبقى أمام الأعين بالترقيم الذي يذكرها به الرسم:
- أن يحلّ المسائل ببرامج: أن يحدّد مواصفات ما يدخل وما يخرج، ويصمّم خوارزمية، ويتتبّعها يدويًّا، ثم يكتبها ويترجمها وينفّذها ويصحّح أخطاءها، مفسّرًا رسائل المترجم وتحذيراته.
- أن يختار النوع المناسب لكل معطى، ويستدلّ على حدود تمثيله: مدى قيم الأعداد الصحيحة، والفيضان، وتقريب الفاصلة العائمة، وترميز النصوص.
- أن يبني تعابير صحيحة، عارفًا بالأسبقية، وتحويلات الأنواع، والآثار الجانبية، وما يتركه المعيار غير معرَّف.
- أن يصمّم التحكم في التدفق بقرارات وحلقات صحيحة تتوقّف، وأن يسوّغ صحّتها بلامتغير.
- أن يفكّك مسألة إلى دوال ذات واجهات واضحة، ويختار طريقة تمرير الوسائط، ويحلّ المسائل بالاستدعاء الذاتي.
- أن يمثّل البيانات المركبة ويعالجها (التسلسلات، والجداول، والسجلات، والنصوص، والملفات) بالخوارزميات الأساسية وبالمكتبة القياسية، مقدِّرًا كلفتها.
- أن ينظّم برامج أكبر في عدة ملفات، ويحدّد مواصفاتها بشرط مسبق وشرط لاحق، ويختبرها اختبارًا منهجيًّا، ويحتجّ لصحّتها.
وقد أعلن كل درس من دروس الدورة، فضلًا عن ذلك، أهدافه الخاصة. ولا تقول الدروس أي هدف عام يخدمه كل منها؛ فتلك المطابقة قراءة من الخارج، بالمنهج نفسه المتّبع في سائر دورات الموقع. يُسند كل هدف خاص إلى هدف عام رئيسي، وإن مسّ غيره فإلى أهداف أخرى ثانوية؛ ويُحتسب كل هدف كاملًا في رئيسيه ونصفًا في كل ثانوي، ويُربط الدرس رئيسيًا بالهدف العام الذي يجمع أكبر وزن، وثانويًا بالأهداف الأخرى التي تنال شيئًا منه. وإذا تعادل هدفان، رجح هدف الوحدة، وإن لم يكن أيّ منهما كذلك، رجح الأصغر رقمًا؛ وهكذا فإن درس المتغيرات والذاكرة، الذي تتوزّع أهدافه بالتساوي بين الهدفين 1 و2، يُربط بالهدف 2، وهو هدف وحدته. وتتبع المقدمات القاعدة نفسها. أما الخلاصات فتتبع معيارًا خاصًا: هدفها الرئيسي هو هدف وحدتها، لأن سلسلة المفاهيم فيها وتقييم الخروج وأغلب تحدياتها تجمع ما علّمته الوحدة؛ أما وحدة النص والملفات، التي ليس لها هدف خاص بها، فتُحتسب مع الهدف 6، الذي تنتمي إليه ثلاثة من دروسها الأربعة. وإذا كان الأمر كذلك، فإن الدورة كلها تتّخذ هيئة عمود فقري: الرأس هو الغاية العامة؛ والعمود هو ترتيب الوحدات، لكل منها مقطعها؛ وكل درس عقدة في ذلك المقطع، موصولة بهدفها الرئيسي، والأهداف السبعة تطفو حول العمود، تسندها الدروس التي تغذّيها.
جارٍ تحميل المحتوى…