دليل المراجعة · GKU 9

دليل مراجعة البرمجة والخوارزميات (هندسة الحاسب)

تتناول هذه الوحدة البرمجة كما يحتاجها مهندس الحاسب: قريبة من الآلة بما يكفي لمعرفة مكان كل متغير، ومجردة بما يكفي لتصميم الأصناف واختيار الخوارزميات. يغطي الجزء الأول كيف يُبنى البرنامج ويُشغَّل، والدوال وتمرير المعاملات في لغة C، والحلقات والشروط ومعالجة البتات، ثم التصميم كائني التوجه ومبادئ إخفاء المعلومات والاقتران والتماسك. ويغطي الجزء الثاني بنى البيانات والخوارزميات التي يعود إليها الاختبار مراراً — المصفوفات والقوائم والمكدسات والطوابير والأشجار وجداول التجزئة والفرز والبحث — وكيف تُقاس بترميز O الكبرى، وينتهي بالمسائل التي لا يعرف أحد كيف يحلها بسرعة. ومعظم الأسئلة تتبع وعدّ، ولذلك في كل قسم أمثلة محلولة منها.

مبني على المعيار التخصصي الرسمي لهيئة تقويم التعليم والتدريب لهذا الموضوع: كل موضوع مُدرج وكل مخرج تعلّم، مع المعادلات والأشكال والأمثلة المحلولة. الأقسام الكاملة متاحة للأعضاء في التطبيق.

SKU 9.1 · أساسيات البرمجة وأنماطها

  1. من الشيفرة المصدرية إلى برنامج يعمل

    سلسلة البناء (المعالجة المسبقة والترجمة والتجميع والربط)، وكيف يبدأ المحمِّل العملية، ومناطق الذاكرة التي يشغلها برنامج C، وأي مرحلة تُبلغ عن أي نوع من الأخطاء.

  2. الدوال والمعاملات والوسائط

    المعاملات مقابل الوسائط، والتمرير بالقيمة وبالمؤشر في C (وبالمرجع في C++)، ولماذا تصل المصفوفات مؤشرات، والكلمة const، ومعاملات الإخراج، وما يكلّفه الاستدعاء على المكدس.

  3. التكرار والشروط ومعالجة البتات وحل المسائل

    الحلقات والشروط بوصفها أدوات كل خوارزمية، وكيف يُعدّ تكرار الحلقة عدّاً دقيقاً، وتعابير البتات التي تعيش عليها البرمجيات المدمجة، وطريقة لتصميم البرامج الصغيرة واختبارها وتنقيحها، والمهمة نفسها مكتوبة بأسلوب أمري ووظيفي وكائني.

  4. التصميم كائني التوجه: الأصناف والتحميل الزائد وإعادة التعريف

    تحويل مجال المسألة إلى أصناف لها حالة وسلوك، والوراثة وتعدد الأشكال في C++، والفرق بين التحميل الزائد (يُختار وقت الترجمة) وإعادة التعريف (تُختار وقت التشغيل عبر الدوال الافتراضية).

  5. إخفاء المعلومات والاقتران والتماسك وتجريد البيانات

    لماذا يجب أن تخفي الوحدات قرارات تصميمها، وكيف نحكم على الوحدة بتماسكها (ما يجمعها) واقترانها (ما يربطها بغيرها)، وكيف يفصل نوع البيانات المجرد الواجهة عن التمثيل — في C كما في C++.

SKU 9.2 · بنى البيانات والخوارزميات

  1. بنى البيانات الأساسية وصيغها في المكتبات

    المصفوفات والمصفوفات الديناميكية والقوائم المترابطة والمكدسات والطوابير والمخازن الدائرية والأكوام والأشجار والرسوم البيانية: كلفة كل منها لكل عملية، وفيمَ تُستخدم في برنامج مدمج أو برنامج نظم، وأي حاوية في مكتبة C++ القياسية توفرها.

  2. البناء والبحث: البحث الثنائي وأشجار البحث

    البحث الثنائي في مصفوفة مرتبة، وشجرة البحث الثنائية وعملياتها، ولماذا تساوي كلفتها ارتفاع الشجرة، وكيف يفسد ترتيبُ الإدراج ذلك الارتفاع، وكيف تبقي الأشجار المتوازنة (AVL والحمراء-السوداء) البحث لوغاريتمياً.

  3. جداول التجزئة: التجزئة والتصادمات ومعامل التحميل

    كيف تحوّل دالة التجزئة المفتاح إلى دليل مكان، ولماذا لا مفر من التصادمات، وكيف يحلها التسلسل المنفصل والعنونة المفتوحة (الفحص الخطي والتجزئة المزدوجة)، وكيف يحدد معامل التحميل الكلفة المتوقعة، ومتى يُعاد تحجيم الجدول.

  4. تصميم الخوارزميات: القوة الغاشمة والجشع والتقسيم والغلبة والفرز

    استراتيجيات التصميم القياسية — القوة الغاشمة، والجشع، والعودية، والتقسيم والغلبة — مع خوارزميات الفرز والبحث التي توضحها، وكيف تُختار الخوارزمية من متطلبات التطبيق: الحجم والذاكرة والاستقرار وضمانات أسوأ حالة.

  5. تعقيد الخوارزميات: O الكبرى والتكرارات واكتمال NP

    الرموز التقاربية و و وكيف تُثبت، وتعقيد الزمن والذاكرة للحلقات والعودية، والمبرهنة الرئيسة، وما تعنيه فئات النمو بالثواني، وفئة المسائل المكتملة في NP مع أمثلتها القياسية.

أدلة أخرى في هندسة الحاسب

كل أدلة المراجعة

اقرأ الدليل كاملاً بجانب أسئلة تدريبك.

افتح التطبيق