ПРОГРАМУВАННЯ - 1. ОСНОВИ ПРОГРАМУВАННЯ

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

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

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи
Статус дисципліни Нормативна
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 1 курс, осінній семестр
Обсяг дисципліни 180 годин (36 годин – Лекції, 36 годин – Лабораторні, 108 годин – СРС)
Семестровий контроль/ контрольні заходи Екзамен/екзаменаційна робота
Розклад занять http://rozklad.kpi.ua
Мова викладання Українська
Інформація про
керівника курсу / викладачів

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

bukasov@gmail.com,

моб. +38(068)352-41-49

Лабораторні: асистент, Бердник Юрій Михайлович,

berdniky@gmail.com,

моб. +38(096)192-66-71

Розміщення курсу https://campus.kpi.ua

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

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

Опис дисципліни. При проходженні даної дисципліни, студенти познайомляться з поняттями алгоритм, програма, компілятор, інтерпретатор, платформа, віртуальна машина. На лекціях студенти отримають знання з основ структурного та об’єктно-орієнтованого програмування та познайомляться з мовою програмування Java. На лабораторних заняттях студенти закріплять отримані теоретичні знання, а також опанують інтегроване середовище розробки, та отримають навички створення, запуску, тестування та налагодження в ньому своїх програм. На лекції викладач користується власним презентаційним матеріалом. Демонструє практичну частину на комп’ютері з встановленим інтегрованим середовищем розробки. Сформовані директорії на гугл-диску для обміну інформацією викладач-студент.

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

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

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

Основні завдання навчальної дисципліни

Знання:

  • основні поняття програмування, принципи розробки програми, типові алгоритмічні конструкції, основні структури даних;

  • основи структурного програмування;

  • основи об'єктно-орієнтованого програмування;

Уміння:

  • аналізувати поставлену задачу, обирати доцільний метод її розв'язання;

  • складати алгоритм вирішення задачі;

  • писати та тестувати програми мовою Java;

  • володіти сучасними засобами розроблення ПЗ.

Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)

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

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

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

Очна форма

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

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

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

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

Розділ 4. Java Collection Framework.

Розділ 5. Оброблення помилок.

Розділ 6. Ввід-вивід даних.

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

1. Перше знайомство з Java.

2. Оператори та типи даних.

3. Управління потоком виконання.

4. Одновимірні масиви.

5. Багатовимірні масиви.

6. Алгоритми сортування.

7. Основи об’єктно-орієнтованого програмування.

8. Шаблон «Стратегія».

9. Клас String.

10. Колекції. Списки.

11. Колекції. Множина TreeSet.

12. Колекції. Множина HashSet. Асоціативні масиви Map.

13. Виняткові ситуації.

14. Потоки вводу-виводу.

Заочна форма

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

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

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

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

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

1. Перше знайомство з Java.

2. Оператори та типи даних.

3. Управління потоком виконання.

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

Базова література

  1. Шилдт, Герберт. Java 8: руководство для начинающих, 6-е изд. : Пер.

    с англ. – М.: ООО "И.Д.Вильяме", 2015. – 720 с.

  2. Шилдт, Герберт. Java 8. Полное руководство; 9-е изд.: Пер. с англ. -

    М.: ООО "И.Д. Вильяме", 2015. – 1376 с.

  3. Джеймс Гослинг, Билл Джой, Гай Стил, Гилад Брача, Алекс Бакли. Язык

    программирования Java SE 8. Подробное описание, 5-е издание. – М.: "Вильямс", 2015. – 672 с.

  4. Блох, Джошуа. Java: эффективное программирование, 3-е изд. : Пер. с

    англ. – СПб. : ООО "Диалектика", 2019. – 464 с.

  5. Хорстманн, Кей С. Java. Библиотека профессионала, том 1. Основы.

    10-е изд.: Пер. с англ. – М .: ООО "И.Д. Вильямс", 2016. - 864 с.

Допоміжна література

  1. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес «Паттерны объектно-ориентированного проектирования» Питер, 2020. – 448 стр.

  2. Бэзинс, Барт. Java для начинающих : объектно-ориентированный подход / Барт Бэзинс, Эйми Бэкил, Зеппе ванден Бруке ; пер. А. Ананич, Е. Зазноба, А. Колышкин, А. Тумаркин. – Санкт-Петербург [и др.] : Питер, 2018. – 688 с.

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

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

Очна форма

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

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

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

Тема 2.1. Загальні поняття програмування.

Лекція 1. Вступ. Загальні поняття.

Структура курсу Програмування, РСО. Загальні поняття. Історія розвитку мов програмування. Компілятори та інтерпретатори. Платформа Java. Мова Java. Перший застосунок Hello World.

Завдання на СРС. Створення та запуск Java-застосунків у консолі.

2

Тема 2.2. Основи синтаксису мови Java.

Лекція 2. Основи синтаксису мови Java.

Система кодування і пробільні символи. Коментарі и JavaDoc-коментарі. Зарезервовані слова. Ідентифікатори та правила іменування. Типи даних та літерали. Декларування змінних.

Завдання на СРС. Кодові сторінки та Unicode. UTF-8, UTF-16, UTF-32.

3

Тема 2.3. Оператори мови Java.

Лекція 3. Оператори мови Java.

Пріоритет операторів. Арифметичні оператори. Логічні оператори. Перетворення типів. Методи класу Math.

Завдання на СРС. Системи числення, десятковий та двійковий код. Доповняльний код.

4

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

Лекція 4. Управління потоком виконання програми.

Основні поняття структурного програмування. Блоки. Оператори if, if - else. Ланцюжки if - else if – else if. Тернарний оператор. Оператори switch, while, do - while, for, break, continue, return.

Завдання на СРС. Цикли for-each. Java 14 switch-expression.

5

Тема 2.5. Організація пам’яті у Java.

Лекція 5. Організація пам’яті у Java.

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

Завдання для СРС. Рекурсія. Реалізація FILO, FIFO, методи сортування.

6

Лекція 6. Модульна контрольна робота

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

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

Завдання для СРС. Повторити матеріал 1-8 лекцій.

7

Тема 3.1. Основи об’єктно-орієнтованого програмування.

Лекція 7. Основи об’єктно-орієнтованого програмування.

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

Завдання для СРС. Принципи DRY, KISS, YAGNI.

8

Тема 3.2. Пакети та класи.

Лекція 8. Пакети та класи.

Декларування класів. Декларування полів. Декларація методів. Статичні поля та методи. Сигнатура методу. Модифікатори області видимості. Перевантаження методів. Модифікатор final. Перелічуваний тип даних enum. Пакети. Імпортування класів. Імпорт статичних методів.

Завдання для СРС. Завантаження класів: ClassLoader, classpath. Найбільш важливі класи у Java: Object, Class, String, класи-обгортки, System, Math, класи для роботи з датою та часом.

9

Тема 3.3. Об’єкти.

Лекція 9. Об’єкти.

Створення об’єктів. Конструктори. Конструктор за замовченням. Перевантаження конструкторів. Порядок виклику конструкторів при ініціалізації об’єктів. Ключові слова this та super. Статичні та нестатичні блоки ініціалізації.

Завдання для СРС. Незмінні об’єкти. Шаблон проектування Singleton.

10

Тема 5.1. Абстрактні типи

Лекція 10. Абстрактні типи.

Абстрактні класи. Інтерфейси. Одиничне та множинне наслідування. Проблема ромба. Маркерні інтерфейси.

Завдання для СРС. Зміна області видимості при наслідуванні. Принципи SOLID.

11

Тема 4.1. Загальні відомості про Collections Framework.

Тема 4.2. Списки ArrayList та LinkedList.

Лекція 11. Загальні відомості про Collections Framework. Списки ArrayList та LinkedList.

Загальні відомості про колекції. Основні інтерфейси Collections Framework. Інтерфейс List. Класи ArrayList, LinkedList. Ітератори. Типізовані та нетипізовані колекції. Інтерфейс RandomAccess.

Завдання для СРС. Обчислювальна складність: О(1), О(n), O(n*log(n)), O(n2).

12

Тема 4.3. Множина TreeSet

Лекція 12. Множина TreeSet

Лінійний та двійковий пошук. Двійкові дерева. Клас TreeSet. Інтерфейс Comparable. Інтерфейс Comparator.

Завдання для СРС. Балансування дерев. Самозбалансоване дерево.

13

Тема 4.4. Множина HashSet.

Лекція 13. Множина HashSet

Хешування, хеш-функції. хеш-таблиці. Алгоритм пошук на основі хешування. Вимоги до методів equals та HashCode. Клас HashSet.

Завдання для СРС. Клас LinkedHashSet.

14

Лекція 14. Модульна контрольна робота

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

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

Завдання для СРС. Повторити матеріал 7-14 лекцій.

15

Тема 4.5. Асоціативні масиви

Лекція 15. Асоціативні масиви.

Асоціативні масиви. Ключ та значення. Інтерфейс Map. Класи TreeMap та HashMap.

Завдання для СРС. Клас LinkedHashMap.

16

Тема 5. Оброблення помилок

Лекція 16. Оброблення помилок.

Основні підходи до оброблення помилок. Виключні ситуації. Розповсюдження виключних ситуацій. Оброблення виключних ситуацій: конструкції try-catch-finally, try-with-resource. Класифікація виключних ситуацій.

Завдання для СРС. Правила змін типу виключної ситуації при перевизначені методу.

17

Тема 6.1. Ввід-вивід даних

Лекція 17. Ввід-вивід даних.

Пакети java.io, java.nio, java.nio.2. Поняття про блокуючий та неблокуючий ввід-вивід даних. Байтові та символьні потоки вводу-виводу. Буфери. Фільтри.

Завдання для СРС. Серіалізація. Інтерфейс Serializable. Статичне поле serialVersionUID.

18

Тема 6.2. Мережевий ввід-вивід даних

Лекція 18. Мережевий ввід-вивід даних.

Основні поняття про мережі: протокол, стек протоколів TCP/IP, IP-адреса, порт, сокет. Пакет java.net. Класи Socket, ServerSocket.

Завдання для СРС. Класи DatagramSocket, DatagramPacket.

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

Назва лабораторної роботи Кількість ауд. годин
1 Перше знайомство з Java. 2
2 Оператори та типи даних. 2
3 Управління потоком виконання. 2
4 Одновимірні масиви. 2
5 Багатовимірні масиви. 2
6 Алгоритми сортування. 4
7 Основи об’єктно-орієнтованого програмування. 2
8 Шаблон «Стратегія». 2
9 Клас String. 2
10 Колекції. Списки. 2
11 Колекції. Множина TreeSet. 4
12 Колекції. Множина HashSet. Асоціативні масиви Map. 4
13 Виняткові ситуації. 2
14 Потоки вводу-виводу. 4

Заочна форма

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

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

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

Тема 2.1. Загальні поняття програмування.

Лекція 1. Вступ. Загальні поняття.

Структура курсу Програмування, РСО. Загальні поняття. Історія розвитку мов програмування. Компілятори та інтерпретатори. Платформа Java. Мова Java. Перший застосунок Hello World.

Завдання на СРС. Створення та запуск Java-застосунків у консолі.

2

Тема 2.2. Основи синтаксису мови Java.

Лекція 2. Основи синтаксису мови Java.

Система кодування і пробільні символи. Коментарі и JavaDoc-коментарі. Зарезервовані слова. Ідентифікатори та правила іменування. Типи даних та літерали. Декларування змінних.

Завдання на СРС. Кодові сторінки та Unicode. UTF-8, UTF-16, UTF-32.

3

Тема 2.3. Оператори мови Java.

Лекція 3. Оператори мови Java.

Пріоритет операторів. Арифметичні оператори. Логічні оператори. Перетворення типів. Методи класу Math.

