| يجب أن يكون المرشحون قادرين على: | ملاحظات وإرشادات |
|---|---|
| 1 افهم دورة حياة تطوير البرنامج، مقيدة بـ: التحليل، التصميم، البرمجة والاختبار | • يشمل تحديد كل مرحلة وإنجاز المهام التالية لكل مرحلة: – التحليل: التجريد، تفكيك المشكلة، تحديد المشكلة والمتطلبات – التصميم: التفكيك، المخططات الهيكلية، المخططات الانسيابية، الكود الوهمي – البرمجة: كتابة كود البرنامج واختباره بشكل تكراري – الاختبار: اختبار كود البرنامج باستخدام بيانات الاختبار |
| 2 (أ) افهم أن كل نظام حاسوبي يتكون من نظم فرعية تتكون بدورها من نظم فرعية أخرى (ب) افهم كيفية تفكيك المشكلة إلى أجزائها المكوِّنة | • يشمل: – المدخلات – العمليات – المخرجات – التخزين |
| (ج) استخدم طرقاً مختلفة لتصميم وبناء حل للمشكلة | • يشمل: – المخططات الهيكلية – المخططات الانسيابية – الكود الوهمي |
| 3 اشرح الغرض من خوارزمية معينة | • يشمل: – صياغة غرض الخوارزمية – وصف العمليات المصاحبة للخوارزمية |
| 4 افهم الطرق القياسية للحلول | • مقيدة بـ: – البحث الخطي – الفرز الفقاعي – المجموع – العد – إيجاد القيم العظمى والصغرى والمتوسطة |
| 5 (أ) افهم الحاجة لإجراء فحوصات التحقق على بيانات الإدخال وأنواعها المختلفة | • يشمل: – فحص النطاق – فحص الطول – فحص النوع – فحص الوجود – فحص التنسيق – رقم التحقق |
| (ب) افهم الحاجة لإجراء فحوصات التأكد على بيانات الإدخال وأنواعها المختلفة | • يشمل: – الفحص البصري – إدخال مزدوج |
| 6 اقترح وطبّق بيانات اختبار مناسبة | • مقيدة بـ: – عادية – غير عادية – متطرفة – حدودية • البيانات المتطرفة هي أكبر/أصغر قيمة مقبولة • البيانات الحدودية هي أكبر/أصغر قيمة مقبولة والقيمة المقابلة الأصغر/الأكبر المرفوضة |
| 7 أكمل جدول التتبع لتوثيق تشغيل جاف لخوارزمية | • يشمل، في كل خطوة من خطوات الخوارزمية: – المتغيرات – المخرجات – رسائل المستخدم |
| 8 حدد الأخطاء في الخوارزميات المعطاة واقترح طرقاً لتحيحها | |
| 9 اكتب وعدّل الخوارزميات لمشاكل أو سيناريوهات معينة، مستخدماً: الكود الوهمي، وكود البرنامج، والمخططات الانسيابية | • مطلوب الدقة عند كتابة الخوارزميات، مثلاً: x > y مقبول لكن x is greater than y غير مقبول • انظر القسم 4 لرموز المخططات الانسيابية • انظر القسم 4 للكود الوهمي |
تصميم الخوارزميات وحل المشكلات
IGCSE علوم الحاسوب · الموضوع 7
9:17
دورة حياة تطوير البرامج
كل تطبيق على هاتفك كُتب بواسطة شخص مثلك. لكنهم لم يبدأوا بكتابة الكود. قبل السطر الأول، تم دراسة المشكلة، والحل…
سرد باللغة الإنجليزية · ترجمة مدمجة بالإنجليزية + الصينية
المنهج
المصدر: منهج كامبريدج الدولي
7.1
دورة حياة تطوير البرنامج
دورة حياة تطوير البرنامج هي مجموعة المراحل المستخدمة لإنشاء برنامج. توجد أربع مراحل.

