|
#1
|
||||
|
||||
![]()
مازلت مصمماً على الفكرة .... لا أريد الإنخراط في تفاصيل المنهج .... فالمذكرات كفيلة بذلك والأعمال كثيرة .... إنما أنا هنا أود التوجه لإخواننا المدرسين .... وخصوصاً (ولن ندفن رؤسنا في الرمال ) ونقول حديثى العهد بالمنهج .... أو الجدد الذين وجدوا أنفسهم أمام منهج لم يستشاروا فيه أو يأخذ حتى رأيهم فيه .... كإجراء طبيعي هو أحد أهم دعائم الإستراتيجية التعليمية المثلى .... ولم ينالوا التدريب الكافي والذي في بعض الأحيان كمادتنا هذه يجب أن يكون تدريباً مستمراً نظراً للتغيرات المتلاحقة في عالم الأتمتة والتكنولوجيا .... وبدون الدخول في تفاصيل ... فكرتي هنا من البداية هي إختراع وسائل وأساليب جديدة للشرح فنحن من يصنع الأفكار (المدرس) فإذا فهم مدرس .... فهذا = فهم مدرسة كاملة على الأقل . فهذا الموضوع مخصص للمدرسين فقط والجادين فقط المبدعين فقط .... فهيا نتبادل الأفكار والخبرات حول موضوع واحد " كيف نوصل المعلومة للطالب بشكل أفضل وسهل ومبتكر" فأنا أرى أن المدرس المصري وبدون تعصب هو من أقوى المدرسين في العالم حيث بأقل الإمكانات يستطيع أن يصنع المستحيل ....
كنت قد بدأت بفكرة وهي أن ندخل مباشرة في الموضوع ونقوم بعرض مثال عملي ثم تفكيكه للطالب وذلك بعد تنفيذه طبعاً وكنت قد اقترحت برنامج " حساب مساحة ومحيط دائرة " وقلت أن هذا البرنامج نستطيع من خلاله شرح جميع جزئيات الفصل الأول دون استثناء .... وقلت لابد من إشراك الطالب معك واستخراج الخطوات من الطالب خطوة بخطوة هكذا تعلمنا البرمجة ..... وأضيف ... لابد أن يوضح المدرس أن أولى خطوات البرمجة والعمل مع visual basic.net هي التصميم ...فالتصميم الجيد للبرنامج هو قطع نصف الشوط في البرنامج وهو مفتاحك للدخول إلى الكود ..... ( وهنا ياحضرة المدرس اربط بين مانتكلم عنه وبين خطوات حل المشكلة في التيرم الأول فاكرينها؟ عموماً نحن هنا في المرحلة أو الخطوة الثالثة من خطوات حل المشكلة وهي " تصميم وكتابة البرنامج " هل لاحظت أن التصميم يسبق التكويد .... طيب بعد ماتخلص التصميم مباشرة شغل البرنامج وأدخل نصف قطر ثم اضغط على زر المساحة .... ستجد لاشيء أنت صنعت جسد بلا روح ..... والروح هنا هي الأكواد الأوامر التعليمات التي ستكتبها بطريقة معينة وفقاً لشروط خاصة في أماكن مخصصة حتى تترجم للكمبيوتر وينفذ ماطلبته أنت ( أوليس هذا تعريف لغة البرمجة ؟ ) تعالو نجعل الحياة تدب في هذا التصميم الميت !!!!!! طيب لي هنا سؤال من أين نبدأ الكود ؟ فالبدايات الصحيحة تؤدي بنا إلى نهايات صحيحة على أي حال .... وهنا أجيبك أرجع الى تصميمك السابق وقل لي أين سيقع الحدث (الفعل من المستخدم ) ستقول على زر المساحة حيث أنه سوف يدخل نصف القطر في مربع النص ثم سيضغط على زر المساحة .... هذا هو مدخلنا لنافذة الكود ..... وأنا هنا أصور لطلبتي شيئ قد يبدو غريب بعض الشيء للوهلة الأولى .... أقول لهم نافذة الكود تشبه الاستاد الرياضي والذي يضم ملاعب صغيرة لجميع الألعاب .... فهل يجوز لك بمجرد دخولك من باب الاستاد أن تخلع ملابسك وتعوم في النجيلة ...... بالطبع لا .... سوف تسأل عن حمام السباحة داخل الإستاد ثم تذهب هناك وتمارس هوايتك وهناك ستجد سباحين مثلك ومدربين وربما جمهور للعبة ...... والله هذا نفس حال نافذة الكود بها أماكن مخصصة لكل الألعاب ولايجوز أن تلعب في المكان الخاطئ ... هذه قوانين تسمى قواعد لغة syntax ..... ولابد من الإعلان عن من سيلعب داخل نفس المكان المخصص (الإعلان عن المتغيرات و الثوابت داخل معالج الحدث event handler يعني ماتجبش لاعب كرة قدم يلعب سلة .... إنت عرفت انا بتكلم عن إيه ؟ ... عن نطاق الإعلان عن المتغيرات والثوابت هاتقول طيب فين الإعلان العام عن المتغيرات والثوابت على مستوى التصنيف .... أقولك مش فيه في الاستاد حاجة اسمها المقصورة الرئيسية كل الملاعب بتشوفها .... وهي بتشوف كل الملاعب في الاستاد .... خلاص اعلن جواها عن فريقك .... إطلق لخيالك وخيال طالبك العنان ياأخي الموضوع بالفعل محتاج خيال ..... الموضوع بالفعل مش سهل أن أحاول هنا خلق تشويق في مناخ جامد اسمه البرمجة .... لكل لعبة داخل الاستاد قواعد وقوانين ....... سنكمل المرة القادمة ..... فحلمنا هو الوصول لكأس العالم ... تصبحون على خير ... هو إنته ماعندكش فكرة جديدة ليه ... أوعدك لو عجبتني هاقولها للطلبة عندي وأكيد هاشكرك عليها . |
#2
|
||||
|
||||
![]()
جزاك الله خيرا مستر على محمد على
|
#3
|
|||
|
|||
![]()
بارك الله في حضرتك أستاذي الفاضل علي محمد
__________________
كفي بالله سندا وكفي به هاديا وحبيبا وكفي به معطيا وكفي بالله عن كل شئ
|
#4
|
|||
|
|||
![]()
جهد طيب شكرا لك
|
#5
|
||||
|
||||
![]()
هناك علاقة تفاعلية بين ثلاثة " المبرمج " و "المستخدم" و "البرنامج" .... والسؤال من يخطئ في هؤلاء ؟
" البرنامج" هو بناء هيكلي متكامل تم تجريبه وغالباً لايأتي الخطأ من ناحيته .... إذن الخطأ دائماً يأتي من البشر "المبرمج" أو " المستخدم" .... أخطاء يرتكبها "المبرمج" وتصنيفها وكيفية التعامل معها وتصحيحها ؟ 1- الأخطاء في قواعد اللغة (syntax error ) وهي أخطاء تحدث من المبرمج نتيجة لعدم إلتزامه بالقواعد .... وهذا النوع من الأخطاء لن يسمح بها البرنامج وسيخط خطاً أزرقاً تحت هذه النوع من الأخطاء ولن يسمح بالطبع بتشغيل البرنامج ... وعلاجه هو تتبعه ومن ثم تصحيحه (وفي الحقيقة هناك أكثر من طريقة للتبع ) يوفرها البرنامج ويعطيك نصائح حول تصحيحها ولكن لن نخوض فيها أكثر من ذلك . 2- أخطاء منطقية (logic error ) وهي أخطاء خبيثة لايكتشفها البرنامج وغالباً ماتحدث في جمل التخصيص الخاطئة .... وفيها ينسى المبرمج ويضرب بدلاً من أن يقسم أو يجمع بدل الطرح وهكذا .... وعلاجها بسيط جداً .... وهو إختبار صحة البرنامج عن طريق مدخلات معروف نتائجها مسبقاً . ثم مراجعة وتصحيح الكود . أخطاء يرتكبها "المستخدم" وهي أخطاء التشغيل ( runtime error ) وهي أخطاء يقع فيها المستخدم نتيجة إدخالات خاطئة أو استخدام خاطئ للبرنامج ولايستطيع المترجم فهم مايقصده المستخدم وهنا وجب على المبرمج إنقاذ الموقف ولا يترك المستخدم فريسة لرسائل البرنامج المعقدة ويرسل رسائل ذات معنى محدد يفهمها مستخدمه ..... عن طريقين أولهما جملة (try catch) وثانيهما التصميم الجيد واستخدام الأدوات التي توفرها بيئة التطوير المتكاملة والتي تجعل المستخدم لايكتب كثيرا وإنما فقط يختار خيارات محددة وهذا يعتمد على شطارة المبرمج في استخدام الأدوات .... |
#6
|
|||
|
|||
![]() اقتباس:
جزاكم الله كل خير ولعل نجد عندكم الاجابةماذا ستقول للطالب عند حل النموذج الثاني السؤال الثاني رقم 2 والاجابة الموجودة بالسؤال خطأ في نوع متغير الحلقة رغم انه لن يضع خطأ ازرق تحت نوع المتغير ورغم اننا لم نشرح له قط خطأ فى نوع متغير الحلقة وبماذا تفسر له الرسالة التى تظهر مع الخط الازرق تحت الرقم 500 والتى تقول انه لا يناسب مع النوع وان الخطأ في القيمة الثابتة وليس نوع متغير الحلقة هل نقول له احفظها كدا لو جاءت بالامتحان
__________________
|
#7
|
||||
|
||||
![]() اقتباس:
أستاذ سيف أسعدني تواجدكم ومروركم الكريم ..... أنا أكره الحفظ .... كرهي للشيطان .... وأبداً لن أقول لأبنائي احفظوها كده فهذه حجة من لايعمل عقله ..... وللإجابه على خواطرك بخصوص السؤال رقم 3 في النموذج الثاني ... أقول : - تعالى أولا نتفق أن هناك العديد من الإجابات الخاطئة الواردة بحلول موقع الوزارة . - لماذا لم يضع خطاً أزرقاً تحت المتغير ..... لأنه عرف المتغير بشكل صحيح والتزم بقواعد التعريف وبالتالي لم يعترض البرنامج على المتغير في ذاته ... - أما الخطأ الحقيقي فوقع هنا بالفعل في قواعد اللغة عند وضع قيمة End داخل الحلقة وهي قيمة ثابتة برقم تجاوز نوع بيان المتغير وهي هنا تعتبر overflow تجاوزت حدود نوع البيان ولو قمنا بتغيير نوع البيان إلى integer مثلا لانتهت المشكلة وسيعمل البرنامج بشكل سليم . - أما بخصوص نوع الخطأ "نوع متغير الحلقة" هو هنا يريد تفصيل التفصيل .... كان أولى أن يقول خطأ من النوع "syntax" .... وتقول الرسالة أن التعبير الثابت "500" لايتناسب مع نوع البيان "Byte" - وأخيرأً هو حضرتك لم تلاحظ أنه أنهي الحلقة التكرارية For ....Next بـــ Loop ...... ماذا تسمي هذا ؟ |
#8
|
|||
|
|||
![]() اقتباس:
والمشكلة الاكبر تكبر الوزارة وعدم الاعتراف بالخطأ والمشكلة الاخطر استمرارها في الخطأ جزاكم الله كل خير
__________________
|
#9
|
|||
|
|||
![]() اقتباس:
تقصد Runtime وليس syntax بالنسبة ل Loop تصحيحها Next شكرا لك |
#10
|
||||
|
||||
![]() اقتباس:
لا أنا أقصد syntax فالخطأ هنا حدث في القواعد حيث أتى بنهاية الحلقة overflow عن نوع البيان .... أعلم أنها next ولكني كنت أستغرب على الكتاب . أرجوا منك تكثيف مشاراكاتك في موضوعي . |
#11
|
||||
|
||||
![]()
قال لي طالب :
عارف يا أستاذ حكاية المتغيرات دي عاملة زي مخزن كبير للسلع المتنوعة .... كل مكان مخصص لسلعة من نوع معين ومكتوب عليه من برة يافطة باسمها ..... هكذا فهم طالبي ونقلت عنه بالنص . |
#12
|
||||
|
||||
![]() جزاكم الله خيرا
__________________
|
#13
|
||||
|
||||
![]()
سألني أحد طلابي سؤال :
هو النوع char مش بيخزن حرف واحد وأنت قلت لنا الحرف الواحد يخزن في خلية واحدة من خلايا الذاكرة يعني 1Byte... طيب ليه بيأخذ خليتين من خلايا الذاكرة لو أعلنا عن بيان نوعه char ؟ ..... قلت له : هو يمثل حرف واحد فقط من حروف Unicode لذلك لا يمكن أن تحمل قيمة حرفيه تزيد عن حرف واحد، كما يشرط استخدام حرف الذيل "C" حتى تميز القيمة الحرفية من النوع "char" عن النوع "String" مثال : Dim A as char A="D"C هو الذيل ده C مش عاوز خلية زيادة يتخزن فيها ؟؟؟ وبمناسبة هذا النوع من البيانات .... هو إحنا متى نحتاجه وما الجدوى منه أساساً رغم إمكانياته المحدودة..؟؟؟ السبب ببساطة السرعة في التنفيذ والاقتصاد في استهلاك مصادر النظام. حيث أن المتغيرات من نوع char هي متغيرات من النوع ذات القيمة Value Type Variables وهي تمحى من الذاكرة مباشرة بعد نهاية عمر المتغير بينما المتغيرات من النوع String هي متغيرات مرجعية Reference Type Variables وفي الحقيقة لا تتم عملية إزالة قيمها من الذاكرة مباشرة بعد نهاية عمرها الافتراضي، فهي تتطلب عملية تسمى إفراغ المصادر . أيوة أنا أضطررت للخروج عن المنهج لأفسر وأشرح لطالبي ما أراد ربما يكبر يوماً ويعمل مبرمجاً محترفاً ويتذكر كلامي .... فأنا لا أستطيع أن أقول له الموضوع ده صعب عليك ومش هاتفهمه .... طالما أنه هو الذي سأل .... ومن يدري ربما فهم كلامي أو جزء منه . |
#14
|
|||
|
|||
![]() اقتباس:
|
#15
|
||||
|
||||
![]() اقتباس:
Garbage Collection الشكر الجزيل لك .... أعول عليك في مساعدتي في وضع خواطر وأمثلة وأفكار جديدة تشرح وتوضح المنهج لإخواننا حتى تعم الفائدة . |
![]() |
العلامات المرجعية |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|