كورس تعلم الخوارزميات | Algorithms

 مفهوم الخوارزميات


ما هي الخوارزميات و لم يجب أن تتعلمها قبل أن تتعلم أي لغة برمجة؟

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


ما هي المشكلة التي يتعرض لها الجميع و تصبح سبب خوفهم من البرمجة؟

أغلب ألأشخاص الذين يحاولون أن يتعلموا البرمجة تراهم يذهبون مباشرةً في الإتجاه الخاطئ, فهم يبدؤون مباشرةً بدراسة لغة برمجة معينة مثل (Java, C, C++) دون أن يتعلموا مبادئ البرمجة الأساسية, و دون أن يقوموا بوضع الأفكار الأساسية للبرنامج ثم تحليلها و تأديتها واحدة تلو الأخرى.

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

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

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


كيف سأتعلم الخوارزميات؟

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




نصائح و إرشادات للمبرمج الجديد الذي يطمح للإحتراف


أولاً

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


ثانياً

أي مشكلة تواجهك في الكمبيوتر حاول أن تحلها بنفسك أولاً, أي إبحث في google و حاول بنفسك قبل أن تلجأ إلى سؤال أي أحد لأن هذا ما يفعله المحترفون و ذلك ما جعلهم محترفين.


ثالثاً

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


رابعاً

المعرفة باللغة الإنجليزية أساسية في عالم البرمجة لأنك ستجد كل ما تريد تعلمه موجود في كتب باللغة الإنجليزية و هي مجانية و أكثر من رائعة و أي سؤال تطرحه باللغة الإنجليزية ستجد جوابه و تحل جميع مشاكلك.


خامساً

عندما تقرأ أي شيء بأي لغة كان مكتوب و لا تفهمه, يمكنك إستخدام المترجم المجاني google translate الذي أنشأته شركة google.


سادساً

إياك أن تعتقد أن المبرمج يجب أن يكون من خريجي الجامعات و المعاهد حتى أنني تعلمت البرمجة قبل أن أدخل إلى الجامعة, حتى الآن لم أكمل دراستي في الجامعة و لكن كل ما سأدرسه عندما أكمل سيكون تافهاً بالنسبة لي لأنني سبق و درسته و قضيت أشهراً في ذلك.


سابعاً

عند دراسة أي لغة برمجة من كتاب, إبحث دائماً عن آخر إصدار للغة البرمجة التي تريد دراستها و آخر إصدار موجود للكتاب و إبحث عن الكتب الكبيرة التي قد يصل حجمها إلى أكثر من ١٠٠٠ صفحة, لأن هذه الكتب تكون مشروحة بأسلوب مبسط و سهل الفهم و غنية بالأمثلة و مشروحة بشكل مفصل, و إليك أهم موقع لتحميل كتب البرمجة الجديدة المجانية باللغة الإنجليزية it-ebooks.info و هذا موقع باللغة العربية kutub.info.
ننصحك دائماً بالكتب الأجنبية لأنه لا يوجد أي مؤلف عربي قام بإنشاء كتاب شامل حقاً أو أعاد النظر في الكود الذي كتبه منذ عدة سنوات, أي لن تجد في كتابه كل تقنيات الكود الجديدة التي ستجدها في الإصدارات الجديدة في الكتب الأجنبية لأن الكتب الأجنبية يقوم بكتابتها العديد من المبرمجين, و ليس مبرمج أو اثنين كما في حالتنا و هذا الذي يجعل كتبنا ضعيفة أو قديمة بعض الشيء.


ثامناً

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

  • أغنى رجل في العالم هو Bill Gates , و هو مبرمج و مؤسس شركة microsoft.

  • أغنى شاب في العالم هو Mark Zuckerberg , و هو مبرمج و مؤسس موقع facebook.

الطريقة المعتمدة في التعلم

الأسلوب الذي ستتعلم فيه الخوارزميات معنا هو نفس الأسلوب المعتمد من قبل المعاهد و الجامعات.


ملاحظة

الهدف إعطاءك فكرة عامة للأسلوب المتبع في الشرح, لا داعي لأن تفهم الكود المكتوب الآن لأنك ستفهمه في الدروس اللاحقة.


مثال

نقول لك على سبيل المثال: أكتب برنامج يطبع جملة "Hello World" عندما تقوم بتشغيله.

بعدها ستجد النتيجة التي نريد الحصول عليها عند تشغيل البرنامج.

نتيجة التشغيل

ثم ستجد الكود كخوارزمية و الذي يجب أن تكتبه على الورقة.

الخوارزمية
مقدمة حول الخوارزميات

ثم كود الجافا و الذي تستطيع نسخه و تجربته مباشرةً على الكمبيوتر.

كود الجافا

public class MyAlgorithm {
 
    public static void main (String[] args) {
          System.out.print("Hello world");
    }
 
}
		

