مركز علوم الكمبيوتر هو مبادرة مشتركة بين
نادي علوم الكمبيوتر في POMI RAS و
JetBrains و Yandex
Data Analysis School .
يوجد المركز لتمكين الطلاب الموهوبين والخريجين من التطور في المجالات التي تهمهم: علوم الكمبيوتر أو علوم البيانات أو هندسة البرمجيات.
يتم تدريس دورة C ++ في جزأين في المركز من قبل فاليري ميخائيلوفيتش ليسين ،
فاليري- ، معلمة في مركز CS والقضاة المشتركة لـ ITMO و JetBrains "تطوير البرمجيات / هندسة البرمجيات" ، المدير التقني لـ
Simlabs .
الجزء الثاني سيساعد على إتقان معظم قدرات C ++ الحديثة. على الأرجح ، لن تصبح معلمًا في نهاية الفصل الدراسي الثاني ، ولكن يجب أن تكون المهارة كافية لاستخدام C ++ بشكل فعال في معظم المشاريع ، إذا كانت المزايا قابلة للتطبيق هناك.
سنستكشف الميزات الجديدة للغة والمكتبة القياسية: نقل الدلالات ، الربط / الوظيفة ، enable_if / if constexpr ، coroutines ، وغيرها. دعونا نلقي نظرة على بعض المهام النموذجية: البرمجة متعددة مؤشرات الترابط ، واستخدام المكتبات في Windows و Linux ، وغيرها.
لديك منظر جميل!
1. مكتبة قياسية. التركيب ، حاويات STL ، أنواع الحاويات ، حاوية المتجهات ، التكرارات ، كيفية عمل المتجه. الحاوية: قائمة الحاويات ، المحولات ، الحاويات الترابطية ، خريطة التكرار ، البحث والإدراج في الخريطة. الفهرسة ، الإزالة من الخريطة (مجموعة). حاويات الجمعيات الأخرى.
2. نقل دلالات && توجيه مثالي. برامج سريعة. عائد القيمة الأمثل. Lvalue ضد Rvalue. كيفية تمييز كائن مؤقت عن كائن غير مؤقت. تحويل & <-> const & <-> &&. نقل المنشئ مقابل الصانعين الآخرين. إرجاع القيمة vs && من الدالة. إرجاع الكائنات الكبيرة حسب القيمة ، ونقل حسب القيمة. إعادة توجيه مشكلة الحجة. قواعد جديدة للروابط في C ++ 11. إعادة توجيه مثالية.
3. الخوارزميات و functor. الخوارزميات القياسية ، وصف الخوارزميات. غير تعديل وتعديل العمليات. فرز والبحث. حاويات مقابل التكرارات. functor القياسية. زيادة. النطاق. مفهوم المدى.
4. ربط وظيفة. المهمة: استدعاء رد الاتصال. قليلا من السحر - الأمراض المنقولة جنسيا :: ربط. كيفية تجنب النسخ. المرجع / كريف. باستخدام ربط مع functor. طرق الاتصال. ربط التعشيش. الأمراض المنقولة جنسيا :: وظيفة. تأثير التآزر للربط والوظيفة. الأداء. كيف تعمل العناصر النائبة.
5. استثناءات. طرق للتعامل مع الأخطاء. حاول ... قبض أنواع الاستثناءات باستخدام RAII. تمرير المعلمات. كومة الطبقة. ضمانات أمنية للاستثناءات. مضمون لا استثناءات. نسخ المكدس. انخفاض متطلبات المكدس. مواصفات الاستثناءات. مشغل noexcept ومواصفات noexcept (C ++ 11). حاويات STL. الضمانات والمتطلبات المكدس.
6. إلى SFINAE أو لا إلى SFINAE. اختيار رمز بناء على نوع. اكتب اختيار حسب الحالة. اختبار الحد. تحقق من وجود الفئة الأساسية. SFINAE. تحقق من وجود حاوية. الاختيار حسب نوع العقار.
7. C ++ الابتكارات. وظائف مجهولة ، السيارات ، dectype ، قوالب varadic ، حزمة المعلمة ، توسيع الحزمة والتعبير أضعاف. مُهيئات عضو بيانات غير ثابتة ، إذا كانت constexpr.
8. الصفوف. الإدخال / الإخراج. ترميز (مجموعة الأحرف). سلسلة الأمراض المنقولة جنسيا :: basic_string. عمليات السلسلة الأساسية. تعزيز الخوارزميات سلسلة. النص مقابل تنسيق الملفات الثنائية. تدفقات الإدخال / الإخراج ، الإخراج ، الإدخال ، حالة التدفق ، تنسيق الإدخال / الإخراج. المتلاعبين ، تيارات الملف.
9. المعالج. استخدام وتطبيق وحدات الماكرو. تعريف الثوابت ، تجميع شرطي. تشمل الحرس. وظيفة ماكرو. تحويل رمز مميز إلى سلسلة ، تسلسل الرموز المميزة. متعدد الأسطر ، يحدد مسبقا. تأكيد. ماكرو متغير ، ماكرو الحمل الزائد. لغة البثرة.
10. المكتبات. مكتبات ثابتة وديناميكية. ثابت مقابل ديناميكي. تنزيل المكتبات دون ربط مسبق. وظائف تصديرها. تكنولوجيا COM.
11. multithreading. العملية والمواضيع. أنواع تعدد المهام. حالات المشكلة. إنشاء تيار. كائن الدفق هو std :: thread. وظائف مساعدة. الاستبعاد المتبادل. إدارة قفل. استثناء اصطياد. استثناء استثناء. متغيرات الحالة.
12. multithreading. الجزء 2. الحسابات المؤجلة. المستقبل والوعد. المتزامن والمستقبل. قائمة انتظار الأحداث / الرسائل. العقود والمفاهيم.
الجزء الأول من الدورة