Завдання на СРС. Системи числення, десятковий та двійковий код. Доповняльний код.

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

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

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

Очна форма

№ з/п

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Створення та запуск Java-застосунків у консолі. 2
2 Кодові сторінки та Unicode. UTF-8, UTF-16, UTF-32. 2
3 Системи числення, десятковий та двійковий код. Доповняльний код. 2
4 Цикли for-each. Java 14 switch-expression. 4
5 Рекурсія. Реалізація FILO, FIFO, методи сортування. 6
6 Повторити матеріал 1-8 лекцій. 4
7 Принципи DRY, KISS, YAGNI. 4
8 Завантаження класів: ClassLoader, classpath. Найбільш важливі класи у Java: Object, Class, String, класи-обгортки, System, Math, класи для роботи з датою та часом. 8
9 Незмінні об’єкти. Шаблон проектування Singleton. 4
10 Зміна області видимості при наслідуванні. Принципи SOLID. 8
11 Обчислювальна складність: О(1), О(n), O(n*log(n)), O(n2). 2
12 Балансування дерев. Самозбалансоване дерево. 4
13 Клас LinkedHashSet. 4
14 Повторити матеріал 7-14 лекцій. 4
15 Клас LinkedHashMap. 4
16 Правила змін типу виключної ситуації при перевизначені методу. 2
17 Серіалізація. Інтерфейс Serializable. Статичне поле serialVersionUID. 4
18 Класи DatagramSocket, DatagramPacket. 4
19 Підготовка до екзамену по всьому матеріалу модуля. 36

Заочна форма

№ з/п

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Створення та запуск Java-застосунків у консолі. 2
2 Кодові сторінки та Unicode. UTF-8, UTF-16, UTF-32. 2
3 Системи числення, десятковий та двійковий код. Доповняльний код. 2
4

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

Основні поняття структурного програмування. Блоки. Оператори if, if - else. Ланцюжки if - else if – else if. Тернарний оператор. Оператори switch, while, do - while, for, break, continue, return. Цикли for-each. Java 14 switch-expression.

6
5

Тема 2.5. Організація пам’яті у Java.

Стек. Передача параметрів та повернення значень. Купа. Посилання на об’єкти. Одновимірні масиви. Багатовимірні масиви. Рекурсія. Реалізація FILO, FIFO, методи сортування.

8
6

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

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

6
7

Тема 3.1. Основи об’єктно-орієнтованого програмування.

Основні поняття ООП: класи, об’єкти, поля, методи, пакети, область видимості, інтерфейси. Принципи ООП: абстрагування, інкапсуляція, успадкування, поліморфізм. Принципи DRY, KISS, YAGNI.

6
8

Тема 3.2. Пакети та класи.

Декларування класів. Декларування полів. Декларація методів. Статичні поля та методи. Сигнатура методу. Модифікатори області видимості. Перевантаження методів. Модифікатор final. Перелічуваний тип даних enum. Пакети. Імпортування класів. Імпорт статичних методів. Завантаження класів: ClassLoader, classpath. Найбільш важливі класи у Java: Object, Class, String, класи-обгортки, System, Math, класи для роботи з датою та часом.

10
9

Тема 3.3. Об’єкти.

Створення об’єктів. Конструктори. Конструктор за замовченням. Перевантаження конструкторів. Порядок виклику конструкторів при ініціалізації об’єктів. Ключові слова this та super. Статичні та нестатичні блоки ініціалізації.Незмінні об’єкти. Шаблон проектування Singleton.

6
10

Тема 5.1. Абстрактні типи

Абстрактні класи. Інтерфейси. Одиничне та множинне наслідування. Проблема ромба. Маркерні інтерфейси. Зміна області видимості при наслідуванні. Принципи SOLID.

10
11

Тема 4.1. Загальні відомості про Collections Framework.

Загальні відомості про колекції. Основні інтерфейси Collections Framework.

Тема 4.2. Списки ArrayList та LinkedList.

