الأربعاء، 8 أبريل 2009

البرمجة و التفكير (و فرصة للتفوق العلمي)

تحولات...

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

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

...تفتح أبوابا

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

و الفرصة القادمة البرمجة...

أعتقد أنه في السنوات القادمة ينبغي أن تكون البرمجة جزء من التعليم الأساسي، مثلها مثل الحساب و الجبر من قبلها. يجب ان يتكلم الناس عن الAlgorithms و الArrays كما يتكلمون عن طرح x من طرفي المعادلة. هل هذا صعب؟ ليس بشدة: مع مرور الزمن يتطور مستوى تفكير المجتمع ككل. و هناك الآلاف من الناس في بلادنا و خارجها تعلموا البرمجة و هم أطفال. لو اخذ المجتمع هذا الموضوع مأخذ الجد فإني أتوقع، إن شاء الله، ان تزداد خبرة المعلمين شيئا فشيئا و يتعلموا من تجاربهم الطرق المثلى لتعليم البرمجة لأي طفل.
و هل سيفيد هذا شيئا؟ نعم يفيد في مجالين:

أولا: البرمجة هي "تفكير بطريقة رسمية" و يدخل في كل شيء في الحياة. ربما لو نظرنا لعلم مثل المحاسبة نجده مجموعة من الData structures و الAlgorithms. أشياء مثل الBaker's algorithm أو الBanker's Algorithm كانت تستخدم فعلا في المخابز و البنوك. حتى الأستراتيجيات العسكرية ربما يمكن "تكويد" بعضها أو كثير منها في صورة خوارزميات. لو كان الناس كلهم يعرفون البرمجة لوجدوا طريقة جديدة، غاية في الوضوح و الدقة، للحديث عن العلوم الأساسية التي يعرفونها.

ثانيا: العلوم الطبيعية مثل الأحياء و الفيزياء صارت أعقد من أن يقوم بها الأنسان وحده و صار الكثير من الأبحاث يعتمد على الكمبيوتر. و ظهرت علوم مهجّنة مثل Computational Physics أو ال
Computational Biology و صار العديد من علماء الفيزياء و الكيمياء يتعلمون البرمجة ليتابعوا أعمالهم.

...فرصة للتفوق العلمي

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

- ربما يصير شيء مثل الComputational Physics مادة جامعية عادية بدلا من حكرا على نخبة من العلماء القليلين!
- ربما تصير القوانين و المحاماة اقل إبهاما و أسهل في التطبيق!
- ربما يكون الإعراب في النحو بوصف الParse Trees!

..هيّا

هناك أوروبيون بدأوا فعلا في التفكير في هذا الأمر (أنظر مثلا هذه الصفحة عن ال"Computational Thinking"). لكن الأمر مازال في بدايته و لعلّنا نكون أمام فرصه حقيقية لأن نسبقهم بمشيئة الله تعالى.
كما قلت في مثل هذا اليوم في 2008...علّموا الأطفال البرمجة!

الجمعة، 27 فبراير 2009

فيش فيش

احيانا يقرأ المرء أشياء عجيبة لم يسمع بها من قبل. هذا مثال مم قرأت أنا:
ابدأ بكلمة انجليزية تنفع إسما أو فعلا على السواء مثل "Fish". هناك جمل عديدة في صورة Fish^N هي جمل صحيحة نحويا, هذه بعض قيم N:

Nالجملةالمعنى
1!Fishإصطد!
2Fish fish"إصطد سمكا" ...أو "السمك يصطاد
3Fish fish fishالسمك يصطاد سمكا
4Fish fish fish fishالسمك الذي يصطاده السمك يصطاد
5Fish fish fish fish fishالسمك يصطاد السمك الذي يصطاده السمك
6Fish fish fish fish fish fishالسمك الذي يصطاده السمك (الذي يصطاده السمك) يصطاد

الجملة رقم 6 تحتاج بعض التفصيل, تخيل أن السمك أ يصطاد ب, و ب يصطاد ج, و جيم يصطاد سمكا غير محدد:
أعتقد أنه يمكن إثبات بواسطة الInduction أن أي جملة في صورة fish^N هي جملة مفيدة (لكني لم أحاول بعد). هل يمكنك أنت أن تثبت هذا؟

الجمعة، 16 يناير 2009

We can do Web applications

Watching a new homegrown language grow up and generate its first dynamic Web page. Seeing the result of months of work. It feels good, الحمد لله.

If you know Lisp, you probably can understand how the code works in the (simplistic) example below. Click on the picture for better viewing.

I hope I'll be able, soon إن شاء الله, to announce more details about the language and a bit about its history.
To the team members who contributed valuable code to this project*, if you're reading this, thank you :)

[*] Haytham Alaa, Mosapha Ateya Sakr, Mostapha M. El-Maasarawy, Mohamed M. Moussa, Mohamed Abdul-Aziz El-Morsy & Kamal El-Din Mohammed.


الأربعاء، 14 يناير 2009

من اخترع المتغيرات؟ (الجزء الأول)

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

أخمّن أنا رأيا آخر, و لا أعلم إن كان رأيي صحيحا أم لا (وليس معي الكتاب الآن لأراجع الحقائق, للأسف!).
المهم..تخميني هو أن العلماء في ذلك الزمن لم يكونوا يستخدمون الأسس بل كانوا يستخدمون الجذور. فبينما نحن نقول:

كانو يفكرون هم في:

فالمجهول الأصلي بالنسبة لهم هو مربع المجهول بالنسبة لنا.

و لكن عموما مشكلتهم كانت أكبر من ذلك, لم يكن لديهم أصلاً فكرة حرف مثل x يعبّر عن قيمة عددية. فماذا يفعل الخوارزمي؟
بدلا من المتغير كان يتكلم عن الشيء الحقيقي المراد معرفة قيمته, و لما كان كتابه يهدف لمساعدة الناس في حسابات التجارة و المواريث ففي كثير من الأحيان يكون المطلوب معرفته هو مقدار من المال. وهذه هي نظريتي في سبب التسمية.

و نتيجة لهذه التسميات فأنه لو نظرت في كتاب الجبر و المقابلة تجد أنه حيث نقول نحن:

كان يقول هو:
"مال وخمسة أجذار يعدل 24 درهماً".

ثم تطورت الأمور فبعد أن صارت كلمة "مال" تعني الرقم مضروبا في نفسه بشكل عام, صار مثلا "مال المال" هو نتيجة رفع العدد للأس أربعة, و بدأت اصطلاحات جديدة تظهر. بالمناسبة قام الدكتور مصطفى مشرفه وعالم مصري آخر سنة 1937 بتأليف شرح كتاب الجبر و المقابلة. شرح النص الأصلي كان في الهامش متضمنا "ترجمة" للمعادلات من الصياغة القديمة إلى المعادلات بالصورة التي نعرفها.

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

كيف إذن ظهرت المتغيرات بالطريقة التي نعرفها؟ البقية في الجزء الثاني.