اهمية الرياضيات و الخوارزميات في البرمجة

السلام عليكم 



الكثير يتساأل ما هو دور الرياضيات في البرمجة  لكن قبل ان نشرح اهميتها في البرمجة , نتكلم اولا اهمياتها في الحياة اليومية لكي تفهم دورها و اهميتها في البرمجة.



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

و الان ندخل في موضوعنا الاصلي بعد تكلم عن الرياضيات و اساسها في الحياة اليومية و في دراساتنا سنتكلم عن دورها و اهمياتها في البرمجة .
الكثير من المبرمجون يغفلون على الرياضيات او بشكل خاص الخوارزميات مثل انا XD 'لكن لان انا ادرسها بالجامعة '
الان كثير من المبرمجين او امطورين يقومون بكتابة برامجهم بدون خوارزميات او مبدا او يقومون بحل مشاكل برامج او تطويرها إخ .
اولا : اهمية البرمجة عند بيل غيتس و مارك مؤسس الفايسبوك :
فيديو مقدم من طرف Modawin-Blogger

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



الخوارزميات هي الأساس لمنطق البرمجة وهي موجودة في جميع مشاريع تطوير البرمجيات, اسم يعود إلى كلمة 'خوارزمية Algoritmi', ما هو الشكل اللاتيني لاسم الخوارزمي, عالم رياضيات الفارسي, عالم الفلك والجغرافي. الخوارزمية الأولى المكتوبة على وجه التحديد التي ينبغي أن تؤديها آلة – المعروفة باسم آلة تورنج – أنه كتب بواسطة عالم الرياضيات "أدا لوفليس", التي يتم اتخاذها كمبرمج أول.

لان عرفت ماهي الخوارزميات لكن لا تعلم مادخل لها في البرمجة سنقوم بتحليل الفكرة ترابط بين الخوارزميات و البرمجة .
البرمجة هي نمط تفكير مبني على تحليل المسألة باعتبارها مشكلة وأنك سنقوم بحل المشكلة بعمل برنامج يؤدي إلى حل هذه المشكلة
ولكتابة البرنامج يجب تجزئة المسألة الكلية إلى مسائل جزئية ومحاولة تحويلها إلى خطوات أمرية تخضع لمنطق البرمجة وقواعد اللغة التي ستبرمج بها ومن ثم محاولة ربطها مع بعض لتؤدي العمل المطلوب في النتيجة يعني يمكن تشبيه المسألة باستحداث وزارة أو مؤسسة أو مصلحة ليس من المعقول أن تستأجر مكان كبير وتضع فيه جميع الموظفين لا بد من تقسيم الوزارة إلى إدارات وأقسام و تحدد لكل واحد مسؤولياته وتخصص له هرم إداري وتحدد له صلاحيات وما هي المهام التي من اختصاص كل واحد منها ويكون هناك آلية للتواصل والترابط بين الأقسام المختلفة ثم هناك مكتب للتواصل مع الجمهور يأخذ منهم المعاملات كمداخيل ومثم يجري عليها العمليات المناسبة ثم يتم إرجاع نتائج معينة كمخاريج بنفس التفكير يتم بناء التطبيقات والبرمجة بشكل عام
الرياضيات لها أقسام مختلفة منها ما هو جبري أو منطقي ومنها ما هو هندسة تحليلية و منها ما هو عملياتي وكل نوع يكون الحاجة إليه حسب طبيعة المسألة المراد حلها برمجيا فبرنامج يعتمد على الرسوم سيحتاج هندسة تحليلية ومعادلات مجسمات ومسطحات برنامج ألعاب ربما يحتاج معادلات متعلقة بالحركة والطاقة والدوران والتصادم والارتداد والأمواج وغيرها برنامج يعتمد على حل مشاكل أو اصلاح أعطال ربما يقوم على الاحتمالات والمنطق والجبر والعمليات البوليانية بشكل عام يعني الخلاصة أنه لا يشترط كامل الرياضيات وإنما فرع منها بحسب المجال الذي ستبرمج به.  
امثلة ترابط الخوارزميات مع البرمجة : 
1- المحاكيات: بناء محاكيات فيزيائية أو فلكية أو محركات ألعاب أو غيرها يحتاج لفهم متعمق بالرياضيات لتكون واقعية وهو أمر مهم حيث أن كثيراً من هذه المحاكيات يستخدم في الأبحاث العلمية كما أنها تستخدم في المجال الطبي بكثرة.
2- الرسوميات ثنائية الأبعاد: تعتمد على رسم الأشكال على محورين أفقي وعمودي لتحديد مكان ظهورها على الشاشة التي تصبح بمثابة النظام الإحداثي.
3- الرسوميات ثلاثية الأبعاد: تعتمد على المصفوفات بشكل كبير ومع التعمق تحتاج لفهم معمق لعدة مجالات في الرياضيات حتى تستطيع معرفة كيف يتم عرض الرسوم الثلاثية الأبعاد لتظهر على شاشتك الثنائية الأبعاد.
4- تحسين حل المشاكل البرمجية: هناك عدة حلول وكلما كنت أفضل في الرياضيات كلما كانت حلولك أفضل. أذكر مرة أني كنت مسروراً لحلي مسألة لم يستطع أحد زملائي حلها من قبل لكن الكمبيوتر أخذ 20 دقيقة ليحلها وفي اليوم التالي أتى أحدهم وقدم حلاً لا يأخذ أكثر من ثانية.
5- فهم طريقة عمل الكمبيوتر: الكمبيوتر من الأساس لا يفهم إلا إشارتين: التيار موجود "1" و التيار منقطع "0" ولتسهيل عملية البرمجة تم تطوير لغات برمجة لتترجم للغة الآلة وفهم كيفية تخزن الأرقام والبيانات والقيم في الكمبيوتر يحتاج إلى أن يكون مستعداً للحساب كثيراً.
6- تعلم بعض لغات البرمجة: عندما تكتب كود بلغة ++С كي يعمل الكود يتم تحويله للغة Assembly والذي يتم بدوره تحويله إلى لغة الآلة 0 و 1. ولكل بنية معالجات لغتها الخاصة بها ولولا Assembly لكان من الصعب كتابة كود ليعمل على مختلف أنواع الأجهزة. هذه اللغة تحتاج استخداماً كثيراً للرياضيات نظراً لطبيعتها ومحدوديتها. فهم اللغة طبعاً سيجعلك مبرمجاً أفضل حيث ستعرف مالذي سيترجم إليه كل سطر تكتبه مايدفعك لتحسين طريقة برمجتك لتقليل استهلاك موارد الجهاز.
7- التشفير وحماية المعلومات: أحد أساسيات التشفير هو استخدام معادلات تقوم بتغيير المحتوى ولا يمكن استعادة المحتوى الأصلي إلا عبر استخدام معادلات معاكسة. ودوماً ماتستخدم أرقام أولية لانتاج هذه المعادلات
مثال 1: لو كتب مبرمج برنامجاً يأخذ لائحة مكونة من مليون رقم مرتبة من الأصغر للأكبر ويبحث فيها عن الرقم الذي يريده المستخدم. فلو كتب المبرمج البرنامج لتبدأ من الصفر وتبحث حتى تصل لآخر رقم واختار المستخدم رقماً كبيراً لنفترض أنه في الخانة 898500 فإن البرنامج سيستغرق 898500 خطوة حتى يصل للرقم الذي يريده المستخدم وهو ماسيستغرق عدة ثواني. لكن لو أتى مبرمج آخر وكتب البرنامج ليبدأ من الخانة 500000 فإن كان الرقم في تلك الخانة أكبر بحث في الخانات التالية وترك الخانات التي تسبق تلك الخانة وإن كان أصغر يبحث في الخانات السابقة ويترك الخانات التي تلي تلك الخانة وبهذا قد لا يأخذ البرنامج أكثر من ثانية لحل المشكلة.
مثال 2: الرقم 0.1 كقيمة لا يستطيع الكمبيوتر استيعابها بشكل دقيق ولكن يقوم بتخزينها بشكل تقريبي وهي مشكلة قد تواجهها في عدد من لغات البرمجة المهمة والمشهورة مثل ++С ولمعرفة السبب عليك أن تفهم كيف يحسب الكمبيوتر الفواصل.
مثال 3: في عام 1999 قام مطور بإصدار لعبة مدينة ملاهي بالكامل تقريباً بلغة Assembly ماجعلها أحد أفضل الألعاب على الأطلاق من ناحية استغلال الموارد حيث تستطيع رسم أكثر من ألف زائر وعدد القطارات التي تدور حول المدينة دون أي مشاكل على جهاز متهالك دون أن يتأثر أداء الجهاز ونتيجة ذلك قامت شركة ألعاب أمريكية بشراء سلسلة ألعابه بمبلغ 180 مليون دولار. تحسين أداء الكود يؤثر على جودة البرنامج.
مثال 4: مؤسسا جوجل توصلا إلى خوارزمية واحدة مكنتهما من بناء أحد أضخم شركات العالم ولازالت إلى يومك هذا تولد أغلب دخلها من تلك الخوارزمية التي تتم مرجعتها وإجراء التغييرات للمساهمة في تحسين أدائها قدر المستطاع. الخوارزمية قامت بترتيب الصفحات عن طريق تحليل الصفحة وقياس مدى ارتباطها بالجملة المراد البحث عنها في حين أن المحركات الأخرى كانت تعرض الصفحات بحسب عدد مرات ظهور الكلمة في الصفحة فقط.
فلهذا إذا كنت تريد تعلم البرمجة انضر إليها بوجهة نضر رياضية و ليس لغة كلغات اخرى فرنسية إنجليزية لان لغة برمجة بنيت لكي تكون وسيط بين الإنسان و الكمبيوتر لهذا إذا كنت تريد بناء تطبيقات ضخمة و صناعة سكريبتات جديدة و ناجحة يجب تعلم الرياضيات و خاصة الخوارزميات 
نتمنى ان تكونوا فهمتم المقال و شكرا  







ليست هناك تعليقات:

إرسال تعليق

LDBA Tech تصميم Ali Larbi Daho Bachir 2015/2016

يتم التشغيل بواسطة Blogger.