Інтерфейс List. Класи ArrayList, LinkedList. Ітератори. Типізовані та нетипізовані колекції. Інтерфейс RandomAccess. Обчислювальна складність: О(1), О(n), O(n*log(n)), O(n2).

4
12

Тема 4.3. Множина TreeSet

Лінійний та двійковий пошук. Двійкові дерева. Клас TreeSet. Інтерфейс Comparable. Інтерфейс Comparator.

Завдання для СРС. Балансування дерев. Самозбалансоване дерево.

6
13

Тема 4.4. Множина HashSet.

Хешування, хеш-функції. хеш-таблиці. Алгоритм пошук на основі хешування. Вимоги до методів equals та HashCode. Клас HashSet.

Завдання для СРС. Клас LinkedHashSet.

6
14

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

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

6
15

Тема 4.5. Асоціативні масиви

Асоціативні масиви. Ключ та значення. Інтерфейс Map. Класи TreeMap та HashMap. Клас LinkedHashMap.

6
16

Тема 5. Оброблення помилок

Основні підходи до оброблення помилок. Виключні ситуації. Розповсюдження виключних ситуацій. Оброблення виключних ситуацій: конструкції try-catch-finally, try-with-resource. Класифікація виключних ситуацій. Правила змін типу виключної ситуації при перевизначені методу.

4
17

Тема 6.1. Ввід-вивід даних

Пакети java.io, java.nio, java.nio.2. Поняття про блокуючий та неблокуючий ввід-вивід даних. Байтові та символьні потоки вводу-виводу. Буфери. Фільтри. Серіалізація. Інтерфейс Serializable. Статичне поле serialVersionUID.

6
18

Тема 6.2. Мережевий ввід-вивід даних

Лекція 18. Мережевий ввід-вивід даних.

Основні поняття про мережі: протокол, стек протоколів TCP/IP, IP-адреса, порт, сокет. Пакет java.net. Класи Socket, ServerSocket. Класи DatagramSocket, DatagramPacket.

6
19 Лабораторна робота 4. Одновимірні масиви. 2
20 Лабораторна робота 5. Багатовимірні масиви. 2
21 Лабораторна робота 6. Алгоритми сортування. 4
22 Лабораторна робота 7. Основи об’єктно-орієнтованого програмування. 2
23 Лабораторна робота 8. Шаблон «Стратегія». 2
24 Лабораторна робота 9. Клас String. 2
25 Лабораторна робота 10. Колекції. Списки. 2
26 Лабораторна робота 11. Колекції. Множина TreeSet. 4
27 Лабораторна робота 12. Колекції. Множина HashSet. Асоціативні масиви Map. 4
28 Лабораторна робота 13. Виняткові ситуації. 2
29 Лабораторна робота 14. Потоки вводу-виводу. 4
30 Підготовка до екзамену по всьому матеріалу модуля. 36

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

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

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

  • відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу;

  • на лекції викладач користується власним презентаційним матеріалом; демонструє практичну частину на комп’ютері з встановленим інтегрованим середовищем розробки; використовує гугл-диск та месенджер Telegram для викладання матеріалу поточної лекції, додаткових ресурсів, лабораторних робіт та інше; викладач відкриває доступ до певної директорії гугл-диска для скидання електронних лабораторних звітів та відповідей на МКР;

  • на лекції заборонено відволікати викладача від викладання матеріалу, усі питання, уточнення та ін. студенти задають в кінці лекції у відведений для цього час;

  • лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту;

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

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

  • штрафні бали виставляються за: невчасну здачу лабораторної роботи. Кількість штрафних балів не більше 10.

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

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

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

  2. виконання 2 модульних контрольних робіт (МКР);

  3. заохочувальні та штрафні бали.

Система рейтингових балів та критерії оцінювання

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

«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином електронний протокол до лабораторної роботи – 2,5 балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином електронний протокол до лабораторної роботи – 2 бали;

«задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином електронний протокол до лабораторної роботи – 1,5 бал;

«незадовільно», незадовільна відповідь та/або не оформлений належним чином електронний протокол до лабораторної роботи – 0 балів.

За кожне заняття запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 0,5 бал.

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

«відмінно», повна відповідь (не менш ніж 90% потрібної інформації) – 7,5 балів;

«добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 6 балів;

«задовільно», неповна відповідь (але не менш ніж 60% потрібної інформації) та незначні помилки – 4,5 бали;

«незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0 балів.

Заохочувальні бали

– за виконання творчих робіт з кредитного модуля (наприклад, участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо); за активну роботу на лекції (питання, доповнення, зауваження за темою лекції, коли лектор пропонує студентам задати свої питання) 1-2 бали, але в сумі не більше 10;

– презентації по СРС – від 1 до 5 балів.

Міжсесійна атестація

За результатами навчальної роботи за перші 7 тижнів максимально можлива кількість балів – 22,5 бали (6 лабораторних робіт, МКР-1). На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 13,5 балів.

За результатами 13 тижнів навчання максимально можлива кількість балів – 42,5 балів (11 лабораторних робіт, МКР-1, МКР-2). На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 25,5 балів.

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

RD = 14*rлаб+2*rмкр+ (rз - rш)= 14*2,5+2*7,5+ (rз - rш)=50 + (rз - rш),

де rлаб – бал за лабораторну роботу (0 … 2,5);

rмкр – бал за написання МКР (0 … 7,5);

rз – заохочувальні бали за активну участь на лекціях, презентації, участь в олімпіадах, конкурсі роботи, наукові роботи за тематикою дисципліни (0…10);

rзш – штрафні бали.

Екзамен:

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

На екзамені студенти виконують письмову контрольну роботу. Кожен білет містить два теоретичних запитання і одне практичне завдання. Перелік теоретичних питань наведений у додатку 1. Кожне теоретичне питання оцінюється у 20 балів. Практичне завдання оцінюється у 10 балів.

Система оцінювання питань:

«відмінно», повна відповідь, не менше 90% потрібної інформації, що виконана згідно з вимогами до рівня «умінь», (повне, безпомилкове розв’язування завдання) – 9-10 балів;

«добре», достатньо повна відповідь, не менше 75% потрібної інформації, що виконана згідно з вимогами до рівня «умінь або є незначні неточності (повне розв’язування завдання з незначними неточностями) – 7-8 балів;

«задовільно», неповна відповідь, не менше 60% потрібної інформації, що виконана згідно з вимогами до «стереотипного» рівня та деякі помилки (завдання виконане з певними недоліками) – 5-6 бали;

«незадовільно», відповідь не відповідає умовам до «задовільно» – 0-4 балів.

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

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

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

Є не зараховані лабораторні роботи або

не зарахована модульна контрольна робота

Не допущено

Додаткова інформація з дисципліни (освітнього компонента)

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

  • перелік теоретичних питань, які виносяться на семестровий контроль наведено в Додатку 1;

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

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

Складено доцент кафедри АУТС, к.т.н., Букасов Максим Михайлович

Ухвалено кафедрою АУТС (протокол № 1 від 27.08.2020 р.)

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

Додаток 1

Перелік теоретичних питань на екзамен

1. 1. Компіляція та інтерпретація коду. Переваги та недоліки цих підходів. Похідний код, машинний код, байт-код. JIT-компіляція.

2. Основні характеристики мови Java та платформи Java. Переваги/недоліки у порівнянні з іншими мовами/платформами.

3. Примітивні типи у Java: розмір, діапазон. Літерали.

4. Класи-обгортки для примітивних типів.

5. Система числення. Запис цілочисельних літералів у різних системах числення у Java. Перетворення літералів з однієї систему числення у іншу.

6. Двійковий та додатковий двійковий код.

7. Оператори. Пріоритети операторів.

8. Арифметичні оператори. Оператори інкременту та декременту. Різниця між предінкрементом та постінкрементом.

