Ընդհանրացված ծրագրավորման հիմունքներ

Դասախոս` Արմեն Կոստանյան
Դասերը` Շաբաթական 1 դասախոսություն, 1 գործնական

Կարճ Նկարագրություն

Դիտարկվում են C++ լեզվի STL գրադարանի հիմքում ընկած հասկացությունների համակարգը (իտերատորներ, կոնտեյներներ, ալգորիթմներ) այդ դրա իրականացման առանձնահատկությունները: Հատուկ ուշադրություն է դարձվում գրադարանի հնարավորությունների օգտագործմամբ կիրառական խնդիրների լուծմանը:

Պահանջները

Նախնական գիտելիքներ: Դասընթացը ենթադրում է
  • C++ լեզվի հիմնարար հասկացությունների իմացություն:
  • հիմնական տվյալների կառուցվածքների (ցուցակ, պահունակ, հերթ, առաջնայնություններով հերթ, որոնման բինար ծառ) իմացություն:
Տնային աշխատանքներ: Շաբաթական տնային աշխատանքներ:

Գնահատումը

  • 10% կազմվում է դասերին մասնակցությունից և դրսևորած ակտիվությունից,
  • 50%-ը` տնային աշխատանքների կատարումից,
  • 40%-ը` խմբային նախագծի կատարումից:

Գրականություն

  1. H. M. Deitel, P. J. Deitel. C++: How to program. Prentice Hall, 3rd edition, 2001.
  2. P. J. Plauger, A. A. Stepanov, M. Lee, D. Musser. The C++ standard template library. Prentice Hall, 2001.
  3. Scott Meyers. Effective STL, Adison-Wesley, 2001.

    Բովանդակություն
    Դասախոսություններ (32 ժամ)
    1. Պարամետրիզացված ֆունկցիաներ և դասեր (4 ժամ)
      • Շաբլոնի հասկացություն: Պարամետրիզացված ֆունկցիաներ և դասեր: Իտերատորով պարամետրիզացված ցուցակի իրականացումը C++ լեզվով:
    2. STL գրադարանի կոնցեպցիաների համակարգը (4 ժամ)
      • Կոնցեպցիա, կոնցեպցիայի մոդել, կոնցեպցիայի զարգացում: Կոնտեյների, իտերատորի, ալգորիթմի կոնցեպցիաներ:
    3. Հաջորդական կոնտեյներներ (3 ժամ)
      • Հաջորդական կոնտեյների կոնցեպցիա: vector, dequeu, list կոնտեյներներ: Օգտագործման օրինակներ:
    4. Հարմարեցված կոնտեյներներ (3 ժամ)
      • stack, queue, priority_queue կոնտեյներներ: Օգտագործման օրինակներ:
    5. Ասոցիատիվ կոնտեյներներ (2 ժամ)
      • Ասոցիատիվ կոնտեյների կոնցեպցիա: Պարզ, զույգ, եզակի, բազմակի ասոցիատիվ կոնտեյներներ:
    6. Պարզ ասոցիատիվ կոնտեյներներ: (3 ժամ)
      • set, multiset կոնտեյներներ: Օգտագործման օրինակներ:
    7. Զույգ ասոցիատիվ կոնտեյներներ (3 ժամ)
      • map, multimap կոնտեյներներ: Օգտագործման օրինակներ:
    8. Ֆունկցիոնալ օբյեկտներներ և իտերատորների ադապտերներ (2 ժամ)
      • Ֆունկցիոնալ օբյեկտներներ և իտերատորների ադապտերներ: Օգտագործման օրինակներ:
    9. Հաջորդականությունը պահպանող ունիվերսալ ալգորիթմներ (2 ժամ)
      • for_each, count, find, mismatch, equal, search ալգորիթմներ: Օգտագործման օրինակներ:
    10. Հաջորդականությունը փոփոխող ունիվերսալ ալգորիթմներ (2 ժամ)
      • copy, transform, replace, remove, fill, generate ալգորիթմներ: Օգտագործման օրինակներ:
    11. Տեսակավորվման հետ կապված ունիվերսալ ալգորիթմներ (2 ժամ)
      • sort, stable_sort, nth_element, binary_search, lower_bound, upper_bound, equal_range, merge, lexicographical_compare, next_permutation, prev_permutation ալգորիթմներ: Օգտագործման օրինակներ:
    12. Թվային ալգորիթմներ (2 ժամ)
      • accumulate, inner_product, partial_sum, adjacent_difference ալգորիթմներ: Օգտագործման օրինակներ: