(الطفل في هذه التجربة هو نفسه من الجزء 1، الذي ضربت معه مثال عمود النور). قطعت معه هذه المرة شوطاً كبيراً.
- مراجعة على المتغيرات وامر اقرأ -
- امر التخصيص assignment -
- العمليات الحسابية -
- العمليات الحسابية على متغيرات -
- امر إذا -
- امر إذا/وإلا -
مراجعة على المتغيرات وامر اقرأ
عند تعليم الاطفال وجدت دائماً ان امر اقرأ صعب. (هل هذه حقيقة ام انها رواسب استخدامي لاساليب سيئة سابقاً مع نفس هؤلاء الاطفال؟) لذلك فانا دائماً لا افترض انهم تعلموه تماماً من المرة السابقة.
لزيادة التأكيد، عرضت عليه صورة المتغيرات وقلت ان المتغير شيء له اسم وقيمة، وان امر "اقرأ" يصنع متغيراً بطريقة كذا وكذا.
ثم قلت له: اكتب لي برنامجاً يقرأ كلاماً من المستخدم، ثم يطبعه مرتين.
بدأ يكتب، كتب كلمة اقرأ ثم اسم شخص. ظننت لأول وهلة انه لم يفهم المتغيرات بعد، فسألته ماذا سيفعل هذا السطر، فقال انه سوف يقرأ أي شيء من المستخدم. هذا جيد! استخدامه اسم شخص كاسم متغير كان من رواسب طريقة تعليمي السابقة له لا اكثر. لابد من عدم افتراض انك فهمت قصد الطفل، استفسر سواء اجاب اجابة تشعر انها صحيحة او خاطئة. حتى لو كتب كلمة اقرأ ثم اسم شخص بين علامتي تنصيص، سله عنها.
القصد، كتب
اقرأ فوزي
(تم تغيير الاسم)
ثم احتار. تركته يفكر مدة. ظل محتاراً. قلت له في النهاية: حسناً، تخيل انك تريد طباعة ما قرأت مرة واحدة، ماذا ستفعل؟ قال: اطبع فوزي
قلت له ان يكتبها وفعل. قلت: الآن يجب ان تطبعها مرتين. ماذا ستفعل؟ قال: حاجة مش فاكرها...فيها كاف...
(يبدو انني قد اخبرته من قبل بأمر لكل/تابع). قلت له: لا لا، تخيل انك تريد من شخص ان يفتح الثلاجة مرتين..ماذا تفعل؟ قال: اخبره ان يفتح الثلاجة مرتين! - لكن ماذا لو لم يعرف كلمة "مرتين"، ولم يعرف الاعداد اصلاً؟ بعد قليل من المناقشة عرف ان قصدي ان الاجابة التي قصدتها هي "افتح الثلاجة، افتح الثلاجة".
هذا هدف محدد لي من ان يكرر بهذه الطريقة بدلاً من اخباره بأمر لكل/تابع: كثير من كورسات البرمجة هي في الواقع كورسات "استخدام لغة البرمجة" بدلاً من "التفكير البرمجي". لابد ان يفكر المتعلم كيف يستخدم الادوات المتاحة وليس فقط "امر كذا يفعل كذا".
أيضا اخذت معه وقفة عن لوحة المفاتيح والمحرر: زر home يذهب لأول السطر، زر end لنهايته، النسخ ctrl+c، اللصق ctrl+v
قام بنسخ السطر، وتنفيذ البرنامج. فرح جداً بفكرة تكرار السطر = تكرار التنفيذ، وقام بتكراره ثلاث، واربع، وخمس مرات ورؤية النتائج. التفكير البرمجي كما قلت لكم :)
امر التخصيص
الطريقة الثانية لصنع متغير هي امر التخصيص أ = 12. انه يصنع متغيراً ويضع فيه قيمة. قمنا نفس المثال من الجزء السابق:
أ = "اسمي الكامل"
اطبع "أنا "، أ
اطبع "سن "، أ ، " هو 10"
كان تمرينا ظريفاً تدربنا فيه على الفصل بين القيم في امر اطبع بفواصل، وضع المسافات في الاماكن الصحيحة، وتحدثنا عن الفرق بين الكلمة بين علامات تنصيص وبين عدم وجود علامات التنصيص. وجدت بعض الصعوبات في الحديث عن "القيمة النصية"، ربما يمكن عمل تصوير لها كما صنعنا للمتغيرات..كلام على لافتة او شيء.
ذكرت له الفرق بين الذكر والاستخدام. حين اقول ان كلمة "يا حمار" استخدمت لأول مرة سنة 1885 فأنا لا اشتم احداً، انا اتحدث عن الكلمة نفسها، بينما لو قلتها في سياق آخر قد اكون اشتم احد (ليس مثالا طيباً)، المرة الأولى ذكر والثانية استخدام. كيف نفرق بين الذكر والاستخدام، حتى في الكلام العادي؟ بعلامات التنصيص.
(نعم، انا اتكلم مع الاطفال في الفلسفة، لماذا تسأل؟).
العمليات الحسابية
مثال بسيط جداً:
س = 12
ص = 13
ع = س + ص
ولكن طلبت منه ان يشرحه لي سطراً سطراً. ويرسم المتغيرات وما يحدث لها على الورق. في الجزء الخاص بـ ع = س + ص قال بدون مساعدة مني انه يحسب اولاً س + ص، ثم يضع النتيجة في ع.
العمليات الحسابية والمتغيرات
ثم قلت له هذا المثال:
س = 9
س = س + 1
اخبرني إذاً ما سيحدث هنا؟
قال: سوف يصنع متغيراً اسمه س يساوي 9 (لسبب ما الاطفال لا يحبون كلمة "قيمته كذا").
ثم يحسب س + 1
- ثم ماذا؟
ثم يصنع متغير س ويضع فيه النتيجة.
قلت له ان كلامه كله صحيح، لكنه لا يصنع متغير س في الخطوة الأخيرة لأن س موجود فعلاً، إنه فقط يغير القيمة بداخله، ولهذا اسمها متغيرات: لأنه يمكن تغييرها. يبدو ان هذه الجملة اعجبته.
كنت اظن التعبير في صورة س = [شيء يحتوي س] سيكون اصعب من هذا، لكنه عرف وحده كيف يقيس "س=س+1" على المثال السابق "ع = س + ص". او ربما تعلم هذا من جلسة سابقة. في الحالتين شيء جيد جداً.
هل احد اسباب هذا التعلم السلس هو انه لم يأخذ جبر بعد، وبالتالي ليس لديه معنى سابق للتعبير "س=س+1"؟
ثم صنعنا هذا المثال:
اقرأ #متغيرطويل
اقرأ # أ
اطبع أ+متغيرطويل
اطبع أ-متغيرطويل
اطبع أ×متغيرطويل
اطبع أ÷متغيرطويل
(يتضح للقاريء المقق انه كان هناك مناقشات جانبية هنا)
بدأ المثال ببرنامج يجمع رقمين ثم طورناه، لأننا مطورون برامج كما تعلمون (أو فنني حاسب آلي كما يذاع هذه الايام). كانت فرصة جيدة ليعرف علامات ×، ÷ على لوحة المفاتيح العربية، كما قلت له ان لغات البرمجة التقليدية فيها علامة الضرب * وعلامة القسمة /، وان الطريقة التقليدية */ والجديدة ×÷ كلتاهما مدعوم في لغة كلمات ™
امر إذا
وهنا قد حان وقت تعلم شيئاً جديداً (هيييه!). لو عدنا للمثال السابق سوف نجد انه يطبع دائماً ناتج العمليات الحسابية الاربعة. انا اريده ان يسأل المستخدم عن نوع العملية التي يريدها، يعني لو ادخلت له
12
3
÷
فسوف يقول لي 4. قلت له ان الامر إذا يأخذ الصورة الآتية:
إذا [شرط] :
_____
_____
تم
والشرط هو الشيء الذي ينبغي ان يكون صحيحاً لكي يتحقق الاوامر. لو اخبرتك "اذهب للسوق، وإذا كان هناك دجاجاً اشتر منه قفصاً" فالشرط هو "كان هناك دجاج".
الآن هيا نعدل البرنامج. اضفنا (بعد شيء من النقاش) امر اقرأ ثالث للعلامة. ثم كان مطلوب منه وضع الجزء الخاص بالجمع فقط لو كان العلامة المطلوبة هي +.
بعد تفكير منه، وشيء من المساعدة مني، كانت الكود كالآتي:
اقرأ #متغيرطويل
اقرأ # أ
اقرأ ش
إذا ش = "+":
اطبع أ+متغيرطويل
تم
اطبع أ-متغيرطويل
اطبع أ×متغيرطويل
اطبع أ÷متغيرطويل
كان هناك حيرة في "هل نضع علامة زائد بين علامتي تنصيص ام لا" اعادتنا لنقاش الذكر او الاستخدام، كما كان هناك مشاكل في الشرط نفسه (لم يكن يعلم، ولم اكن اخبرته، بالمقارنات فكان الامر في البداية هو إذا ش+ من المتوقع لمن لا يعرف الـsyntax ان يحاول اختراع syntax خاص به...)
قمنا بتنفيذ البرنامج لنجرب هذا الجزء، فأدخل 5+5 في اول سطر. قلت له ان امر اقرأ دائماً يقرأ شيئاً واحداً في السطر ويجب ان يكون المدخل في صورة
5
5
+
....لو اردنا يمكننا ان نغير ترتيب الاوامر ليكون المدخل
5
+
5
لكن لا يمكننا ان ندخلها كلها على نفس السطر.
بدا عليه الاحباط، إنه كان يتوقع ان يكون المدخل في صورة "طبيعية". سأل: وماذا لو اردنا إدخال 5+5؟
قلت: سوف يقرأها في صورة قيمة نصية (رسمت له المتغير والقيمة داخله) ثم لا يدري ماذا يفعل بها، وسيكون من واجبي كمبرمج ان افصل الارقام عن العلامات عن طريق ان ابحث عن نهاية الرقم وبداية العلامة، ثم اجري العملية الحسابية.
أليس هذا، أي تلميذي، هو ما يحدث في لغة كلمات نفسها؟ انها تقرأ شيء مثل ش=5+6 فتفصل ش وحدها، وكل رقم وحده، والعلامات وحدها، ثم تقوم بتنفيذ الامر.
كم كنت اود وقتها لو كانت لغة كلمات فيها مشروع Glass compiler الذي كنت اخطط له!! هذا المشروع يقوم باظهار برنامج كلمات في صورة كود، ثم parse tree ، ثم assembly، ثم يظهر تنفيذه.
ما علينا. قمنا، بتجربة البرنامج وشرحت له (او طلبت منه ان يشرح - لا اذكر) كيف يسير جزء "إذا"، ثم بعد مزيد من النقاش، بتعميم البرنامج:
اقرأ #متغيرطويل
اقرأ # أ
اقرأ ش
إذا ش = "+":
اطبع أ+متغيرطويل
تم
إذا ش = "-":
اطبع أ-متغيرطويل
تم
إذا ش = "×":
اطبع أ×متغيرطويل
تم
إذا ش = "÷":
اطبع أ÷متغيرطويل
تم
والآن حان وقت التجربة! كان تلميذي يتساءل كيف ان احد هذه الاوامر سينفذ بينما الباقي لا. هل هي عشوائية؟ قلت له انها ليست عشوائية لأن ش لا يمكن ان تساوي + و - في نفس الوقت. اليس كذلك؟ هه؟ شعرت ان السؤال السابق يوحي بعدم ثقتي في كفاية اجابتي، فقررت ان اسير بنصيحة "اظهر ولا تخبر". إن كلمات لغة برمجة تعليمية من الدرجة الأولى، وقد وضعت فيها امكانيات مثل "المراقب العجيب" لمثل هذه اللحظة.
شغلت المراقب وبدأ تتبع كل خطوة من البرنامج. ادخلت له 12، 6، ÷...دخل في اول امر. هل ÷ = +؟ لا، فلم يدخل في الامر. نفس الشيء مع امر "إذا" الثاني"، ثم جرب الثالث ونجح وعرض نتيجة القسمة. ثم جرب الرابع ولم يفعل شيئاً.
جربنا اكثر من عملية حسابية. حرصت ان اقول له انك لو ادخل 5،5،* بينما امر إذا يستخدم × فلن يتحقق الشرط.
برنامج دسم :)
امر إذا/وإلا
كانت الملفات المفتوحة الآن في كلمات كثيرة، وحين قمت بعمل برنامج جديد كان الاسم المخصص له من قبل الـIDE هو new program 9. قلت له هل تعرف كيف تقوم كلمات بهذا؟ هناك متغير يخزن عدد البرامج التي تم انشاؤها، ثم كلما اختار احد امر "جديد" ينفذ سطر كذا = كذا + 1
القصد...
نريد برنامجاً يقرأ رقم يعبر عن السن، ثم لو السن عشر سنوات او اكثر يقول "انت كبير"، ولو اقل يقول "انت صغير".
اقرأ #س
إذا س >= 10:
اطبع "انت كبير"
تم
إذا س <10:
اطبع "انت صغير"
تم
(جاء البرنامج من مناقشة، وعرفته بـ >=)
أراد ان يلعب قليلاً فغير الكود لتصبح كالآتي:
اقرأ #س
إذا س >= 10:
اطبع "انت اكبر من الهرم"
تم
إذا س <10:
اطبع "انت صغير جداااا"
تم
قلت له: لكن الهرم عمره - ماذا - خمسة آلاف سنة؟ هيا نفرق بين حالة "اكبر من الهرم" وحالة "كبير" العادية. بالمرة نفرق بين الصغير والصغير جداً.
اقرأ #س
إذا س >= 5000:
اطبع "انت اكبر من الهرم"
تم
إذا س >= 10:
اطبع "انت كبير"
تم
إذا س <10:
اطبع "انت صغير"
تم
إذا س <2:
اطبع "انت صغير جداااا"
تم
لكنك تعلم عزيزي القاريء ان هذا البرنامج - بالتجربة معه - لم يعط نتائج صحيحة: لو ادخلت ان سنك 12,000 سنة فسوف يقول "انت اكبر من الهرم" و "انت كبير" معاً! نفس الشيء لو قلت ان سنك سنة واحدة، سوف يعطي نتيجتين.
اثناء شرح امر إذا في الاجزاء السابقة كنت دائماً اضرب مثلاً "اذهب للسوق، إذا وجدت فراخ هات قفصاً، وإذا وجدت تفاحاً هات كيلو". الآن ماذا لو وجد الاثنين؟؟ لو اردت ان يشتري واحدة فقط منهما، يمكن ان اقول "اذهب للسوق، إذا وجدت فراخ هات قفصاً، غير ذلك، إذا وجدت تفاحاً هات كيلو".
لاحظ اننا لو اردنا تطبيق ذلك في الكود الموجودة
إذا س >= 5000:
اطبع "انت اكبر من الهرم"
تم
إذا س >= 10:
اطبع "انت كبير"
تم
فإنهما لن يعودا امرا "إذا" منفصلين، بل سيتم دمجهما في امر واحد كما قلنا مثال السوق في عبارة واحدة. اولاً نحذف "تم" التي في المنتصف:
إذا س >= 5000:
اطبع "انت اكبر من الهرم"
إذا س >= 10:
اطبع "انت كبير"
تم
ثم "إذا" في المنتصف نجعلها "وإلا إذا":
إذا س >= 5000:
اطبع "انت اكبر من الهرم"
وإلا إذا س >= 10:
اطبع "انت كبير"
تم
نفس الشيء مع السن الصغير:
إذا س <10:
اطبع "انت صغير"
وإلا إذا س <2:
اطبع "انت صغير جداااا"
تم
قمنا بتجربة الاربع حالات: اكبر من 7000، بين 10 و7000، بين 2 و 10، اصغر من 2. لكننا في حالة السن سنة واحدة قال "انت صغير" وليس "انت صغير جداً". قلت له انه لابد من مراعاة الترتيب لأن "اصغر من 2" اخص من "اصغر من 10" لكنه فاجأني ان الموضوع واضح (او هكذا اشعرني).
لماذا ندخل في المنطق إن كان الكود نفسها تظهر الامر؟ يقال ان الطفل في هذه المرحلة يكون تفكيره operational - لكي يحدث كذا افعل كذا - وليس منطقياً رمزياً. إن كانت الكود، وهي تشبه الـoperational، تقوم بالغرض فسأسكت، على الاقل هذه المرة :)
غيرنا ترتيب الشروط، وجربنا البرنامج.
الخميس، 24 مايو 2012
الأحد، 20 مايو 2012
نصف ساعة من النحو
الجمل تكون خبرية (تعطي معلومات) أو إنشائية (تفاعل مع شخص آخر، مثل نداء او استفهام). سوف نركز هنا على الجمل الخبرية.
هذه الجمل تكون بشكل عام مكونة من شيئين: (1) موضوع اتحدث عنه: انا، اخي، مصر، البحر... (2) معلومة اقدمها عن هذا الموضوع: آكل، ينام، جميلة، هاديء.
الموضوع الاساسي في الجملة اسمه المسند إليه، والمعلومة اسمها المسند، وذلك لأنني حين اقول "اخي جائع" فكأني اسندت صفة الجوع إلى أخي. في اللغة الانجليزية يسمونهما subject و predicate.
في الجملة الاسمية (التي تبدأ بإسم) مثل "البحر هاديء" يكون المسند هو الخبر (هاديء) والمسند إليه هو المبتدأ(البحر)، وفي الجمل الفعلية مثل "أكل الرجل" يكون المسند اليه - أي الموضوع الاساسي، هو الفاعل (الرجل) والمسند هو الفعل (أكل).
هذه المسندات الاربعة تكون مرفوعة. هذا الرفع اعتبره علامة أن لها أهم وضع في الجملة، فهي المكونات الأساسية لها. موضوع ومعلومة: هذه هي الجملة.
لكن في الجمل قد أريد ان اقول معلومات اضافية، مثلاً في جملة أنا أكلت:
- ماذا أكلت بالضبط؟
- كيف كان حالي وانا آكل؟
- ما الظروف التي حدث فيها الأكل؟
- لماذا أكلت؟
- هل كان أكلاً خفيفاً أم كان أكلاً بكل معاني الكلمة؟
- وهكذا وهكذا...
هناك طرق لاضافة هذه المعلومات:
- لو قلت "أكلت دجاجاً" فإن دجاجاً هنا مفعول به
- لو قلت "أكلت فرحاناً" فإن فرحاناً هي حال
- لو قلت "أكلت نهاراً" فهذا ظرف زمان
- لو قلت "أكلت ترفيهاً عن نفسي" فإن ترفيها هي مفعول لأجله
- لو قلت "أكلت أكلاً" فهنا نوع من التوكيد اسمه المفعول المطلق
هذه المكونات، وغيرها، ليست أساسية تماماً في الجملة لكنها مفيدة، لذلك هي ليست مرفوعة بل لها وضع أقل قليلاً من الرفع، إنها المنصوبات.
هناك نوع ثالث من المكونات. فكر في جملة مثل "قابلت أخت زوجي". إن الزوج هنا ليس له دور في الجملة - لم يحضر المقابلة - لكن له علاقة بأحد اطراف الجملة. هذه العلاقة هي الإضافة، فقد جئت بكلمة "زوجي" واضفت لها علاقة "اخت" ليكون لدي الشيء الذي أتكلم عنه، ولذلك كلمة "أخت" هي مضاف (إعرابها مفعول به، لكنها أيضاًَ مضاف) وكلمة "زوجي" إعرابها "مضاف إليه".
الأخت هنا هي الشيء الذي له وضع في الجملة (مفعول به) لكن كلمة "زوجي" بعيدة، إنها لا هي مكون اساسي يرفع ولا معلومة تكميلية تنصب، فقط هي وسيلة لاذكر بها شيء آخر هو اخت الزوج...والكلمة هنا لا مرفوعة ولا منصوبة، إنها مجرورة.
في مثال آخر، "ذهبت إلى السوق"، إن مقطع "إلى السوق" له دور في الجملة لكن "السوق" وحدها لا تقوم بذلك الدور. الكلمات مثل من، إلى، على، في،...هي حروف جر، ويكون ما بعدها أيضاً مجروراً.
تكلمنا في معظم كلامنا عن الأسماء، فماذا عن الأفعال..هل هي مرفوعة ام منصوبة أم مجرورة؟ افعال الماضي (أكل) او الامر (كل) تكون مبنية، أي لا تحمل علامات إعراب، بينما الفعل المضارع له ثلاث حالات إعرابية:
في الظروف الطبيعية يكون مرفوعاً (فهو مسند).
حين تسبقه اداة نصب مثل "أن" أو "لن" أو "كي"، يكون منصوباً، والنصب هنا يوحي بشيء..
حين اقول "مصطفى يحمل ابنته" فأنا هنا اقدم معلومة عن مصطفى - انه يحمل ابنته، لكن ماذا لو قلت "أن يحقق الانسان أهدافه، هذا شعور رائع"! - فهنا لا يقوم الفعل بدوره الإسنادي - لا يوجد تحقيق للاهداف حدث هنا اصلاً بل نتكلم عن وضع افتراضي - هنا يكون الفعل منصوباً.
أو حين اقول "ذاكر كي تنجح"، نحن لا نسند صفة النجاح هنا إلى أحد بل نتكلم عن عملية النجاح نفسها، هنا أيضاً يكون منصوباً.
هناك حالة ثالثة للفعل المضارع هي الجزم، وهو يحدث لو سبق الفعل احد من:
لم: لم يأكل
لام الامر: لنرحل من هنا
لا الناهية: لا تقترب!!
لماذا هي مجزومة؟ لا اعرف. اتشعر انه لأن الموضوع فيه "عجالة" نوعاً ما....
علامات الإعراب
الآن نتحدث عن شيء: كيف نعرف حالة كل كلمة في الجملة؟ لو قلت "ضرب زكي اشرف"، من الذي ضرب من؟؟
في اللغات غير المعربة مثل الانجليزية يكون الأمر بترتيب معين للكلمات، لو قلت "Zaki hit Ashraf" فمن المؤكد تماما ان زكي هو الضارب، بينما "Ashraf hit Zaki" يكون العكس. لكن اللغة العربية لغة حرة لا تلزمك بترتيب معين بل يكاد يكون الترتيب حراً تماماً..أحمد يحب العنب، يحب أحمد العنب، يحب العنب أحمد..
هذه الحرية تعطي فرصاً كثيرة للبلاغة بالتقديم والتأخير وتؤثر على المعنى، هناك فرق تشعره بين جملة مثل "ترك الجَمَل اخي الغبي" وبين "ترك اخي الغبي الجَمَل".
لكن كيف إذاً نعرف وضع كل كلمة؟ اللغة العربية تقدم علامات معينة لتخبرك ان الكلمة مرفوعة او منصوبة او مجرورة أو مجزومة.
علامة الرفع المعتادة هي الضمة لأخر حرف من الكلمة، والنصب بوضع فتحة في آخر الكلمة، والجر بالكسرة.
لكن في حالة جمع المذكر السالم يكون الرفع هكذا: مدرسون، والنصب والجر هكذا: مدرسين. في حالة جمع المؤنث السالم يكون الرفع الضمة مدرساتُ والنصب والجر بالكسرة مدرساتِ.
وفي حالة المثنى يكون الرفع بالألف "مدرسان" والنصب والجر بالياء "مدرسيْن". في كل الحالات تشعر ان الحرف "الاضعف" لغير الرفع.
في حالة الاسماء الخمسة "اب، اخ، حم، فو، ذو"، يكون الرفع بالواو، الجر بالياء، والنصب بالالف": ابوك يأكل الفرخة، اخوك يطير من الفرحة، اخبر حماك ان رموش ابنته جارحة، سوف يضرب فاك بالحربة، ويذهب إلى ذي السلطة القانونية ويقدم بلاغاً.
في حالة الفعل المضارع يكون الرفع والنصب كالمعتاد، والجزم بالسكون، لكن الحرف المعتل يجزم بحذف حرف العلة: لم يمت الحلم، عنترة لم يعتدِ على احد.
وإن كان من الافعال الخمسة (على صورة يفعلان، تفعلان، يفعلون، تفعلون، تفعلين) يكون علامة نصبه وجزمه حذف النون: "أن تأكلا، هذا شيء مكلف". "اعملوا كي تأكلوا"، "لم تأكلي شيئاً يا أمي".
هناك حالات اخرى لعلامات الإعراب لكن هذا يكفي حالياً.
التوابع
التوابع هي مكونات للجملة تأخذ نفس اعراب مكون آخر تتبعه. مثلاً:
الصفة: الورد الجميل في الحديقة. كلمة جميل مرفوعة مثل الموصوف (الورد).
البدل: البدل هو - بتبسيط - نفس شيء آخر في الجملة. مثلاً "قال احمس الأول ملك مصر: أنا احب البيتزا". هنا نجد ان "احمس الاول" و"ملك مصر" هما نفس الشيء، لذلك نجد كلمة "ملك" هي بدل لكلمة "احمس". هناك انواع اخرى من البدل.
العطف: "اكلت تفاحة وفرخة"، هنا فرخة معطوفة على تفاحة وتأخذ نفس اعرابها. ادوات العطف الشهيرة: "و"، "أو"، "فـ"، "ثم".
هناك تابع آخر اسمه التوكيد، بنوعيه اللفظي والمعنوي، لكن لن نتعرض له هنا.
جمل بداخل جمل
لو انت مبرمج، فهذا شيء ستحبه: هناك recursion في معظم اللغات البشرية بحيث يمكن ان تكون جملة هي مكون في جملة اكبر.
مثلاً في الانجليزية: He told me that she heard that they went to eat a chicken
في اللغة العربية سنعطي بعض الامثلة:
يمكن ان تكون جملة في مكان الخبر: البحر [ماؤه مالح]
(سوف اضع الجملة الداخلية بين اقواس مربعة)
او يمكن ان يكون الخبر جملة فعلية: الرجل [يخاف الناس من صوته]
ويمكن ان تكون الجملة حالاً: ذهبت إلى الحديقة [صوتي مهزوز من الإثارة]
ويمكن ان تكون الجملة صفة: يجري الجندي وراء عدو [يقفز خلف الجدران]
شبه الجملة
يوجد ايضاً عنصر اسمه "شبه الجملة"، وهو إما جار ومجرور أو ظرف ومضاف إليه.
وينفع لشبه الجملة أن تكون صفة: رأيت قلما [على الارض]، رأيت قلماً [تحت السلم].
أو أن تكون خبراً: الحاسوب [تحت الطاولة]
أو ان تكون حالاً: جلس اخي [في الشارع]
انتهت النصف ساعة، الكلام بالطبع مبسط وغير كامل، وحتى كمقدمة مبسطة اهملنا اشياء مثل النواسخ، لكن ارجو ان يكون نافعاً في صورته هذه.
السبت، 19 مايو 2012
...وأنّ حالي كما ترى؟
تسألني لم أنني أنا، وأن حالي كما ترى؟
ليست امور اخترتها، وانما اختارتني هي
ليست امور اخترتها، وانما اختارتني هي
هذه قصة حياتي في الفترة من نهاية 2007 إلى منتصف 2008. وهي فترة مفتاحية، إذ اثرت على حياتي منذ وقتها حتى كتابة هذه السطور.
كنت معيداً في الكلية منذ سنوات. بلا تقدم وظيفي يذكر، . وبدأت تظهر لي آلام في اليدين من استخدام لوحة المفاتيح/الماوس. وكان التدريب الصيفي على الابواب.
كنت دائماً اقدّم سكاشن هياكل البيانات/البرمجة الشيئية بالفرقة الثانية، وكنت كل عام ارى المستوى يزداد سوءاً. هناك في كل دفعة عدد ما من الطلبة المتفوقين، لكن المستوى العام محبط. وكنت - مثل كثير من المعيدين - اعتبر هذا صفة من صفات المجتمع لا دخل لي بها: التعليم يسوء، القيم تتغير (مثل قيمة الاجتهاد او العلم)، ماذا افعل انا؟
ثم جاء الحديث عن التدريب الصيفي...وفكرت: إن الطلبة يأتون لنا من الفرقة الأولى لا يعرفون شيئاً عن البرمجة تقريباً، ماذا لو سددنا لهم تلك الثغرة؟ ألن تكون حياتنا كمعيدين في مواد الفرقة الثانية اسهل بكثير؟
ماذا لو توقفنا عن التحسر على حال الطلبة، واعتبرنا ان لديهم القدرات لكن تحتاج فقط إلى من يعلمهم بطريقة صحيحة؟
المشكلة الاساسية بالنسبة لي كانت ان الطلبة لا يبرمجون اصلاً. معظم البرامج التي يصنعونها هي اشياء محفوظة مثل sum/average/minimum...لماذا لا يكتبون شيئاً جديداً له معنى؟
كنت وانا طالب اكتب برامج رسومية ذات مؤثرات وادخل السكشن واشغلها على جهاز المعمل لكي استعرض..ثم يأتي الزملاء في الاسبوع التالي ويكتبون برامجاً اكبر واكثر ابهاراً كتحدي..الا توجد طريقة لإعادة إنتاج هذه المنافسة؟ لماذا لا يصنعون رسومات والعاباً؟
لكن المكتبات الرسومية معقدة جداً...DirectX, OpenGL, SDL...كلها تحتاج شيء من الاعداد. ربما يأخذ دقائق بالنسبة للمبرمج الخبير لكن بالنسبة لاشخاص مازالوا يتدربون على كتابة while loop ولا يعرفون بعد كيفية عمل open project؟ لن ينفع. لكن ماذا لو صنعنا مكتبة بسيطة جداً، تكفي دقائق للمبتديء كي يكتب بها برنامجاً صغيراً؟
بدأت افكر فيها: سوف تكون الرسومات بها مثل كمبيوتر صخر: خطوط ومستطيلات ودوائر، لكن من اجل الالعاب سوف نصنع لهم اشكالاً متحركة sprites. سوف يكون هناك 30 شكل متحرك، كل منهم له رقم (لنتفادى البرمجة الشيئية)، لماذا 30 بالذات؟ لأن هذا هو العدد الموجود في كمبيوتر صخر.
لا تظن انني فعلت هذا فقط حباً في صخر: هذا قرار عملي جداً؛ هذه الاشكال الـ30 كانت تكفي لصنع كل الالعاب التي لعبتها في طفولتي، إذاً هي أيضاً تكفي للطلبة لكي يصنعوا العاباً ممتعة.
تعمدت ان اضع حدوداً للمكتبة: لا يوجد مثلاً امر لمسح الشاشة، اوامر الرسوم قليلة، التعامل مع الماوس غير مفصل، وهكذا. لماذا؟
لأنني لا اريد من الطلبة ان يكونوا "مستخدمي مكتبات"، بل اريدهم ان يكونوا مبرمجين! سوف يستطيعون بذكائهم ان يسدوا كل الثغرات الموجودة: لكي تمسح الشاشة ارسم مستطيل يشمل مساحتها كلها. دالة التعامل مع الماوس يمكن ان تحقق بها ما تريد ببعض التنظيم المنطقي. اريدهم ان يفكروا، وان يتخيلوا، وان يقابلوا مشاكل ويحلوها. أريدهم أن يتعلموا.
هذه هي المكتبة لمن يريد ان يعلّم احد بها.
كان هذا في صيف 2007. كتبتها في ثلاثة أيام، وتحملت آلام اليدين اثناء الكتابة. إن ألام اليدين قد جعلت البرمجة صعبة، والجلوس امام الانترنت صعباً. وبدأت افتح صناديق الكتب واقرأ. ولم تكن كلها كتباً برمجية. قرأت عن علم الاجتماع، واسباب التأخر الذي يحدث في مصر، والتاريخ، والدولة العثمانية، والحرب العالمية الاولى...
لقد انتهت الدولة العثمانية عام 1922. أي انه هناك اشخاص يعيشون بيننا الآن - من هم فوق سن التسعين - عاشوا في طفولتهم في دولة اسلامية موحدة. كان يحكمهم "أمير المؤمنين". ربما دولة ضعيفة او متأخرة لكن...موجودة. ليس الامر بعيداً كما يتخيل المرء.
وبدأ التدريب الصيفي بنجاح محدود. لم يكن هناك اهتمام حقيقي بالموضوع سوى مني ومن معيد صديق لي، الباقي كانوا يخافون خوفاً من تعلم المكتبة الجديدة. لكن الطلبة كانوا شيئاً آخر. ظهر منهم اشخاص يذكرونني بالأيام القديمة الجميلة. واخذت افكر كيف يمكن تحسين التعليم في الكلية، ربما لأول مرة افكر في هذا الامر بتعمق. ربما هناك الكثير مما يمكن عمله...
...خسارة ان هذا التفكير لم يظهر سوى في ايامي الأخيرة كمعيد. لقد كانت الاستقالة على الابواب.
كانت g4c هي بداية اشياء كبيرة: ان استخدم عقلي ليس لحل مشاكل برمجية، لكن لحل مشاكل خاصة بالمجتمع. نوع من التعميم لمفهوم problem solving.
قدمت المحاضرة الاخيرة في التدريب الصيفي. كانت عن المستقبل: لابد لك كطالب ان تتعلم تكنولوجيات جديدة وانواع جديدة من البرامج (web, mobile, GUI...)، لكن طور نفسك أيضاً في علم الـcomputer science. تعلموا لغات كثيرة، لا تصدقوا من يقول لكم ان لغة واحدة تكفي..ولا تتعلموا فقط اللغات المشهورة. انظروا إلى Haskell أو Lisp، وهي اقوى بكثير من كل ما تعرفون.
ثم في هذه الفترة ظهرت لي خصوبة فكرية...كنت اكتب قصصاً، وافكر في لغة برمجة للموبايل اسمها Kitty (لم انتهي من تصميمها حتى الآن للاسف، وسبقتني مايكروسوفت بلغة TouchDevelop)، وافكر في لغة برمجة عربية...ولم لا؟ فقط لو وجدت لها اسماً جيداً..
ذهبت لمعرض الكتاب في ربيع 2008. وكنت قد استقلت من الكلية واجهز للذهاب للعمل في مايكروسوفت. كانت هناك دار نشر اماراتية لترجمة الكتب الاجنبية اسمها كلمة. بدأت اشعر ان العالم الاسلامي على ابواب نهضة. الا يقولون دائماً ان النهضة الاوروبية بدأت بترجمة الكتب العربية؟ (لكن الاسم قد اوحى لي بإسم للغة البرمجة الجديدة أيضاً..)
هل سأذهب إلى مايركوسوفت أم ابقى في مصر؟
هل سينهض المجتمع فعلاً؟
ما سيكون دوري في نهضته؟
ما اسم لغة البرمجة العربية الجديدة؟
قد جاءت 2012، وبعض هذه الاسئلة نعرف إجابته والبعض لا. تابعوا معنا هذه القصة المثيرة.
الخميس، 17 مايو 2012
كلمات والاطفال: بعض النتائج التجريبية (جزء 3)
نتابع مع نفس الطفل المذكور في الجزء الثاني.
كتبت هذه الكود:
اقرأ أ
اقرأ ب
ثم قلت: فلنفترض ان أ يمثل اسم الشخص (مثلاً محمد) و ب يمثل اسم الاب (مثلاً سامي)، فكيف اكتب الاسم الكامل؟
كان الرد الأول: اطبع أ=محمد...
قبل ان تكمل قلت لها "لا، فنحن نريد برنامج يتعامل مع أي اسماء وليس بالضرورة محمد و سامي".
لكني الآن افكر في شيء...هناك سبيلين لتفسير الرد: اما اننا مازلنا في الحاجز بين التجريد والتصوير، وهناك لبس متبقي بين فكرة "متغير يعبر عن أي قيمة - مثلا محمد" وبين فكرة "محمد".
التفسير الآخر انها كانت ستجيب إجابة صحيحة، لكنها لم توفق في التعبير -- أي كانت تقصد "اطبع أ، الذي يساوي 'محمد' في هذه الحالة..."
لا اريد ان اترك شيء من التفاصيل بدون ان ابحثه، فنحن نتكلم - من اول الموضوع -عن النتائج التجريبية. ربما ينبغي ان اسألها، إن كانت مازالت تتذكر :)
القصد، قالت ان السطر الثالث المطلوب هو "اطبع أ ب"..
هذا جيد -- لكن يتبقى الsyntax. اكتبيه إذاً؟
قالت:
اطبع أ ب
صححت لها موضوع الفاصلة:
اطبع أ، ب
ثم جربنا تنفيذ البرنامج، ادخلت له اسمي واسم أبي فقال البرنامج:
محمدسامي
قلت لها اننا نريد طباعة مسافة فارغة بين الاسمين، وإن كان حظنا جيد في هذه الحالة لأن الدال لا تشبك في الحرف الذي يليها فلم يظهر خطأنا. لو جربنا حرفاً غير الدال لوجدنا كلمة واحدة من الاسمين.
نريد ان نطبع الاسم، ثم مسافة فارغة، ثم اسم الاب، كم شيئا نريد ان نطبعه؟
- ثلاثة!
- تمام! وكم فاصلة بينهم؟
- اثنان
حسناً...اكتبي إذا الفاصلة الزائدة، والآن لدينا فراغ نكتب فيه المسافة:
اطبع أ، ، ب
ينبغي الآن ان نكتب مسافة فارغة بين الفاصلتين..ضعيها بين علامتي تنصيص
اطبع أ، " "، ب
وهيا ننفذ البرنامج. ما الاسم الذي تريدين؟
- سلمى
- حسناً، سوف اكتب سلمى
- لكن اكتبها بالياء!
- لماذا؟ هكذا ستكون الكلمة خطأ! سلمي بدلا من سلمى!
- لكننا نريد حرفاً يشبك مع الذي بعده!
اووووه :)
وهكذا تم تجربة أول برنامج.
هنا لابد من وقفه: إني اقول دائماً ان لغة كلمات مبسطة وسهلة التعلم، لكن هناك كمية من التعقيد في أي لغة برمجة حديثة..انظر لهذا السطر البسيط:
اطبع أ، " "، ب
إن هذا السطر مليء بالتعقيدات التي لا اشعر بها لأني برمجت قبل ذلك بالسي++، جافا...الخ
- أ و ب هم عناصر خاصة بالكود syntactic elements، لكن عند تنفيذ البرنامج فهي تدل على عناوين لقيم مخزنة في الذاكرة..
- المسافات في الكود لا تصنع فارقاً، لأن لغة البرمجة بها Lexical analyzer يقوم بعمل skip whitespace، لكن لو كانت المسافة بين علامتي تنصيص، فإنه يكون لها معنى كقيمة، قيمة اثناء تنفيذ البرنامج.
- امر اطبع يأخذ القيم المطلوب طبعها بينها فواصل وحول النصوص علامات تنصيص، لكن القيم تطبع على الشاشة بدون هذه النقشات.
إن المبرمج دائماً يضطر أن يحوّل انتباهه بين عالمين: عالم الكود في المحرر وعالم القيم اثناء تنفيذ البرنامج، وعليه ان يعلم - بصورة مباشرة او غير مباشرة - انه هناك مفسر للغة يقوم بنقل الكود من احد هؤلاء العالمين إلى العالم المجاور.
هل هذا شيء جيد؟ ام الافضل ان تكون الكود تشبه المخرجات إلى اقصى حد؟ مثلاً في لغة روبي يمكن عمل شيء مثل هذا (لو كانت روبي بالعربية):
اطبع "{أ} {ب}"
أو هنا مثال اوضح للفرق بين طريقة كلمات وطريقة روبي:
اطبع "الاسم هو "، س، " والسن هو "، ص، " يا فتى"
اطبع "الاسم هو {س} والسن هو {ص} يا فتى"
هنا انا لا افصل بين المخرجات بفاصلة، بل اكتبها في صورة نص كبير، لكن حين اريد ان اطبع قيمة متغير (شيء يشبه الكود ولا يشبه النص المعروض كما هو) احيطه بأقواس { }
نعم، طريقة روبي افضل كطريقة برمجية، لكن كطريقة تعليمية؟ ربما وربما لا. كالعادة: يحتاج الامر لتجربة :)
هل انا ابالغ؟ هل كل فتفوفة syntax لها حقاً اثر تعليمي مهم؟ على أي حال انا لم اطلب ميزانية مليون دولار لأجيب على السؤال، الموضوع هو نصف ساعة لتغيير الـsyntax قليلاً وتجربة مع طفل، وقد اتعلم منها شيئاً.
ربما بعد ذلك احتاج لعمل نسخة من كلمات يمكن تغيير الـsyntax بها تغييرات طفيفة بدون مجهود كبير - بدون حتى عمل recompile للغة - لتسهيل هذا النوع من التجارب.
الأحد، 13 مايو 2012
كلمات والاطفال: بعض النتائج التجريبية (جزء 2)
هذه المرة جربت مع شخص مختلف عن المقال السابق. هذه لم تكن اول session مع هذا الشخص. مشكلتي قبل ذلك مع معظم الاطفال - كما تذكرون - كانت في المتغيرات، وكيف ان الطفل لا يسمع الكلمة اصلاً وانا اقولها. لو قلت "أمر اقرأ يضع قيمة في متغير" فالطفل سيسمعها "أمر اقرأ يضع قيمة".
حلاً للإشكالية فكرت ان اصنع شيء مثل تصوير كامل للـruntime الخاصة باللغة: سبورة مثلاً تمثّل شاشة الإخراج، جدول يمثل الذاكرة (يربط بين المتغير والقيمة)، ثم حين بدأت اكتشفت ان معي بعض من هؤلاء:
فقررت الاستعانة بهم. ما هو تعريف المتغير؟ إنه واحد من هؤلاء الكائنات. وما هي صفاته؟ له اسم، ويحمل في داخله قيمة. لم اذكر قابليته للتغير او مثل ذلك: المتغير اسم وقيمة. هكذا صار لدينا شيء نتكلم عنه.
تبسيط آخر: لم احاول هذه المرة قراءة أي قيم نصية من المستخدم، أو تخزين قيم نصية في متغيرات، هذا يجعل الامر اسهل: الاعداد قيم والحروف اسماء متغيرات. أيضاً لم استخدم اسماء متغيرات من كلمات طويلة او اسماء اشخاص. دائماً حروف.
أيضاً كان لابد من الحديث عن الـsyntax: يا تلميذتي، ما بين علامات التنصيص هو نص يؤخذ كما هو، أما الذي لا يأخذ علامات تنصيص فهو اسم متغير. ما معنى اسم متغير؟ المتغيرات هي ما رأيتيه.
ماذا يفعل امر '=' ؟ لو قلت س = 12 فإنه يصنع متغير اسمه س والقيمه بداخله 12.
وهل هناك طريقة اخرى لصنع متغير؟ أمر اقرأ! انه يأتي في صورة كلمة اقرأ يليها اسم متغير، ولو اردت قراءة ارقام لابد من علامة # قبل اسم المتغير.
ولكن ماذا يقرأ؟ انه ينتظر أن يكتب المستخدم له شيئاً، وحين اضغط enter يعلم انني قد انتهيت من الكتابة، فيقرأ ما كتبته له.
ثم انه يصنع متغيراً، اسمه هو نفس اسم المتغير بعد كلمة اقرأ (هذا الجزء مهم التركيز عليه)، والقيمة بداخله هو الرقم المقروء.
جربت ان اريها صنع المتغيرات اثناء تنفيذ البرنامج، عن طريق المراقب العجيب، لكن لم يظهر المتغير لسبب ما. كانت نسخة كلمات بها خطأ :(
الآن ماذا نفعل بالمتغيرات؟؟ سوف نكتب برنامجاً يأخذ رقماً ويعرضه على الشاشة مجموعاً عليه 10. لكني اكتشفت انني لم اشرح فكرة المتغير، بل قد شرحت نصفها! إن نصف المتغير هو التخزين، بينما النصف الآخر هو الاسترجاع.
كنت دائماً، حتى وانا معيد بالكلية، اشرح القراءة من المتغير عن طريق مفهوم lookup، أي ان مفسر اللغة يبحث في الذاكرة حتى يجد القيمة ثم يحلها محل المتغير. هذه المرة قررت استخدام مفهوم آخر هو "substitution". إن الفرق بين الاثنين قد يبدو طفيفاً، لكن الامر ليس كذلك.
في الجمل التي تحتوي اسماء، استطيع ان اقول نفس الجملة بالمسمى مكان الاسم. يعني لو قلت "اذهب لجارك واضربه" وكان الجار اسمه شفيق، فكأنني بالضبط قلت "اذهب لشفيق واضربه". حتى الاسم ليس هو نفسه الشيء المسمى، إن اسمي محمد، لكن الاسم ليس هو "أنا"...انا شخص له عقل وجسم وذكريات و...و...، والاسم مجرد وسيلة للدلالة على شخصي (نعم، أنا اناقش الفلسفة مع الاطفال؛ لماذا تسأل؟؟).
...وهكذا يا تلميذتي، لو قلت س + 10، وكان المتغير س يحتوي بداخله القيمة 8، فكأني قلت بالضبط 8 + 10
والآن هل مفهوم هذا البرنامج؟
اقرأ # س
اطبع س + 10
هيا ننفذه!
هل يمكن ان تشرحي لي كل خطوة، ماذا يحدث بالضبط؟
(ملاحظة: كنت قد مللت رسم أيدي ووجه واقدام المتغيرات، فصرت ارسم "السلة" فقط...نحن هكذا نتجه تدريجياً من التصوير إلى التجريد. هذا ليس شيئاً خطأ! المهم هنا هو "تدريجياً").
الآن لو علمنا ان امر اطبع يمكنه ان يطبع اكثر من شيء لو فصلنا بينهم بفاصلة، اطبع _______ ، ________
...فهل يمكن ان تكتبي برنامج يكتب "عندك كم سنة"؟
ثم ينتظر حتى ادخل له سني
ثم يقول: العام القادم سيكون لديك <السن الصحيح>
كتبت امر اطبع، ثم حين بدأت تكتب امر اقرأ سألت "أنا اقدر اسميه اي اسم صح؟".
بعد تصحيح بعض اخطاء الsyntax، تم تنفيذ البرنامج، ثم طلبت ان تشرحه لي (صرت مصرّاً على هذا حين اعلم احد).
البرنامج الثالث كان يشبه الأول: اقرأ رقم واطبعه مضروباً في 2، وكان بلا اخطاء.
اشعر ان هذه المرة كانت مثمرة.
السبت، 5 مايو 2012
التجريد والثلاجات المتحركة
أحياناً انسى الصورة الكلية وافكر في الجزئيات..
انت تنام فترة "محترمة" كل يوم، يشترك معك في هذا ابنك، وعدوك، وسيادة المشير، والثائر، والجندي الذي يضربه. الكل في النهاية يطفيء وعيه ويفعل جسده شيئاً ما..ثم يعيد تشغيل نفسه ويواصل ما كان يفعله.
يضخ قلبك الدم فيدور عبر الجسم كله ثم يعود اليه مرة اخرى، يشبه الامر الـcompressor في الثلاجة الذي يدفع دورة الفريون. فأحياناً ارى جمعاً من الناس، كلهم ثلاجات صغيرة تمشي وتفكر وتتحرك.
او تلك الطفلة الجميلة. احياناً لا اقدر ان اتجاهل ان تحت الوجه عضلات، وتحت العضلات جمجمة، وشبكة من الشرايين والاشياء الاخرى التي لا افهمها. هل لا تزال جميلة بعد ان ادركت كل هذا؟
ماذا عن المخ؟ لماذا يتفوق الكمبيوتر على المخ في العمليات الحسابية، لكن المخ يسحق الكمبيوتر في عمليات اخرى مثل الرؤية، التمييز بين الاصوات، الجري، فهم اللغة الطبيعية؟ إن خوارزمية الرؤية بالحاسب تفرق بين صورة الكلب والقطة بالعافية، بينما لا يشعر الطفل بمجهود اصلاً وهو يفرق بينهما..
السبب هو التوازي: بالمخ عدد مهول من الخلايا العصبية، والذكريات والمعلومات مخزنة في الوصلات بين هذه الخلايا، وحين ترى عيناك القطة، فإنها تسأل كل الخلايا المطلوبة مرة واحدة..
- تسأل الخلايا التي تخزن الـconcept الخاص بالقطط: هل هذه الصورة عندك؟
- تسأل الخلايا التي تخزن الـconcept الخاص بالكلاب: هل هذه الصورة عندك؟
تسأل الخلايا التي تخزن الـconcept الخاص بالورود: هل هذه الصورة عندك؟
- تسأل الخلايا التي تخزن كل شخص تعرفه: هل هذه الصورة عندك؟
وكل هذه الخلايا تعمل في نفس الوقت، حتى يأتي الرد.
هذه الطريقة - التوازي المهول - هي أيضاً ما يعمل به جوجل: انه يسأل مئات الآلاف من اجهزة الكمبيوتر في نفس الوقت، ان تأتي بنتيجة البحث هذه.
وهكذا قد يأتي يوم امشي فيه في الحديقة، وارى تلك الطفلة التي تقفز الحبل وحولها اسرتها، وانسى الخدعة المسماه "التجريد". التجريد الذي يجعلني اتجاهل ان هذه الطفلة بها مضخة كالثلاجة، وشبكة عصبية دقيقة مهولة التوازي مثل جوجل، ومن وراء وجهها عضلات وجمجمة، مكونة من خلايا، مكونة من بروتينات، مكونة من ذرات، هذه الذرات تعمل بطرق عجيبة لم نبدأ اصلاً في فهمها..كوانتم وكوارك وما يشبه الحواديت الخيالية. التجريد يجعل المرء يعيش في راحة.
ونحن نظن ان العالم بسييييط ، بسييييط....
Labels:
abstraction,
philosophy,
science
الجمعة، 4 مايو 2012
ادعم مرشحك، معركة الانتخابات مازالت قائمة
هناك فكرة تنتشر بين الثوريين هذه الايام انه لا ينبغي التركيز في الانتخابات حالياً، وان يكون التركيز الوحيد على رحيل العسكر بالمظاهرات وما شابه.
يأتي هذا الامر في عدة صور:
لابد من عدم التوقف عن دعم مرشحك الثوري. لابد من سير معركة الانتخابات وعدم تركها. قبل ان تتهمني بخيانة الثورة او ما شابه اقول: انزل مظاهرات واعتصامات زي ما انت عاوز، لكن لا تتوقف عن المعركة الانتخابية.
اياك ان تظن ان ما يحدث الآن من مسيرات ضمان لأن يزول حكم العسكر. لقد كانت احداث محمد محمود بيننا منذ قريب، مات من مات، وسحل من سحل، وكان لها جرساً إعلامياً اكبر واعنف، لم تؤد سوى لقدوم الجنزوري واعلان موعد انتخابات. لكن لم يرحل العسكر.
هل تظن الرأي العام قد تغير فجأة وصار مع الثوار او المعتصمين؟ هل تظن الملايين سيأتوا يعتصمون معك مثلما حدث ايام مبارك؟ هل تظن أن القوى الثورية نفسها موحدة محكمة التماسك؟ الم نجرب هذا ايام ثورة يناير 2012، وايام العصيان المدني؟
اتهمني بما تشاء من اتهامات انني اريد تثبيط الهمم والعزائم، لكني على الاقل لن اتهم نفسي بتصديق الاوهام. انا لا اثبط أم الهمم: الكل ينزل يشارك في الاعتصامات مش دي المشكلة، المشكلة في توهم ان هذا كاف يغني عن المعارك الانتخابية
لا داع لفرض رؤيتك الخاصة وتجاهل الماضي او النظريات السياسية: نعم، لو سلم العسكر السلطة فلن يكون تسليماً كاملاً او حقيقياً. سيحاولون الاستحواذ عليها حتى في وجود رئيس ثوري...ولكن هذا طبيعي! في دول كثيرة تخلصت من الحكم العسكري كان هناك نزاع بين رئيس وطني وعسكر يحكم.
في تركيا كان اردوغان/جول رؤساء دولة واقعة في شرك العسكر، لكنهم نجحوا عبر مزيج من الاصلاح السياسي والنهضة الاقتصادية ان يجمعو الشعب في صفهم. تخيل رئيس وطني تمكن في بضع سنوات من اغراق البلد بالوظائف وخفض الاسعار و...و...هل سيظل الشعب يقف مع العسكر كما يفعل الآن؟ هل سيظل يشتم في الثورة؟ ومع من سيقف الشعب وقتها في حالة نزاع على السلطة بين الرئيس الوطني والعسكر؟ سيقف مع الذي يخفض سعر كيلو الطماطم، هذه نظرية سياسية علمية.
وليست النهضة هي السبيل الوحيد لتفكيك الدولة العميقة . هذه ليست اول مرة يأتي رئيس ليجد نفسه في مواجهة مراكز قوى. لقد كان السادات في نفس الموقف مع القوى القديمة وقام بثورة التصحيح ليفككها. او تجارب كثيرة في امريكا الجنوبية (البرازيل كانت تحت حكم عسكري وخرجت)، تجربة تركيا كما قلنا. هناك دول كثيرة جداً مرت بهذا، ان الامر ليس بدعة، والمرشحين الوطنيين ليسوا بهذه السذاجة. ماذا تتوقع: ان يكشفوا كل خططهم عن تفكيك الدولة بينما العسكر مازال يحكم؟
لي اعتراضات كثيرة على الاخوان وقراراتهم، لكن اعترف انهم بحق براجماتيين. مهما كانت الاحداث تدور فهم يعرفون كيف يهتمون بالانتخابات والدعاية والحملات. هذا ليس طمعاً او انانية كما يقال، بل هذا لأنهم ببساطة ينظرون نحو النتائج. هل اترك المناصب للفلول لأن مجلس الشعب مقيد الصلاحيات أو الرئيس مقيد الصلاحيات أو..أو؟
هل انا عديم الاحساس حين انظر للانتخابات والناس يموتون في الشوارع؟ سأكون عديم الاحساس اكثر وانا اترك القتلة يحكمون حكما منتخباً، لكي يشرعوا المزيد من القتل ويردون على كل من يعترض: لقد أتيت بالديموقراطية! اتعترض على رئيس منتخب ديموقراطياً؟؟ انت عدو الديموقراطية!
تخيل الحال لو كان الرئيس عمرو موسى او احمد شفيق: سوف يكون الاصلاح اصعب بكثيييييييييير. مهما قيل عن الدولة العميقة فإنه من المنطقي جداً ان تحقيق حرية حقيقية اسهل بمراحل في وجود رئيس ثوري عن وجود رئيس غير ثوري.
الامر لا يحتاج كثير من الكلام: من يعرض عن المساهمة في السباق الرئاسي ويقلل من اهميته يرضى برئاسة الفلول. هكذا ببساطة.
حتى لو كنت واثقا ان العسكر سيرحل قبل موعد الانتخابات فلماذا لم تحضّر الخطة "ب"؟ ان العسكر لديه عشر خطط احتياطية، ولكل خطة احتياطية خطط احتياطية، ويحاول اللعب في الملاعب القانونية والانتخابات والاعلام والصفقات والبلطجية و...و...فلماذا نركز نحن كل قوانا على خطة واحدة، ثم نقول على مرشحي الرئاسة سذج؟
يأتي هذا الامر في عدة صور:
- التساؤل على غرار: انتوا فاكرين انه بعد ده كله عاوز يسيب السلطة اصلاً؟
- نشر فكرة ان الرئيس الجديد لن يكون له صلاحيات لأن الحكومة/المحافظات/الحرس الجمهوري...الخ من العسكر وان كل مرشحي الرئاسة طيبين لكن سذج لأنهم يظنوا غير ذلك.
- الشعور ان الأمر هذه المرة مختلف، والبعض يلمح انه يريدها ثورة غير سلمية.
لابد من عدم التوقف عن دعم مرشحك الثوري. لابد من سير معركة الانتخابات وعدم تركها. قبل ان تتهمني بخيانة الثورة او ما شابه اقول: انزل مظاهرات واعتصامات زي ما انت عاوز، لكن لا تتوقف عن المعركة الانتخابية.
اولا
هل تظن الرأي العام قد تغير فجأة وصار مع الثوار او المعتصمين؟ هل تظن الملايين سيأتوا يعتصمون معك مثلما حدث ايام مبارك؟ هل تظن أن القوى الثورية نفسها موحدة محكمة التماسك؟ الم نجرب هذا ايام ثورة يناير 2012، وايام العصيان المدني؟
اتهمني بما تشاء من اتهامات انني اريد تثبيط الهمم والعزائم، لكني على الاقل لن اتهم نفسي بتصديق الاوهام. انا لا اثبط أم الهمم: الكل ينزل يشارك في الاعتصامات مش دي المشكلة، المشكلة في توهم ان هذا كاف يغني عن المعارك الانتخابية
ثانياً
في تركيا كان اردوغان/جول رؤساء دولة واقعة في شرك العسكر، لكنهم نجحوا عبر مزيج من الاصلاح السياسي والنهضة الاقتصادية ان يجمعو الشعب في صفهم. تخيل رئيس وطني تمكن في بضع سنوات من اغراق البلد بالوظائف وخفض الاسعار و...و...هل سيظل الشعب يقف مع العسكر كما يفعل الآن؟ هل سيظل يشتم في الثورة؟ ومع من سيقف الشعب وقتها في حالة نزاع على السلطة بين الرئيس الوطني والعسكر؟ سيقف مع الذي يخفض سعر كيلو الطماطم، هذه نظرية سياسية علمية.
تالثاً
لي اعتراضات كثيرة على الاخوان وقراراتهم، لكن اعترف انهم بحق براجماتيين. مهما كانت الاحداث تدور فهم يعرفون كيف يهتمون بالانتخابات والدعاية والحملات. هذا ليس طمعاً او انانية كما يقال، بل هذا لأنهم ببساطة ينظرون نحو النتائج. هل اترك المناصب للفلول لأن مجلس الشعب مقيد الصلاحيات أو الرئيس مقيد الصلاحيات أو..أو؟
هل انا عديم الاحساس حين انظر للانتخابات والناس يموتون في الشوارع؟ سأكون عديم الاحساس اكثر وانا اترك القتلة يحكمون حكما منتخباً، لكي يشرعوا المزيد من القتل ويردون على كل من يعترض: لقد أتيت بالديموقراطية! اتعترض على رئيس منتخب ديموقراطياً؟؟ انت عدو الديموقراطية!
رابعاً
الامر لا يحتاج كثير من الكلام: من يعرض عن المساهمة في السباق الرئاسي ويقلل من اهميته يرضى برئاسة الفلول. هكذا ببساطة.
حتى لو كنت واثقا ان العسكر سيرحل قبل موعد الانتخابات فلماذا لم تحضّر الخطة "ب"؟ ان العسكر لديه عشر خطط احتياطية، ولكل خطة احتياطية خطط احتياطية، ويحاول اللعب في الملاعب القانونية والانتخابات والاعلام والصفقات والبلطجية و...و...فلماذا نركز نحن كل قوانا على خطة واحدة، ثم نقول على مرشحي الرئاسة سذج؟
الخميس، 3 مايو 2012
سنوات قطر 4 - اختراعات
لم اتأثر في حياتي بشخصية مثل عبقرينو...
انظر كيف اخترع حزاماً طائراً.. ثم ماذا؟ هل استخرج براءة اختراع؟ هل عرضه في مؤتمر؟ لا، بل استخدمه لجمع اللوز من الأشجار. إن العلم بالنسبه له شيء عادي جداً، علم casual، هو يخترع مثلما نحتسي نحن المياة الغازية.
ثم انه ليس مثلاً باحث في شركة، وليس استاذ جامعة، إنه مخترع. بهذه البساطة! يعيش في بيت هو في نفس الوقت ورشة، ويخترع.
وكانت هناك برامج ثقافية في قطر. برنامج اسمه 01 عن الكمبيوتر، وبرنامج اسمه "سلامتك" عن الصحة، وسلسلة رسوم متحركة عن عمل الجسم لا اذكر اسمها..اعتقد "سر الحياة" أو "هذه هي الحياة" يبدأ بوصف جهاز معين في الجسم البشري وينتهي دائماً بمعركة بين كرات الدم البيضاء والمرض..من اغنية المقدمة:
كرات دمنا الحمراء، والبيضاء، موجودة هنا!
(جملة لا اذكرها) وتصنع الحياة!
نمضي لها إذاً، في رحلة عجيبة،
لنكشف معاً، اسرارها الغريبة،
ونعرف الحياة!
هذه هي الحياة! هذه هي الحياة!
(جملة لا اذكرها) وتصنع الحياة!
نمضي لها إذاً، في رحلة عجيبة،
لنكشف معاً، اسرارها الغريبة،
ونعرف الحياة!
هذه هي الحياة! هذه هي الحياة!
برامج كثيرة من هذا النوع. برنامج المناهل حيث البطل الخارق ابو الحروف: اقوى من الشدة! اطول من المدة! احد من السين! اهدأ من السكون! أسرع من لمح العين!
وكان هناك برنامجاً اجنبياً مترجماً عن الإدارة. شاهدت منه اول حلقة ثم عدنا إلى مصر. هل رأيت طفلاً يحزن لأنه قد فاته برنامج عن الإدارة؟
او الكتب..كتب سلسلة Usborne الانجليزية في المدرسة، ونفس الكتب مترجمة في المكتبات. هذه صفحة من كتاب "جسمك كيف يعمل"، هناك الآن الكثيرين في مصر يقولون انهم سيطورون العلم، ويأتون بمصممي الرسوم، ومصممي الفيديو، يأتون بفوتوشوباتهم واونلايناتهم، ثم في النهاية لا يحملون شمعة لمثل هذا الكتاب المصنوع في الثمانينات، بالطريقة القديمة على الورق. تأمل:
وفي تلك الفترة كان أيضاً أفلام الرسوم المتحركة المبنية على الخيال العلمي. تعرفون طبعاً جرندايزر الآلي العملاق. كان دائماً يحيرني: كيف كان الدوق فليد يقوده؟ ان كابينة القيادة في جرندايزر تبدو هكذا:
ولكن الآلي نفسه كان يمشي ويجري ويقفز ويضرب ويقاتل بما يشبه السيف...كيف يتحكم الدوق فليد فيه ليفعل كل هذا؟
البعض يقول انه كارتون ويسكت. البعض يسخر من الموضوع. والبعض يأتي بالمكتب الذي (من المفترض أن) يذاكر عليه، ويضع المسطرة والمقلمة كأنها روافع، والبراية والممحاة وشريط الاسبرين كأنه ازرار، ويحاول ان *يجد* وسيلة لقيادة جرندايزر.
أليس موضوع رسالة ماجستير ظريفة في علم الـhuman computer interaction؟ حين كبرت فكرت في ثلاثة طرق:
- شيء مثل بذلة الـmotion capture التي يستخدمونها في الافلام ثلاثية الابعاد، مغمورا في حوض ماء (ملاحظة: فكرة حوض الماء اخذتها من قصة لسوبرمان).
- جهاز رسم مخ EEG متطور بحيث يتحكم الشخص في الآلي كأنما يتحكم في جسمه.
- حركة بغير حرية تامة، بل مجموعة حركات جاهزة وزر لكل منها. حركة "معلبة".
عندما كبرت ورأيت الرسوم المتحركة في صورتها اليابانية، اكتشفت شيئاً لم اعرفه عن جرندايزر لأنه لم يكن واضحاً في النسخة العربية:
نعم سيدي! انها شاشة touchscreen شفافة! لا نستطيع ان نطلق عليها بالضبط augmented reality لكن...في تلك اللحظة فهمت العلاقة بين العلم والخيال. ربما يحتاج هذا الجيل افلام رسوم متحركة خاصة به، ليحلم احلاما جديدة.
ربما يكون المحور الاساسي لأفكاري، خطة النهضة، التفكير الحوسبي، مجالس العلم، الخ...هي تلك الفكرة التي أثرت في منذ الطفولة: العلم الـcasual. الاختراع. نحن الآن في مجتمع كلما اخترع احد شيئاً وجدت الناس (ما لم يتجاهلوه) يتصرفون كأنه فعل شيئاً لا يصدق، ويتساءلون عن عدم دعم المجتمع له، ويدعونه للحديث في المؤتمرات. ربما تأتي لحظة يكون الاختراع شيئاً عادياً يقوم به المجتمع كله اطفالاً وكباراً.
والاختراع ليس فقط ان تخترع تلسكوب او راديو. ماذا عن انواع جديدة من الشركات؟ انواع جديدة من العلم السياسي؟ انواع جديدة من الجامعات؟ انواع جديدة من الخوارزميات؟ انواع جديدة من طرق حكي القصص؟
او المبرمجون: ماذا لو توقفتم عن السخرية من المجتمع ومن نظام التعليم ومن ومن...وتذكرتم من انتم؟ الستم تقولون على انفسكم problem solvers؟ لماذا لا تفكرون في طرق عبقرية لحل كل المشاكل التي ترونها، بدلا من النقد حين تفشل الطرق القديمة التقليدية؟
Labels:
education,
inventions,
memories,
nahda,
society
الاشتراك في:
الرسائل (Atom)