Шановні студенти!
Дисципліна «Алгоритми і структури даних» є однією з фундаментальних дисциплін у циклі природничо-математичної підготовки галузі знань «Системні науки та кібернетика» і займає важливе місце в системі підготовки фахівців з інформатики.
Алгоритми є основою комп'ютерних наук та програмування. Тому гарне проектування алгоритмів є вирішальним для продуктивності будь-яких програмних систем. Більше того, вивчення алгоритмів забезпечує проникнення в глибинну природу розв'язуваної задачі і вибір методів її вирішення, незалежних від мови програмування, парадигми програмування, архітектури комп'ютера та інших аспектів реалізації.
Важливою частиною обчислювальної науки є вміння вибирати і застосовувати алгоритми, що відповідають конкретним цілям, а також враховувати можливість того, що таких алгоритмів може не існувати. Це вміння ґрунтується на вивченні алгоритмів, що використовуються для вирішення відомого кола чітко визначених завдань, усвідомленні їх сили і слабкості, а також застосовності в конкретних контекстах.
Взагалі, комп'ютерна програма - це поєднання алгоритму та структури даних.
У курсі наведені різні алгоритми для роботи зі структурами даних: чергами, стеками, списками, деревами, таблицями та графами; наведені приклади рішення типових завдань, із застосуванням графів.
Вивчення дисципліни «Алгоритми і структури даних» ґрунтується на курсах «Дискретна математика» і «Програмування», у свою чергу вона сама є теоретичним фундаментом для всіх комп'ютерних наук (Computer Science) і забезпечує структурно-логічний зв'язок між ними.
Мета та завдання:
Основною метою курсу є освоєння основних понять і парадигм теорії алгоритмів та застосування структур даних в програмуванні.
В результаті вивчення курсу студенти повинні отримати
ЗНАННЯ:
- основні поняття і парадигми теорії алгоритмів: поняття асимптотичних оцінок, складності обчислень та класи складності задач;
- способи подання структур даних та їх застосування до розв'язання задач;
- основні методи побудови алгоритмів: динамічне програмування, жадібні алгоритми, рекурсивні алгоритми;
- рішення типових задач із застосуванням основних структур даних.
ВМІННЯ:
- програмувати і застосовувати основні структури даних;
- програмувати і застосовувати основні парадигми теорії алгоритмів;
- аналізувати і вибирати алгоритми для вирішення реальних завдань;
- аналізувати складність алгоритмів.