هذه المرحلة أصعب من سابقتها وتم وضعها لتكون إحدى المراحل التي يتم فيها تمييز المتميزين في هذا المجال
وقد تم تقسيم درجات تلك المرحلة كالتالي:
الدرجة الأساسية:~ درجة أخرى تضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لشيفرة تحوي حروفا ناقصة او زائدة (عدد حروف الشيفرة يجب أن يكون رقما يقبل القسمة على طول المفتاح) - (طول المفتاح هنا يساوي 8 أرقام)
وهي 20 درجة وتم تقسيمها كالتالي:
- 7درجات كاملة تضاف في رصيد المتسابق في حالة قام بتسليم برنامج يعمل بغض النظر عما إذا كان يعمل بشكل صحيح أم لا
- 8 درجات أخرى تضاف في رصيد المتسابق في حالة كان البرنامج يحقق المطلوب الأساسي في المسألة بشكل صحيح (القيام بفك أي شيفرة توضع له بأي عدد من الحروف) ويأخذ المتسابق نصف هذه الدرجة (أي 4 درجات) في حال قام بتصميم برنامج يقوم بفك الشيفرة الأساسية فقط المطلوب فكها في المسابقة هي وأي شيفرة أخرى بنفس طول الشيفرة الأساسية
- 3 درجات على الإختبارات الخاصة للبرنامج وتفصيلها كالاتي:
~ درجةتضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لمسافة في الشيفرة وقام على القل بإظهار رسالة خطأ تفيد ذلك (او قام بمعالجة هذا الامر بطريقته الخاصة)
~ درجة أخرى تضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لقيمة كبيرة جدا تفوق الذاكرة المعتادة لحفظ الشيفرة
- درجتان على الألتزام بشروط المسابقة في كيفية التسليم
درجة الواجهة (درجة تحسين المجموع):
وهي عبارة عن درجتان ليستا من أصل المجموع، بل تضافان على المجموع النهائي لجبر الدرجة الناقصة فقط، وتم وضعهما على واجهة البرنامج لتحسينها بأي شكل كان
(هاتين الدرجتين تقوما بجبر المجموع حتى يصل الى عشرين درجة فقط لمن نقصت درجته، فإن زاد المجموع عن ذلك لا يتم احتساب تلك الزيادة)
وتفصيلها تماما كما كان في المرحلة الاولى
درجة المفاضلة:وهي عبارة عن درجتين إضافيتين ليستا من أصل المجموع وتم وضعهما للمفاضلة بين برامج المتسابقين هدفها التمييز بين البرامج في حال أخذ عدة متسابقون الدرجة الكاملة في مرحلة ما
وهذه الدرجة كان لها معاملة خاصة كما يلي:
- في البداية كنت أقوم بالتصحيح لكل المتسابقين تصحيحا عاديا لا أقوم فيه بوضع قيمة هذه الدرجة (إلا النصف الدرجة فقط الذي وعدت به لمن يقوم بفصل الكلمات عن بعضها)، ثم اقوم بتدويين اسماء كل المتسابقين الذين قاموا بعمل شيئ إضافي في برامجهم ويستحقون أخذ جزء من هذه الدرجة في ملف مفكرة
- بعد قيامي بالتصحيح لجميع المتسابقين كنت أقوم بمقارنة هذه الزيادات جميعها وذلك بالرجوع الى هذه البرامج مرة أخرى ومقارنتها مع بعضها
- بعد ذلك اقوم باختيار أفضل برنامج اراه مميزا في كل شيئ ويتفوق على بقية البرامج الأخرى وأقوم بمنحه درجة المفاضلة كاملة
- بعد أن يتم اضافة الدرجتين لهذا المبرمج اقومم بمقارنة الزيادات المتشابهة في برامج المتسابقين وتخصيص جزء من درجة المفاضلة لهذه الزيادة المتشابهة بحيث يتساوى جميع من أضافوها في درجتها (مثل إضافة خاصية التشفير في البرنامج والذي خصصت له نصف درجة لكل المتسابقين)
- بعدها اقوم بتقييم الزيادات الاخرى التي ليس لها شبيه ووضع جزء من الدرجة عليها يتناسب مع قيمة هذه الزيادة، لذا قد تجدون بعض الزيادات لها درجة بسيطة وبعضها لها درجة أكبر
- بعض الزيادات ربما تكون بسيطة لكنها مميزة وقيمتها كبيرة بالنسبة لي على الأقل أولم يسبق استخدامها من احد المبرمجين لذا احيانا اقوم بتخصيص درجة أكبر لها (مثل عمل زر reset او clean والذي كان يقوم بمسح جميع حقول البرنامج كان مفيدا جدا بالنسبة لي لأن الكثير من البرامج لم تكن تدعم اختصار ctrl + a لاختيار كامل النص ومن ثم حذفه لتجربة قيم أخرى لذا وضعت درجة ولو كانت بسيطة نسبيا على وجود مثل هذا الزر)
- بعض الزيادات ربما تكون كبيرة لكنها ليست ذو فائدة تذكر لذا يتم تخصيص جزء صغير من الدرجة لها
- ليست كل الزيادات يتم اضافة جزء من الدرجة عليها فأحيانا تلك الزيادة تكون عادية جدا ولم يكتب فيها كود يذكر او ان هذه الزيادة توضيح لخطوة تحدث فعليا في البرنامج ويجب ان يقوم كل المتسابقين بعملها في الكود إلا انهم لم يوضحوها في البرنامج أو انه لا فائدة تذكر أو ترجى من إضافة زيادة كهذه (أعني قد تكون زيادة بلا معنى وجودها كعدمها) لذا لا يتم احتساب هذه الزيادة
- قد يقوم أحد المتسابقين بعمل زيادة متشابهة مع البعض الاخر من المتسابقين، لكن هذه الزيادة تم معالجتها بطريقة جميلة وبطريقة أفضل من الآخرين وفي هذه الحالة يتم زيادة درجته عن الاخرين في هذه الجزئية
(المتسابق الذي استحق درجة المفاضلة كاملة سيكتب ذلك باللون الأحمر قبل اسمه)
(المتسابق صاحب درجة المفاضلة الكاملة)




رد مع اقتباس


المفضلات