تبدو الخوارزمية كمصطلح رنّان في علوم الحاسوب، لكنها في الواقع مجرد وصفة — مجموعة دقيقة ومرتبة من الخطوات لحل مشكلة. الكلمة تبدو مُخيفة؛ الفكرة ليست كذلك. أي شخص اتبع وصفة لخبز كعكة، أو أعطى شخصاً اتجاهات خطوة بخطوة لمنزل، كتب بالفعل خوارزمية. الجزء الصعب من علوم الحاسوب ليس عادةً الكود نفسه — إنه تعلّم التفكير بخطوات دقيقة كفاية بحيث يمكن لشيء بلا حس مشترك إطلاقاً اتباعها بالضبط.
لماذا "الدقة" هي اللعبة بأكملها
قل لصديق بشري "تحقق مما إذا كان الرقم زوجياً"، وسيعرف فوراً ماذا تعني. قل الشيء نفسه لحاسوب، ويحتاج اختباراً دقيقاً لا لبس فيه — نمطياً، هل تقسيم الرقم على 2 يترك باقياً يساوي 0؟ يمكن لوصفة لإنسان أن تقول "اطبخ حتى يصبح ذهبياً" وتعتمد على الحكم؛ يجب على خوارزمية توضيح ما يعنيه "ذهبي" بالضبط بطريقة يمكن التحقق منها آلياً، في كل مرة، دون مجال للتفسير.
الخوارزمية مجموعة دقيقة من الخطوات — احصل على رقم، اختبر شرطاً، ثم اتبع بالضبط أحد مسارين اعتماداً على الإجابة. لا تخمين، لا أحكام.
المخططات الانسيابية والكود الزائف: التخطيط قبل الكود
قبل كتابة كود حقيقي، غالباً ما يرسم المبرمجون الخوارزمية أولاً — إما كمخطط انسيابي (مربعات وأسهم تُظهِر المنطق بصرياً) أو كود زائف (خطوات إنجليزية عادية مكتوبة بهيكل شبيه بالكود). كلاهما موجود للسبب نفسه: من الأسهل بكثير اكتشاف خطأ منطقي — حالة مفقودة، خطوة بترتيب خاطئ — في مخطط بسيط أو بضعة أسطر من الكود الزائف مما هو مدفون داخل صياغة فعلية. تخطيط الخوارزمية وكتابة الكود مهارتان منفصلتان حقاً، والخلط بينهما سبب شائع لوجدان الطلاب البرمجة المبكرة مُربِكة.
لماذا تهم الحالات الحدية أكثر من الحالة النمطية
خوارزمية عاملة للحالة النمطية عادةً هي الجزء السهل. المهارة التي تفصل خوارزمية موثوقة عن هشة هي التفكير فيما يحدث عند الحواف: قائمة فارغة، رقم سالب حيث كان مُتوقَّعاً فقط موجب، بحث عن شيء غير موجود إطلاقاً. سيتبع الحاسوب تعليمات معطوبة بأمانة تماماً كما يتبع الصحيحة — ليس لديه طريقة لملاحظة خطأ ما ما لم تُكتَب الخوارزمية للتحقق منه. إذا كانت الخوارزميات أو المخططات الانسيابية أو منطق البرمجة تحتاج شرحاً كطريقة تفكير بدلاً من صياغة للحفظ، فهذا بالضبط ما بُني حوله تدريسنا لعلوم حاسوب GCSE — انظر مسار التعلم الكامل هنا.
أسئلة شائعة
هل الخوارزمية هي نفسها الكود؟
لا — الخوارزمية هي الخطة؛ الكود طريقة محددة واحدة لكتابة تلك الخطة بلغة يمكن للحاسوب تشغيلها. يمكن كتابة الخوارزمية نفسها (لنقل، ترتيب قائمة من الأصغر إلى الأكبر) بلغة بايثون أو جافا أو كود زائف بالإنجليزية العادية، وهي لا تزال الخوارزمية نفسها تحتها.
لماذا تحتاج الخوارزميات لمعالجة حالات حدية مثل قائمة فارغة؟
لأن الحاسوب سيتبع التعليمات تماماً كما كُتِبت، بلا حس مشترك على الإطلاق يعتمد عليه — إذا افترضت خوارزمية وجود عنصر واحد على الأقل دائماً وحصلت على قائمة فارغة بدلاً من ذلك، ستتعطل عادةً أو تُسيء التصرف بدلاً من "إدراك" أن شيئاً غير عادي، ما لم تُكتَب الخوارزمية صراحةً للتحقق من تلك الحالة.
ما الفرق بين مخطط انسيابي والكود الزائف؟
إنهما طريقتان مختلفتان لوصف الخوارزمية نفسها قبل كتابة كود حقيقي — يُظهِر المخطط الانسيابي المنطق بصرياً بمربعات وأسهم، وهو أسهل للمتابعة بلمحة، بينما يكتبه الكود الزائف بخطوات عادية ومنظمة وشبيهة بالكود، وهو أقرب لما سيبدو عليه البرنامج النهائي فعلياً.
هل كان هذا المقال مفيداً؟
أخبرنا برأيك — تصحيح، سؤال لم تتم الإجابة عنه، أو موضوع تودّ أن نغطيه لاحقاً.

عن الكاتب
Sudershan Soni
المؤسس والمدرّس الرئيسي في موستاك — مدرّس رياضيات وعلوم وعلوم حاسوب و STEM حاصل على الماجستير بخبرة تتجاوز 20 عاماً، يدرّس الطلاب من اختبار +11 و GCSE حتى A-Level وما بعده، عبر الإنترنت حول العالم.
اقرأ الملف الكامل