المساهمون :
ترجمة الكتاب : هشام رزق الله
مراجعة لغوية : أشرف خلف
سيف الإسلام البكري
تصميم الغلاف : أنوار بنشقرون
تنسيق وإخراج : صفا الفليج
عبدالرحيم الفاخوري
إشراف عام : . أحمد شريف
مقدمة المؤلفت
بصفتي معلما يدرس البرمجة بالتوازي مع التخصصات الأخرى: أعتقد أنه يمكنني القول بأن هذا أحد أشكال التعليم غاية في
الإفادة والثراء؛. ووسيلة لتدريب الشباب وبنائهم فكرياء مما له من قيمة عظيمة تتساوى -إن لم تكن تتفوق- مع بعض
التخصصات التقليدية مثل دراسة اللا
إنها فكرة عظيمة إذنء لذا أقترح أن يتم تعلم هذا في بعض القطاعات بما في ذلك التعليم الثانوي. دعونا نكون واضحين: ليس
بكرا تدريب مبرمجين محترفين في المستقبل. ونحن نعتقد ببساطة أن تعلم البرمجة لها مكانتها في التعليم العام عند الشباب
(أو على الأقل البعض منهم)؛ لأنها مدرسة غير عادية من المنطق والصرامة؛ وحتى الشجاعة.
الثالث للتعليم الثانوي البلجيكي. ويبدو أن هذه الدورة قد تكون مناسبة لأي شخص لم يسبق له أن برمج من قبلء ولكنه يريد
تعلم هذا التخصص بنفنسه.
نقترح عملية التعلم غير الخطية؛ وهي بالتأء بك فيها. ونحن ندرك أنه سوف تظهر بعض القوضى في نظر بعض
هنالك العديد من الطرق للتعلم (ليست البرمجة فحسب)؛ ويجب علينا أن
نتقبل على الفور أن الأفراد المختلفين لا يتعاملون مع نفس المفاهيم في نفس الترتيب. ولذلك سعينا قبل كل شيء إثارة الاهتمام
وفتح أكبر عدد من الأبواب. ونحن نسعى إلى مراعاة الإرشادات التالية:
* التعليم الذي نسعى إليه عام: نحن نريد تسليط الضوء على ثوابت البرمجة وتقنية المعلومات. دون أن يكون القارئٌ
* يجب أن تكون الأدوات المستخدمة عن التعلم حديثة وفعالة. حتى ولو وجب شراؤهاء لكن يجب أن تكون
متخفضة للاستخدام الشخصي. وعتواننا في الواقع هو الأولوية للطلاب: وكل خطواتنا للتعلم تهدف إلى إعطائهم فرصة
لبدء العمل في أقرب وقت ممكن لتحقيق إنجازاتهم الشخصية التي يمكن أن يطوروها ويستخدموها في أوقات فراغهم.
بنية وياسعق
* وسوف نناقش برمجة واجهة المستخدم الرسومية في وقت مبكر: حتى قبل أن نتعرف على جميع هياكل البيانات المتاحة؛
لأن هذا النوع من البرمجة يشكل تحديا واضحا في نظر المبرمج المبتدئ. نلاحظ أيضا أن الشباب الآن الذين في صفوفنا
اختاروا تعلم البرمجة؛ فسيكونون حريصين بالضيورة على إنشاء تطبيقات بأنفسهم (ربما بسيطة جدا) حيث نظرة
الرسومية موجودة. لق اخترنا هذا النهج غير العادي قليلا لتسمع للقراء أن يبدؤوا مبكرا جدا في صناعة مشاريعهم
أهمية مما كان عليه في الماضي. تعلم البرمجة الحديثة يتطلب كائنات تتواصل في أقرب وقت ممكن مع الكائنات والمكتبات
للفئات الموجودة. وهكذا يجب أن يتعلم بالسبيعة الكافية وفي وقت مبكر التفكيي في التفاعلات بين الكائئاته بدلا من بناء
الإجراءات؛ للاستفادة من المفاهيم المتقدمة؛ مثل الميراث؛ والتجسيد وتعدد الأشكال.
ولقد قمنا أيضا بتوفير مكان كبير بما فيه الكفاية للتعامل مع أنواع أخرى من هياكل البيانات, لأننا تعتقد أن هذا انعكاس على
البيانات يجب عليه أن يظل العمود الفقري لأي تطوير للبرمجيات.
اختيار لغة البرمجة الأولى
المسألة خلال إعدادنا لمنهاج جديد لخيار العلوم والمعلوماتية: تراكمت خبراتنا الشخصية الطويلة في البرمجة ب ا509/ا
أننا استخدمنا في البداية لغة واحدة أو أكثر من هذه اللغات. وكان أمام هذه اللغات إذا أردنا استخدامها كأدوات أساسية لتعلم
* ترتبط ببيئات برمجية (معناها برامج) خاصة. وهذا يعني أنه يجب على المدرسة ليس فقط أن تكون على استعداد لشراء
ترخيص لاستخدام مثل هذه البرامج لكل محطة عمل (والتي يمكن آن تكون مكلفة)؛ ولكن حتى بالنسبة للطلاب الذين
يرغبون في استخدام المهارات البرمجية في أماكن أخرى خارج المدرسة؛ وهذا الأمر لا يمكن أن نتقبله. وثمة عيب آخر
خطير وهو أن هذه المنتجات تحتوي على "صناديق سوداء” أي أننا لا نستطيع أن نعرف محتواها.؛ ووثائقها ستكون
ناقصة وغير مؤكدة.
إلخ). وهذا لا يتناسب مع مشروعنا التعليمي الذي يهدف إلى تعليم عام (وبالتالي متنوع) حيث يتم تسليط الضوء عد
ومي موثقة توليقا جيط
يتعلمها عاجلا أم آجلا. ولكن للأسف هذه اللغة شاقة ومعقدة جداء وقريبة من الحاسوب. وتركيب جملها ضعيف القابلية
للقراءة وقوي الربط. وإن البرامج الكبيرة المكتوبة بلغة سي أو سي بلس بلس طويلة ومرهقة. (وينطبق نفس الشيء على لغة
من ناحية أخرى. فإن الممارسة الحديثة لهذه اللغة تستخدم على نطاق واسع مولدات التطبيقات وأدوات الدعم المتطورة الأخرى
مثل 8011082+ +6 و 08118100 إلخ. ويمكن لهذه البيئات أن تكون فعالة جدا في أيدي المبرمجين ذوي الخبرة؛ لكنها تقدم
العديد من الأدوات المعقدة كثيرا جداء وهي صعبة على المستخدم المبتدئئ والذي من الواضح لا يتقنها. ولذلك سيكون في نظره
في بداية تعلمنا البرمجة؛ يبدو من الأفضل أن نستخدم لغة عالية المستوى؛ وأقل تقييدًا؛ وتكوين الجمل أكثر قابلية للقراءة.
ديم لغه بينون
نقلها من مقال في مجلة "!5/:09/8010192" عدد شهر ديسمب ر/كانون الأول من سنة 1998. كما انه
مشارك د 4/7001/ (الرابطة الفرنسية لمستخدمي لينكس والبر مجيات الحرا
لغة بيثون هي لغة محمولة؛ حيوية (ديناميكية)؛ مجانية وموسعة؛ وهي تسمح (ولكنها لا تتطلب ذلك) باتباع نهج الوحدات
والبرمجة الشيئية (00). تم تطوير لغة بيثون سنة 1989 من قبل غيدو فان روسم وعدد كبير من المتطوعين والمساهمين.
اللغة
* بيثون مجانية؛ ولكن يمكنك استخدامها في المشاريع التجارية دون قيود.
*بيثون مناسبة لسكريبتات من 10 أسطر إلى المشاريع المعقدة التي تحتوي على عشرات الآلاف من الأسطر.
* تكوين جمل بيثون بسيط جداء ويعمل جنيا إلى جنب مع أنواع البيانات المتقدمة (القوائم والقواميس) والتي تصنع برامج
بلس (أو حتى الجافا) أو ما يعادلهاء ووقت تطوير من 5 إلى 10 مرات أقصر وسهل جدا في الصيائة.
*بيثون تدير الموارد بنفسها (الذاكرة؛ واصفات الملفات) دون تدخل من قبل المبرمج عن طريق آلية عد المراجع (مشابهة
لجامعي القمامة؛ لكن مختلفة).
“لا توجد مؤترات واضحة قي بيثون.
* بيثون تدعم البرمجة الشيئية؛ وهي تدعم الوراثة المتعددة ومشغلات الحمولة الزائدة. في نماذج الكائاته وعن طريق
* بيثون تدعم (مثل الجافا أو الإصدارات الأحبية من سي بلس بلس) نظام الاستثناءات؛ الذي يسمح بتبسيط معالجة
الأخطاء بشكل كبير.
* بيثون حيوية (ديناميكية) (المفسر يمكنه تقييم السلاسل النصية التي تمثل عبارات أو تعليمات بيثون) ومتعامدة (عدد
قليل من المفاهيم كافية لتوليد بن غنية) وانعكاسية (وهي تدعم الميتابروغراميك: على سبيل المثال؛ يستطيع الكائن
إضافة أو إزالة سمات أو أساليب أو حتى تغيير صنف قيد التنفيذ)؛ واستقرائية (عدد كبير من أدوات التطوير: مثل
تعريف نوع واضح عن التشغيل. والذي لا يحتاج إلى أن تعلن نوعه مسبقاء
بواسطة آلة افتراضية (مثل الجافاء مع فارق مهم: يتم كتابة الجافا بشكل ثابت؛ ويصبح من السهولة تسريع تشغيل
برنامج جافا أسرع من بيثون). والثاني يولد مباشرة كود بايت جافاء
*بيثون لغة موسعة: مثل أ©7 و 18أنا6, أي أننا يمكننا بسهولة التعامل مع مكتبات سي الموجودة. ويمكننا أيضا أن
نستخدمها كلغة موسعة لأنثلمة برامج تعديد معقة.
[6. و 117111)؛ قواعد البيائات وواجهات المستخدم الرسومية.
*وأخيراء بيثون هي اللغة المختارة لمعالجة ال 4041ل
للأستاذ الذي يريد استخدام هذا الكتاب كدعم لدروسهم
نحن تأمل مع هذه الملاحظات فتح أكبر عدد ممكن من الأبواب. على مستوى التعليم لديناء يبدو أنه من المهم إظهار أن برمجة
يجب أن يتعلموا بالضبط نفس الأشياء. نحن نريد أن يكونوا قادرين على تطوير مهاراتهم في مشاريع فردية تختلف إلى حد
ماء والتي تسمح لهم بتطوير برامجهم الخاصة وبرامج أقرائهم؛ وكذلك المساهمة عنما يقترح أحدهم التعاون لعمل كبير.
الحاسوب. نحن لا ندعي الاعتقاد بأننا سوف تحمس الشباب على الفور لبناء خوارزميات جيدة. نحن مقتنعون تماما أنه سيتم
أصبحوا قادرين على تطوير مشاريعهم الشخصية؛ بقدر معين من الاستقلال الذاتي.
تيه مصلحة عاعة بمجود موزهم بانهر
ومن هذه الاعتبارات التي أدت بنا إلى تطوير هيكل دراسي والذي يعتقد البعض أن به القليل من الفوضى. سوف نبداً مع سلسلة
من الفصول القصيرة جدا لفترة وجيزة؛ والتي تضي ما نشاط البرمجة وتشكل الأساسات القليلة التي لا غنى عنها لتحقيق
برامج صغيرة. قد يعتقدون أنه من المبكر البدء بمكتبات الكائنات الرسومية؛ على سبيل المثالء واجهات المستخدم الر.
00062 بحيث يصبح مفهوم الكائن مألوفا لديهم. وينبغي علينا أن تكون جذابين بما فيه الكفاية للذين يشعرون أنهم اكتسبوا
بالفعل إتقان مهارة معينة. ونود حقا أن يتمكن الطلاب من برمجة تطبيق الا6 (واجهة المستخدم الرسومية) صغير في نهاية
السنة الأولى من الدراسة.
بشكل ملموس جداء هذا يعني أ:
يعني أننا ستتناول أولا مجموعة من المفاهيم الهامة (أنواع البيانات والمتغييات والتعليمات. التحكم في التدفق والدالات.
والحلقات) بصورة سريعة ودون الحاجة إلى القلق كثيرا على ما يتم فهمه من كل مفهوم قبل الانتقال إلى مفهوم آخر؛ بدلا من
محاولة غرس الذوق الشخصي في البحوث والتجارب. وغالبا ما سيكون أكثر كفاءة لإعادة شرح مفاهيم والآليات المطلوبة في
وقت لاحق في حالات وسياقات متنوعة.
نتوقع استكشاف أول ثمانية فصول من هذه الملاحظات خلال السئة الأولى من الدورة. وهذا
في السنة الثانية سوف نسعى إلى تنظيم المعرفة وتعميقها. وسوف يتم تشريح ومناقشة الخوارزميات. وسوف نناقش
المشاريع والمواصفات وأساليب التحليل. ونحن نطلب منك دفتر ملاحظات لكتابة تقارير تقنية على وظائف معينة.
والجدف النهائي لكل طالب هو إكمال مشروع برمجي له بعض الأهمية. وسنعمل جاهدين لإنهاء المفاهيم الأساسية النظرية
الكافية في وقت مبكر من السئة الدراسية. بحيث يستطيع أي شخص لديه وقت فراغ صنع مشروع.
يجب أن يفهم أن المعلومات المتوفرة في هذه الملاحظات تحتوي على مجموعة واسعة من المجالات (إدارة واجهات المستخدم
لمساعدة الطلاب على اختيار وبدء مشاريعهم الشخصية للتخرج. نحن لا نسعى بأي شكل من الأشكال إلى تدريب متخصصين
في لغة معينة أو في مجال تقنية معين: نحن نريد ببساطة إعطاء لمحة عن الفرص الهائلة لأولئك الذين يواجهون المعاناة
لتعلم البرمجة بمهارة.
إصدارات اللغة
لغة بيثون ما تزال تُطوّ: لكن الهدف من هذا التطور هو تحسين أو ترقية المتتج. ويجب تعديل البرامج للتكبّف مع النسخ
هذا الإصدار الجديد من اللغة؛ يحمل بعض التغييرات الفنية التي تعطي المزيد من التماسك وسهولة أكبر للاستخدام؛ ولكن
هنالك حاجة إلى تحديث صغير لكافة السكريبتات المكتوبة للإصدارات السابقة. وقد تم إعادة تصميم النسخة الحالية من هذا
الكتاب: ليس فقط للتكيف مع أمثلة الإصدار الجديد: ولكن للاستفادة أيضا من هذه التحسينات. والتي هي على الأرجح أفضل
وسيلة لتعلم البرمجة اليوم.
إذن قم بتثبيت أحدث إصدار بيثون متاح على نظام التشغيل الخاص بك (بعض الأمثلة لدينا تتطلب الإصدار 3.1 أو أحدث)؛
واستمتع! ولكن, إذا كنت بحاجة إلى تحليل سكريبتات مُقَّمة للإصدار السابق لاحظ وجود أدوات تحويل (انظر خا
في موقعنا 10://0106208/5101/01/10100.007 للإصدار السابق من
توزبع بينون وقائمة المراجع
الإصدارات المختلفة من بيثون (لويندوز ويونكس إلخ)؛ والدرس التعليمي الأصلي والدليل المرجعي ووثائق مكتبات الدالات
إلخ... متوفرة للتحميل مجانا من الإنترنت. من الموقع الرسمي: 00.019 1071/] 0/1010 /:1158!
أمثلة الكتاب
يمكنك تحميل الكود المصدري من أمثلة هذا الكتاب من خلال موقع الكاتب:
وكذلك على شكل كتاب ورقي مطبوع:
في مدرسة السحرة
الصناديق السوداء والتفكير السحري
السحر الأبيض والسحر الأسود
تعديل المصدر - المفسر
وضع البرنامج - البحث عن أخطاء ([تصحيحها)
البحث عن الأخطاء والتجارب
الخطوات الأولى
الحساب مع بيثون
العوامل والتعابير
ترتيب المفاملات.
البنية
قائمة المحتويات