عن المشروع
Coding Problems هو مستودع تعليمي يجمع حلولاً بلغة Python 3 لمسائل خوارزمية وأسئلة مقابلات برمجية، إلى جانب مجموعة مختارة من موارد الدراسة. يوضح ملف README بوضوح أن المادة مخصصة للتعلم والبحث، وليس للاستخدام في الإنتاج.
الحلول
جميع الحلول مكتوبة بلغة Python 3 وتعتمد فقط على الدوال المدمجة وبعض وحدات المكتبة القياسية (math، collections، heapq، random)، لذا لا تتطلب حزمًا خارجية لتشغيلها. اختار المؤلف لغة Python لأنها قريبة من الكود الزائف، مما يجعل المنطق سهل النقل إلى لغات أخرى. يتبع أسلوب الكود معيار PEP8.
يستخدم كل ملف حل قالبًا ثابتًا: سلسلة توثيق تحتوي على اسم المسألة، والشرح، ووصف المدخلات والمخرجات، ونهجًا أو أكثر للحل مع تعقيد الزمن والمساحة؛ ثم دوال الحل؛ ثم قسم اختبار بسيط يطبع النتائج باستخدام print() بدلاً من إطار اختبار الوحدات (يشير README إلى أن unittest أو pytest خيارات أفضل للاختبار الفعلي).
تُصنف المسائل إلى فئات: المصفوفات (الفرز، البحث الثنائي، فرق تسد، النافذة المنزلقة)، القوائم المرتبطة، الأشجار (أشجار البحث الثنائية، اجتيازات BFS/DFS)، هياكل بيانات التجزئة (المجموعات والقواميس)، البرمجة الديناميكية (1D/2D، LCS، LIS، حقيبة الظهر)، السلاسل النصية، الرياضيات (GCD، LCM، التحليل إلى عوامل، الهندسة)، وأخرى (التراجع، BFS، DFS، الأكوام، الطوابير، الطوابير المزدوجة، الكومة، المصفوفات). يلاحظ المؤلف أن المسائل نفسها تأتي من مواقع مثل LeetCode؛ فقط الحلول والشروح هي الأصلية.
موارد التعلم
يضم المستودع أيضًا موارد مختارة في أربع مجموعات:
- دورات: دورات جامعية مجانية من Stanford وPrinceton وUC San Diego وMIT وHarvard وUC Berkeley، تغطي الخوارزميات وهياكل البيانات وخوارزميات الرسوم البيانية وموضوعات متقدمة.
- كتب: قائمة قصيرة مشروحة تشمل Grokking Algorithms وCLRS وSedgewick & Wayne وThe Algorithm Design Manual وDasgupta وآخرون وCompetitive Programming 3 وCracking the Coding Interview.
- مواقع تدريب: قائمة طويلة بمنصات ممارسة مثل Codeforces وHackerRank وTopcoder وAtCoder وSPOJ وProject Euler وKattis وCodewars وCodility وغيرها.
- موارد أخرى: Geeks For Geeks وTheAlgorithms/Python وCP Algorithms وأدوات تصور (USFCA وVisuAlgo وAlgorithm Visualizer) ودروس متنوعة وقوائم تشغيل على YouTube.
يدعو ملف README إلى الإبلاغ عن الأخطاء أو التحسينات عبر المشكلات أو طلبات السحب، ويشير إلى أن المستودع يُحدَّث دوريًا.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.