Ընդհանրացված ծրագրավորման հիմունքներ
Դասախոս` |
Արմեն Կոստանյան |
Դասերը` |
Շաբաթական 1 դասախոսություն, 1 գործնական
|
Կարճ Նկարագրություն
Դիտարկվում են C++ լեզվի STL գրադարանի հիմքում ընկած հասկացությունների համակարգը (իտերատորներ, կոնտեյներներ, ալգորիթմներ) այդ դրա իրականացման առանձնահատկությունները: Հատուկ ուշադրություն է դարձվում գրադարանի հնարավորությունների օգտագործմամբ կիրառական խնդիրների լուծմանը:
Պահանջները
Նախնական գիտելիքներ: Դասընթացը ենթադրում է
- C++ լեզվի հիմնարար հասկացությունների իմացություն:
- հիմնական տվյալների կառուցվածքների (ցուցակ, պահունակ, հերթ, առաջնայնություններով հերթ, որոնման բինար ծառ) իմացություն:
Տնային աշխատանքներ: Շաբաթական տնային աշխատանքներ:
Գնահատումը
- 10% կազմվում է դասերին մասնակցությունից և դրսևորած ակտիվությունից,
- 50%-ը` տնային աշխատանքների կատարումից,
- 40%-ը` խմբային նախագծի կատարումից:
Գրականություն
- H. M. Deitel, P. J. Deitel. C++: How to program. Prentice Hall, 3rd edition, 2001.
- P. J. Plauger, A. A. Stepanov, M. Lee, D. Musser. The C++ standard template library. Prentice Hall, 2001.
- Scott Meyers. Effective STL, Adison-Wesley, 2001.
Բովանդակություն
Դասախոսություններ (32 ժամ)
- Պարամետրիզացված ֆունկցիաներ և դասեր (4 ժամ)
- Շաբլոնի հասկացություն: Պարամետրիզացված ֆունկցիաներ և դասեր: Իտերատորով պարամետրիզացված ցուցակի իրականացումը C++ լեզվով:
- STL գրադարանի կոնցեպցիաների համակարգը (4 ժամ)
- Կոնցեպցիա, կոնցեպցիայի մոդել, կոնցեպցիայի զարգացում: Կոնտեյների, իտերատորի, ալգորիթմի կոնցեպցիաներ:
- Հաջորդական կոնտեյներներ (3 ժամ)
- Հաջորդական կոնտեյների կոնցեպցիա: vector, dequeu, list կոնտեյներներ: Օգտագործման օրինակներ:
- Հարմարեցված կոնտեյներներ (3 ժամ)
- stack, queue, priority_queue կոնտեյներներ: Օգտագործման օրինակներ:
- Ասոցիատիվ կոնտեյներներ (2 ժամ)
- Ասոցիատիվ կոնտեյների կոնցեպցիա: Պարզ, զույգ, եզակի, բազմակի ասոցիատիվ կոնտեյներներ:
- Պարզ ասոցիատիվ կոնտեյներներ: (3 ժամ)
- set, multiset կոնտեյներներ: Օգտագործման օրինակներ:
- Զույգ ասոցիատիվ կոնտեյներներ (3 ժամ)
- map, multimap կոնտեյներներ: Օգտագործման օրինակներ:
- Ֆունկցիոնալ օբյեկտներներ և իտերատորների ադապտերներ (2 ժամ)
- Ֆունկցիոնալ օբյեկտներներ և իտերատորների ադապտերներ: Օգտագործման օրինակներ:
- Հաջորդականությունը պահպանող ունիվերսալ ալգորիթմներ (2 ժամ)
- for_each, count, find, mismatch, equal, search ալգորիթմներ: Օգտագործման օրինակներ:
- Հաջորդականությունը փոփոխող ունիվերսալ ալգորիթմներ (2 ժամ)
- copy, transform, replace, remove, fill, generate ալգորիթմներ: Օգտագործման օրինակներ:
- Տեսակավորվման հետ կապված ունիվերսալ ալգորիթմներ (2 ժամ)
- sort, stable_sort, nth_element, binary_search, lower_bound, upper_bound, equal_range, merge, lexicographical_compare, next_permutation, prev_permutation ալգորիթմներ: Օգտագործման օրինակներ:
- Թվային ալգորիթմներ (2 ժամ)
- accumulate, inner_product, partial_sum, adjacent_difference ալգորիթմներ: Օգտագործման օրինակներ: