الرياضيات وبرمجة الحاسوب

أود أولا أن انوه إلى أنني قد تأثرت بشكل سلبي بالنقاش الذي جرى بين الأخوة في الموضوع التالي

http://bit.ly/1zk3Ti7

أرجو من الأخوة الأفاضل قراءة ما سأكتبه حتى النهاية قبل إبداء الرأي ولكم جزيل الشكر.

ينقسم الموضوع برأيي إلى قسمين:

1- البرمجة التي تتطلب ارتباطا قوياً بالرياضيات:

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

2- البرمجة التي لا تحتاج إلى تدخل مباشر في الرياضيات:

هنا كما هو معلوم قد لا يتعدى الأمر استخدام العمليات الحسابية الأربع. ولست هنا أقلل من هذا الجانب.

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

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

كل الكلام السابق نعرفه بشكل جيد. ولكن الإضافة المهمة التي أود أن أضيفها هنا هي أنّ الإلمام بالرياضيات يساعد على نحو كبير جداً في إدراكك للمسائل البرمجية المتنوعة التي تواجهك وابتكار حلول مثلى لها حتى لو كانت تلك المسائل البرمجية لا تتعلق بالرياضيات بشكل مباشر.

والسبب هنا بسيط. إذ أنّ الملم بالرياضيات على المستوى الأكاديمي (الجامعي) يكون قد واجه خلال دراسته الكثير من المسائل الرياضية (التي لا علاقة لها بالبرمجة) والتي استطاع حلها بشكل أو بآخر. وهذا يكسب دماغه البشري القدرة على حل أي مسالة جديدة بفعالية أكبر حتى لو كانت هذه المسألة هي عبارة عن مسألة برمجية (تطبيق برمجي) يواجهه مستقبلاً.

أنا لا أعني بالطبع أنّ المبرمج المحترف يجب أن يكون دارساً للرياضيات على نحو متقدم. فقد يكون موهوباً ودماغه يعمل بآلية مشابهة لعمل المختص بالرياضيات.

فأنا أعرف مثلا مبرمجاً فذاً ودراسته كانت أدب انكليزي! ولكن قد لا تستغرب إذا علمت أنه كان يعشق الشطرنج!

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

وختاماً... إذا لم تكن ملماً بالرياضيات فلا بأس ولا تقلق وقم بالبرمجة واستمتع. ولكن إذا أحسست بضعف أو بإرتباك بعد أن تكبر وتنمو برامجك، فلا تيأس واعلم أنَّ الدواء بالنسبة لك سيكون الرياضيات.

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

كلامك صحيح

لكن أحد أفضل فوائد المعرفة الجيدة بالرياضيات هو اختصار الأسطر البرمجية

تستطيع أن تكتب عديد البرامج اعتمادا على العمليات البسيطة لكن في أغلب الأحيان يأدي هذا لكتابة أسطر برمجية كثيرة

بينما معرفتك بالرياضيات والمنطق تمكنك من اختصار عدد الأسطر البرمجية

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

موقف آخر هو ايجاد مضروب الرقم, مثلاً مضروب 4 هو 4 * 3 * 2 * 1 , ماذا لو احتجت مضروب المليون, صراحة وقتها كانت اجهزة الحاسب ضعيفة نوعاً ما, لذلك كان الامر يستحق التحدي, مدرس المادة كانت فكرته ان نستخدم long , الحلو بالموضوع انها كانت نظرية وعملياً لم تكن حل, وحتى ان كانت حل فكانت تأخذ ما يقارب 15 دقيقة لانهائها, قمت بمعادلة بسيطة اوجدت مضروب 10 مليون وليس المليون ب3 ثواني :) المدرس للمادة لم يعقب ولم يعلق كثيراً وكان رده محبط وقال لي كان يكفي استخدام long فقلت له انا اتحداك اذن :) , وطبعاً هو علم انه في تحدي خاسر, وانسحب من الموضوع بالاعتراف بان طريقتي افضل لكن هو لم يكن يريد هذا التعقيد هو فقط كان يريد ايصال فكرة استخدام long او double !!!!

وايضاً في مادة الرسم الجرافيكي في الجامعة, كان هنالك تحدي رسم نجمة بادخال عدد الرؤوس, من 3 الى 100, بحيث لو ادخلت 7 يرسم نجمة سباعية, ان اخترت 50 يرسل نجمة ب50 رأس. هو كان تحدي عليه علامة اضافية ليس الا وبالبحث في معادلات الرياضيات استطتعت حل التحدي.

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

رائع جداً وشكراً لمشاركتك لنا هذه التجارب الجميلة. هذه هي بالضبط الفكرة التي أردت إيصالها.

جميل اخي فعلا في بعض الاحيان القوه في الرياضيات توفر المجهود في البرمجه

-2

مرحبا اخي اولا اشكرك على طرح هذا الموضوع ثانيا اود ان ابدي رأي في بعض الامور التي يجب بها ان نضع حدا لهذا المزج بين البرمجه والرياضيات

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

أشكرك على التفاعل مع الموضوع.

أخي الكريم أعلم أن الرياضيات علم وتطوير التطبيقات أو بصورة عامة Software Engineering علم مستقل بحد ذاته. المعرفة الجيدة في الرياضيات تساعد في بناء تطبيقات فعالة من حيث الأداء ومن حيث التصميم بصرف النظر إذا كانت هذه التطبيقات لها علاقه بالحساب الرياضي أم لا.

لكي أقرب الصورة أكثر. مهندسوا العمارة مثلاً يدرسون الرياضيات بشكل جيد، مع أنّ جلّ عملهم يندرج تحت العمل الفني!

الرياضيات تساعد العقل على الابتكار وإستنباط الحلول المناسبة حتى للمشاكل الحياتية اليومية التي نعيشها.

إذا كان الشخص مبرمج دون أن يكون ملماً بالرياضيات، فلا بأس، فقد يكون كما ذكرت موهوباً بالفطرة.

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

تصحيح

مهندسي العمارة يدرسون الرياضيات لتمكنهم من حساب الضغوطات الموجودة على العمارة ومنها حساب الحديد اللازم وشكل التصميم المناسب لتحمل الضغوط بأقل تكلفة

الهندسة المعمارية تخصص والهندسة المدنية (الإنشائية) تخصص آخر

مهندسي العمارة يدرسون الرياضيات ...

في أي دولة ذلك؟

نعم المهندس المعماري يدرس الرياضيات وهو بأمس الحاجة لها

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

الهندسة المعمارية والمدنية قريبة من بعضها إلى درجة كبيرة وعمل المهندسين المدنيين والمعماريين مكمل لبعضهم البعض

المهندس المعماري يدرس الخرسانة المسلحة ويدرس ميكانيك التربة و مواد البناء ومقاومتها رغم أنه لن يعمل بها بل يدرسها لتكون له دراية بعمل المهندس المدني حتى يأخذها بعين الإعتبار أثناء التصميم ويحسن التواصل مع المهندس المدني

وفي المقابل يدرس المهندس المدني أيضا عدة مواد من إختصاص المهندس المعماري مثل الرسم وبعض برامج الرسومات لتكون له دراية بعمل المهندس المعماري ويحسن التواصل معه.