ПРОГРАМУВАННЯ. ЧАСТИНА 2. Структури даних та алгоритми - Робоча програма навчальної дисципліни (Силабус)

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 «Інформаційні технології»
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи
Статус дисципліни Обов’язкова (нормативна)
Форма навчання Очна(денна)/заочна
Рік підготовки, семестр І курс, весняний семестр
Обсяг дисципліни 5 кредитів ECTS /150 годин (54 годин – Лекції, 36 годин – Лабораторні, 60 годин – СРС)
Семестровий контроль/ контрольні заходи Екзамен, МКР, захист лабораторних робіт
Розклад занять

1.5 лекції (3 години) 1 раз на тиждень;

1 лабораторна робота (2 години) 1 раз на тиждень.

Мова викладання Українська
Інформація про
керівника курсу / викладачів

Лектор: к.т.н. Букасов Максим Михайлович, @bukasov

Лабораторні роботи: Колеснік Валерій Миколайович, @valerii_kolesnik

Розміщення курсу https://drive.google.com/drive/folders/1QhxfxeCKSU_0lIxAmmFr58p89PRWKijo

Програма навчальної дисципліни

Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Силабус освітнього компонента «Програмування - 2. Структури даних та алгоритми» складено відповідно до освітньої програми підготовки бакалаврів «Інтегровані інформаційні системи» спеціальності 126 – Інформаційні системи і технології.

Метою навчальної дисципліни є формування та закріплення у студентів наступних компетентностей: КС3 Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (ІоТ), комп’ютерно-інтегрованих систем та системної мережної структури, управління ними; КС4 Здатність проектувати, розробляти та використовувати засоби реалізації інформаційних систем, технологій та інфокомунікацій (методичні, інформаційні, алгоритмічні, технічні, програмні та інші); КС17 Здатність застосовувати технології та інструментальні засоби для розроблення вебзастосувань, веб-сервісів, веб-сайтів та веб-інтерфейсів з інтеграцією зовнішніх даних і програмних продуктів.

Предмет навчальної дисципліни – теорія і практика застосування базових алгоритмічних структур і базових структур даних з використанням сучасних технологій розроблення програмного забезпечення.

Програмні результати навчання, на формування та покращення яких спрямована дисципліна: ПРН3 Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання інформаційних систем та технологій; ПРН5 Аргументувати вибір програмних та технічних засобів для створення інформаційних систем та технологій на основі аналізу їх властивостей, призначення і технічних характеристик з урахуванням вимог до системи і експлуатаційних умов; мати навички налагодження та тестування програмних і технічних засобів інформаційних систем та технологій; ПРН6 Демонструвати знання сучасного рівня технологій інформаційних систем, практичні навички програмування та використання прикладних і спеціалізованих комп’ютерних систем та середовищ з метою їх запровадження у професійній діяльності; ПРН7 Обґрунтовувати вибір технічної структури та розробляти відповідне програмне забезпечення, що входить до складу інформаційних систем та технологій; ПРН12 Застосовувати знання складу, структури, принципів реалізації та функціонування інформаційно-керуючих систем та виконувати розроблення, підтримку та супроводження інформаційних та програмно-технічні засобів, оцінювати ефективність використання інформаційно-керуючих систем на підприємствах; ПРН14 Демонструвати вміння аналізувати вимоги та розробляти веб-додатки, веб-сервіси, веб-сайти з використанням базових принципів, сучасних технологій та мов програмування для створення веб-застосувань, як інтерфейсу доступу до сервісів ІТ-інфраструктури; ПРН16 Застосовувати знання відповідних мов програмування та ефективно використовувати методи машинного навчання в задачах створення компонентів штучного інтелекту в інформаційних система з використання аналізу та оцінки складності алгоритмів рішення.

Пререквізити та постреквізити дисципліни

Пререквізити: вміти користуватися комп’ютером на рівні користувача та адміністратора, вміти працювати з офісними пакетами на базовому рівні, пройти курс «Програмування - 1. Основи програмування».