| المرحلة | ما تفعله |
|---|---|
| التحليل | دراسة المشكلة وتحديد ما هو مطلوب |
| التصميم | التخطيط لكيفية عمل البرنامج |
| الكتابة البرمجية | كتابة كود البرنامج واختباره أثناء البناء |
| الاختبار | تشغيل البرنامج النهائي ببيانات اختبار لاكتشاف الأخطاء |


التحليل
في التحليل تفهم المشكلة. مهارتان رئيسيتان تساعدان:
- التجريد — الاحتفاظ فقط بالتفاصيل المهمة وتجاهل الباقي؛
- التفكيك — تقسيم مشكلة كبيرة إلى أجزاء أصغر وأسهل.
التصميم
في التصميم تخطط للحل، غالباً باستخدام التفكيك. يمكنك عرض الأجزاء كـ أنظمة فرعية في مخطط هيكلي (رسم بياني يقسم نظاماً إلى صناديق أصغر).
الكتابة البرمجية والاختبار
في الكتابة البرمجية تكتب كود البرنامج. تستخدم الاختبار التكراري — تختبر أجزاء صغيرة مراراً وتكراراً أثناء بنائها. في الاختبار تشغيل البرنامج الكامل بـ بيانات اختبار للتحقق من عمله.
| English | العربية |
|---|---|
| program development life cycle/ˈprəʊɡræm dɪˈveləpmənt laɪf ˈsaɪkl/ | دورة حياة تطوير البرنامج |
| analysis/əˈnæləsɪs/ | التحليل |
| design/dɪˈzaɪn/ | التصميم |
| coding/ˈkəʊdɪŋ/ | البرمجة |
| testing/ˈtestɪŋ/ | الاختبار |
| abstraction/əbˈstrækʃn/ | التجريد |
| decomposition/ˌdiːkɒmpəˈzɪʃn/ | تحلل |
| sub-systems/sʌb ˈsɪstəmz/ | الأنظمة الفرعية |
| structure diagram/ˈstrʌktʃə ˈdaɪəɡræm/ | مخطط الهيكل |
| iterative testing/ˈɪtərətɪv ˈtestɪŋ/ | الاختبار التكراري |
| test data/test ˈdeɪtə/ | بيانات الاختبار |
| flowchart/ˈfləʊtʃɑːt/ | مخطط انسيابي |
7.2
أدوات التصميم
يمكنك التخطيط للحل بثلاث طرق رئيسية.
- مخطط هيكلي — يظهر أجزاء النظام وكيف ترتبط ببعضها؛
- مخطط انسيابي — رسم بياني يستخدم صناديق وأسهم لإظهار الخطوات بالترتيب؛
- الكود الوهمي — خطوات مكتوبة بلغة إنجليزية بسيطة شبيهة بالكود (وليس لغة حقيقية).

7.3
الخوارزميات
الخوارزمية هي مجموعة من الخطوات، بالترتيب الصحيح، تحل مشكلة. يمكن تقسيم كل خوارزمية إلى ثلاثة أجزاء:
- المدخلات — البيانات التي تدخل؛
- المعالجة — العمل المنجز على البيانات؛
- المخرجات — النتيجة التي تظهر.
يُسمى هذا تفكيك المدخلات والمعالجات والمخرجات. على سبيل المثال، لـ "إيجاد متوسط ثلاث علامات": المدخلات هي الثلاث علامات؛ المعالجة هي جمعهن وقسمتهن على 3؛ المخرجات هي المتوسط.

| English | العربية |
|---|---|
| input/ˈɪnpʊt/ | مدخلات |
| processing/ˈprəʊsesɪŋ/ | معالجة |
| output/ˈaʊtpʊt/ | نقرة فأرة تُبدأ عملاً هي مثال على |
| validation/ˌvælɪˈdeɪʃn/ | التحقق من صحة |
| range check/reɪndʒ tʃek/ | فحص النطاق |
| length check/leŋθ tʃek/ | فحص الطول |
| type check/taɪp tʃek/ | فحص النوع |
| presence check/ˈprezəns tʃek/ | فحص الحضور |
| format check/ˈfɔːmæt tʃek/ | فحص التنسيق |
| check digit/tʃek ˈdɪdʒɪt/ | رقم التحقق |
| verification/ˌverɪfɪˈkeɪʃn/ | التحقق |
| visual check/ˈvɪʒuːəl tʃek/ | الفحص البصري |
| double entry/ˈdʌbl ˈentri/ | التدقيق المزدوج |
| bubble sort/ˈbʌbl sɔːt/ | فرز الفقاعات |
| totalling/ˈtəʊtəlɪŋ/ | جمع المجموع الكلي |
| counting/ˈkaʊntɪŋ/ | عدّ |
| maximum/ˈmæksɪməm/ | الأقصى |
| minimum/ˈmɪnɪməm/ | الحد الأدنى |
7.4
التحقق والتحقق من الصحة
عند إدخال البيانات، تقوم بفحصها لتقليل الأخطاء.
التحقق من صحة يتأكد من أن البيانات منطقية وتتبع القواعد. لا يمكنه التحقق من صحة البيانات، بل فقط من سماحتها.
| فحص التحقق من الصحة | ما يفحصه |
|---|---|
| فحص النطاق | القيمة تقع بين أدنى وأعلى قيمة مسموح بها |
| فحص الطول | عدد الأحرف مسموح به (مثلاً كلمة مرور ≥ 8) |
| فحص النوع | البيانات من النوع الصحيح (مثلاً رقم وليس أحرفاً) |
| فحص الوجود | تم إدخال شيء فعلياً (لم يُترك فارغاً) |
| فحص التنسيق | البيانات في النمط الصحيح (مثلاً تاريخ بصيغة dd/mm/yyyy) |
| الرقم التحققي | رقم إضافي يؤكد إدخال الرقم بشكل صحيح |
التحقق من الدقة يتأكد من أن البيانات تم نسخها أو إدخالها بشكل صحيح (بدون أخطاء أثناء الكتابة). طريقتان:
- الفحص البصري — يقارن شخص ما البيانات المكتوبة مع الأصلية؛
- الإدخال المزدوج — يتم إدخال البيانات مرتين ومقارنة النسختين مع بعضهما.
7.5
جداول التتبع
يسجل جدول التتبع قيمة كل متغير أثناء تشغيل الخوارزمية خطوة بخطوة. يساعدك على:

- التحقق من صحة عمل الخوارزمية؛
- تحديد ماذا تفعل الخوارزمية عن طريق تتبعها ببيانات معطاة.
مثال: تابع هذه الخوارزمية بإدخال 5.
INPUT N
Total ← 0
FOR I ← 1 TO N
Total ← Total + I
NEXT I
OUTPUT Total
| i | total | OUTPUT |
|---|---|---|
| 1 | 1 | |
| 2 | 3 | |
| 3 | 6 | |
| 4 | 10 | |
| 5 | 15 | 15 |
يُظهر جدول التتبع أن الخوارزمية تجمع 1 إلى n. مع الإدخال 5، يكون الإخراج 15.
مثال محلل. تابع هذه الخوارزمية وأعطِ الإخراج.
X ← 20
Count ← 0
WHILE X > 1
X ← DIV(X, 2)
Count ← Count + 1
ENDWHILE
OUTPUT Count
DIV يعطي فقط الجزء الصحيح من القسمة. خذ سطراً واحداً لكل دورة: تصبح x = 10 (count = 1)، ثم 5 (count = 2)، ثم 2 (count = 3)، ثم 1 (count = 4). الآن x > 1 غير صحيح، لذا تتوقف الحلقة ويكون الإخراج 4. عادةً ما تحمي هاتان العادلتان الدرجات: اختبر الشرط قبل كل دورة بدلاً من بعدها، واكتب سراً جديداً لـكل دورة - فإن محاولة الاحتفاظ بالقيم في ذهنك هي ما يسبب الأخطاء في الجداول.
جدول التتبع
مرر عبر الحلقة واملأ جدول التتبع، صف واحد لكل دورة.
| English | العربية |
|---|---|
| pseudocode/ˈsuːdəʊkəʊd/ | الكود الوهمي |
| algorithm/ˈælɡərɪθəm/ | خوارزمية |
| trace table/treɪs ˈteɪbl/ | جدول التتبع |
| normal/ˈnɔːml/ | العادي |
| abnormal/əbˈnɔːml/ | غير طبيعي / شاذ |
| extreme/ekˈstriːm/ | متطرف / شديد |
| boundary/ˈbaʊndəri/ | حدود |
7.6
بيانات الاختبار
بيانات الاختبار هي البيانات التي تستخدمها لاختبار برنامج. هناك أربعة أنواع يجب أن تعرفها.
| النوع | المعنى | مثال (العمر 0–120 مسموح) |
|---|---|---|
| عادي | بيانات منطقية يجب قبولها | 25 |
| غير عادي | بيانات خاطئة يجب رفضها | -4 أو "cat" |
| متطرفة | القيم الأكبر والأصغر المسموحة حالياً | 0 و 120 |
| حدية | القيم على جانبي حد معين (واحدة مسموحة وأخرى غير مسموحة) | 120 و 121 |
7.7
طرق الحل القياسية
يجب أن تعرف هذه الخوارزميات الشائعة.
البحث الخطي
يعمل البحث الخطي على فحص كل عنصر في قائمة ما، واحداً تلو الآخر، حتى يجد القيمة المطلوبة أو يصل إلى النهاية.
Found ← FALSE
FOR I ← 0 TO 9
IF List[I] = SearchValue
THEN
Found ← TRUE
ENDIF
NEXT I
OUTPUT Found

