Enrolment options

Курс знайомить студентів з фундаментом, на якому тримається вся розробка програмного забезпечення: тим, як ефективно організувати дані в пам'яті та як розв'язувати задачі за скінченну кількість зрозумілих кроків. Студенти вчаться бачити за конкретною задачею алгоритм, обирати для неї відповідну структуру даних і оцінювати, скільки часу та пам'яті знадобиться розв'язку.

Розглядаються основи аналізу алгоритмів і складності, масиви та представлення даних у пам'яті, рекурсія, базові та швидкі алгоритми сортування, лінійні структури даних (стек, черга, дек), бінарний пошук і дерева. Теоретичну основу курсу становлять класичні підходи, викладені в «Мистецтві програмування» Д. Кнута, а приклади подаються мовою незалежного від мови програмування псевдокоду.

Практична частина — лабораторні роботи з короткими індивідуальними завданнями на реалізацію вивчених алгоритмів (рекомендована мова — C, допускається будь-яка інша). Завдання наближені до побутових ситуацій і типових запитань на технічних співбесідах.

Після завершення курсу студент уміє аналізувати та порівнювати алгоритми, реалізовувати основні структури даних і сортування, застосовувати рекурсію та пошук, а також обґрунтовано вибирати підхід до розв'язання прикладних задач.

Guests cannot access this course. Please log in.