المتابعون للمدونة

الاثنين، 16 ديسمبر 2024

سلسلة الطفل المبرمج


بالنسبة لي، لغة Small Visual Basic هي أهم إنجازاتي بحمد الله.. أهدف بها إلى تعليم البرمجة للأطفال من المرحلة الابتدائية، ورفع مستواهم في الرياضيات والعلوم والتفكير المنطقي وتطوير التعليم بالتبعية.
كما أنها بوابة سهلة لتعلم فيجوال بيزيك دوت نت وسي شارب، ففي ظل هيمنة بايثون على مؤسسات التعليم حاليا، هناك خطورة على مستقبل منصة دوت نت مع قلة من يتعلمونها من الأجيال الجديدة.
* سمول فيجوال بيزيك هي حصيلة 4 سنوات من العمل لتطوير مترجم كود سمول بيزيك وأدواته إلى سمول فيجوال بيزيك وإضافة مصمم النماذج ومكتبة صغيرة لنماذج الويندوز.. الكود بالكامل منشور على GitHub.
* برنامج الإعداد مجاني وخفيف ومرفق به أكثر من 160 مثالا شيقا تغطي كل مناحي اللغة.
* سلسلة دروس مبسطة لتعليم البرمجة للأطفال والمبتدئين في قناة سمول فيجوال بيزيك على يوتيوب.. حوالي 80 فيديو حتى الآن والبقية تترى.
أكثر من 8 شهور لكتابة وتطوير المرجع الإنجليزي الكامل للغة (أكثر من 860 صفحة حتى الآن).. يمكنكم تصفحه على جوجل درايف، كما أني يأتي مع برنامج إعداد اللغة أيضا.
* ثلاثة كتب إنجليزية حتى الآن (والرابع على بداية العام الجديد بإذن الله) ضمن سلسلة sVB Kid Programmer لتعليم اللغة والبرمجة والرياضيات للأطفال من سن 6 سنوات بالتوازي مع مناهج الدراسة، بأبسط أسلوب ومحتوى ممكن.

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


 

sVB is easier than Python!



 أقولها بكل جرأة: لقد جعلت لغة Small Visual Basic أسهل من Python للأطفال والمراهقين!

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

1.   فهي تتميز بنفس بساطة لغة Microsoft Small Basic من حيث سهولة أوامر اللغة وروعة نافذة الرسوم والسلحفاة، ولكني أصلحت عيوب Small Basic التي لا تحتوي على نطاق للمتغيرات Variable Domains، ولا دوال Functions، ولا معاملات للإجراءات Subroutine parameters، ولا كائنات Objects.. لغة سمول فيجوال بيزيك تحتوي على كل هذا بجانب تحسينات إضافية لنافذة الرسوم والسلحفاة.

2.   كما أن لغة سمول فيجوال بيزيك لغة عصرية مثل VB .NET، وتستخدم بعض الصياغة الخاصة بها مثل واضع القيم المبدئية للمصفوفة Array Initializer، ويستفيد من أنماط التنسيق Styles الخاصة بلغة توصيف التطبيق XAML. لكن برغم هذا تظل سمول فيجوال بيزيك بنفس سهولة لغة Visual Basic الكلاسيكية، فهي تستخدم نفس مصمم النماذج Form Designer ونفس الآلية البسيطة لمعالجة الأحداث Event Handling.

 

لكن لماذا يمكن أن يفضل أحد سمول فيجوال بيزيك بدلاً من بايثون، وهي الأكثر شهرة وشيوعًا في الوقت الحالي؟ فلنرَ بعض الأسباب:

1.   بايثون هي لغة شاملة لمختلف الأغراض، بينما سمول فيجوال بيزيك مخصصة فقط لتطبيقات سطح المكتب وللأغراض التعليمية، ما يجعلها تركز كل طافتها على هذا الغرض لتقيدم البرمجة بأبسط صورة للطفل.. لكن هذا لا يعني أن سمول فيجوال بيزيك ليس لها مستقبل، أو أنها مجرد لعبة مسلية، فهي أسهل بوابة للعبور إلى منصة تطوير برمجية شائعة وقوية هي DotNET، وبتعلمها تكون على بعد حطوة واحدة من بيئة VS .NET. فمن السهل استخدام فهمك لأكواد سمول فيجوال بيزيك ومكتبتها ومصمم النماذج، وحتى خبراتك مع محرر الكود للانتقال إلى لغة VB .NET (وفيما بعد إلى لغة سي شارب إذا أردت).

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

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

 

2.   تنتمي كل من بايثون وسمول فيجوال بيزيك إلى اللغات مرنة النوع Dynamically typed، لكن سمول فيجوال بيزيك أسهل في هذا الجانب، لأنها لا يتطلب عمليات تحويل بين الأنواع كما في بايثون .

 