ثم شرح كل جزء في كود الجافا بشكل مفصل, لكننا لن نقوم بشرح هذا الكود الآن لأننا سنشرحه في الدرس القادم.

الطريقة الصحيحة للتعلم و التي تنمي قدراتك التحليلية

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

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

تجهيز بيئة العمل

حتى تستطيع تجربة الخوارزميات على الحاسوب بالإعتماد على لغة جافا فإنك تحتاج لتثبيت لغة جافا ( JDK ) و من ثم برنامج NetBeans الذي سنكتب الكود عليه.


خطوات تحميل و تثبيت لغة جافا ( JDK )

شاهد الخطوات التالية لتتعلم كيف تقوم بتحميل و تثبيت إصدار الـ JDK الملائم لحاسوبك.

خطوات تحميل ال JDK و تنصيبه على نظام ويندوز

في البداية, سنقوم بتحميل إصدار الـ jdk 8 بالتحديد لأننا بعد قليل سنقوم بتحميل برنامج Netbeans المبني في الأساس لهذا الإصدار.
الآن قم باتباع الخطوات التالية:

  1. إبحث في جوجل عن jdk 8.

  2. أنقر على رابط أول موقع يظهر لك في نتائج البحث و سيكون الموقع من موقع Oracle كما يظهر في الرابط لأنها هي من قامت بتطوير الـ jdk 8.


  1. بعد أن تفتح الصفحة الجديدة, قم بالنزول قليلاً حتى تجد جملة Java SE Development Kit 8.

  2. بعدها قم بالنقر على النسخة التي تتناسب مع حاسوبك.
    ملاحظة: في حال كنت لا تعرف النسخة التي تتناسب مع حاسوبك, إذا كنت تستخدم نظام ويندوز قم بتحميل النسخة ما قبل الأخيرة لأنها تعمل على جميع أنظمة ويندوز.


  1. أنقر على خيار I reviewed and accept... حتى يظهر علامة صح و لكي يسمح لك بتحميل نسخة من الـ JDK.

  2. أنقر على زر Download jdk... حتى يبدأ التحميل.


ملاحظة

في حال طلب منك موقع Oracle تسجيل الدخول حتى يسمح لك بالتحميل, إفعل التالي:

  • قم بإنشاء حساب ( مجاني طبعاً ).
    في حال وجدتهم طلبوا معلومات أنت لا تملكها مثل إسم الشركة التي تعمل فيها. عندها ضع أي شيء تريده مثل إسم عائلتك.
    المعلومة الوحيدة التي عليك وضعها بشكل صحيح هي بريدك الإلكتروني لأنه بعد إنشاء الحساب, سيقوم الموقع بإرسال رسالة على البريد الذي وضعته فيها رابط. و سيكون عليك فتح هذه الرسالة و النقر على الرابط الموجود فيها مرة واحدة فقط حتى يتم تأكيد أنك حقاً صاحب البريد الإلكتروني الذي قمت بوضعه.

  • قم بتسجيل الدخول في موقع Oracle بواسطة الحساب الذي أنشأته.

  • تابع باقي الخطوات الموضوعة في الدرس.


  1. بعد تحميل الـ JDK, قم بفتحه حتى تبدأ بتنصيبه.


  1. إضغط على Next.


  1. إضغط على Next.


  1. إذا ظهرت لك الرسالة التالية, إضغط OK و أكمل.


  1. إضغط على Next.


  1. بعدها إنتظر قليلاً إلى أن ينتهي التنصيب.


  1. إضغط على close.


إلى هنا تكون قد قمت بتثبيت الـ JDK بنجاح.
الآن, قم بالعودة للدرس لمشاهدة خطوات تحميل و تنصيب برنامج Netbeans.



خطوات تحميل و تثبيت برنامج NetBeans

شاهد الخطوات التالية لتتعلم كيف تقوم بتحميل و تثبيت إصدار برنامج NetBeans الملائم لحاسوبك.
سبب إستخدامنا لبرنامج الـ Netbeans هو أنه مجاني, سهل الإستخدام و يساعد كثيراً في كتابة الكود.

هنا خطوات تحميله و تنصيبه.

خطوات تحميل و تنصيب برنامج NetBeans

  1. أنقر على هذا الرابط netbeans.org/downloads/old/8.2 لتحميل الإصدار الثامن من برنامج NetBeans لأنه يتوافق مع إصدار الـ JDK الثامن الذي قمنا بتحميله سابقاً.

  2. قم بتحديد نظام التشغيل الذي تريد تحميل نسخة من برنامج NetBeans ملائمة له و في حالتنا سنحدد نظام Windows.

  3. قم بتحميل نسخة NetBeans الخاصة بـ Java SE لأنها النسخة التي نحتاجها.


  1. بعدها ستفتح الصفحة التالية و يبدأ التحميل بشكل تلقائي.
    إذا لم يبدأ بالتحميل بشكل تلقائي, قم بالنقر على رباط التحميل الذي أشرنا إليه.


  1. بعد تحميل الـ NetBeans, قم بفتحه حتى تبدأ بتنصيبه.


  1. إضغط على next.


  1. ضع علامة صح على I accept the terms in the.., ثم إضغط على next.


  1. إضغط على Next.


  1. إضغط على Install.


  1. إضغط على Finish.