ترتيب الفقاعات
يقوم فرز الفقاعات بترتيب قائمة ما. يقارن كل زوج من العناصر المتجاورة ويبدلهما إذا كانا في ترتيب خاطئ. يكرر هذا حتى لا تكون هناك حاجة لمزيد من التبديل.
FOR I ← 0 TO 8
IF List[I] > List[I + 1]
THEN
Temp ← List[I]
List[I] ← List[I + 1]
List[I + 1] ← Temp
ENDIF
NEXT I

الجمع والإعداد
- الجمع — استمر في إضافة القيم إلى المجموع الكلي المتزايد (
Total ← Total + Value). - الإعداد — أضف 1 إلى العداد كل مرة يحدث فيها شيء ما (
Count ← Count + 1).
القصوى والقصوى والمتوسط
- لإيجاد القيمة العظمى: احتفظ بالأكبر قيمة رأيتها حتى الآن.
- لإيجاد القيمة الصغرى: احتفظ بالأصغر قيمة رأيتها حتى الآن.
- لإيجاد المتوسط: قسّم المجموع الكلي على عدد القيم.
Total ← 0
FOR I ← 0 TO 9
Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
| English | العربية |
|---|---|
| linear search/ˈlɪnɪə sɜːtʃ/ | البحث الخطي |
| average/ˈævrɪdʒ/ | متوسط |
7.8
نصائح للامتحان
- احفظ مراحل دورة الحياة الأربع: التحليل → التصميم → البرمجة → الاختبار. التجريد يحافظ فقط على التفاصيل المهمة؛ التفكيك يكسر المشكلة إلى أجزاء أصغر.
- التحقق من الصحة يتحقق من أن البيانات منطقية (فحوصات النطاق والطول والنوع والوجود والتنسيق)؛ التحقق من الدقة يتحقق من أنها نُسخت بشكل صحيح (فحص بصري أو إدخال مزدوج).
- احفظ الأنواع الأربعة لبيانات الاختبار: عادي (مقبول)، غير عادي (مرفوض)، متطرف (الأكبر/الأصغر المسموح به)، حدي (القيم على جانبي الحد).
- لمعرفة ما تفعله الخوارزمية، املأ جدول التتبع — اكتب قيمة كل متغير في كل خطوة.
- اعرف الخوارزميات القياسية: البحث الخطي (فحص كل عنصر بالتتابع) وفرز الفقاعات (تبديل الأزواج المتجاورة حتى لا تكون هناك حاجة للتبديل).
دروس تفاعلية حول هذا الموضوع
ا-working عليه خطوة بخطوة، مع تمارين تحقق فوري.