Постреквізити: Після проходження дисципліни студенти зможуть відтворити базові етапи створення програмного забезпечення, а саме виконувати аналіз предметної області, будувати алгоритм розв’язання задачі, обирати структури для збереження даних, писати код, проводити його налагодження та тестування. Розуміти й уміти використовувати на практиці базові принципи структурного, об’єктно-орієнтованого та функційного програмування.

Зміст навчальної дисципліни

Очна форма

Лекційні заняття

Розділ 1. Загальні положення.

Тема 1.1. Структура та зміст курсу. РСО.

Розділ 2. Основи створення веб-застосунків.

Тема 2.1. Базові поняття про web-застосунки.

Тема 2.2. Технологія JavaServer Pages.

Тема 2.3. Архітектура багаторівневого веб-застосунку.

Розділ 3. Основи багатопоточного програмування.

Тема 3.1. Основи багатопоточного програмування на Java.

Тема 3.2. Управління потоками виконання.

Розділ 4. Основи функціонального програмування у Java 8.

Тема 4.1. Вкладені класи.

Тема 4.2. Лямбда-вирази.

Тема 4.3. Stream API.

Тема 4.4. Клас Optional.

Тема 4.5. Операції з датою та часом.

Лабораторні заняття

  1. Веб-застосунок на базі Java-сервлету.

  2. Оброблення параметрів запиту у сервлетах.

  3. Створення веб-сторінок на базі технології JSP.

  4. Створення JSP-сторінок з використанням Expression Language.

  5. Створення JSP-сторінок з використанням бібліотеки JSTL.

  6. Використання асоціативних масивів для оброблення текстових даних.

  7. Обчислення в паралельних потоках виконання.

  8. Синхронізація потоків виконання.

  9. Вкладені та внутрішні класи.

  10. Лямбда-вирази.

  11. Функціональні інтерфейси.

  12. Посилання на методи.

  13. Stream API.

  14. Date Time API.

Заочна форма

Лекційні заняття

Розділ 1. Загальні положення.

Тема 1.1. Структура та зміст курсу. РСО.

Розділ 2. Основи створення веб-застосунків.

Тема 2.1. Базові поняття про web-застосунки.

Лабораторні заняття

  1. Веб-застосунок на базі Java-сервлету.

  2. Оброблення параметрів запиту у сервлетах.

Навчальні матеріали та ресурси

Основна література

  1. Кетті Сьєрра, Берт Бейтс. Head First. Java. Фабула, 2022. 720 с. ISBN 978-617-522-033-7

  2. Васильєв О.М. Програмування мовою Java. Тернопіль: Навчальна книга – Богдан, 2020 р. 696 с.

  3. Herbert Schildt. Java: The Complete Reference, Twelfth Edition 12th Edition. McGraw Hill, 2022. 1280 p. ISBN 978-1-26-046342-2

  4. Bruce Eckel. Thinking in Java. Prentice Hall, 2006. 1150 p. ISBN 978-0131872486

Додаткова література

  1. Ерiк Фрiмен, Елiзабет Робсон. Head First. Патерни проєктування. Фабула, 2020. 688с.

  2. Роберт Мартін. Чиста архітектура. Ранок, 2019. 368 с.

  3. Роберт Мартін. Чистий код. Створення і рефакторинг за допомогою Agile. Фабула, 2019. 448 с.

  4. Ерік Фрімен (2020). Head First. Патерни проєктування. Легкий для сприйняття довідник. ISBN: 978-6170961594.

Навчальний контент

Методика опанування навчальної дисципліни (освітнього компонента)

Очна форма

Лекційні заняття

№ з/п

Назва теми лекції та перелік основних питань
(перелік дидактичних засобів, посилання на літературу та завдання на СРС)

1

Тема 1.1. Структура та зміст курсу. РСО.

Тема 2.1. Базові поняття про web-застосунки.

Структура курсу Програмування-2, РСО. Загальні поняття. Мова HTML. HTML-форми. Протокол HTTP. Команди GET та POST. Перший web-застосунок Hello World.

Конфігурування веб-сервера Apache Tomcat та розгортання веб-застосунків на ньому.

2

Тема 2.1. Базові поняття про web-застосунки.