إلى هنا, تكون قد قمت بتنصيب برنامج الـ NetBeans بنجاح.

خطوات تشغيل برنامج NetBeans

لآن لتفتح برنامج الـ NetBeans ستجده على سطح المكتب, أنقر عليه فقط.
إذا لم تجده على سطح المكتب, إبحث عنه, أي أنقر على زر البحث ثم أكتب netbeans ثم أنقر عليه ليفتح.


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

إلى هنا تكون قد قمت بتثبيت برنامج NetBeans بنجاح.
الآن, قم بالعودة للدرس لتتعلم كيف تستخدم برنامج Netbeans و تكتب أول برنامج لك.



خطوات إنشاء مشروع جديد و تشغيله

هنا وضعنا خطوات إنشاء مشروع ( أي برنامج ) جديد في الـ NetBeans.
إنتبه: عليك إتباع هذه الخطوات في كل مرة تريد فيها تجربة الخوارزمية على الكمبيوتر.




حل مشاكل قد تتعرض لها أثناء إستخدام برنامج الـ NetBeans

المشكلة الأولى: أحياناً عندما تقوم بإنشاء مشروع جديد ثم تضغط على أيقونة تشغيل المشروع تجد أنه يظهر لك نتيجة مشروع آخر!!!
بمعنى أنه يقوم بتشغيل مشروع آخر و ليس آخر مشروع قمت بكتابته.

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

خطوات إنشاء مشروع جديد

  1. أنقر على أيقونة New Project.


  1. ثم أنقر على مجلد Java, ثم مجلد Java Application, ثم أنقر على الزر Next كما في الصورة التالية.


  1. الآن قم بوضع إسم للمشروع, ثم ضع إسم للكلاس الذي سيتم إنشاؤه بداخل المشروع, ثم إضغط Finish كما في الصورة التالية.
    ملاحظة: هنا قمنا بتسمية المشروع و الكلاس الذي بداخله Test مع الإشارة إلى أنه يمكنك وضع أي إسم تريد.
    إنتبه: لا يمكنك إنشاء مشروعين عندهم نفس الإسم و إن فعلت ذلك سيظهر لك أن هناك مشكلة.


  1. قم بمسح جميع التعليقات الموجودة في ملف الجافا بتأني و إنتبه جيداً لكي لا تمسح كودات الجافا.
    ملاحظة: كل شيء موضوع بين /* &nbsp */ أو يوجد قبله // هو مجرد تعليق.
    التعليق هو ملاحظة يكتبها المبرمج فوق الكود و هذه الملاحظة لا تؤثر إطلاقاً على الكود, لذلك قم بمسح جميع التعليقات عند إنشاء أي مشروع جديد لأنك لست بحاجة إليهم.


  1. بعد مسح جميع التعليقات سيكون شكل الكلاس هكذا.


  1. في الأخير إضغط على أيقونة الحفظ لتحفظ جميع التعديلات التي قمت بإجرائها.

خطوات تشغيل المشروع

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

  2. عندما تقوم بتشغيل البرنامج ستظهر نافذة جديدة في أسفل الشاشة و تظهر فيها نتيجة تشغيل الكود الذي قمت بكتابته, و كم ترى أنه لا يظهر لك أي شيئ, لأنك لم تكتب أي كود بعد.

الشكل العام للبرنامج بدون أن يحتوي على أي كود

تذكر دائماً أنه عندما نقول لك: أكتب برنامج.
فنحن نقصد أننا نريد منك أن تحاول كتابة الخوارزمية على ورقة أولاً. و بعد إنهائها, قم بكتابتها ككود جافا على الكمبيوتر لتجربة ما توصلت إليه.


شكل الخوارزمية الأساسي على الورقة

الخوارزمية
شرح كود الخوارزمية
  • الكلمة Algorithm: تستخدم لإعطاء إسم للبرنامج.

  • كودات البرنامج تكتب بين الكلمتين Begin و End.



شكل الخوارزمية الأساسية ككود جافا
كود الجافا
public class /* هنا نضع إسم البرنامج */ {
 
    public static void main (String[] args) {
 
        /* هنا يجب أن تكتب الكود */
 
    }
 
}
شرح كود الجافا
  • نكتب public class بدل كلمة Algorithm لإعطاء إسم للبرنامج.

  • كودات البرنامج تكتب بداخل حدود الدالة main().


ملاحظة

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