الدرس الأول – تعلم البرمجة للمبتدئين – Python

مرحبا بك في دورة تعلم البرمجة للمبتدئين:

رسوم الدورة:

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

لمن هذه الدورة:

لأي شخص يود البدء المحتوى لايفترض أي معرفة سابقة في البرمجة أي طلاب المدرسة أو الجامعة أو أي شخص يحب تعلم البرمجة بغض النظر عن العمر. البايثون أصبحت لغة البحث العلمي وهي مفيدة للباحثين من جميع الاختصاصات. بالاضافة الى كونها اللغة الأهم حاليا في تعلم الالة وتحليل البيانات الكبيرة. وأقتبس هنا Bjarne Stroustrup مخترع لغة الـ C++ حيث أدرجها ضمن اللغات الخمس التي يجب تعلمها يمكنك مشاهدة الفديو هنا.

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

المحتوى

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

 

 

الجدول الزمني

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

الأسئلة

لاتتردد/ي في طرح أي سؤال, لايوجد أي سؤال لايستحق الطرح ويسعدني جدا سماعها جميعا (في الحقيقة هذا يشكل دافعا لي للاستمرار في مشروع الصفحة والموقع) . حيث أننا نتعلم من بعضنا ونتشارك الأفكار.

لنبدأ:

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

تنصيب البايثون

في حال كنت تستخدم أحد البرامج Arcgis, QGIS فإن نسخة البايثون 2.7 توجد على حاسوبك سلفا. ولكن أنصحك بتنزيل النسخة الأخيرة من بايثون والعمل عليها. وذلك كوننا سنقوم بتصيب مكتبات اضافية في الدروس اللاحقة

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

3

كتابة أول كود برمجي:

print("hello world")

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

التعليقات

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

# هذا تعليق ولا يؤثر على البرنامج

قم باختبار هذه السطور أيضا ولاحظ سهولة التعامل مع هذه اللغة:

تخزين الأرقام Numbers

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

أمثلة:

اختيار x هنا عشوائي تستطيع اخيار أي اسم اخر.

print(2+2)
print(2.2 + 2)
print(2/2)
print(2**5)
x = 2
print(x)
x = 2.3
print(x)

تخزين النصوص أو السلاسل المحرفية Strings

يتم تخزين السلاسل المحرفية ضمن أقواس صغيرة “”.  ويمكن تخزينها ضمن متحولات

x = "Hi from that GIS Guy"
print(x)

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

x = "He"
y = "llo"
a = x + y
print(a)
#Hello النتيجة

قوائم Lists

القوائم تمكنك من تخزين عدد كبير من العناصر ضمن متحول قائمة List. ويتم التعبير عنا بكتابة أقواس مربعة [] والفصل بين العناصر عن طريق استخدام الفاصلة.

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

  • Hello
  • Hi
  • Greetings
x = ["hello","hi","greetings"]
print(x[0])
#hello النتيجة
print(x[1])
#hi النتيجة
print(x[2])
#greetings النتيجة

لكل عنصر في القائمة رقم index يمكننا أن نستدعيه به مثلا. الترقيم يبدأ من الصفر.

x = [1,19,3,2]
print(x[1])
#سيطبع 19

أول برنامج: حساب المسافة بين نقطتين

لدينا نقطتان

P1 ذات الاحداثيات: X = 3,  Y = 1

P2 ذات الاحداثيات: X=12 , Y = 13

أولا تخزين قيم الاحداثيات

x1 = 3
y1 = 1
x2 = 12
y2 = 13

ثانيا حساب المسافة

كما نعرف قانون المسافة بين نقطتين

1

حساب فرق الاحداثيات للتربيع. نلاحظ أننا نستطيع القيام بالعمليات الرياضية مباشرة بواسطة البايثون كالجمع والطرق والقسمة:

  • الجمع +
  • الطرح
  • القسمة /
  • الضرب *
  • الرفع الى اس **

وبالتالي لحساب المسافة

x1 = 3
y1 = 1
x2 = 12
y2 = 13
deltaX_2 = (x2-x1)**2
deltaY_2 = (y2-y1)**2
distance = (deltaX_2 + deltaY_2)**0.5
print(distance)

تهانينا لقد قمت ببرمجة أول برنامج لك في البايثون

المشروع الأول: مشروع ادارة موظفي شركة

بعد اكتسابك الخبرات الجديدة. اتصل بك مدير شركة وطلب منك أن تقوم بتصميم برنامج لادارة موظفيه. وبالتأكيد قبلت المشروع 🙂

المهمة الأولى

تصميم برنامج يقوم بتخزين أسماء الموظفين. وعند الحاجة طباعة اسم أي منهم حسب رقمه المتسلسل.

بالإضافة الى ذلك يجب على البرنامج طباعة أسماء كل الموظفين المخزنين كالتالي:

Name of employee is : …….

ستقوم بكتابة هذا البرنامج ومواجهة التحديات الخاصة به في الدرس القادم بالتوفيق. يمكنك الان مشاهدة الفديو

الفديو

لاتنسى مشاركة هذه الدورة مع أصدقائك المهتمين