CGI-застосунки. Сервлети. Основні інтерфейси та класи Servlet API. Структура web-застосунку. Передача параметрів у сервлети. Життєвий цикл сервлета. Ініціалізація сервлета параметрами з файла web.xml.

3

Тема 2.1. Базові поняття про web-застосунки.

Оброблення параметрів запитів, заголовків запитів та cookie. Атрібути. Організація сесій. Коди стану HTTP.

4

Тема 2.2. Технологія JavaServer Pages.

Життєвий цикл JSP-сторінки. Елементи JSP: скриптові елементи, директиви та дії. Робота з об'єктами JavaBean. Синхронізація потоків при роботі з об’єктами JavaBean у веб-застосунку.

5

Тема 2.2. Технологія JavaServer Pages.

Expression language (EL). Організація доступу о об'єктів, які зберігаються на рівні сторінки, запиту, сесії, веб-застосунку.

Бібліотека JSTL (JSP Standard Tag Library). Організація розгалужень та циклів. XSS-атаки (Cross-Site Scripting) та методи захисту від них.

6

Тема 2.3. Архітектура багаторівневого веб-застосунку.

Архітектура MVC. Шаблон проектування DAO (Data Access Object). Шаблон проектування Репозиторій.

7

Модульна контрольна робота.

На контрольну роботу виноситься увесь попередній матеріал, що включає основи веб-програмування.

Завдання включають теоретичну та практичну частини. Повторити матеріал 1-6 лекцій.

8

Тема 3.1. Основи багатопоточного програмування на Java.

Основні поняття багатопоточного програмування. Клас Thread. Інтерфейс Runnable. Діаграма станів потоку виконання. Пули потоків виконання.

9

Тема 3.1. Основи багатопоточного програмування на Java.

Методи класу Thread: yield, sleep, isAlive, join. Пріоритети потоків виконання. Deprecated-методи класу Thread.

10

Тема 3.2. Управління потоками виконання.

Стан гонитви. Синхронізація потоків виконання при доступі до спільних ресурсів. Явні та неявні блокування. DeadLock. Умови виникнення взаємного блокування.

11

Тема 3.2. Управління потоками виконання.

Методи join(), wait() та notify(). Змінні volatile. Потоки-демони. Бар'єр пам'яті. Поняття «happens before» та «happens after».

12

Тема 3.2. Управління потоками виконання.

Асинхронне виконання розрахунків. Інтерфейси Callable та Future. ForkJoinPool.

13

Модульна контрольна робота.

На контрольну роботу виноситься увесь попередній матеріал по основам веб-програмування.

Завдання включають теоретичну та практичну частини. Повторити матеріал 8-12 лекцій.

14

Тема 4.1. Вкладені класи.

Статичні вкладені класи, Внутрішні класи, Локальні класи, Анонімні класи.

Захват локальних змінних. Модифікатор final та поняття effectively final.

15

Тема 4.2. Лямбда-вирази.

Статичні та дефолтні методи в інтерфейсах. Проблема ромба. Статичні та дефолтні методи інтерфейсу Comparator.

16

Тема 4.2. Лямбда-вирази.

Функціональний інтерфейс. Синтаксис лямбда-виразу. Переваги та недоліки лямбда-виразів у порівнянні з анонімними класами. Захват локальних змінних. Недоліки перевантаження методів при використанні лямбда-виразів.

17

Тема 4.2. Лямбда-вирази.

Стандартні функціональні інтерфейси пакета java.util.function. Функціональні інтерфейси Comparator, Runnable, Callable.

18

Тема 4.2. Лямбда-вирази.

Посилання на статичний метод класу. Посилання на нестатичний метод об’єкту. Посилання на нестатичний метод класу. Посилання на конструктор. Переваги та недоліки використання посилань на методи у порівнянні з лямбда-виразами.

19

Тема 4.3. Stream API.

Призначення Stream API. Відмінності потоків від колекцій. Класифікація потоків. Структура потоку: джерело, проміжні операції, термінальна операція. Створення стрімів. Інтерфейс Iterable.

20