9. Логічні оператори. Короткозамкнуті логічні оператори. Оператори зсуву. Арифметичний та логічний зсув.

10. Перетворення типів. Явне та неявне перетворення типів. Можливі втрати точності та значущості при перетворенні типів.

11. Структурне програмування. Основні принципи та конструкції. Блок-схема алгоритму (Flowchart).

12. Блоки. Область видимості змінних. Локальні змінні та змінні, що задекларовані на рівні класу. Перекриття області видимості.

13. Конструкції управління потоком виконання. if, if-else, ланцюжки if-else if-else if... . Конструкція switch.

14. Конструкції управління потоком виконання. Цикли for, while, do-while, for-each. continue та break. Мітки.

15. Пам’ять. Стек LIFO. Використання стеку при створенні локальних змінних та в процесі викликання методів.

16. Пам’ять. Купа (Heap). Об’єкти та посилання на об’єкти. Збирач сміття (Garbage Collector).

17. Масиви. Декларування, створення, ініціалізація, використання.

18. Основні поняття ООП. Абстрагування, інкапсуляція, успадкування, поліморфізм.

19. Відношення IS-A та HAS-A. Оператор instanceof.

20. Класи та об’єкти. Поля, методи та конструктори. Заміщення (override) та перевантаження (overload) методів.

21. Модифікатори області видимості. Правила зміни модифікаторів області видимості при заміщенні методів (override).

22. Статичні та нестатичні поля та методи.

23. Процес створення нових об’єктів за допомогою оператора new (начальна ініціалізація полів, конструктори, статичні та нестатичні блоки ініціалізації).

24. this, super.

25. Пакети. Імпортування класів. Статичне імпортування.

26. Способи створення констант: final та enum. Переваги та недоліки цих підходів.

27. Абстрактні класи. Відмінності у порівнянні з інтерфейсами та звичайними класами.

28. Шаблон проектування «Стратегія».

29. Принципи SOLID.

30. Клас Object.

31. Клас String.

32. Алгоритм сортування бульбашкою.

33. Алгоритм сортування вибором.

34. Алгоритм сортування включенням.

35. Інтерфейси. Відмінності у порівнянні з абстрактними класами.

36. Collection framework. Основні інтерфейси та класи.

37. Інтерфейс Iterator. Використання ітераторів та циклів for-each для перегляду елементів колекцій.

38. Типізовані та нетипізовані колекції.

39. Інтерфейс List. Класи ArrayList та LinkedList: переваги та недоліки. Інтерфейс RandomAccess.

40. Інтерфейс Set. Клас TreeSet. Двійковий та лінійний пошук. Інтерфейси Comparable та Comparator.

41. Інтерфейс Set. Клас HashSet. Хешування. Хеш-функція. Методи hashCode() та equals().

42. Внутрішня реалізація сховища HashSet. Capacity та Load Factor.

43. Асоціативні масиви (Map). Основні поняття: ключ (key), значення (value). Інтерфейси Map, Map.Entry. Класи TreeMap та HashMap.

44. Обробка виняткових ситуацій (Exception). Переваги/недоліки у порівнянні з повертанням коду помилки. Exception propagation. Основні конструкції: try-catch, try-finally, try-catch-finally, try-with-resources.

45. Класифікація виняткових ситуацій: Throwable, Error, Exception, RuntimeException. Контрольовані (checked) та неконтрольовані (unchecked) виняткові ситуації.

46. Декларування (throws) та викидання (throw) виняткових ситуацій. Зміна декларацій виняткових ситуацій при заміщені методів.

47. Ввід-вивід даних. Блокуючий та неблокуючий ввід-вивід. Потоки вводу-виводу. InputStream, OutputStream, Reader, Writer.

48. Фільтри. Їх використання з потоками вводу-виводу.

49. Серіалізація об’єктів. Інтерфейс Serializable. transient-поля. Версії.

50. Networking. Організація клієнт-серверної взаємодії. Socket API. Класи Socket, ServerSocket.

[1] Методичною радою університету – для загальноуніверситетських дисциплін.