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

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

Рівень вищої освіти Перший(бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інформаційне забезпечення робототехнічних систем
Статус дисципліни Обов’язкова (нормативна)
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 1 курс, осінній семестр
Обсяг дисципліни 6 кредити ECTS /180 годин (36 годин лекцій, 36 годин лабораторних робіт, 108 годин – СРС)
Семестровий контроль/ контрольні заходи Іспит, МКР, захист лабораторних робіт
Розклад занять 1 лекція (2 години) 1 раз на тиждень; 1 лабораторна робота (2 години) 1 раз на тиждень
Мова викладання Українська
Інформація про керівника курсу / викладачів

Лекції: д.т.н., професор Корнага Ярослав Ігорович

Лабораторні роботи: к.т.н., старший викладач Базака Юрій Анатолійович

Telegram: https://t.me/+etPhAi1cBQAyZGJi

Розміщення курсу https://docs.google.com/document/d/1-7vXktch0wDS2d-MdY_UrwClVNLq4TLNSxLRm5hraIw/edit?usp=sharing

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

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

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

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

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

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

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

Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами: «Основи інформатики» середньої школи, а також базові знання із таких дисциплін: «Дискретна математика», «Вища математика», «Аналітична геометрія та лінійна алгебра».

Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальшого вивчення освітніх компонентів: «Програмування. Частина 2. Структури даних та алгоритми».

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

Розділ 1. Основні поняття та означення. Алгоритмізація.

Тема 1.1 Поняття архітектури комп’ютера фон Неймана та програмного забезпечення. Системи числення.

Тема 1.2 Поняття алгоритму. Основні алгоритмічні структури.

Розділ 2. Мови програмування. Транслятори. Елементи мови С#.

Тема 2.1 Мови програмування. Покоління мов програмування. Класифікація мов програмування. Огляд сучасних мов програмування. Транслятори.

Тема 2.2 Структура програми мовою С#. Змінні. Константи. Арифметичні операції мовою С# для різних типів даних. Операції інкременту та декременту.

Розділ 3. Цикли і розгалуження в С#. Обробка виключень

Тема 3.1 Програмування лінійних структур.

Тема 3.2 Програмування розгалужених процесів.

Тема 3.3 Програмування циклічних процесів.

Тема 3.4 Обробка виключень.

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

Розділ 4. Методи в С#

Тема 4.1 Методи. Параметри і аргументи методів. Глобальні і локальні змінні.

Тема 4.2 Передача параметрів у метод.

Тема 4.3 Рекурсія.

Розділ 5. Масиви в С#. Одновимірні та багатовимірні масиви. Дебагінг програм

Тема 5.1 Одновимірні масиви.

Тема 5.2 Алгоритми роботи з одновимірними масивами. Масиви як параметри методів.

Тема 5.3 Двовимірні масиви (матриці). Багатовимірні масиви.

Тема 5.4 Ступеневі масиви.

Тема 5.5 Дебагінг програм.

Розділ 6 Робота з текстом в С#. Регулярні вирази

Тема 6.1 Робота з тестом. Класи String та StringBuilder.

Тема 6.2 Регулярні вирази. Клас Regex.

Тема 6.3 Стандарти оформлення коду.

Розділ 7. Робота з файловою системою в С#

Тема 7.1 Файли. Текстові файли в мові С#. Класи File та FileInfo.

Тема 7.2 Файлові потоки введення та виведення мовою С#. Класи FileStream, StreamReader та StreamWrite.

Тема 7.3 Робота з дисками. Робота з папками. Класи DriveInfo та DirectoryInfo.

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

Розділ 8. Робота з консоль в С#

Тема 8.1 Використання класу Console для написання ігор.

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

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

  1. Коноваленко І.В. Програмування мовою C#. В:Підручник – Тернопіль, – 227 с.

  2. 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

  3. 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.

  4. 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.

  5. Joseph Albahari C# 10 in a Nutshell: The Definitive Reference, 2022.

  6. Joe Mayo C# Cookbook: Modern Recipes for Professional Developers, 2021.

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

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

  2. Ерік Фрімен, Елізабет Робсон, Берт Бейтс, Кеті Сієрра Head First. Патерни проєктування, 2020.

  3. Головна сторінка середовища MS Visual Studio [Електронний ресурс]. http://visualstudio.com

  4. Головна сторінка MSDN [Електронний ресурс]. http://msdn.microsoft.com

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

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

№ з/ п

Назва теми лекції та перелік основних питань

1 Тема 1.1 Поняття архітектури комп’ютера фон Неймана та програмного забезпечення. Системи числення
Основні питання: Архітектура комп’ютерів фон Неймана. Принцип використання двійкової системи числення. Інформація в пам’яті комп’ютера. Позиційні системи числення. Зображення чисел у комп’ютері. Програмне забезпечення. Засоби створення програм. Поняття операційних систем. Прикладне програмне забезпечення
2 Тема 1.2. Поняття алгоритму. Основні алгоритмічні структури
Основні питання: Алгоритмізація. Поняття алгоритму. Властивості алгоритмів. Елементи теорії алгоритмів. Засоби опису алгоритмів. Правила побудови схем алгоритмів. Класифікація алгоритмів. Побудова лінійних, розгалужених та циклічних алгоритмів для розв’язання задач
3 Тема 2.1 Мови програмування. Покоління мов програмування. Класифікація мов програмування. Огляд сучасних мов програмування. Транслятори
Основні питання: Історія розвитку мови С#. Класифікація мов програмування. Огляд сучасних мов програмування. Переваги та можливості мови С#. Основні поняття та елементи мови С#
4 Тема 2.2 Структура програми мовою С#. Змінні. Константи. Арифметичні операції мовою С# для різних типів даних. Операції інкременту та декременту
Основні питання: Типи даних. Зміна . Константа. Іменування змінних, сталих Операції інкременту, декременту. Організація введення-виведення даних. Синтаксис та семантика мови програмування. Структура програми мовою С#
5 Тема 3.1 Програмування лінійних структур
Основні питання Класифікація програм. Програмування лінійних алгоритмів. Основні методи Math. Арифметичні вирази. Синтаксис та семантика мови програмування. Прості лінійні програми. Оператор присвоєння, особливості його реалізації
6 Тема 3.2 Програмування розгалужених процесів
Основні питання: Прості та складені логічні вирази. Логічні операції. Операторний блок. Умовні оператори: if, if-else. Оператор поліваріантного вибору switch-case. Тернарний оператор
7 Тема 3.3 Програмування циклічних процесів
Основні питання: Цикл з перед умовою. Цикл з після умовою. Цикл for. Особливості вибору циклів для різних типів задач
8 Тема 3.4 Обробка виключень
Основні питання: Обробка виключень. Особливості застосування. Використання блоку finally
9 Тема 4.1 Методи. Параметри і аргументи методів. Глобальні і локальні змінні
Основні питання: Створення методу. Параметри і аргументи методу. Використовування інструкції return
10 Тема 4.2 Передача параметрів у метод
Основні питання: Типи параметрів методів. Способи їх використання
11 Тема 4.3 Рекурсія
Основні питання: Поняття рекурсії. Рекурсивне занурення та рекурсивне повернення, глибина рекурсії. Особливості реалізація рекурсії мовою С#. Приклади застосування на основі знаходження факторіалу
12 Тема 5.1 Одновимірні масиви
Основні питання: Поняття масиву. Одновимірні масиви: оголошення, ініціалізація, доступ до елементів. Особливості реалізації одновимірних масивів у С#. Базові операції обробки одновимірних масивів
13 Тема 5.2 Алгоритми роботи з одновимірними масивами. Масиви як параметри методів
Типові Алгоритми обробки одновимірних масивів. Сортування масиву. Пошук в масиві методом перебирання елементів. Бінарний пошук. Вставка та видалення елемента. Використання масивів в методах
14 Тема 5.3 Двовимірні масиви (матриці). Багатовимірні масиви
Основні питання: Багатовимірні масиви: оголошення, ініціалізація, доступ до елементів. Введення і виведення двовимірних масивів (матриць). Квадратні матриці, формули головної і побічної діагоналі. N-мірні масиви, особливості застосування
15 Тема 5.4 Ступеневі масиви
Основні питання: Ступеневі масиви: оголошення, ініціалізація, доступ до елементів. Введення і виведення ступеневих масивів. Особливості застосування
16 Тема 5.5 Дебагінг програм
Основні питання: Використання дебагінгу, як засіб знаходження помилок в коді. Місце зупинки для запуску відладчика. Методи роботи в режимі дебагінгу
17 Тема 6.1 Робота з тестом. Класи String та StringBuilder
Основні питання: Робота з текстом. Методи обробки тексту в С#. Особливості застосування класів String та StringBuilder
18 Тема 6.2 Регулярні вирази. Клас Regex
Основні питання: Базові принципи застосування регулярних виразів. Синтаксис: символьні класи, групування, модифікатори та ін. Методи обробки тексту за допомогою регулярних виразів. Особливості застосування класу Regex
19 Тема 6.3 Стандарти оформлення коду
Основні питання: Стандарти оформлення коду: використання, склад, синтаксис. Норми кодування. Застосування нотацій.
20 Тема 7.1 Файли. Текстові файли в мові С#. Класи File та FileInfo
Основні питання: Особливості роботи з текстовими файлами в С#. Методи класів File та FileInfo
21 Тема 7.2 Файлові потоки введення та виведення мовою С#. Класи FileStream, StreamReader та StreamWrite
Основні питання: Застосування файлових потоків на прикладі вводу-виводу на консоль та читання-запису в файл. Методи класів FileStream, StreamReader та StreamWrite та особливості їх застосування
22 Тема 7.3 Робота з дисками. Робота з папками. Класи DriveInfo та DirectoryInfo
Основні питання: Особливості роботи з дисками та файлами. Методи класів DriveInfo та DirectoryInfo
23 Тема 8.1 Використання класу Console для написання ігор
Основні питання: Застосування методів класу Console для написання консольних ігор. Особливості керування консолі за допомогою читання клавіш

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

№ з/ п

Перелік лабораторних робіт

1 Лабораторна робота 1. Системи числення
Перетворення між системами числення (десяткова, двійкова, вісімкова, шістнадцяткова)
2 Лабораторна робота 2. Створення проєктів в С# та робота з типами даних
Створення проектів в Visual Studio. Написання програми для перевірки операцій з різними типами даних
3 Лабораторна робота 3. Застосування математичних операцій в С#
Використання класу Math для застосування математичних операцій в обчисленнях
4 Лабораторна робота 4. Умовні оператори. Цикли. Обробка виключень
Використання умовних операторів для написання програм. Застосування циклів для різних типів задач
5 Лабораторна робота 5. Методи в C#
Способи застосування методів для розв’язання математичних задач
6 Лабораторна робота 6. Одновимірні масиви
Використання одномірних масивів для зберігання даних. Застосування класу методів Array
7 Лабораторна робота 7. Двовимірні масиви, дебагінг
Використання двовимірних масивів для зберігання даних. Особливості перевірки коду програм
8 Лабораторна робота 8. Робота з текстом. Регулярні вирази
Робота з типом даних string. Особливості застосування регулярних виразів
9 Лабораторна робота 9. Робота з файлами та файловою системою
Використання текстових файлів. Особливості задач з файлами та файловою системою
10 Лабораторна робота 10. Консольна гра
Написання простої консольної гри з використанням елементів управління консолі

Лабораторні заняття виконуються з використанням мови програмування С#, та версій середовищ розробки програм, які надаються розробниками для навчальних цілей безкоштовно. Під час їх проведення використовуються методичні вказівки до виконання лабораторних робіт по дисципліні.

В умовах дистанційного навчання усі види занять, у тому числі контрольні заходи, проводяться з використанням сервісу Zoom.

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

№ з/п

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

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

1 Підготовка до лабораторних робіт 88
2 Підготовка до МКР 20
Всього 108

Контрольні роботи

Двогодинна модульна контрольна робота (МКР) поділяється на дві одногодинні (45 хв.), що проводяться під час лабораторних занять.

МКР-1 виконується після вивчення тем 1.1 - 3.4. МКР-2 виконується після вивчення тем 4.1 - 7.3. Модульні контрольні роботи виконуються в середовищі Google Form у вигляді тестування.

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

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

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

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

модульні контрольні роботи виконуються без застосування допоміжної інформації з Інтернет;

заохочувальні бали виставляються за навчальну активність на лекційних заняттях. Кількість заохочуваних балів не більше 10;

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

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

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

Поточний контроль

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

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

виконання загальної модульної контрольної роботи (МКР), яка поділяється на дві модульні контрольні роботи: МКР-1 та МКР-2 ;

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

штрафні бали (віднімаються від загальної суми оцінювання лабораторної );

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

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

Вагові бали кожної лабораторної роботи наведені у Таблиці 1. Сумарний ваговий бал за даний контрольний захід складає 40 балів.

Критерії оцінювання лабораторних робіт включають якість їх виконання та захист.

Таблиця 1 – Вагові бали та критерії оцінювання лабораторних робіт

Номер роботи

Назва роботи

Бали

Час

Виконання

Захист

Сума

1

Системи числення

0,5

1

0,5

2

2

Створення проєктів в С# та робота з типами даних

0,5

1

0,5

2

3

Застосування математичних операцій в С#

0,5

1

0,5

2

4

Умовні оператори. Цикли. Обробка виключень

0,5

2

0,5

3

5

Методи в C#

0,5

2

0,5

3

6

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

1,5

2

1,5

5

7

Двовимірні масиви, дебагінг

1,5

2

1,5

5

8

Робота з текстом. Регулярні вирази

1,5

3

1,5

6

9

Робота з файлами та файловою системою

1,5

1

1,5

4

10

Консольна гра

1,5

5

1,5

8

Разом

10

20

10

40

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

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

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

«незадовільно», незадовільна відповідь та/або не працюючий код.

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

«відмінно», не менш ніж 90% правильних відповідей – 5 балів;

«добре», не менш ніж 75% правильних відповідей – 4 бали;

«задовільно», не менш ніж 60% правильних відповідей – 3 бали;

«незадовільно», менш ніж 60% правильних відповідей – 0 балів.

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

за активну роботу на лекційному занятті 1 бал, але в сумі не більше 10.

Штрафні бали

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

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

На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 12 балів. На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 30 балів.

Розрахунок шкали рейтингу RD:

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

Rc = 40 +10 = 50 балів

Екзаменаційна складова шкали дорівнює 50% , а саме:

RE = RC*0,5/(1-0,5) = 50 балів.

Таким чином, рейтингова шкала з дисципліни складає

RD = RC + RE =50 + 50 =100 балів.

Необхідною умовою допуску до екзамену є:

виконання 10 лабораторних робіт на оцінку не нижче ніж “задовільно”

виконання загальної МКР не нижче ніж на оцінку “задовільно”.

Критерії екзаменаційного оцінювання:

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

Ваговий бал практичної частини екзаменаційної роботи – 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 Незадовільно
Не виконані умови допуску Не допущено

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

Складено: професором кафедри інформаційних систем та технологій ФІОТ, д.т.н., проф. Корнагою Ярославом Ігоровичем

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

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