من ما لا جدال فيه أن الرياضيات هي وقود أغلب العلوم التي عرفتها البشرية،ربما تكون هذه الحقيقة غير واضحة من النظرة الأولى لكن مع بعض التدقيق ستتضح كالشمس رابعة النهار. تختفي الرياضيات وعلاقتها بالبرمجة عمدا تحت طبقات من التجريد المطلق بغية الحد من التعقيدات.

دعونا نكون صريحين إن طفو الرياضيات على السطح من شأنه ان يعقد الأمور، التجريد هو مبدئ من مبادئ علوم الحاسوب وله الفضل الكبير في طفرة هذا العلم ومشتقاته من حيث الكم والكيف فلولا التجريد لكان عدد المبرمجين يعد على رؤوس الأصابع ولكان وجودهم مقصورا على أماكن محددة ولكانت تكلفت إنتاج البرمجيات هائلة ناهيك عن المدة الزمنية التي ستستغرقها عملية الإنتاج أما الصيانة فربما تكون مستحيلة.

اين تضح نظرية الرياضيات وعلاقتها بالبرمجة

التفكير الرياضي وحل المشكلات

التفكير الرياضيرغم قتامة عالم الرياضيات التي دعت الى تجريده بعنف الا إنها ينبغي أن لا تحملنا عن إهمال جوانب مهمة ولها عظيم النفع. الرياضيات هي نظام مبني على أسس وقواعد محكمة لا مكان فيها للعشوائية واللامنطقية , إن حل الاشكالات في هذا الفضاء يتم وفق خطوات واضحات المعالم والحلول يبحث عنها في نطاقات محددة.ربما يمكننا القول أن الرياضيات كالبيت المرتب كل شيء في مكانه إذا كنت تبحث عن شيء فلن تهدر وقتك في البحث في كل ارجاء المنزل.

كيف يساهم التفكير الرياضيفي تحسين أداء المبرمج

لكن مهلا نحن هنا تحدث عن عالم خيالي لا وجود مادي له رغم أننا نلمس مخرجاته المتقنة بشكل يومي إن هذا النظام المحكم هو نظام فكري مطلق إننا تحدث عن “” التفكير الرياضي””.

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

الرياضيات المتقطعة وعلاقتها بالبرمجة

الرياضيات المتقطعة وعلاقتها بالبرمجةعند الحديث عن التفكير الرياضي فإننا نتحدث بشكل رئيسي عن صنف من الرياضيات يدعى الرياضيات المتقطعة او discrete mathematics  وهي فرع من الرياضيات يهتم بدراسة العناصر المنفصلة او الغير متصلة أصلا أي أن الاتصال ليس صفة لها وليس أيضا شرطا في وجودها مثل: الاعداد الصحيحة.

وإذا اردنا التعبير عن هذه العناصر برمجيا فيمكن ان نذكر على سبيل المثال: الرموز Symbols , السلاسل النصية Character Strings  و الكائنات Objects تهتم الرياضيات المتقطعة بدراسة هذه العناصر بشكل تجمعي مثل المجموعات والسلاسل وغيرها ,و تدرس الروابط والعلاقات بينها من حيث الهيكلية (التركيب).

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

من أجل التوضيح سنأخذ هذا المثال البسيط المتمثل في المشكلة البرمجية التالية:

المشكلة البرمجية

تريد شركة إنشاء برنامج يقوم بتحليل صفحات الويب , وفي مرحلة معينة طلب كود برمجي يقوم بقراءة صفحتي ويب ثم يعرض الروابط التي تظهر في كلتا الصفحتين.

يعرض أحد المبرمجين الحل التالي:

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

مبرمج آخر له خلفية في الرياضيات المتقطعة يعرض الحال التالي:

إن الروابط في كلتا الصفحتين هي عبارة عن مجموعة، سنقوم بقراءة كل صفحة ونحفظ الروابط الموجودة داخلها في مجموعة ثم نقوم بحساب التقاطع بين المجموعتين لنحصل على الروابط المشتركة.

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

كخلاصة يمكن القول أن المبرمج ليس مضطرا لئن يكون صاحب تفكير رياضي لكي ينجز عمله، لكن اكتساب المبرمج لمهارة التفكير الرياضي يعطي طابعا احترافيا لعمله وبعدا رياضيا يمكن أن يكون حاسما عند العمل في البيئات البرمجية الكبيرة , إن الاشكال الحقيقي ليس في كاتبة الاسطر البرمجية بل هو في مدى دقة هذه الاسطر واختصارها للجهد والوقت.

أظهر المزيد حسب عبدالرزاق بنسلام
المزيد في البرمجة
التعليقات مغلقة

يمكنك الإطلاع على هذا

مجالات الذكاء الاصطناعي وعلاقتها بحوسبة مشاعر الانسان

هل مجالات الذكاء الاصطناعي يمكنها ان تطور لنا الحاسوب يكتب شعرا؟ شهدت مجالات الذكاء الاصطن…