1. استدلال AI-Pacman : في مشروع Pacman 1، سيقوم وكيل Pacman بالبحث عن المسارات من المتاهة للوصول إلى وجهة معينة وجمع الطعام بكفاءة. يتم تنفيذ خوارزميات البحث العامة من أجل تلبية أنواع مختلفة من سيناريوهات Pacman. نستخدم هذه اللعبة كنموذج لفهم كيفية عمل خوارزميات البحث المختلفة. في هذه المهمة، سيجد وكيل Pacman مسارات عبر عالم المتاهة الخاص به، للوصول إلى موقع معين وجمع الطعام بكفاءة... تم تنفيذ هذه المهمة في python3.
2. آلية Bit-Torrent : يقوم البرنامج بتنزيل جميع الأجزاء المختلفة من الملف من أقران مختلفين، ويجمعها ويحفظ الملف في الكمبيوتر المحمول/الدليل المحلي الخاص بنا. الغرض من هذه المهمة هو فهم آلية BitTorrent. يحصل برنامج BitTorrent على ملف تورنت يحتوي على قائمة بالأقران الذين يستضيفون الملف، ويقوم بتنزيل أجزاء مختلفة من الملف من أقران مختلفين. البرامج المستخدمة هنا هي بيئة python3 و Linux.
3. شبكات خادم العميل : يستمع الخادم على منفذ، ويتم تشغيل برنامج الخادم باستخدام رقم منفذ كمدخل ويقوم العميل بإجراء اتصال TCP ويقوم الخادم بإرسال ملف إلى العميل بالإضافة إلى العمل كخادم، يقوم الخادم يمكن أيضًا أن يعمل كوكيل. يتم تنفيذ كل من برنامج العميل والخادم في python3 واستخدام برمجة المقبس والخيوط المتعددة لدعم الاتصالات المتزامنة في الخادم.
4. النموذج الأولي لنظام إدارة شركات الطيران الوهمية : في هذا المشروع قمنا بتطوير نظام إدارة طيران وهمي. والذي يقوم بتخزين واسترجاع البيانات المتعلقة بالمطارات وشركات الطيران والرحلات الجوية. وكان الدافع وراء اختيار هذه الفكرة هو تطوير نظام تم تصميمه جذابة بصريا وسهلة الاستخدام. هناك نوعان من المستخدمين في هذا النظام: 1) العملاء و2) لقد منح المسؤول والمسؤول حق الوصول لتعديل الرحلات الجديدة وما إلى ذلك. المصدر الأساسي للبيانات التي استخدمناها في هذا المشروع هو مجموعة بيانات الرحلات الجوية لعام 2015 فقط، والتي يمكن العثور عليها على برامج kaggle المستخدمة في هذا المشروع هي MY SQL Workbench للاستعلامات وإطار عمل Python للويب الذي يوفر أدوات وميزات مفيدة تجعل إنشاء تطبيقات الويب وHTML لصفحة الويب الأمامية
5. تقدير كثافة حركة المرور-opencv : يوجد بشكل أساسي جزأين في هذا الكود: الشيء الأساسي الذي نحتاجه لمراقبة حركة المرور هو تغذية الكاميرا التي يتم وضعها على الطريق الحقيقي، ولكن لا يمكننا التأكد من وضعها في وضع جيد مثل هذا الطريق المراد مشاهدتها في مستطيل مثالي وتتلقى الكاميرا عرضًا علويًا. قد يكون هناك العديد من الأشياء الأخرى في الصورة والتي يجب التخلص منها من أجل العمل الفعال للخوارزمية. يعمل opencv بشكل أفضل مع الإطارات المستطيلة، لذا بالنسبة لمهام مثل تقدير كثافة حركة المرور، فمن الضروري أولاً إصلاح زاوية الكاميرا في البرنامج واقتصاص الصورة لإزالة العناصر الإضافية. يحتوي أحد المستودعات على تصحيح زاوية الكاميرا وكود اقتصاص الإطار.
المهمة الفرعية 2: الصورة المستخرجة من الفيديو والتي تستخدم كخلفية. في الجزء الإضافي، تم إجراء تحليل مقايضة وقت تشغيل الأداة المساعدة.
6. مشروع الحوسبة السحابية : الشرح بطريقة بسيطة: كان المشروع يدور حول إنشاء أداة تساعد الأشخاص الذين يستخدمون الأجهزة الافتراضية. تشبه الأجهزة الافتراضية أجهزة الكمبيوتر التي تعمل داخل كمبيوتر آخر. إنها مفيدة لأنها تتيح للأشخاص تشغيل أنظمة تشغيل أو برامج مختلفة دون الحاجة إلى جهاز كمبيوتر منفصل لكل منها.
الأداة التي أنشأناها كانت تسمى snapshotting API. إنها مثل الكاميرا التي تلتقط صورة لجهاز افتراضي في وقت معين. هذه الصورة تسمى لقطة. تعد اللقطات مفيدة لأنها تتيح للأشخاص حفظ حالة الجهاز الظاهري والعودة إليها لاحقًا. على سبيل المثال، إذا كان شخص ما يعمل على مشروع في جهاز افتراضي ويريد أخذ قسط من الراحة، فيمكنه التقاط لقطة والعودة إليها لاحقًا دون فقدان أي تقدم.
استخدمنا لغة برمجة تسمى Rust لإنشاء واجهة برمجة تطبيقات اللقطات. الصدأ هو لغة جيدة لهذا النوع من المشاريع لأنه آمن وسريع. وهذا يعني أن واجهة برمجة التطبيقات (API) أقل عرضة لوجود أخطاء أو مشكلات أمنية، وأنها تعمل بسرعة.
قمنا بتقسيم المشروع إلى خمس مراحل رئيسية. كانت المرحلة الأولى تتعلق بإنشاء جهاز افتراضي أساسي يمكننا استخدامه للاختبار. كانت المرحلة الثانية تتعلق بإضافة ميزة تتيح للأشخاص إيقاف جهاز افتراضي مؤقتًا واستئنافه. كانت المرحلة الثالثة تدور حول تحويل واجهة برمجة تطبيقات اللقطات إلى برنامج أصغر وأكثر كفاءة. كانت المرحلة الرابعة تتعلق بإنشاء خادم ويب يمكنه تشغيل أجهزة افتراضية متعددة في وقت واحد. كانت المرحلة الأخيرة تدور حول جعل واجهة برمجة تطبيقات اللقطات أكثر كفاءة باستخدام تقنية تسمى إلغاء البيانات المكررة. هذا يعني أنه إذا كانت اللقطتان متشابهتين جدًا، فنحن نحتاج فقط إلى حفظ الأجزاء المختلفة.
تم استخدام واجهة برمجة تطبيقات اللقطات التي أنشأناها في أجزاء مختلفة من المشروع. على سبيل المثال، استخدمه موازن التحميل لتحريك الأجهزة الافتراضية، واستخدمته الواجهة الأمامية لإنشاء أجهزة افتراضية جديدة من صورة أساسية، واستخدمه نظام مكافحة الغش لمراقبة من يستخدم الأجهزة الافتراضية.
بشكل عام، كان المشروع ناجحًا. لقد انتهينا من جميع أهدافنا قبل الموعد النهائي، وقمنا بإنشاء واجهة برمجة تطبيقات سريعة وآمنة وسريعة وفعالة. لمزيد من المعلومات، انظر إلى المستودعات.