محمد | Data-AI
محمد | Data-AI

@Science10S

25 تغريدة 29 قراءة Jul 28, 2021
سأقدم خلال هذه السلسلة شرح مفصل لرحلتي في أحد أعظم الدورات الموجودة على الإنترنت والمتاحة بشكل مجاني لجميع من يريد البدء بالإبحار في علوم الحاسب الآلي والبرمجة سواء كان من المختصين في المجال أم لا.
شهادة CS50 المقدمة من جامعة Harvard
CS50 هي مقدمة مكثفة في علوم الحاسب الآلي وفن البرمجة تؤسسكم بطريقة أكاديمية وعملية وتمهد الطريق لكم لتصبحوا مبرمجين محترفين لتنفيذ مشاريعكم البرمجية الخاصة، وعشان أحفزكم أكثر أنا بعد هذه الدورة مو مثل قبلها طريقتي في حل المشاكل البرمجية تطورت بشكل ملحوظ.
الدورة تتضمن مفاهيم تمكن من التفكير بشكل منطقي لحل المشاكل البرمجية مثل التجريد ، الخوارزميات ، هياكل البيانات ، التغليف ، إدارة الموارد ، الأمن ، هندسة البرمجيات ، وبرمجة الويب واللغات المستخدمة في الدورة هي C, Python, SQL HTML, CSS, JavaScript.
يتم تطوير محتوى الدورة سنوياً لتتأقلم مع المهارات المطلوبة في سوق العمل ويتم العمل عليها بواسطة فريق متكامل بقيادة البروفيسور @davidjmalan وستندهش من كمية التحضير لتبسيط المفاهيم وإضفاء المتعة أثناء التعلم.
بشكل أساسي تم تقسيم الدورة إلى 11 أسبوع كل أسبوع يتضمن مقطع فيديو مطول يتراوح بين ساعة إلى ساعيتن ونصف بالإضافة إلى تدريب عملي واختبار نهاية الأسبوع شرحت بالصورة أدناه أهم العناصر في كل محاضرة أسبوعية.
صور من داخل معمل التدريب العملي | Lab حيث يتم شرح المشكلة المراد حلها بتفصيل كبير ويوجد مقطع فيديو للتوضيح بشكل أفضل أنصحكم بشدة بمحاولة حلها بأنفسكم وعدم الاستعانة بمصادر خارجية إلا عند الضرورة وذلك لتطوير مهارة البرمجة لديكم بشكل أفضل.
بنفس الطريقة يتم حل اختبارات نهاية الأسبوع أو كما تسمى مجموعات المشاكل | Problems sets الدورة تحتاج صبر وإرادة قوية عشان يتم إنجازها لكن تذكروا دائماً إنها بتحقق نقلة نوعية خصوصاً لغير المتخصصين.
في الأسبوع 0 | Week 0 بدأت في تعلم scratch وهي لغة برمجة مرئية عالية المستوى تستخدم ال Blocks وليس الأكواد للبرمجة وقمت بتنفيذ مشروع بسيط بنهايتها بالإمكان الإطلاع عليه من خلال الرابط
scratch.mit.edu
لكل مشروع أو معمل تقوم بالإنتهاء منه هنالك تقييم آلي لعملك ومدى توافقه مع المطلوب منك (نظام التقييم مدهش وذكي جداً)
و للتحقق من درجات المشاريع الخاصة بك بإمكانك الذهاب إلى Gradebook وهذه قائمة ببعض درجات المشاريع التي قمت بها
في الأسبوع 1 بدأ شرح أساسيات البرمجة من خلال لغة C مثل ال conditions و ال loops و data types وغيرها وانتهى الأسبوع ببعض المشاريع الرائعة مثل:
1- محاكاة الأحجار في لعبة ماريو
2- عمل برنامج خاص بإرجاع النقود بمفهوم Greedy Algorithm
3- برنامج تحقق من البطاقات الإئتمانية
الأسبوع 2 Arrays وبدأت المحاضرة بشرح مفاهيم مثل ال compiling و debugging ثم الانتقال إلى كيفية تخزين البيانات عن طريق المتغيرات وال arrays في الذاكرة والوصول إليها وانتهت بمشاريع مثل :
1- برنامج تشفير اسمه قيصر يشفر البيانات يقوم بتشفير النصوص المدخلة
الأسبوع 3 أسبوع الخوارزميات وكيف تسهم بإدارة موارد الجهاز بشكل فعال وكيف تختار من بينها حسب المعطيات
Linear Search
Binary Search
Bubble Sort
Selection Sort
Recursion
Merge Sort
وانتهى الأسبوع بتصميم برامج خاصة بالتصويت والانتخابات كان فيها صعوبة نوعا ما
الأسبوع 4 تم التوسع بشكل أكبر في التعامل مع الذاكرة Memory وأقسامها وطريقة الوصول إليها وإداراتها وتم التطرق لمفاهيم مثل ال pointers وتعريف أنواع مخصصة من البيانات وانتهت
1- بمشاريع خاصة بفلترة الصور وتحسينها
2- مشروع استعادة الصور المحذوفة من بطاقة لكاميرا رقمية
الأسبوع 5 هياكل البيانات كان الأسبوع الأصعب في لغة C حتى المشاكل البرمجية اللي تم التعرض لها كانت معقدة كل اللي أعرفه أني أحتاج المزيد من الدراسة لإتقانها
Data Structures
Singly-Linked Lists
Hash Tables
Tries
وانتهت بمشروع خاص بالتحقق من الإملاء للكلمات
الأسبوع 6 بايثون، هنا وصلنا بر الأمان بعد ما تأسست بشكل جيد بلغة C وصار بالإمكان تعلم أي لغة برمجة أخرى بنفس الطريقة بدأنا بالأساسيات وانتهيت إلى عدة مشاريع تم تنفذها مسبقاً بواسطة C لكن هذه المرة بلغة بايثون بالإضافة لبرنامج خاص بتحليل ومقارنة الشريط الوراثي DNA لأشخاص
الأسبوع 7 SQL والتعامل مع قواعد البيانات سبق لي العمل على تحليل البيانات والتعامل معها لكن الجديد أني تعلمت ربطها مع اللغات الأخرى كـ بايثون باستخدام SQLITE انتهى الأسبوع بتنفيذ مشروعين :
1- التدريب على استفسارات SQL
2- عمل تحقيق جنائي على Database لسرقة وهذه كانت حفلة :)
الأسبوع 8 كان عبارة عن المفاهيم الأساسية للويب
Internet Primer
IP
TCP
HTTP
وبعدها تم التطرق للغات المستخدمة في تطوير المواقع مثل HTML CSS JavaScript
وانتهى الأسبوع بتطوير صفحة ويب مصغرة طورتها فيما بعد لتصبح مشروع التخرج
الأسبوع 9 تعرفت على أطر العمل مثل Flask و Bootstrap والتي تستخدم في تحسين وتسهيل برمجة الموقع وتحسين تجربة المستخدم وتوافقية المواقع على عدة أجهزة بشكل مرن وانتهى الأسبوع بتطبيق مشروع جميل جداً خاص بتداول الأسهم تعلمت منه الكثير خلال التنفيذ.
الأسبوع 10 والأخير كان خاص بأخلاقيات المهنة وأمور أخرى كالخصوصية و كان سهل ولطيف جداً بعد هذه الرحلة الطويلة انتهى بنموذج استبيان عن رأيك الشخصي بأمور تتعلق بالخصوصية وتقييد المحتوى.
يوجد محاضرات إضافية لمن أراد الاستزادة في مواضيع خاصة بالأمن السيبراني و الذكاء الاصطناعي كل منها حوالي ساعة من الزمن.
بعد ذلك قمت بتنفيذ مشروع التخرج وهو عبارة عن صفحة شخصية أسميتها AIoT Planet لاهتمامي بكل من إنترنت الأشياء والذكاء الإصطناعي وفيها أستعرض نبذة عني وعن بعض الكتب والمشاريع التي قمت بتنفيذها لزيارة الموقع قم بالدخول عبر الرابط
aiot-planet.herokuapp.com
وأخيراً حان موعد قطف الثمار وتم الحصول على الشهادة بفضل الله بعد هذه الرحلة المطولة والتي استمرت لمدة شهرين.
الدورة مجانية بشكل تام ويمكنك دراستها في أي وقت شرط أن تكون ضمن نفس السنة 2021 !
رابط الدورة 🔗 : cs50.harvard.edu
تمنياتي بالتوفيق للجميع.
Finally Many thanks to Professor @davidjmalan , his great team @cs50 and @Harvard University for this unparalleled journey.

جاري تحميل الاقتراحات...