إذا كنت تريد البدء في دورة CS50 فهذا المقال إن شاء الله سوف يوضح لك كافة المعلومات التي تحتاج إلى معرفتها لدراسة الكورس بشكل صحيح، بدايةً من التعريف بهذه الدورة، محتويات كورس CS50، كيفية الحصول على شهادة CS50 من جامعة هارفارد، والطرق المتوفرة من أجل مشاهدة كورس CS50 بالعربي. وقد تحدثنا في مقالات سابقة عن الكثير من شهادات التعليم الذاتي القوية التي يمكن الحصول عليها أون لاين وآخرها كان شهادة مهارات جوجل للتسويق الرقمي، لكن هذا الموضوع سنتحدث فيه بشكل مفصل عن كورس CS50 وتجربتي في دراسة الكورس والحصول على الشهادة.
ما هو كورس CS50؟
- كورس CS50 عبارة عن دورة مجانية تقدمها جامعة هارفارد، يمكن من خلال هذه الدورة لأي شخص البدء في دراسة علوم الكمبيوتر بدون حاجة إلى وجود خلفية مسبقة. فمحتوى الدورة يبدأ من أدنى مستوى لشخص يريد تعلم البرمجة باستخدام منصة Scratch، وهي منصة تفاعلية أشبه بلعبة فيديو، يستطيع من خلالها المبتدئون التعرف على مبادئ البرمجة مثل الشرط، الحلقات التكرارية وما إلى ذلك بشكل مبسط، ويرمز حرفا CS إلى مصطلح علوم الكمبيوتر Computer Science.
- وقد تحدثنا من قبل عن هذا الكورس حينما تحدثنا عن أفضل كورسات IT معتمدة يمكن دراستها أون لاين. في الغالب يتكون الكورس من تسعة أقسام، يُمكن تفصيل كل قسم إلى ثلاثة مراحل. المرحلة الأولى هي محاضرة رئيسية يُلقيها البروفيسور دايفيد مالان David J. Malan وهو واحد من أفضل مدرسي علوم الكمبيوتر على الإطلاق من حيث تبسيط المعلومة وكذلك جودة الشرح. المرحلة الثانية يكون هناك مجموعة مقاطع فيديو صغيرة يُشرح فيها بعض المصطلحات والمفاهيم التي وردت في المحاضرة الرئيسية بشكل أكثر تفصيلًا. أخيرًا يكون هناك جزء التحديات، وهي عبارة عن مهمات يجب عليك حلها حتى تتأكد من فهمك التام للمحتوى القسم.
ما هو محتوى كورس CS50؟
- كما تعرفنا فالكورس يتكون من تسعة أسابيع أو محاضرات، في كل محاضرة يتم شرح موضوع رئيسي عن البرمجة، في البداية يتم الحديث عن البرمجة وأهميتها بشكل عام، بعد ذلك ولعدة محاضرات ستبدأ في تعلم لغة C مع شرح مجموعة من أساسيات البرمجة باستخدامها، وتكون المراحل النهائية متعلقة بمسار معين يريد الدارس أن يتخصص فيه وسنرى ذلك بالتفصيل.
- يجب الانتباه أن الكورس يُدرّس عدة مرات في العام، ومنهج الكورس ثابت، لكن يتم شرحه مجددًا في كل مرة يتم بدأ الكورس فيها. قد تحدث بعض التغيرات على مهمات الكورس، أو على المسار المتبع في نهاية الكورس لكن باقي المنهج ثابت.
0- سكراتش Scratch
- سكراتش هي عبارة عن منصة طورها معهد MIT لمحاكاة طبيعة عمل لغات البرمجة وخصائصها، وهي تستخدم بشكل كبير لتدريب الأطفال على البرمجة في سن صغير، لكنها أيضًا تكون مفيدة في تمهيد المبتدئين في أي سن للدخول إلى عالم البرمجة وكتابة الأكواد.
- في هذا الأسبوع يتم تدريس البرمجة باستخدام سكراتش وستعرف بعض المفاهيم البسيطة عن البرمجة، وسيكون لديك مهمة بعد الانتهاء من الدراسة وهي إنشاء مشروع باستخدام الأداة.
1- لغة سي C
- في الأسبوع الثاني يبدأ الكورس في الدخول إلى عالم البرمجة الحقيقي بالحديث عن واحدة من أفضل لغات البرمجة التي تم ابتكارها على الإطلاق وهي لغة سي C. وسبب تدريس هذه اللغة تحديدًا في الكورس أنها تعتبر أفضل اللغات التي تتعامل مع عتاد الأجهزة "Hardware" إذا ما أردنا ترتيب لغات البرمجة حسب زمن ظهورها، أي أنها تعطي تحكم كبير للمبرمج في التعامل مع الهاردوير، وهذا يعطيها ميزة فائقة عن أغلب لغات البرمجة الأخرى وهي ميزة السرعة في التنفيذ.
- في هذا الأسبوع ندرس أنواع البيانات، الشرط، الحلقات التكرارية، كما ستدرس كيفية استخدام الأوامر النصية عبر الطرفية وهي أحد أساسيات لينكس وهو نظام تشغيل شهير بديل لنظام ويندوز.
2- المصفوفات Arrays
- في هذا الأسبوع يستمر الشرح مع لغة سي ويتم الحديث عن بعض المفاهيم المتقدمة في البرمجة مثل الدوال، المتغيرات، وكذلك المصفوفات، كما يتم شرح المزيد عن سطر الأوامر وكيفية استخدامه.
- بعد ذلك تكون المهام، سيكون عليك تقديم حلول للمهام المطلوبة منك، وسيكون هناك مهمة يجب تقديمها، ومهمتان يمكنك الاختيار بينهما.
3- الخوارزميات Algorithms
- بعد ذلك يتم الحديث عن واحدة من أهم أساسيات البرمجة على الإطلاق وهي الخوارزميات، وهي عبارة عن طريقة تعتمد عليها في كتابة برنامج يعمل بأفضل كفاءة ممكن لتنفيذ المطلوب. يتم دراسة مجموعة مختلفة من الخورزميات مثل البحث الخطي Linear Search / البحث الثنائي Binary Search / الاستدعاء الذاتي Recursion وغيرها.
4- الذاكرة Memory
- بعد الخوارزميات يبدأ الكورس في الحديث عن كيفية تعامل لغات البرمجة وتحديدًا لغة سي مع الذاكرة، وكيف يتم تخصيص مساحة في الذاكرة وكيف يتم استعادة هذه المساحة، وهذا الأمر لا يفهمه إلا من درس لغات مثل لغة سي ولغة سي++ وبعض اللغات الأخرى، لأن أغلب اللغات الحديثة مثل لغة جافا على سبيل المثال تقوم بذلك بشكل تلقائي دون حاجة إلى قيام المبرمج بذلك.
5- هياكل البيانات Data Structures
- بعد ذلك يتم الانتقال إلى واحد من أهم أساسيات البرمجة وهي هياكل أو بنية البيانات Data Structures. وهي ببساطة عبارة عن الوصول إلى الكفاءة القصوى في عملية تخزين البيانات وإدارتها، وكيف يمكن استدعاء هذه البيانات عند الحاجة إليها في أسرع وقت ممكن. ويتم الحديث عن مجموعة من مفاهيم علم بنية البيانات مثل Hash Tables / Singly-Linked Lists.
6- بايثون Python
- بهذا نكون انتهينا من الدراسة باستخدام لغة سي وسنبدأ بدراسة لغة برمجة أسهل منها بكثير وهي لغة بايثون التي تعتبر ثاني أشهر لغة على مستوى العالم والأكثر استخدامًا هذا العام حسب تصنيف TIOBE. ستدرس في هذا الأسبوع تقريبًا كل ما يتعلق باللغة من أنواع البيانات وطريقة الكتابة بها وبعض الفروق بينها وبين لغة سي وكيفية استدعاء مكتبات بايثون واستخدام بعضها.
7- إس كيو إل SQL
- بعد ذلك سنبدأ في دراسة واحدة من أقوى لغات قواعد البيانات وهي لغة الاستعلامات البنيوية Structured Query Language. هذه اللغة هي التي من خلالها يمكننا التعامل مع قواعد البيانات، وسيتم استخدام لغة بايثون مع لغة إس كيو إل من أجل شرح كيفية إنشاء قواعد بيانات، كيفية البحث عن معلومات بها، كيفية تحديثها بالمعلومات، كيفية حذف معلومات منها وما إلى ذلك.
8- اختر مسارًا Tracks
- بعد الانتهاء من دراسة المحتوى السابق نكون قد وصلنا إلى المرحلة النهائية التي فيها سيتعين على الدارس اختيار مسار معين لتقديم المشروع النهائي والانتهاء من الكورس والحصول على شهادة CS50 من جامعة هارفارد. يوفر الكورس مجموعة مسارات يمكنك الاختيار منها، لكن لا أنصح إلا بمسار واحد وهو مسار الويب وسنتعرف على سبب ذلك.
1- مسار برمجة تطبيقات الأندرويد Android
- في هذا المسار يتم تدريس برمجة تطبيقات الأندرويد باستخدام لغة جافا. والحقيقة أن جافا لم تعد الخيار الأمثل لبرمجة التطبيقات، حيث ظهرت لغات أخرى أفضل في هذا النقطة مثل لغة كوتلن وبعض الأُطر مثل ريآكت نيتف، بل وهناك مسار أفضل وهو تعلم لغة درات واستخدام إطار فلاتر وهو المسار الذي أنصح به حاليًا لمن يريد تعلم تطوير تطبيقات الأندرويد.
2- مسار برمجة تطبيقات آي أو إس iOS
- في هذا المسار يتم تدريس برمجة تطبيقات iOS باستخدام لغة سويفت Swift وهي حالها كحال جافا لم تعد الوسيلة الأفضل لبرمجة تطبيقات iOS، فظهر بدلًا منها بعض الأُطر كما هو حال الأندرويد مثل إطار ريآكت نيتف، ويمكن أيضًا باستخدام نفس مسار الأندرويد السابق من خلال إطار فلاتر ولغة Dart كتابة كود واحد يعمل على الأندرويد وiOS.
3- تطوير الألعاب Game Development
- في هذا المسار يتم تدريس تعلم تصميم ألعاب الفيديو باستخدام لغة Lua، ولكنها في رأيي ليست أفضل لغات برمجة الألعاب، لذلك لا أنصح بهذا المسار، وإذا كنت تريد تعلم هذا المجال يمكنك مراجعة المقال التالي الذي يعتبر بداية لمسار شامل على موقعنا لتعلم تصميم الألعاب مجانًا، وكيفية الاستفادة من محرك ألعاب الفيديو في صناعة ألعاب احترافية.
4- مسار الويب Web Development
- كما رأينا عيوب المسارات السابقة يتبقى لنا هذا مسار مطور الويب الذي أنصح بدراسته، لأنه أولًا سيجعلك تستفيد بشكل عملي من دراستك لبايثون وإس كيو إل، كما ستدرس الكثير من المجالات التي ستفيدك بشكل كبير في أي مجال تود دراسته بعد ذلك، حيث ستتعرف على لغات HTML & CSS ثم ستدرس بعد ذلك لغة جافا سكريبت JS المميزة، ثم ستدرس إطار فلاسك Flask وهو من أُطر لغة بايثون المميزة ومن أفضل أُطر الويب بشكل عام.
- سيكون هناك مشروعين يجب تقديمهما في هذا المسار، ثم سيكون هناك المشروع النهائي، وهو عبارة عن فكرة من ابتكارك تقوم بتنفيذها باستخدام ما تعلمته من الكورس، ولا يوجد قبول أو رفض للمشروعات النهائية، ولكن يجب الحرص على تقديم شيء جيد يعكس المحتوى المميز المقدم في هذا الكورس.
مشاهدة كورس CS50 بالعربي
- طبعًا الكورس يتم تدريسه باللغة الإنجليزية، وإذا كنت متمكنًا في اللغة الإنجليزية فالأفضل أن تشاهده مباشرةً بدون ترجمة، لكن إذا كان ذلك غير مناسبًا لك يمكنك ترجمة كورس CS50 ومشاهدة المحتوى مترجمًا، أو يمكنك مشاهدة كورس CS50 مترجم من إدراك، وهي واحدة من أفضل منصات التعلم الذاتي العربية الشهيرة. وإليكم تفصيلًا للطريقتين.
1- كورس CS50 مترجم إدراك
- الطريقة الأولى هي مشاهدة الكورس المترجم على منصة إدراك، ولكن المشكلة في هذه الطريقة أن الكورس المترجم واحد فقط ولا يتم ترجمة المحتوى المتجدد للكورس، وكورس CS50 المترجم على إدراك يجب إنهائها قبل يوم 31 ديسمبر 2020 من أجل إنهاء المهام والحصول على الشهادة. فإذا كنت تهتم بالمحتوى فقط فيمكنك دراسة هذا الكورس من إدراك والاستفادة من المحتوى المقدم عليه، أما إذا كنت تريد مشاهدة أحدث كورس CS50 بالعربي فاتبع الطريقة التالية.
2- ترجمة كورس CS50 بالعربي
- هذه الطريقة تعتمد على ترجمة محتوى الكورس من خلال اليوتيوب، حيث يتم رفع جميع محاضرات الكورس إلى اليوتيوب، كل ما عليك فعله هو الدخول إلى رابط الفيديو على اليوتيوب ونسخه، ثم ستذهب إلى هذا الشرح على موقعنا لمعرفة كيفية ترجمة فيديوهات اليوتيوب أون لاين إلى العربية. من خلال هذا الشرح ستتمكن من الحصول على ملف ترجمة بالعربي لكل فيديو في الدورة بسهولة، ويمكن بعد ذلك تشغيل الترجمة مع الفيديو ومشاهدة كورس CS50 بالعربي.
لماذا يجب عليك دراسة كورس CS50؟
- الكورس مجاني تمامًا ومدته ليست طويلة
- واحد من أفضل كورسات IT معتمدة متوفرة أونلاين
- تستطيع من خلاله دخول عالم البرمجة تكنولوجيا المعلومات
- الكورس موجه للمبتدئين ولا يحتاج إلى خبرة مسبقة في أي مجال
- تجربة دراسة منهج أكاديمي من جامعة مرموقة مثل جامعة هارفارد
- يوجد تمارين للتدرب على ما تم دراسته في كل أسبوع، مع تصحيح آلي للحل
- بداية هامّة يمكنك من خلالها احتراف مجال من مجالات البرمجة بالتعلم الذاتي بسهولة
- تتعلم فيه الكثير عن أساسيات البرمجة بطريقة مبسطة وباستخدام لغة قوية مثل لغة سي
- يتم الحصول على شهادة IT معتمدة من جامعة هارفارد مع رابط للشهادة على موقع الجامعة
- بعد الانتهاء يمكن دراسة دورات CS50 متخصصة في مجالات مثل الذكاء الاصطناعي وتطوير الويب
- يتم دراسة مجموعة من لغات البرمجة وأساسياتها وكيفية بناء تطبيقات عملية بها في فترة قصيرة جدًا