دورة البرمجة بلغة ++C

الوصف
لمحة عن الدورة
هذه الدورة تركز على تنمية المهارات العملية (التعلم من خلال التطبيق) لذلك سوف نقوم دائما بالتعلم من خلال ضرب عدد من الأمثلة بدلا من الاعتماد على الشروحات النظرية.
ماهي لغة ++C
تعتبر لغة ++C لغة ذات استخدامات عامة وهي امتداد للغة C الشهيرة. من مزايا هذه اللغة أنها لغة كائنية التوجة Object Oriented كما تتميز بأنها لغة ذات مستوى منخفض حيث تصنف لغات البرمجة إلى مستوى عالي ومستوى منخفض. ويقصد باللغة ذات المستوى المنخفض هو قربها للغة الآلة نفسها.
استخدامات لغة ++C
بما ان لغة ++C تعتبر من اللغات القريبة للغة الآلة وإدارة الذاكرة بها عالية جدا سوف تجدها مستخدمه في مجالات تتطلب أداء عالي جدا ومنها:
- برمجة الألعاب
- برمجيات سطح المكتب مثل برامج Adobe
- أنظمة قواعد البيانات
- أنظمة التشغيل
- الحوسبة المتقدمة وأدوات الجرافكس
- مترجمات لغات البرمجة Compliers
- الأنظمة المدمجة embedded systems
لمن موجهة هذه الدورة؟
سنبدأ في هذه الدورة بتعلم أساسيات ++C وكل ماهو مطلوب منك هو الرغبة بالتعلم.
ستكون هذه الدورة مفيدة لك سواء كانت لديك خبرة مسبقة بلغات برمجة أخرى أم كانت هذه هي المرة الأولى التي تتعلم بها، في حال كنت مبرمج محترفا يمكنك البدء من منتصف هذه الدورة حيث سنتعلم مفاهيم متقدمة في البرمجة والتي ستزيد مهاراتك البرمجية والمعرفية.
ماذا سنتعلم في هذه الدورة؟
- تعريف بلغة C++ ومجالات استخداماتها
- مكونات برامج C++
- التعامل مع المتغيرات والثوابت وانواع البيانات
- السلاسل النصية والمصفوفات
- الخوارزميات وهياكل البيانات
- التعامل مع الدوال الوظيفية functions
- المؤشرات والمراجع Pointers & References
- البرمجة الكائنية OOP
- استخدامات متقدمة في STL - Standard Template Library
- تعبيرات اللامدا Lambda Expressions
- خوارزميات STL
- الحاويات التكيفية Adaptive Containers
- المؤشرات الذكية Smart Pointers
- التعامل مع الأخطاء Exception Handling
- استخدامات متقدمة في C++
- أفضل الممارسات البرمجية Best Practices
المدرب
الأقسام
المقدمة
تجهيز البيئة المحلية
كتابة أول برنامج لك
سنقوم في هذا القسم بكتابة أول برنامج لنا ثم سنقوم بتحليل ماكتبناه حتى نتعرف على لغة C++
المتغيرات والثوابت Variables & Constants
سنتعلم في هذا القسم كيفية استخدام المتغيرات والثوابت والتي تقوم بحفظ قيم لنا في الذاكرة
المصفوفات Arrays
بالدروس التالي سنتعرف على المصفوفات وانواعها وكيف تستخدم وفي ماذا تفيد
الجُمل والعوامل Expressions & Operators
الجمل البرمجية والعوامل Expressions & Operators
الشروط conditions
سنتعرف على استخدام الشروط في السلسلة القادمة من الدروس والتي تساعدنا في التحكم بسير البرنامج
التكرار Loops
وصلنا الآن للتكرار في البرمجة والذي يساعدنا في تكرار بعض العمليات البرمجية دون الحاجة لإعادة الكتابة
الدوال Functions
سنتعلم في الدروس القادمة ماهي functions وكيف تستخدم لتنظيم الكود البرمجي وتسهيل عمليات التعديل والتطوير
البرمجة الكائنية Object Oriented Programming OOP
البرمجة كائنية التوجه هي إحدى مزايا لغة سي++ وهي واحدة من أهم الممارسات البرمجية التي تجعل برمجياتك أكثر مرونة وأقل عرضة للخطأ
الوراثة Inheritance
وصلنا في هذه المرحلة للوراثة وهي إحدى مفاهيم البرمجة الكائنية الهامة بحيث يمكن لنا اعادة استخدام المنطق البرمجي مرة أخرى
المؤشرات والمراجع Pointers & References
بعد أن تعلمنا كيف تعمل المتغيرات حان الوقت لتعلم ماهي المؤشرات والمراجع وكيف يمكن من خلالها العمل بمرونة مع البيانات في الذاكرة
تعدد النماذج Polymorphism
تعدد النماذج من مفاهيم البرمجة الكائنية (الوراثة) على وجه التحديد وهو يسمح لك بإنشاء عدد من النماذج لنفس الكلاسات المتوارثة وهو مايسمى Polymorphism
Macros
في السلسلة القادمة سنتعامل مع الماكرو macro في لغة سي++ وسنتعرف على أهم استخداماته ومزاياه
القوالب
النصوص Strings
وصلنا في هذه السلسلة الآن إلى التعامل مع Standard Template Library في لغة سي++ وفي الدروس التالي كيفية التعامل مع النصوص
المصفوفات الدنياميكية
القوائم list & forward_list
سنتعلم في السلسلة القادمة من الدروس التعامل مع القوائم list & forward_list ومالمقصود بـ linked lists
المجموعات set & multiset
المجموعات هو نوع يتميز بسرعة البحث فيه والسبب في ذلك طريقة التخزين الخاصة به. في الدروس الجاية سنتعرف على مزايا المجموعات sets وكيف نتعامل معها
الخرائط map & multimap
في السلسلة القادمة سنتعلم مفهوم map وهي بيانات مكونة من زوج (مفتاح + قيمة) من ناحية الادخال والبحث والفروقات بين multimap & map
الدوال المجهولة lambda functions
وصلنا لسلسلة تعلم الدوال المجهولة Lambda functions وهي دوال لا تحمل اسم وتستخدم مرة واحدة فقط
الخوارزميات مع Standard Template Library
في هذه السلسلة سنتعلم أهم الخوارزميات في STL وهي خوارزميات عمومية يمكن تطبيقها على الأنواع الخاصة بـ STL التي تعلمناها سابقا مثل vector و list
الحاويات التكيفية Adaptive Containers
في لغة C++ يوجد ما يسمى Adaptive Containers وهي حاويات بيانات متكيفة لكي تحاكي أسلوب هياكل البيانات من نوع Stack و Queue
عينة من الدروس المجانية
-
مقدمة عن القوائم lists كيف تعمل وكيف يتم تعريفها
سنتعلم بهذا الدرس ماهي lists وكيف تعرف ومالمميز بها
المدة: 04:31
-
مقدمة عن STL وكيف نستخدم النصوص string
سنتعرف بهذا الدرس على STL وسنبدأ الآن بالتعرف على كيفية تعريف النصوص بأكثر من طريقة
المدة: 06:10
-
ماهي المؤشرات pointers وكيف تستخدم
المؤشر يأشر، كيف الشرح؟ تعال نشوف على مين يأشر وليش تحتاجه
المدة: 04:01
-
عن هذه الدورة ولغة C++
بهذا الدرس ستتعرف على هذه الدورة وطريقة التعلم وعلى لغة C++
المدة: 07:23
-
كيف تحصل على الدعم والمساعدة
شاهد هذا الدرس لكي تعرف كيفية الحصول على الدعم والمساعدة بالطريقة الصحيحة
المدة: 01:31
-
تجهيز نظام ويندوز Windows
هذا الدرس سيكون حول كيفية تجهيز نظام ويندوز للبرمجة
المدة: 04:31
-
تجهيز نظام جنو\لينكس GNU/Linux
تستخدم لينكس؟ الموضوع بسيط تابع هذا الدرس
المدة: 01:14
-
تجهيز نظام ماك MacOS
هذا الدرس مخصص لتجهيز نظام MacOS للتطوير باستخدم C++
المدة: 03:05
-
تحميل بيئة التطوير المتكاملة IDE
سنقوم بهذا الدرس بتحميل بيئة التطوير المتكاملة IDE مع تثبيت الاضافات التي سوف تساعدنا على العمل
المدة: 05:09
-
كتابة أول برنامج
أهلا بالعالم! هنا سنقوم بكتابة اول برنامج لكي نتعرف على كيفية إنشاء المشاريع وتشغيلها
المدة: 05:02
-
مالذي قمنا بكتابته؟
بهذا الدرس سنقوم بتشريح الكود البرمجي الذي قمنا بكتابته لنتعرف على خصائص البنية البرمجية للغة سي++
المدة: 07:32
-
مفهوم namespaces
سنتعرف في هذا الدرس على مفهوم namespaces وكيف يستخدم
المدة: 04:08
-
كتابة التعليقات على الكود البرمجي
أثناء البرمجة، قد تضطر لشرح جزء ما، وهنا تأتي أهمية كتابة التعليقات البرمجية على الكود
المدة: 03:56
-
مقدمة في الدوال functions
الدالة هي "وظيفة" برمجية وسنتعرف الآن على كيفية ترتيب البرنامج الخاص بنا عن طريق استخدام functions
المدة: 05:28
-
استخدام المجال العام لـ namespaces
سنتعرف الآن على المجال العام Global Scope
المدة: 02:17
-
مقدمة في المتغيرات و العنونه addressing & variables
بهذا الدرس سنتعرف على المتغيرات وكيفية ربطها في الذاكرة باستخدام memory address
المدة: 08:06
-
ماهي المصفوفات ولماذا تستخدم
للمصفوفات عدد من الاستخدام وبهذا الدرس سنتعرف عليها وسنعرف الفرق بين المصفوفات static و dynamic
المدة: 11:06
-
ماهي البرمجة الكائنية وماهي classes
بهذا الدرس راح نتعرف على مفهوم البرمجة كائنية التوجه وكيف تكتب الكلاسات classes
المدة: 07:01
-
ماهي الوراثة وكيف تعمل Inheritance
سنتعرف الآن على مفهوم الوراثة والتي يمكن من خلالها إعادة استخدام خصائص الكلاسات الخاصة بك في كلاس آخر دون الحاجة لإعادة كتابة ماقمت به
المدة: 05:25
-
مفهوم تعدد النماذج وكيف يعمل polymorphism
فكرت كيف ممكن لدالة وحدة أن يكون لها تصرفات مختلفة على حسب الكائن الخاص فيها؟ هذا مايسمى polymorphism
المدة: 09:33
-
ماهو الماكرو و preprocessor
راح نتعرف بهذا الدرس على الماكرو macro ايش هي وظيفته وكيف ممكن يخدمك كمبرمج؟ وايضا ماهو مفهوم preprocessor ؟
المدة: 06:09
-
ماهي القوالب Templates وكيف يتم تعريفها
بهذا الدرس راح نتعرف على القوالب وماهي نقاط القوة بها وكيف يمكن تعريفها بشكل مبسط
المدة: 06:50
-
ماهي المصفوفة الديناميكية وكيف يستخدم vector
ودخلنا الآن على المصفوفات الديناميكية وراح نتعلم الآن أول نوع وهو vector
المدة: 03:59
-
مقدمة في set & multiset وتعريفها
تتميز بطريقة التخزين الخاصة بها وهذا معناه سرعة بالبحث. لكن تعال نشوف كيف نُعرفها بأكثر من طريقة
المدة: 03:15
-
مقدمة عن map و binray tree
سنتعرف بهذا الدرس على map وكيف تعمل ومالمقصود بـ binary tree ؟
المدة: 07:58
-
مقدمة عن اللامدا lambda وكيف يعرف ويستخدم
lambda فكشن بدون اسم! لكن الموضوع أهميته ليست هنا تعال نشوف بهذا الدرس ايش هو وكيف يتم تعريفه واستخدامه
المدة: 06:20
-
مقدمة عن خوارزميات STL وكيف نستخدم البحث find find_if
بهذا الدرس راح ناخذ مقدمة عن خوارزميات STL ونبدا باستخدام اولها وهي خوارزميات البحث find و find_if
المدة: 09:15
-
ماهي stacks & queues؟ مشينا على الخباز!
بهذا الدرس راح نتعلم ماهي stacks و queue لكن قبلها بنروح على الخباز نجيب خبز وبعدها راح نفهم أن الخباز شخص طبق هذا المفهوم عنده في المخبز من زمان!
المدة: 13:59