Розробники та рецензенти
Заклад вищої освіти:

Компанія-рецензент 1:

Компанія-рецензент 2:
Валідація:
Розробник навчальної програми:
Соколова Євгенія — к.т.н., доцент кафедри інженерії програмного забезпечення Національного аерокосмічного університету "Харківський авіаційний інститут".
Базова інформація
Шифр та назва спеціальності:
121 - Програмна інженеріяНазва освітньо-наукової програми
Інженерія програмного забезпеченняНазва дисципліни
Алгоритми і структури данихВид дисципліни
ОсновнаБлок дисципліни
Алгоритмізація і програмуванняКількість студентів
65Курс/Семестр
3Загальна інформація про дисципліну
Анотація
Курс є основоположним для студентів, які навчаються за спеціальністю в галузі комп'ютерних наук, надає студентам глибокого розуміння ключових алгоритмів та структур даних, які є базою для розробки ефективного програмного забезпечення. Викладено основні базові структури даних: стек, черга, дерево, багаторівневі структури. Розглянуто алгоритми сортування та пошуку даних. Розглянуто реалізацію структур даних на прикладі мови програмування С# та описано базові структури даних вбудованих в .Net. Курс сприятиме розвитку аналітичного мислення та навичок вирішення проблем, що є ключовими для успішної кар'єри в IT-сфері.Анотація
Метою курсу є надання студентам ґрунтовних знань та практичних навичок у галузі алгоритмів і структур даних, що дозволить їм ефективно розробляти, аналізувати та оптимізувати програмне забезпечення. Студенти навчаться обирати відповідні структури даних для розв'язання різноманітних задач, а також розробляти алгоритми, які забезпечують високу продуктивність і ефективність використання ресурсів.Анотація
Лекції, лабораторні роботи, самостійна робота. Підсумковий контроль – іспит.Розподіл часу
Загальний обсяг (кредитів): 4.5; Лекції (занять): 32; Лабораторні (занять): 32; Практичні (занять): 0; Самостійна робота (годин): 71
Попередні дисципліни
Основи програмування, Програмування мовою С#.Матеріально-технічне та програмне забезпечення дисципліни
Microsoft Visual Studio 2022 Community, мова програмування С#.Структура дисципліни
Тема 1 – Базові поняття теорії алгоритмів і структури даних
- Лекція: ВСТУП. МІСЦЕ ТА ЗНАЧЕННЯ КУРСУ.
- Лекція: СТРУКТУРНІ ТА ЛІНІЙНІ ТИПИ ДАНИХ.
- Лекція: Реалізації стеку та черги з послідовним розміщенням мовою та динамічним розміщенням С#. Практичне застосування колекцій.
- Практична робота 1: «БАЗОВІ ДИНАМІЧНІ СТРУКТУРИ ДАНИХ. ЛІНІЙНІ СПИСКИ».
- Лекція: ВБУДОВАНІ КОЛЕКЦІЇ.
- Лекція: ЦИКЛІЧНІ СПИСКИ.
- Практична робота 2: «ЦИКЛІЧНІ СПИСКИ».
- Лекція: ДВОРІВНЕВІ СТРУКТУРИ.
- Практична робота 3: «ДВОРІВНЕВІ СТРУКТУРИ. СПИСКИ СПИСКІВ. ВБУДОВАНІ КОЛЕКЦІЇ».
- Лекція: ХЕШ-ТАБЛИЦІ.
- Лекція: ДЕРЕВА.
- Практична робота 4: «ДЕРЕВА. ФОРМИ ПРЕДСТАВЛЕННЯ ДЕРЕВ. ОБХОДИ ДЕРЕВ».
- Лекція: СПЕЦИФІЧНІ ВИДИ ДЕРЕВ.
- Практична робота 5: «ГРАФИ. ФОРМИ ПОДАННЯ ГРАФІВ В ЕОМ».
- Лекція: СОРТУВАННЯ.
- Практична робота 6: «СОРТУВАННЯ ПРОСТИХ СТРУКТУР ДАНИХ».
- Лекція: Сортування розподілом. Сортування злиттям. Швидке сортування. Порівняння методів сортування за витратами часу та памʼяті.
- Лекція: ПОШУК.
- Практична робота 7: «РОБОТА З DICTIONARY. ПОШУК».
Теми та завдання для самостійної роботи
Підготовка до практичної роботи 1-7: Тести в системі moodle за темою практичної роботи, доступні студентам після захисту роботи.
Розрахункова робота "ПОРІВНЯЛЬНИЙ АНАЛІЗ ПРОДУКТИВНОСТІ РОБОТИ СТРУКТУР ДАНИХ ТА ДОСЛІДЖЕННЯ АЛГОРИТМУ СОРТУВАННЯ": Захист розрахункової роботи.
Підготовка до модульної контрольної роботи 1 за темою 1: Тести в системі moodle за темою.
Підготовка до модульної контрольної роботи 2 за темами 2,3: Тести в системі moodle за темою.
Проєкт
Немає
Рекомендовані джерела інформації та навчальні матеріали
- Алгоритми та структури даних: навч. Посібник / О. Коротєєва. Львів: Видавництво Львівської політехніки, 2014. 280 с.
- Креневич А.П. Алгоритми і структури даних. Підручник. – К.: ВПЦ "Київський Університет", 2021. – 200 с.
- Шаховська Н.Б., Голощук Р.О. Алгоритми і структури даних: навч. посібник / О. Коротєєва. Львів: Видавництво “Магнолія 2006” Львів, 2023. 216 с.
- https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/tutorials/
- Geoge Heieman. Learning Algorithms: A Programmer's Guide to Writing Better Code 1st Edition / O'Reilly Media, 2021. – 278 p.
- Data Structure Visualizations https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
- https://dotnet.microsoft.com/en-us/learn/csharp
Контрольні заходи
- Показ роботи програми до практичної роботи. Звіт з роботи: Для кожної роботи встановлюються дедлайни, робота оцінюється в 5 балів, якщо робота програми показана своєчасно і задовольняє всім вимогам постановки задачі.
- Тести до практичних робіт: Стають доступними студентам після отримання оцінки з відповідної роботи. Пропонується 5 випадкових питань в системі moodle закритого і відкритого типу за темою роботи за обмежений час. Кількість спроб 3, враховується найкраща. Максимальна оцінка 5 балів.
- Модульні контрольні роботи: Пропонується 15 випадкових питань в системі moodle закритого і відкритого типу за відповідними темами. 1 спроба, час обмежений. Максимальна оцінка 10 балів.
Результати навчання
Після завершення курсу студенти будуть вміти: - описувати та реалізовувати мовою С# базові структури даних, такі як списки, стеки, черги, дерева та графи; - використовувати базові структури даних, вбудовані в .Net; - реалізовувати класичні алгоритми сортування та пошуку; - реалізовувати та використовувати різні види дерев та алгоритми роботи з ними; - розуміти принципи роботи хеш-таблиць та методів розв'язання колізій.
Зв'язок з ринком праці
Спеціальність/професія, підготовці до діяльності в якій читається курс:
Розробник серверної частиниПосилання на вакансії (понад 3),
- https://jobs.dou.ua/companies/justmarkets/vacancies/268208/
- https://www.linkedin.com/jobs/view/3894835218/
- https://www.amazon.jobs/en/jobs/2575646/2024-system-development-engineer-intern?no_int_redir=1
- https://www.google.com/about/careers/applications/jobs/results/105475307495924422-associate-software-engineer-greach-program-for-people-with-disabilities?category=SOFTWARE_ENGINEERING&target_level=EARLY&target_level=INTERN_AND_APPRENTICE&q=Data%20Structures
- https://www.google.com/about/careers/applications/jobs/results/103807593236832966-software-engineer-partner-engineering-devices-and-services?category=SOFTWARE_ENGINEERING&target_level=EARLY&target_level=INTERN_AND_APPRENTICE&q=Data%20Structures
Перелік компетентностей із вказаних як вимоги до вакансії, які набувають студенти, в процесі проходження дисципліни.
Базові знання з алгоритмів і структур данихІнструменти оцінювання результатів навчання за дисципліною
Цей блок має на меті показати можливі варіанти проведення валідації за участі експертів від ІТ-компаній. Основна умова проведення валідації це попереднє погодження всіх аспектів з експертом та викладачем. Інструменти, завдяки яким це можна зробити:
-
- тести за темою (аналогічно технічному інтерв'ю);
- поточні завдання впродовж курсу (посилання на код на GitHub-репозитарію студента тощо) ;
- підсумковий проєкт (код, презентація, скринкаст презентації тощо);
- гостьові активності (гостьові лекції, відвідування контрольних активностей тощо).