Тема 4.3. Stream API.

Проміжні операції потоків: filter, map, flatMap, sorted, distinct, limit, skip, peek, sequential, parallel, unordered. Послідовні та паралельні потоки.

21

Тема 4.3. Stream API.

Термінальні операції потоків: forEach, forEachOrdered, min, max, count, average, sum (для числових), allMatch, anyMatch, findAny, findFirst, reduce (immutable reduction), collect (mutable reduction). Короткозамкнуті потоки потоки.

22

Тема 4.3. Stream API.

Збирання даних зі стрімів. Інтерфейс Collector. Клас Collectors.

Збирання статистики. Збирання об’єктів у колекції. Методи joining(), joining(delimiter), joining(delimiter, prefix, suffix).

23

Тема 4.3. Stream API.

Збирання даних зі стрімів. Інтерфейс Collector. Клас Collectors.

Збирання статистики. Збирання об’єктів у колекції. Методи toCollection(factory), toSet(), toList().

24

Тема 4.3. Stream API.

Збирання даних зі стрімів: Grouping, Reducing, Mapping. Переваги та недоліки методів groupingBy(c) та groupingByConcurrent(c).

25

Тема 4.4. Клас Optional.

Призначення типу Optional. Створення об'єктів типу Optional. Основні операції з об'єктами типу Optional. Метод filter класу Optional.

26

Тема 4.5. Операції з датою та часом.

Недоліки застарілого API для роботи з датою та часом (клас Date, клас Calendar). Коротка характеристика та основні принципи роботи з JavaTime API. Часові пояси та часові зони.

27

Тема 4.5. Операції з датою та часом.

Основні класи та інтерфейси JavaTime API. Основні можливості по роботі з датами, часом, проміжками часу та часовими зонами. Взаємодія нового JavaTime API зі старими класами Date та Calendar.

Лабораторні роботи

Назва лабораторної роботи Кількість ауд. годин
1 Веб-застосунок на базі Java-сервлету. 2
2 Оброблення параметрів запиту у сервлетах. 4
3 Створення веб-сторінок на базі технології JSP. 4
4 Створення JSP-сторінок з використанням Expression Language. 2
5 Створення JSP-сторінок з використанням бібліотеки JSTL. 2
6 Використання асоціативних масивів для оброблення текстових даних. 2
7 Обчислення в паралельних потоках виконання. 4
8 Синхронізація потоків виконання. 4
9 Вкладені та внутрішні класи. 2
10 Лямбда-вирази. 2
11 Функціональні інтерфейси. 2
12 Посилання на методи. 2
13 Stream API. 2
14 Date Time API. 2

Самостійна робота студента

з/п

Вид самостійної роботи

Кількість

годин СРС

1 Підготовка до лабораторних робіт 36
2 Підготовка до МКР 8
3 Підготовка до екзамену 16

Контрольна робота

Метою контрольної роботи є закріплення та перевірка теоретичних знань із освітнього компонента, набуття студентами практичних навичок самостійного вирішення задач та складанні та компіляції програм. Модульна контрольна робота (МКР) виконується після вивчення Розділів 2 та 3.

Заочна форма

Лекційні заняття

№ з/п

Назва теми лекції та перелік основних питань
(перелік дидактичних засобів, посилання на літературу та завдання на СРС)

1

Тема 1.1. Структура та зміст курсу. РСО.

Тема 2.1. Базові поняття про web-застосунки.

Структура курсу Програмування-2, РСО. Загальні поняття. Мова HTML. HTML-форми. Протокол HTTP. Команди GET та POST. Перший web-застосунок Hello World.

Конфігурування веб-сервера Apache Tomcat та розгортання веб-застосунків на ньому.

2

Тема 2.1. Базові поняття про web-застосунки.

CGI-застосунки. Сервлети. Основні інтерфейси та класи Servlet API. Структура web-застосунку. Передача параметрів у сервлети. Життєвий цикл сервлета. Ініціалізація сервлета параметрами з файла web.xml.

3

Тема 2.1. Базові поняття про web-застосунки.

