ПРОГРАМУВАННЯ-2. СТРУКТУРИ ДАНИХ ТА АЛГОРИТМИ - Робоча програма навчальної дисципліни (Силабус)
Реквізити навчальної дисципліни
Рівень вищої освіти | Перший(бакалаврський) |
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інформаційне забезпечення робототехнічних систем |
Статус дисципліни | Обов’язкова (нормативна) |
Форма навчання | очна(денна)/заочна/дистанційна |
Рік підготовки, семестр | 1 курс, весняний семестр |
Обсяг дисципліни | 5 кредитів ECTS /150 годин (54 годин лекцій, 36 годин лабораторних робіт, 60 годин – СРС) |
Семестровий контроль/ контрольні заходи | Іспит, захист лабораторних робіт |
Розклад занять | 1 лекція (2 години) 1 раз на парний тиждень та 2 лекції (4 години) 1 раз на непарний тиждень; 1 лабораторна робота (2 години) 1 раз на тиждень |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів | Лекції: д.т.н., професор Корнага Ярослав Ігорович Лабораторні роботи: к.т.н., старший викладач Базака Юрій Анатолійович Telegram: https://t.me/+EyCqe-RaQKowOWI6 |
Розміщення курсу | https://docs.google.com/document/d/1t5DWluRLnD6iQqxQ9uxEhEUDWzzt0W7ICO7aVwLIHX4/edit?usp=sharing |
Програма навчальної дисципліни
- Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Силабус освітнього компонента «Програмування. Частина 2. Структури даних та алгоритми» складено відповідно до освітньої програми підготовки бакалаврів «Інформаційне забезпечення робототехнічних систем» спеціальності 126 – Інформаційні системи та технології.
Метою навчальної дисципліни є формування та закріплення у студентів наступних компетентностей: КС3 Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (ІоТ), комп’ютерно-інтегрованих систем та системної мережної структури, управління ними; КС4 Здатність проектувати, розробляти та використовувати засоби реалізації інформаційних систем, технологій та інфокомунікацій (методичні, інформаційні, алгоритмічні, технічні, програмні та інші).
Предмет навчальної дисципліни – теорія і практика застосування алгоритмічних структур і структур даних з використанням сучасних технологій розроблення програмного забезпечення.
Програмні результати навчання, на формування та покращення яких спрямована дисципліна: ПРН3 Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання інформаційних систем та технологій; ПРН5 Аргументувати вибір програмних та технічних засобів для створення інформаційних систем та технологій на основі аналізу їх властивостей, призначення і технічних характеристик з урахуванням вимог до системи і експлуатаційних умов; мати навички налагодження та тестування програмних і технічних засобів інформаційних систем та технологій; ПРН6 Демонструвати знання сучасного рівня технологій інформаційних систем, практичні навички програмування та використання прикладних і спеціалізованих комп’ютерних систем та середовищ з метою їх запровадження у професійній діяльності; ПРН7 Обґрунтовувати вибір технічної структури та розробляти відповідне програмне забезпечення, що входить до складу інформаційних систем та технологій; ПРН14 Знати сучасні мови програмування та технології створення програмного забезпечення інформаційних систем та технологій.
Пререквізити та постреквізити дисципліни
Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами: «Вища математика», «Операційні системи», «Спеціальні розділи математики» та «Програмування-1. Основи програмування».
Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальшого вивчення освітніх компонентів: «Бази даних», вибіркових дисциплін що базуються на знаннях підходу ООП.
Зміст навчальної дисципліни
Розділ 1. Колекції. LINQ
Тема 1.1 Список, словники, двозв’язний список.
Тема 1.2 Стек. Черга.
Тема 1.3 Формат даних JSON.
Тема 1.4 Методи LINQ.
Розділ 2. Система контролю версій
Тема 2.1 Використання GitHub для контролю версій.
Тема 2.2 Інші системи контролю версій.
Розділ 3. Класи
Тема 3.1 Класи та об’єкти.
Тема 3.2 Конструктори та деструктори.
Тема 3.3 Модифікатори доступу.
Розділ 4. Властивості ООП
Тема 4.1 Інкапсуляція. Наслідування. Поліморфізм.
Тема 4.2 Перевантаження методів.
Тема 4.3 Статичні елементи.
Розділ 5. Абстракція
Тема 5.1 Інтерфейси.
Тема 5.2 Абстрактні класи.
Тема 5.3 Віртуальні методи і властивості.
Розділ 6 Додаткові можливості мови
Тема 6.1 Делегати. Лямбди. Події.
Тема 6.2 Індексатори.
Тема 6.3 Часткові класи.
Тема 6.4 Асинхронне програмування.
Розділ 7. Використання Rest Api
Тема 7.1 Підключення до Rest Api. Створення Rest Api.
Навчальні матеріали та ресурси
Базова література
Коноваленко І.В. Програмування мовою C#. В:Підручник – Тернопіль, – 227 с.
Andrew Troelsen, Philip Japikse Pro C# 7: witch .NET and .NET Core. https://books.google.com.ua/books?id=Jus\_DwAAQBAJ&printsec=frontcover&redir\_esc=y#v=onepage&q&f=true
Mark J. Price C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals: Start building websites and services with ASP.NET Core 7, Blazor, and EF Core 7, 7th Edition, 2022.
Gabriel Baptista, Francesco Abbruzzese Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure, 3rd Edition, 2022.
Joseph Albahari C# 10 in a Nutshell: The Definitive Reference, 2022.
Joe Mayo C# Cookbook: Modern Recipes for Professional Developers, 2021.
Допоміжна література
Роберт Сесіл Мартін Чистий код. Створення і рефакторинг за допомогою Agile, 2019.
Ерік Фрімен, Елізабет Робсон, Берт Бейтс, Кеті Сієрра Head First. Патерни проєктування, 2020.
Головна сторінка середовища MS Visual Studio [Електронний ресурс]. http://visualstudio.com
Головна сторінка MSDN [Електронний ресурс]. http://msdn.microsoft.com
Методика опанування навчальної дисципліни (освітнього компонента)
Лекційні заняття
|
|
---|---|
1 | Тема 1.1 Список, словники, двозв’язний список |
Основні питання: Списки, як елемент динамічного зберігання даних. Особливості використання двозв’язних списків. Словники | |
2 | Тема 1.2 Стек. Черга |
Основні питання: Особливості застосування стеку та черги. | |
3 | Тема 1.3 Формат даних JSON |
Основні питання: Серіалізація та десеріалізація даних в формат JSON | |
4 | Тема 1.3 Методи LINQ |
Основні питання: Основи застосування LINQ. Проекція даних. Сортування даних. Об’єднання, перетин та різниця колекцій. Агрегатні функції. Групування | |
5 | Тема 2.1 Використання GitHub для контролю версій |
Основні питання: Особливості застосування GitHub для зберігання версій програм. | |
6 | Тема 2.2 Інші системи контролю версій |
Основні питання: GitLab. Gitee. | |
7 | Тема 3.1 Класи та об’єкти |
Основні питання: Створення класів та екземплярів класів. Об’єкти | |
8 | Тема 3.2 Конструктори та деструктори |
Основні питання: Контсруктори. Ініціалізатори. Деструктори | |
9 | Тема 3.3 Модифікатори доступу |
Основні питання: Застосування модифікаторів доступу для різних елементів програмування | |
10 | Тема 4.1 Інкапсуляція. Наслідування. Поліморфізм |
Основні питання: Особливості визначення та застосування основних принципів ООП. Інкапсуляція. Наслідування. Поліморфізм. Властивості | |
11 | Тема 4.2 Перевантаження методів |
Основні питання: Перевантаження методів в C# | |
12 | Тема 4.3 Статичні елементи |
Основні питання: Статичні елементи програмування та модифікатор static | |
13 | Тема 5.1 Інтерфейси |
Основні питання: Визначення та застосування інтерфейсів. Реалізація інтерфейсів. Наслідування інтерфейсів | |
14 | Тема 5.2 Абстрактні класи |
Основні питання: Застосування абстрактних класів. Відмінність абстрактних класів від інтерфейсів | |
15 | Тема 5.3 Віртуальні методи і властивості |
Основні питання: Особливості визначення віртуальних методів. Застосування віртуальних властивостей | |
16 | Тема 6.1 Делегати. Лямбди. Події |
Основні питання: Використання делегатів. Лямбда вирази та лямбда методи. Створення подій | |
17 | Тема 6.2 Індексатори |
Основні питання: Використання індексаторів для індексації об’єктів | |
18 | Тема 6.3 Часткові класи |
Основні питання: Часткові класи. Особливості застосування часткових класів при розділені на кілька файлів | |
19 | Тема 6.4 Асинхронне програмування |
Основні питання: Асинхронні методи. Повернення результату з асинхронного методу | |
20 | Тема 7.1 Підключення до Rest Api. Створення Rest Api |
Основні питання: Підключення до зовнішньої Rest Api. Створення власної Rest Api |
Лабораторні роботи
|
|
---|---|
1 | Лабораторна робота 1. Колекції C#. Списки. Словники. JSON. LINQ |
Використання колекцій в C#. Перетворення колекцій в JSON формат. Написання запитів LINQ | |
2 | Лабораторна робота 2. Система контролю версій GitHub |
Збереження проектів створених в Visual Studio на GitHub. Контроль за версіями | |
3 | Лабораторна робота 3. Класи та об’єкти. Конструктори та деструктори. Модифікатори доступу |
Створення класу та необхідних конструкторів. Використання модифікаторів доступу | |
4 | Лабораторна робота 4. Поліморфізм. Наслідування. Перевантаження методів |
Застосування принципів ООП: Поліморфізму та наслідування. Перевантаження методів | |
5 | Лабораторна робота 5. Інтерфейси. Абстрактні класи |
Вибір способу абстракції. Використання інтерфейсів та абстрактних класів |
Лабораторні заняття виконуються з використанням мови програмування С#, та версій середовищ розробки програм, які надаються розробниками для навчальних цілей безкоштовно. Під час їх проведення використовуються методичні вказівки до виконання лабораторних робіт по дисципліні.
В умовах дистанційного навчання усі види занять, у тому числі контрольні заходи, проводяться з використанням сервісу Zoom.
Самостійна робота студента
|
|
|
---|---|---|
1 | Підготовка до лабораторних робіт | 60 |
Всього | 60 |
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Система вимог, які ставляться перед студентом:
правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та лабораторних заняттях;
заохочувальні бали виставляються за навчальну активність на лекційних заняттях. Кількість заохочуваних балів не більше 10;
штрафні бали виставляються за невчасну здачу лабораторних робіт. Кількість штрафних балів не більше 10;
політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Інженерія даних».
Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Поточний контроль
Рейтинг студента з дисципліни складається з балів, які він отримує за:
виконання та захист 5 лабораторних робіт;
заохочувальні бали;
штрафні бали (віднімаються від загальної суми оцінювання лабораторної ).
Семестровий контроль – екзамен
Система рейтингових балів та критерії оцінювання
Лабораторні роботи
Вагові бали кожної лабораторної роботи наведені у Таблиці 1. Сумарний ваговий бал за даний контрольний захід складає 40 балів.
Критерії оцінювання лабораторних робіт включають якість їх виконання та захист.
Таблиця 1 – Вагові бали та критерії оцінювання лабораторних робіт
Номер роботи |
Назва роботи |
Бали |
|||
---|---|---|---|---|---|
Час |
Виконання |
Захист |
Сума |
||
1 |
Колекції C#. Списки. Словники. JSON. LINQ |
2 |
5 |
3 |
10 |
2 |
Система контролю версій GitHub |
1 |
2 |
2 |
5 |
3 |
Класи та об’єкти. Конструктори та деструктори. Модифікатори доступу |
2 |
5 |
3 |
10 |
4 |
Поліморфізм. Наслідування. Перевантаження методів |
2 |
5 |
3 |
10 |
5 |
Інтерфейси. Абстрактні класи |
3 |
8 |
4 |
15 |
Разом |
10 |
30 |
10 |
50 |
«відмінно», працюючий код та повна відповідь на питання під час захисту (не менш ніж 95% потрібної інформації);
«добре», працюючий код та достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації);
«задовільно», працюючий код та неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки;
«незадовільно», незадовільна відповідь та/або не працюючий код.
Заохочувальні бали
за активну роботу на лекційному занятті 1 бал, але в сумі не більше 10.
Штрафні бали
За запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на бал, який вказаний в таблиці 1, але в сумі не більше 10 балів.
Календарний контроль
На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 12 балів. На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 30 балів.
Розрахунок шкали рейтингу RD:
Максимальна сума вагових балів контрольних заходів протягом семестру складає:
Rc = 50 балів
Екзаменаційна складова шкали дорівнює 50% , а саме:
RE = RC*0,5/(1-0,5) = 50 балів.
Таким чином, рейтингова шкала з дисципліни складає
RD = RC + RE =50 + 50 =100 балів.
Необхідною умовою допуску до екзамену є:
виконання 5 лабораторних робіт на оцінку не нижче ніж “задовільно”.
Критерії екзаменаційного оцінювання:
Екзаменаційне завдання складається з двох частин: практичної та теоретичної. В практичній частині екзаменаційної роботи необхідно написати програмний код, згідно завдання, виданого викладачем.
Ваговий бал практичної частини екзаменаційної роботи – 25 балів.
Критерії оцінювання якості практичної частини роботи:
“відмінно”, повна відповідь (не менше 95% потрібної інформації); | 23,75-25 бали |
---|---|
“добре”, достатньо повна відповідь (не менше 75% потрібної інформації, або незначні неточності); | 18,75 -23,74 балів |
“задовільно”, неповна відповідь (не менше 60% потрібної інформації та деякі помилки); | 15-18,74 балів |
“незадовільно”, незадовільна відповідь. | < 15 балів |
Ваговий бал теоретичної частини екзаменаційної роботи – 25 балів.
Критерії оцінювання якості теоретичної частини роботи:
“відмінно”, повна відповідь (не менше 95% потрібної інформації); | 23,75-25 бали |
---|---|
“добре”, достатньо повна відповідь (не менше 75% потрібної інформації, або незначні неточності); | 18,75 -23,74 балів |
“задовільно”, неповна відповідь (не менше 60% потрібної інформації та деякі помилки); | 15-18,74 балів |
“незадовільно”, незадовільна відповідь. | < 15 балів |
У підсумку за складання практичної та теоретичної частини екзаменаційного завдання студент отримує:
“відмінно” | 47,5-50 балів |
---|---|
“дуже добре” | 43,5 -47,4 балів |
“добре” | 37,5-43,4 балів |
“задовільно” | 32,5-37,4 балів |
“достатньо” | 30-32,4 балів |
“незадовільно” | < 30 балів |
Для отримання студентом відповідних оцінок -його рейтингова оцінка RD переводиться в оцінку згідно з таблицею:
|
|
---|---|
100-95 | Відмінно |
94-85 | Дуже добре |
84-75 | Добре |
74-65 | Задовільно |
64-60 | Достатньо |
Менше 60 | Незадовільно |
Не виконані умови допуску | Не допущено |
Робочу програму навчальної дисципліни (Силабус):
Складено: професором кафедри інформаційних систем та технологій ФІОТ, д.т.н., Корнагою Ярославом Ігоровичем
Ухвалено кафедрою інформаційних систем та технологій ФІОТ (протокол № 21 від 29.06.2023 р.)
Погоджено Методичною комісією факультету (протокол № 11 від 29.06.2023 р.)