تحديات برمجيةحول التحديات الموضوعة في قسم تحديات تراكيب البيانات
- هل التحديات الموضوعة سهلة؟
- عدد التمارين في كل تحدي
- اللغات التي سيتم وضع الحل بها
هل التحديات الموضوعة سهلة؟
إطلاقاً, التحديات التي سنضعها في هذا القسم, تعتبر من أهم و أصعب التحديات الموضوعة في الدورة بأكملها لأن الهدف منها جعلك تفكر بنفس الطرق التي نعتمدها عندما نعمل في مشاريع حقيقية حيث نطبق أغلب ما تعلمناه من مبادئ في البرمجة بها.
بكل صراحة إبتكار كل تمرين في هذا القسم مع وضع الحل و التفسير له استغرق منا أيام من العمل محاولةً منا أن نتعمد جعلها معقدة و بنفس الوقت يمكن فهمها من خلال قراءة الشروحات الموضوعة كتعليقات ضمن الكود و الإرشادات المذكورة قبل الكود.
قد تحتاج بضع ساعات لتتمكن من حل كل تمرين سيمر معك. و قد تقرأ الكود و الشرح و تجد بعض الصعوبة في فهمه.
لا تظن أبداً أنك غبي أو لا تملك الذكاء المطلوب بسبب هذا النوع من التمارين.
عدم قدرتك على حل التمارين الموضوعة يعتبر أمر طبيعي جداً لأنك للمرة الأولى منذ بداية تعلمك إلى الآن تواجه فيها هذا النوع من التحديات و الذي ستقوم فيه بتطبيق كل ما تعلمته سابقاً بالإضافة إلى إجبارك على ابتكار أساليب جديدة في التفكير حتى تتمكن من إيجاد حلول مناسبة.
إذا تمكنت من حل التمارين الموضوعة في هذا القسم, فكن على يقين أن خبرتك في البرمجة و التحليل وصلت لمرحلة متقدمة جداً لا يستهان بها أبداً.
هذا النوع من التمارين في العادة يتم إعطاؤه لطلاب الحاسب في السنة الأخيرة و شخصياً مر معي في مادة إسمها Advanced Programming.
عدد التمارين في كل تحدي
في هذا القسم, سيكون كل تحدي عبارة عن مشروع كامل يتضمن التعامل مع عدة كلاسات و دوال.
و بالتالي قد يصل عدد أسطر الكود التي عليك كتابتها لحل تحدي واحد لألف سطر.
أي يوجد تمرين واحد ضخم و ليس 5 تمارين صغيرة كما في الأقسام السابقة.
اللغات التي سيتم وضع الحل بها
إجمالاً كل التحديات الموضوعة ستضمن استخدام مفاهيم متقدمة في البرمجة مثل الكائنات, الوراثة, تعدد الأشكال إلخ..
لهذا السبب سيتم التركيز فقط على وضع حلول باللغات التي يمكن فيها تطبيق هذه المبادئ.
و بالتالي سيتم وضع حل بكل اللغات التي كنا نعتمدمها سابقاً في الحل باستثناء لغة C لأنه بكل صراحة لا تستخدمها إطلاقاً في هذا النوع من المشاريع لأنها لا تحتوي على هذا المنطق في البرمجة. و للعلم, تم ابتكار لغة C++ بالأساس كتطوير للغة C لأنها لا تملك هذه المبادئ.