Оброблення параметрів запитів, заголовків запитів та cookie. Атрібути. Організація сесій. Коди стану HTTP.

Лабораторні роботи

Назва лабораторної роботи Кількість ауд. годин
1 Веб-застосунок на базі Java-сервлету. 2
2 Оброблення параметрів запиту у сервлетах. 2

Самостійна робота студента

№ з/п

Назва теми, що виноситься на самостійне опрацювання

Кількість годин СРС
1

Конфігурування веб-сервера Apache Tomcat та розгортання веб-застосунків на ньому.

2
2

Життєвий цикл сервлета. Ініціалізація сервлета параметрами з файла web.xml.

2
3

Коди стану HTTP.

2
4

Життєвий цикл JSP-сторінки. Елементи JSP: скриптові елементи, директиви та дії. Робота з об'єктами JavaBean. Синхронізація потоків при роботі з об’єктами JavaBean у веб-застосунку.

4
5

Expression language (EL). Організація доступу о об'єктів, які зберігаються на рівні сторінки, запиту, сесії, веб-застосунку. Бібліотека JSTL (JSP Standard Tag Library). Організація розгалужень та циклів. XSS-атаки (Cross-Site Scripting) та методи захисту від них.

4
6

Архітектура MVC. Шаблон проектування DAO (Data Access Object

Шаблон проектування Репозиторій.

4
7

Модульна контрольна робота

На контрольну роботу виноситься увесь попередній матеріал, що включає основи веб-програмування.

Завдання включають теоретичну та практичну частини.

4
8

Основні поняття багатопоточного програмування. Клас Thread. Інтерфейс Runnable. Діаграма станів потоку виконання. Пули потоків виконання.

4
9

Методи класу Thread: yield, sleep, isAlive, join. Пріоритети потоків виконання. Deprecated-методи класу Thread.

4
10

Стан гонитви. Синхронізація потоків виконання при доступі до спільних ресурсів. Явні та неявні блокування. DeadLock. Умови виникнення взаємного блокування.

4
11

Методи join(), wait() та notify(). Змінні volatile. Потоки-демони. Бар'єр пам'яті. Поняття «happens before» та «happens after».

4
12

Асинхронне виконання розрахунків. Інтерфейси Callable та Future.

ForkJoinPool.

4
13

Модульна контрольна робота

На контрольну роботу виноситься увесь попередній матеріал по основам веб-програмування.

Завдання включають теоретичну та практичну частини.

4
14

Статичні вкладені класи, Внутрішні класи, Локальні класи, Анонімні класи.

Захват локальних змінних. Модифікатор final та поняття effectively final.

4
15

Статичні та дефолтні методи в інтерфейсах. Проблема ромба.

Статичні та дефолтні методи інтерфейсу Comparator.

4
16

Функціональний інтерфейс. Синтаксис лямбда-виразу. Переваги та недоліки лямбда-виразів у порівнянні з анонімними класами. Захват локальних змінних. Недоліки перевантаження методів при використанні лямбда-виразів.

4
17

Стандартні функціональні інтерфейси пакета java.util.function. Функціональні інтерфейси Comparator, Runnable, Callable.

4
18

Посилання на статичний метод класу. Посилання на нестатичний метод об’єкту. Посилання на нестатичний метод класу. Посилання на конструктор. Переваги та недоліки використання посилань на методи у порівнянні з лямбда-виразами.

4
19

Призначення Stream API. Відмінності потоків від колекцій. Класифікація потоків. Структура потоку: джерело, проміжні операції, термінальна операція. Створення стрімів. Інтерфейс Iterable.

4
20

Проміжні операції потоків: filter, map, flatMap, sorted, distinct, limit, skip, peek, sequential, parallel, unordered. Послідовні та паралельні потоки.

4
21

Термінальні операції потоків: forEach, forEachOrdered, min, max, count, average, sum (для числових), allMatch, anyMatch, findAny, findFirst, reduce (immutable reduction), collect (mutable reduction). Короткозамкнуті потоки потоки.

4
22

Збирання даних зі стрімів. Інтерфейс Collector. Клас Collectors.

Збирання статистики. Збирання об’єктів у колекції. Методи joining(), joining(delimiter), joining(delimiter, prefix, suffix).

4
23

Збирання даних зі стрімів. Інтерфейс Collector. Клас Collectors.

Збирання статистики. Збирання об’єктів у колекції. Методи toCollection(factory), toSet(), toList().

4
24

Збирання даних зі стрімів: Grouping, Reducing, Mapping. Переваги та недоліки методів groupingBy(c) та groupingByConcurrent(c).

4
25

Призначення типу Optional. Створення об'єктів типу Optional. Основні операції з об'єктами типу Optional. Метод filter класу Optional.

4
26

Недоліки застарілого API для роботи з датою та часом (клас Date, клас Calendar). Коротка характеристика та основні принципи роботи з JavaTime API. Часові пояси та часові зони.

4
27

Основні класи та інтерфейси JavaTime API. Основні можливості по роботі з датами, часом, проміжками часу та часовими зонами. Взаємодія нового JavaTime API зі старими класами Date та Calendar.

4
28

Створення JSP-сторінок з використанням бібліотек EL та JSTL.

4
29

Використання асоціативних масивів для оброблення текстових даних.

2
30

Обчислення в паралельних потоках виконання.

4
31

Синхронізація потоків виконання.

4
32

Вкладені та внутрішні класи.

2
33

Лямбда-вирази

2
34

Функціональні інтерфейси

4
35

Посилання на методи

4
36

Stream API

4
37

Підготовка до екзамену

8

Контрольна робота

Метою контрольної роботи є закріплення та перевірка теоретичних знань із освітнього компонента, набуття студентами практичних навичок самостійного вирішення задач та складанні та компіляції програм. Модульна контрольна робота (МКР) виконується після вивчення Розділів 2 та 3.

Політика та контроль

Політика навчальної дисципліни (освітнього компонента)

Система вимог, які викладач ставить перед студентом:

  • правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та практичних заняттях.

  • правила поведінки на заняттях: студент має можливість отримувати бали за відповідні види навчальної активності на лекційних та практичних заняттях, передбачені РСО дисципліни. Використання засобів зв’язку для пошуку інформації на гугл-диску викладача, в інтернеті, в дистанційному курсі на платформі Сікорський здійснюється за умови вказівки викладача;

  • політика дедлайнів та перескладань: якщо студент не проходив або не з’явився на МКР (без поважної причини), його результат оцінюється у 0 балів. Перескладання результатів МКР не передбачено;

  • політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з даної дисципліни;

  • при використанні цифрових засобів зв’язку з викладачем (мобільний зв’язок, електронна пошта, переписка на форумах та у соцмережах тощо) необхідно дотримуватись загальноприйнятих етичних норм, зокрема бути ввічливим та обмежувати спілкування робочим часом викладача.

Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Поточний контроль: МКР, виконання та захист лабораторних робіт.

Календарний контроль: провадиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу.

Семестровий контроль: екзамен.

Умови допуску до семестрового контролю: виконані та захищені лабораторні роботи, семестровий рейтинг більше 30 балів.

Таблиця відповідності рейтингових балів оцінкам за університетською шкалою:

Кількість балів Оцінка
95-100 Відмінно
85-94 Дуже добре
75-84 Добре
65-74 Задовільно
60-64 Достатньо
Менше 60 Незадовільно
Менше 30 Не допущено

Загальна рейтингова оцінка студента після завершення семестру складається з балів, отриманих за:

  • виконання та захист лабораторних робіт;

  • виконання модульної контрольної роботи (МКР);

  • відповіді на екзамені.

Лабораторні роботи

Ваговий бал. Лабораторні мають ваговий бал 3. Максимальна кількість балів за всі лабораторні роботи складає 3 бали * 14 робіт = 42 бали.

На лабораторних роботах студенти перевіряють та демонструють працездатність написаних вдома програм. Для допуску до поточної лабораторної роботи необхідно мати Протокол, оформлений відповідно до норм оформлення технічної документації, який має містити всі необхідні пункти, відповідно до Методичних вказівок. Також для допуску до лабораторної роботи (окрім 1-ї) необхідно захистити попередню. Студенти, що не захистили попередню лабораторну роботу можуть бути не допущені до виконання наступної. Лабораторні роботи виконуються бригадою.

Критерії оцінювання лабораторної роботи:

3 бали. Під час виконання завдання студент реалізував як обов’язкову так і опціональну частину завдання. В програмі відсутні помилки. Під час захисту студент надає правильні, повні та чіткі відповіді на поставлені питання.

2 бали. Під час виконання завдання студент реалізував лише обов’язкову частину завдання (опціональна частина відсутня). В програмі відсутні помилки. Під час захисту дає неповні відповіді або допускає помилки в незначних деталях.

1 бал. Написана студентом програма працює, але містить невідповідності архітектурним патернам, рекомендаціям до оформлення коду, використовує неефективні алгоритми. Під час відповіді на деякі питання студент припускається істотних помилок.

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

Модульні контрольні роботи

Ваговий бал – 4. Модульні контрольні роботи (МКР) виконуються протягом семестру на одному з лекційних занять після вивчення розділів 2 та 3. Максимальна кількість балів за всі лабораторні роботи складає 4 бали * 2 роботи = 8 балів.

Критерії оцінювання модульної контрольної роботи:

На модульній контрольній роботі студент відповідає на 3 питання і виконує одне завдання, кожне з яких оцінюється в 1 бал:

- правильна та повна відповідь, завдання виконано без помилок - 1 бал;

- відповідь неповна, є неточності, алгоритм вирішення задачі є неефективним - 0.5 балів;

- відповідь неправильна або відсутня - 0 балів.

Календарний контроль

Календарний контроль базується на поточній рейтинговій оцінці. Умовою позитивної атестації є значення поточного рейтингу студента не менше 60% від максимально можливого на час атестації. Бал, необхідний для отримання позитивного календарного контролю доводиться до відома студентів викладачем не пізніше ніж за 2 тижні до початку календарного контролю.

Форма семестрового контролю – екзамен

Максимальна сума балів за роботу у семестрі складає 50. Необхідною умовою допуску до екзамену є виконані та захищені лабораторні роботи, семестровий рейтинг не менше 30 балів.

Екзамен містить дві складові: теоретичну та практичну. Теоретична складова направлена на перевірку набутих в результаті вивчення освітнього компонента знань студентів у вигляді теоретичних питань за лекційним матеріалом семестру. Білет містить 2 теоретичних питання. Максимальна кількість балів за теоретичні питання складає 2 питання * 20 балів = 40 балів. Практична складова передбачає перевірку набутими студентами умінь програмувати. Кожному студенту надається окрема задача, відповідно до умов якої необхідно написати програму. Максимальна кількість балів за задачу складає 10 балів.

Критерії оцінювання теоретичної складової

  • *студентом дана повна відповідь на основне та додаткові питання - 20

    балів;*

  • *відповідь на основне та додаткові питання в цілому правильна, але

    не повна - 18-19 балів;*

  • *відповідь на основне та додаткові питання неповна, є неточності

    16-17 балів;*

  • *відповідь на основне та додаткові питання неповна, є помилки 12-15

    балів;*

  • відповідь на питання неправильна або відсутня - 0 балів;

Критерії оцінювання практичної складової

  • *програма написана без помилок, алгоритм правильний та ефективний -

    10 балів;*

  • *програма написана без помилок, але алгоритм реалізації

    неефективний - 8-9 балів;*

  • *програма написана в цілому правильно, але в ній присутні

    синтаксичні помилки або є випадки, в яких програма може працювати некоректно - 6-7 балів;*

  • *програма не написана або написана невірно (не працює чи працює

    некоректно) - 0 балів.*

Робочу програму навчальної дисципліни (силабус):

Складено доцентом кафедри інформаційних систем та технологій ФІОТ, к.т.н. Букасов М.М.

Ухвалено кафедрою інформаційних систем та технологій ФІОТ (протокол № 16 від 12.06.2024 р.)

Погоджено Методичною комісією факультету (протокол № 10 від 21.06.2024 р.)