
البرمجة بلغة بايثون 2024 (المهام المتقدمة)
الكورس الاحترافى الشامل لتعلم المهام والمفاهيم المتقدمة للغة البرمجة بايثون
ماذا ستتعلم؟
- فهم البرمجة الكائنية والكلاس والأوبجكت
- استخدام الـ Constructor والمتغيرات والدوال داخل الكلاس
- تطبيق الوراثة والكلاس المجرد
- التعامل مع Enum وjson والموديول
- التعامل مع موديول الوقت والتاريخ
- فتح الملفات وقراءتها والكتابة فيها
- معالجة الأخطاء والاستثناءات
- الاتصال بقاعدة البيانات وإنشاء الجداول
- إضافة البيانات وتعديلها وحذفها من قاعدة البيانات
- تنفيذ تطبيقات عملية على المهام
عن الدورة
يشرح هذا الكورس المهام المتقدمة في لغة بايثون Python لمن أنهى الأساسيات ويريد تطوير برامج أكبر. يبدأ بالبرمجة الكائنية: الكلاس والأوبجكت، والبناء Constructor، والفرق بين Class Variable وInstance Variable، وClass Method وStatic Method، وتحديد إمكانية الوصول، ثم الوراثة بأنواعها، والكلاس المجرد، وEnum. بعد ذلك تتعلم json والموديول وموديول الوقت والتاريخ، ثم التعامل مع الملفات بفتحها وقراءتها والكتابة فيها وحذفها، ومعالجة الأخطاء بـ Finally وelse. وتنتقل إلى قواعد البيانات: الجداول، والاتصال بقاعدة البيانات، وإضافة البيانات وقراءتها وتعديلها وحذفها. وفي الآخر تطبيقات عملية، ولعبة التخمين، والتعامل مع الصور وسكرين شوت الشاشة، وتسجيل الصوت. ينفع هذا الكورس من يعرف أساسيات بايثون ويريد المستوى التالي. كل درس يشرح فكرة واحدة بمثال بسيط حتى تفهمها قبل الانتقال لما بعدها. وفي النهاية ستكون قادرا على بناء برامج منظمة بالكلاسات تتعامل مع الملفات وقواعد البيانات.
نتائج متوقعة من الدورة
- القدرة على تنفيذ مشاريع متقدمة باستخدام بايثون.
- إدارة الملفات ومعالجة الأخطاء بكفاءة.
- فهم أساسيات البرمجة الكائنية وتنفيذ التطبيقات العملية.
- إنشاء قواعد بيانات وربطها بمشاريع برمجية.
تقييمات المتدربين
محتوى الدورة
1الموديل
4 درس
- الموديول (الجزء الأول)يشرح مفهوم الـ Module على أنه ملف بامتداد py يمكن استخدامه في ملف آخر، وكيفية استدعائه بـ import والوصول إلى دوال ومتغيرات الملف باسم الـ Module.8:59
- الموديول (الجزء الثاني)يكمل شرح الـ Module، بالاستيراد المباشر لعناصر محددة بـ from import دون كتابة اسم الـ Module، وتسمية بديلة له بالكلمة as لتقصير الكتابة.13:20
- الموديول (الجزء الثالث)يشرح الـ Package كمجلد يجمع عدة Modules، وطرق استيراد الدوال منه باسم الـ Package والـ Module، مع مثال بدالتي جمع وطرح وطباعة معلومات.11:14
- التعامل مع موديول الوقت والتاريخيشرح موديولات التاريخ والوقت في Python مثل time وcalendar وdatetime، ويستعرض دوال موديول calendar لعرض التقويم، وحدود قيم اليوم والشهر والسنة.21:24
2التعامل مع الملفات
5 درس
- مقدمة عن التعامل مع الملفاتمقدمة عن التعامل مع الملفات في Python، وأنها تحفظ البيانات بعكس المتغيرات التي تُخزن في الـ RAM وتزول بانتهاء البرنامج، وعن العمليات الأربع: فتح الملف وقراءته وكتابته وإغلاقه.7:13
- فتح الملفيشرح فتح الملف في Python بالدالة open، وما تحتاجه من اسم الملف أو مساره ووضع الفتح مثل r للقراءة وw للكتابة وa للإضافة، وحفظ الناتج في متغير.18:39
- قراءة محتوى الملفيشرح قراءة محتوى الملف بالدالة read كاملا أو بعدد حروف محدد، وقراءة سطر بسطر بـ readline، والمرور على الأسطر بحلقة for، وإغلاق الملف بعد الانتهاء.12:12
- كتابة بيانات في الملفيشرح كتابة البيانات في الملف بوضعين، w الذي يمسح المحتوى القديم ويكتب من جديد، وa الذي يحتفظ بالمحتوى ويضيف في آخره، وإنشاء الملف تلقائيا إن لم يكن موجودا.10:49
- حذف الملفيشرح حذف ملف من Python باستخدام موديول os والدالة remove، مع التحقق من وجود الملف أولا بـ os.path.exists لتجنب الخطأ، وطباعة رسالة تأكيد الحذف.8:47
3التعامل مع الأخطاء
4 درس
- معالجة الأخطاءيشرح نوعي الأخطاء في Python وهما Syntax Error وException، ومصادر الـ Exception مثل إدخال المستخدم أو الاتصال بالسيرفر، ومعالجتها بـ try وexcept.14:54
- معالجة أكثر من استثناءيشرح معالجة أكثر من استثناء، بتكرار الإدخال عند بيانات غير صالحة، وتحديد نوع الخطأ مثل ZeroDivisionError في except مستقلة، وإضافة except عام للاستثناءات الأخرى.14:42
- استخدام الـ Finallyيشرح الكلمة finally مع try وexcept، وأن كودها يُنفذ سواء نجح try أو حدث استثناء، وتفيد في تنظيف الموارد مثل إغلاق الملفات واتصالات قاعدة البيانات.7:19
- استخدام الـ elseيشرح استخدام else مع try وexcept، حيث يُنفذ كودها عند نجاح try دون استثناء، وفصل الكود المعرض للخطأ عن باقي التنفيذ، مع مثال يتحقق من مفتاح في قاموس.18:35
4البرمحة الكائنية
20 درس
- مقدمة البرمحة الكائنيةمقدمة عن البرمجة الكائنية OOP، وسبب الحاجة إليها عند إدارة بيانات كثيرة مثل موظفي شركة بدل متغيرات متفرقة، وفكرة الـ Class كقالب يصف خصائص الكائن والعمليات عليه.9:00
- الكلاس والأوبجكت (الجزء الأول)يوضح العلاقة بين الـ Class والـ Object، فالـ Class قالب يصف الخصائص والدوال، والـ Object نسخة فعلية تُنشأ منه بعملية instantiate، مع مثال موظفي الشركة.21:17
- الكلاس والأوبجكت (الجزء الثاني)يكمل مثال الـ Class والـ Object بنموذج سيارة له خصائص الشركة والموديل وأعلى سرعة وسنة الصنع، ثم إنشاء Object منه والوصول إلى خصائصه بنقطة.8:30
- البناء Constructorيشرح الـ Constructor وهو الدالة init التي تُنفذ تلقائيا عند إنشاء Object وتستقبل بيانات تُسند لخصائصه، مع استخدام self للإشارة إلى الـ Object نفسه.15:28
- الفرق بين Class Variable و Instance Variableيوضح الفرق بين Class Variable وInstance Variable في بايثون، وكيف يُوصل إلى كل منهما، وماذا يحدث عند تغيير قيمة المتغير من الـ class أو من الـ object.14:38
- التمرين الأولتطبيق عملي على Class Variable وInstance Variable في كلاس الموظف، مثل عداد للموظفين يزيد مع كل object جديد، وإعطاء قيمة افتراضية لمتغير instance دون استقباله في الـ constructor.11:33
- تعيين للكلاس بعض الدواليشرح تعريف الدوال داخل الكلاس لتصبح methods، واستخدام self لاستدعائها من الـ object، وتخصيص طريقة عرض الـ object عند طباعته بدل الشكل الافتراضي.14:32
- ما هو Instance Attributesيشرح الـ Instance Attributes في بايثون، وكيفية قراءتها وتعديلها مباشرة، واستخدام الدوال المدمجة hasattr وsetattr وgetattr وdelattr للتحقق منها وتعديلها وحذفها.19:18
- بعض من الـ Class Attributesيعرض الخصائص المدمجة للكلاس في بايثون مثل الـ docstring والـ dict والـ module، ويوضح أن كل كلاس يرث تلقائيا من الكلاس object.18:02
- ما هي الـ Class Method Decoratorيشرح الـ Class Method decorator وتحويل instance method إلى class method عندما تعتمد على الـ class variables فقط، وسبب حدوث خطأ إذا اعتمدت على instance variables.16:02
- التعامل مع الـ Static Methodيشرح الـ Static Method، وهي دالة داخل الكلاس لا تستقبل self ولا cls، وكيفية استدعائها من اسم الكلاس أو من الـ object، والفرق بينها وبين instance method وclass method.8:15
- التعامل وتحديد إمكانية الوصوليشرح مستويات الوصول public وprotected وprivate في بايثون باستخدام الشرطة السفلية، وحماية البيانات داخل الكلاس، واستخدام getter وsetter للقراءة والتعديل بطريقة آمنة.13:18
- الوراثةيشرح مفهوم الوراثة Inheritance بين الكلاس الأب Parent والكلاس الابن Child، وكيف يرث الابن الخصائص والدوال دون إعادة كتابتها، واستخدام super للوصول إلى الأب.14:10
- النوع الأول للوراثةيشرح الوراثة المفردة Single Inheritance بمثال كلاس Animal وكلاسات Dog وCat التي ترث منه، مع إضافة دوال خاصة بكل ابن مثل bark وmeow.11:48
- النوع الثاني للوراثةيشرح الوراثة متعددة المستويات Multilevel Inheritance، حيث يرث كلاس من كلاس يرث بدوره من كلاس آخر، بمثال Animal ثم Dog ثم Rex Dog، وتمرير القيم عبر المستويات.10:55
- النوع الثالث للوراثةيشرح الوراثة المتعددة Multiple Inheritance في بايثون، أي وراثة كلاس من أكثر من كلاس، ويعرض الدالتين isinstance وissubclass للتحقق من علاقة الكائن أو الكلاس بغيره.9:02
- التحكم والتغيير في أداء الدالةيشرح Method Overriding، أي تعريف دالة بنفس اسم دالة في الكلاس الأب داخل الكلاس الابن لتؤدي سلوكا مختلفا، وأثر ذلك على الدالة التي تُستدعى فعليا.6:44
- الكلاس المجرديشرح الكلاس المجرد Abstract Class كقالب blueprint للكلاسات الأبناء لا يمكن إنشاء object منه، مع استخدام وحدة abc، ومثال موظف بدوام كامل وبدوام جزئي بحساب مختلف للراتب.24:06
- ما هو الـ Enumيشرح الـ Enum في بايثون لتجميع ثوابت فريدة تحت اسم واحد، مثل الألوان، والوصول إلى الاسم والقيمة لكل عنصر، وكونها غير قابلة للتعديل.22:05
- شرح الـ jsonيشرح صيغة JSON وكيفية التعامل معها في بايثون عبر وحدة json، بتحويل نص JSON إلى بيانات بدالة loads، وتحويل البيانات إلى نص JSON بدالة dumps.12:02
5قواعد البيانات
7 درس
- مقدمة عن قواعد البياناتمقدمة عن قواعد البيانات كطريقة لتخزين البيانات، والفرق بين النوع العلائقي SQL مثل SQLite وغير العلائقي مثل MongoDB، ومفهوم العلاقات بين الجداول مثل واحد إلى واحد وواحد إلى كثير.9:35
- الجداول في قاعدة البياناتيشرح بنية الجداول في قاعدة البيانات: قاعدة باسم المشروع تحوي جداول، كل جدول أعمدة بنوع بيانات محدد وصفوف تمثل السجلات، مع تمهيد لعمليات CRUD.15:03
- الاتصال بقاعدة البياناتيشرح الاتصال بقاعدة بيانات SQLite من Python باستيراد الموديول sqlite3 واستخدام الدالة connect مع اسم الملف، فيفتح القاعدة إن وُجدت وينشئها إن لم توجد.8:42
- إنشاء الجداوليشرح إنشاء الجداول في SQLite من Python بتنفيذ جملة CREATE TABLE عبر execute، مع تحديد أسماء الأعمدة وأنواع بياناتها مثل TEXT وINTEGER، وإنشاء جدولين في قاعدة واحدة.12:22
- إضافة البيانات داخل قاعدة البياناتيشرح إضافة بيانات إلى جدول في قاعدة بيانات SQLite من بايثون باستخدام الـ cursor وأمر execute، ولماذا يلزم commit لحفظ التعديلات.12:00
- الحصول على البيانات من قاعدة البياناتيشرح جلب البيانات من جدول في قاعدة البيانات عبر الـ cursor، والفرق بين fetchone وfetchmany وfetchall، وأن كل طريقة تكمل من حيث توقفت الأخرى وتعيد قائمة أو صفا.15:57
- تعديل وحذف البيانات داخل قاعدة البياناتيشرح تعديل البيانات وحذفها من جداول قاعدة البيانات باستخدام الـ cursor وأوامر UPDATE وDELETE، وأهمية شرط WHERE لتحديد الصف المقصود، ثم commit لحفظ التغييرات.9:35
6مهام متقدمة
6 درس
- تطبيق المهام - الجزء الأوليبدأ بناء تطبيق مهام تودو يتعامل مع قاعدة بيانات، بالتحقق من إدخال المستخدم بـ strip وlower، ثم فصل دوال العرض والإضافة والتعديل والحذف في ملف مستقل.16:30
- تطبيق المهام - الجزء الثانييكمل تطبيق المهام مع SQLite، بإنشاء الجدول وإضافة مهمة بعنوان ونسبة إنجاز، وحفظ التغييرات وإغلاق الاتصال، ثم تجربة الإضافة من التطبيق والتحقق من إدخالات المستخدم.18:13
- تطبيق المهام - الجزء الثالثيكمل تطبيق المهام بتنفيذ دالة التعديل لتغيير عنوان مهمة ونسبة إنجازها في قاعدة البيانات، مع حل الأخطاء بالاستعلام SELECT وfetchone وfetchall، وربطها بالتطبيق.16:48
- لعبة التخمينمشروع لعبة تخمين رقم يختاره الكمبيوتر عشوائيا ضمن مدى يحدده المستخدم، باستخدام موديول random، وحلقة while، وحساب عدد المحاولات المسموحة بالـ logarithm، ومقارنة التخمين.25:57
- التعامل مع الصور وعمل سكرين شوت للشاشةمشروع كتابة سكريبت Python يلتقط صورة للشاشة باستخدام مكتبة pyscreenshot والدالة grab، ويحفظ الصورة عبر مكتبة Pillow، مع تثبيت المكتبات الخارجية بـ pip.12:55
- التعامل مع الصوتيات وتسجيل الصوتمشروع لتسجيل الصوت من الكمبيوتر بلغة بايثون، يشمل تثبيت مكتبة للتعامل مع الصوت، وتحديد التردد ومدة التسجيل، ثم حفظ التسجيل في ملف wave.16:13
7الملحقات
2 ملحقات
- تحميل ملحقات قسم قواعد البيانات
- تحميل ملحقات قسم المهام المتقدمة
المحاضر

م/عمرو عبد الفتاح
هذه الدورة ضمن دبلومة