3.   بايثون حساسة لحالة الأحرف (ومن المدهش أن كلا من الكلمتين True وFalse تبدأ بحرف كبير في بايثون)، بينما سمول فيجوال بيزيك غير حساسة لحالة الأحرف، ومحرر الكود يضمن إعادة حروف الكلمات إلى حالتها الأصلية، وهذا يجعل تعلمها أسهل وكتابتها الكود بها أسرع.

 

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

 

5.   في كلتا اللغتين تتعامل الدوال المثلثية مع الزوايا بالتقدير الدائري Radian. لكن الطفل يستطيع في سمول فيجوال بيزيك تعطيل هذا السلوك لاستخدام التقدير الستيني Degrees باستخدام هذا الأمر:

Math.UseRadianAngles = False

 

6.   حلقات التكرار For loops في بايثون قد تكون مربكة بسبب عدم دخول نهاية النطاق في الاعتبار.. هذا مثلا كود بايثون الذي يطبع الأعداد عكسيا من 5 إلى 1:

for i in range(5, 0, -1):

    print(i)

بينما حلقات التكرار في سمول فيجوال بيزيك بسيطة جدا ويسهل فهمعا بمجرد النظر:

For i = 5 To 1 Step -1

    TW.WriteLine(i(

Next

7.   استخدام بايثون للمسافات البادئة لتمييز مقاطع الكود Code blooks مربك جدا للأطفال، ويجعل مقاطع الكود المتداخلة أصعب في الفهم وأكثر عرضة للأخطاء بسبب إمكانية الخطأ في عد المسافات، بينما تستخدم سمول فيجوال بيزيك كلمات أساسية لتمييز نهاية كل مقطع مثل EndIf، EndSub، وNext، ما يجعل الكود أوضح وأكثر تنظيما.. وضيق محرر الكود تلقائيًا كلمة نهاية المقطع أثناء كتابة بدايته، كما أنه يضبط المسافات البادئة للمقاطع وينسق حالة الأحرف للكلمات ويضبط المسافات بينها.. بل إنه يفرض أيضا قاعدة تسمية المتغيرات: فالمتغيرات الموضعية والمعاملات تبدأ بحروف صغيرة، بينما المتغيرات العامة والإجراءات والدوال تبدأ بحروف كبيرة.. كل هذا يضبطه محرر الكود بدون تدخل من الطفل على الإطلاق، لذا، لتسمح له سموال فيجوال بيزيك بأن يركز على منطق الكود الذي يكتبه، وليس على شكله وتنسيقه!

 

8.   وبشكل عام، فإن بيئة التطوير المتكاملة IDE الخاصة بلغة سمول فيجوال بيزيك اسهل وأقوي من فإن بيئة التطوير المتكاملة الرسمية التي تأتي مع بايثون.

 

ولأثبت كل هذا عمليا، بدأت نشرت على أمازون حتى الآن 3 كتب باللغة الإنجليزية من سلسلة كتب المبرمج الطفل بلغة سمول فيجوال بيزيك:

sVB kid Programmer

هذه الكتب تستهدف تلاميذ الصفوف الدراسية من أولى ابتدائي إلى 6 ابتدائي، وستستمر السلسلة بإذن الله باسم مختلف للمرحلتين الإعدادية والثانوية.

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

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

لا تنسوني من دعواتكم وتشجيعكم.

 

الكتاب الثالث من سلسلة المبرمج الطفل


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

ماذا؟.. لا لا لا.. أقصد: كتاب مرحبا بالسلحفاة Hi Turtle لطلبة الصف الثالث الابتدائي!

ما هذه اللخبطة؟.. لحظة حتى نفهم:

لو شئت، يمكنك اعتباره كتابا في الهندسة المستوية Geometry، لكنه متنكر في ثوب كتاب برمجي، لكي لا يبدو مخيفا!

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

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

ولكن لماذا السلحفاة؟

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

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

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

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

والحقيقة أنني كنت أحتاج لتأسيس هذه الأرضية، فمن خلال تعاملي مع الطلبة من سن 10 إلى 16 في دورات البرمجة، رأيتهم يعانون مع أمثلة التحريك Animation والألعاب البسيطة الشيقة التي حاولت شرحها لهم، لأنهم عاجزون عن تخيل النظام الإحداثي عمليا رغم دراستهم له، وهكذا كان مجرد تحريك كرة أو سيارة على الشاشة يبدو أمرا معقدا جدا بالنسبة لهم، خاصة عند وصول الشكل إلى حافة النافذة وارتداده عنها أو اصطدامه بشكل آخر!.. مع أني كنت أمهد تصاعديا  لهذه النقطة عبر حصص كثيرة، لكن يظل أغلب الطلبة عاجزين عن الاستيعاب، لأن الرياضيات بالنسبة لهم أمر نظري تماما متعلق بمعلومات توضع في ورقة الامتحان ولا علاقة لها بالواقع، وبالتالي عقولهم غير مدربة على استيعابها وتطبيقها خارج الورقة بشكل آخر غير ما حفظوه.

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

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

ولن أيأس أبدا من انتظار اليوم الذي يقرر فيه أصدقائي مدرسو الرياضيات والحاسب الآلي تعلم البرمجة، للخروج من صندوق المدرسة، وتقديم مثل هذا المحتوى لتلاميذهم في الدروس الخصوصية، بدلا من استمرار طاحونة التلخيص والحفظ والتسميع ولم درجات مجوفة من الفائدة.. هذه الطاحونة التي صدعتنا جعجعتها بدون طحين!

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

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

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

وقد نشرت حتى الآن بحمد الله ثلاثة كتب في سلسلة "الطفل المبرمج بلغة سمول فيجوال بيزيك":

Small Visual Basic Kid Programmer

وهي سلسلة أكتبها لتعليم البرمجة للأطفال باللغة الإنجليزية، أما الأطفال العرب فقد خصصت لهم قناة على يوتيوب، نشرت فيها حاليا حوالي 80 فيديو (بمتوسط 10 دقائق) وما زلت أواصل النشر.. وبإذن الله سأقدم الكتب العربية يوما ما، حينما تختمر التجربة وتتوفر الظروف الملائمة.. فللأسف ما زلت أعاني من التهميش والتجاهل على جميع المستويات!

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

هذه ترجمة لمقدمة الكتاب:

لغة Small Visual Basic هي لغة تعليمية سهلة وممتعة، ويهدف هذا الكتاب إلى إثبات هذا باستخدام رسوم السلحفاة Turtle Graphics لتقديم محتوى هندسي بسيط وغني لطلاب الصف الثالث الابتدائي ومن هم أكبر.

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

 

كما يقدم الكتاب بعض المهارات البرمجية الجديدة مثل:

·      تغيير الألوان من خلال الكود.

·      تعريف الإجراءات الفرعية subroutines والمعاملات parameters.

·      استدعاء الإجراءات الفرعية وتمرير القيم إليها.

·      استخدام حلقات التكرار Loops لتكرار تنفيذ الأكواد.

 

وعلاوة على ذلك، يهدف الكتاب إلى تعزيز مهارات الطلاب في الرياضيات من خلال:

·      تقديم بعض أساسيات الهندسة المستوية، مثل حساب المحيط والمساحة للمربعات والمستطيلات والدوائر.

·      فهم أولويات العمليات الحسابية.

·      تقديم الخصائص الأساسية لبعض المضلعات، مثل المثلثات والأشكال الرباعية بأنواعها المختلفة.

·      رسم أكثر من 20 شكلاً هندسياً مختلفاً بتحريك وتدوير السلحفاة فقط، دون الحاجة إلى أي حسابات مثلثية.

·      توليد أرقام وألوان عشوائية، واستخدامها في تطبيقات ممتعة.

·      تقريب الأعداد العشرية.

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

 

بالرغم من صغر حجم هذا الكتاب (103 صفحة)، هناك الكثير من المتعة التي سيجعلك تعيشها في صحبة السلحفاة، والكثير من المعرفة الهندسية التي سيضيفها إليك.

فماذا تنتظر؟

السبت، 30 نوفمبر 2024

الكتاب الثاني على أمازون



 بفضل الله، نشرت للتو على أمازون الكتاب الثاني من سلسلة الطفل المبرمج

Small Visual Basic Kid Programmer Level 2

وهي سلسلة أكتبها باللغة الإنجليزية، لتعليم البرمجة للأطفال غير العرب بلغة سموال فيجوال بيزيك.. أما الأطفال العرب فيعلم من يتابعني أني أنشأت لهم قناة يوتيوب أشرح لهم فيها هذه اللغة.

هذا الكتاب بعنوان: قوة المتغيرات:

The power of variables

وهو كتاب قصير وسهل وممتع (70 صفحة فقط مقاس B5).

وقد اخترت محتويات هذا الكتاب بعناية فائقة لتناسب الأطفال الذين تبلغ أعمارهم 7 سنوات فما فوق.

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

استخدام المتغيرات لتخزين وقراءة البيانات،

استدعاء الوسائل Methods وتمرير المعاملات إليها وقراءة القيم العائدة منها،

واستخدام المؤقت Timer للقيام بأشياء بسيطة ومثيرة.

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

لهذا السبب أخذت وقتي بعد نشر الكتاب الأول في شهر فبراير الماضي، وخلال الأشهر الماضية، تفاعلت مع الأطفال في الدورات الصيفية، وجهزت أمثلة مناسبة، وطورت لغة Small Visual Basic نفسها لتكون أكثر كفاءة وقوة، لتسهل عليّ كتابة هذه الكتب.

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

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

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

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

كل هذه الاعتبارات دفعتني لأن ألتزم في الكتاب بهاتين القاعدتين:

1.   يجب أن يتجنب الكتاب استخدام الرياضيات باستثناء العمليات الحسابية الأساسية.

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

وأعتقد أنني تمكنت من فعل ذلك بحمد الله!

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

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

بالنسبة لي، عشت مع هذا الكتاب مغامرة مثيرة، وآمل أن تستمتع به أنت أيضا، وأن تجده مفيدًا.

 

غر جمالك


 

الأربعاء، 9 أكتوبر 2024

دورات برمجة لطلبة الجامعة

 بدء الحجز لدورات بايثون Python وسي شارب C# وسي بلس بلس C++ لمنهج مقدمة البرمجة لطلبة الجامعات (حاسبات، ذكاء صناعي، علوم حاسب، تكنولوجيا معلومات، هندسة، علوم، تربية حاسب آلي... إلخ)

متاح دورات أونلاين، ودورات وجها لوجه في دمياط

الدورة 8 ساعات (4 حصص في الشهر) ب 400 جنيه فقط شهريا، وتستمر 3 أشهر


الأربعاء، 11 سبتمبر 2024

الحب المحال

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



 

الخميس، 1 أغسطس 2024

حكماء هذا الزمان

 حكماء هذا الزمان!


أنَّى تخاطرُ والتأنّي مَربَحَةْ؟ .. هذا التهورُ كالمسيرِ لمذبحةْ
الأرضُ مَقبرةُ الشهيدِ، ومن يُرِدْ عزَّ القصورِ فهل يرومُ الأضرحةْ؟
مَن هؤلاءِ المُغرمونَ بمجدِهمْ، نذروا إلى اللهِ الرءوسَ كمِسبحةْ؟
حَسِبوا إذا هجمَ العدوِّ تَصدُّهُ فئةٌ بإيمانِ القلوبِ مُسلَّحةْ؟
أفلمْ يروا أقوى الجيوشِ أمامَهمْ؟.. ظنوا يَدوسونَ الحشودَ الكاسحةْ؟!
ضدَّ المدافعِ والدروعِ صدورُهمْ، وحلوقُهم بـ "اللهُ أكبرُ" صادحةْ
والطائراتُ تئزُّ غَضبَى فوقَهُم تَهوِي عليهم كالنسورِ الجارحةْ
ما بالهم؟.. باللهِ أينَ عقولُهم؟.. هل عاقلٌ يرجو خسائرَ فادحةْ؟
ضحوا بكلِّ بيوتِهم، وعيالِهم، ويُقدّمونَ الروحَ دونَ مُراوَحةْ
فَلْيَسطُرِ التاريخُ ما يحلو لهم.. ماذا يُفيدُ لَمَيّتٍ أن يَمدَحَهْ؟
ما العمرُ إلا أن تعيشَ زمانَهُ، ما الضيرُ حينا أن تُذَلَّ لِتَربَحَهْ
فدعِ الرجالَ الحالمينَ إذا ارتقَت أرواحُهم لمقامِها بالأجنحةْ
وانعم بعيشِكِ في الحياةِ بلذةٍ، إنَّ المُظَفَّر مَن يُحقَّقُ مَطمَحَهْ
 

محمد حمدي غانم

1/8/2024

 

 

الأربعاء، 31 يوليو 2024

كم عدد جدودك؟

 هل تعلم أن لك أكثر من مليوني جد عبر آخر 500 سنة فقط؟

فالمسألة تسير بمتوالية هندسية للأساس 2:

أبوان، 4 جدود، 8 جدود، 16 جد... إلخ

وحينما تصل إلى الحد العاشر يصير عدد الجدود في هذا المستوى فقط 2 أس 10 = 1024

وحينما تصل إلى الحد العشرين يصير عددهم في هذا المستوى فقط  2 أس 20 = 1048576

وبافتراض أن الفارق بين كل أب وابنه 25 سنة في المتوسط، يكون مجموع عدد الأجداد في خلال 500 سنة فقط هو مجموع حدود تلك المتوالية الهندسية، وهو ما يساوي 2097150 أي أكثر بقليل من 2 مليون جد!

ولو أردت حساب ذلك للمستوى الأربعين لتقدير عدد الجدود في ألف سنة، فستحصل على العدد 2,199,023,255,550.. أي أكثر بقليل من 2 ترليون جد!

حساب هذا برمجيا سهل جدا ولا يحتاج لأكثر من 5 أسطر:

Sum = 0

For I = 1 To 40

   Sum = Sum + Math.Power(2, I)

Next

TextBox1.Text = Sum

 

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

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

 

 

صفحة الشاعر