Кафедра прикладної радіоелектроніки

[RE-88] Технології .NET для розробки програмного забезпечення

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

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

Рівень вищої освітиПерший (бакалаврський)
Галузь знань-
Спеціальність
Освітня програмаВсі ОП
Статус дисципліниВибіркова (Ф-каталог)
Форма здобуття вищої освітиОчна
Рік підготовки, семестрДоступно для вибору починаючи з 2-го курсу, осінній семестр
Обсяг дисципліни4 кред. (Лекц. 18 год, Практ. 36 год, Лаб. год, СРС. 66 год )
Семестровий контроль/контрольні заходиЗалік
Розклад занятьhttps://rozklad.kpi.ua
Мова викладанняУкраїнська
Інформація про керівника курсу / викладачів Лекц.: Нікітчук А. В.,
Практ.: Нікітчук А. В.,
СРС.: Нікітчук А. В.
Розміщення курсуhttps://do.ipo.kpi.ua/course/view.php?id=5927

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

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

Мета: ознайомитись з основними концепціями і особливостями платформи Microsoft .NET (.NET), отримати знання та навички, необхідні для промислової розробки програмних продуктів із відповідним функціоналом для радіотехнічних інформаційних систем.

.NET — це платформа, яка відображає новітні тенденції в розробці і пропонує спеціалістам-початківцям безліч можливостей. Знання основ .NET дозволять бути гнучкими у виборі спеціалізації та сфери програмування.


Основні цілі дисципліни:

  1. Вивчення основних понятть та компонентів платформи .NET.
  2. Знайомство з інструментами та середовищем розробки Visual Studio для підвищення продуктивності при розробці додатків.
  3. Освоєння мови програмування C# для створення десктопних, веб- та мобільних додатків на платформі .NET.
  4. Використання різних бібліотек та фреймворків, які входять до .NET-екосистеми, для реалізації різних функціональностей.
  5. Ознайомлення з розробкою веб-додатків за допомогою технології ASP.NET Core, включаючи роботу з MVC (Model-View-Controller).
  6. Створення баз даних на сервері MSSQL, підключення до проекту і використання.
  7. Ознайомлення з розробкою мобільних та корсплатформових додатків на платформі .NET, за допомогою MAUI (в минулому Xamarin).
  8. Вивчення принципів та шаблонів програмування, основ рефакторингу, для постійного покращення якості програмного продукту, легшого масштабування та підвищення зрозумілості командою розробників.

В результаті вивчення дисципліни формуються наступні компетенції:

ПК 19

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

ПК 20

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

ПРН 4

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

Студент буде знати: 
– мову програмування C#;
– основні концепції технології .NET та базові принципи створення програмного забезпечення за її допомогою;
– основні бібліотеки, що утворюють .NET.

Студент буде вміти:
– працювати в середовищі програмування Microsoft Visual Studio;
– створювати програми на мові C# з використанням об’єктно-орієнтованої технології;
– створювати ПЗ з графічним інтерфейсом користувача (для десктопного, веб- та мобільного використання);  
– розробляти ПЗ для взаємодії з базами даних;
– розробляти ПЗ для роботи в телекомунікаційній мережі Інтернет за допомогою технології ASP.NET Core.

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

До початку вивчення дисципліни студент повинен володіти:

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

Знання та вміння за результатами навчання можливо покращити додатково обравши для вивчення наступні дисципліни:

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

Під час навчання буде розглянуто наступні теми:

1. Cсинтаксис. Основні аспекти мови C# від операторів розгалуження та циклу до об'єктно-орієнтованого підходу, подій, шаблонів та традицій в написанні програм.

2. LINQ (Language-Integrated Query) — проста та зручна мова запитів до джерела даних.

3. Основи фреймворків, технологій та засобів з використанням яких ведеться розробка:

  • Десктопного ПЗ — продуктів, що запускаються на персональних комп'ютерах. Розглядаються WinForms та MAUI (Multi-Platform App UI) — підсистеми для побудови графічних інтерфейсів. Однією з важливих особливостей MAUI є використання мови декларативної розмітки XAML, заснованої на XML.
  • Веб-розробка. Особливість полягає в тому, що веб-додатки працюють через браузер і вимагають, як правило, стабільного інтернет-підключення, частого оновлення інформації та якісного інтерфейсу. Веб-програми можуть бути різної складності. Cтворити невеликий односторінковий сайт з картинками та посиланнями — справа нехитра, а ось для створення комплексної web-програми знадобиться багато зусиль. Розглядаються МVC та ASP.NET CoreMVC, англ. Model-view-controller — архітектурний шаблон, який використовується під час проєктування та розробки програмного забезпечення. ASP.NET Core — вільне та відкрите програмне забезпечення каркаса веб-застосунків.
  • Мобільних додатків - продуктів, що запускаються на мобільних пристроях користувачів.  Розглядається MAUI (Нащадок Хamarin.Forms) — платформа, яка націлена на створення кросплатформових програм під AndroidiOS і Windows.

Крім цього, за допомогою .NET на C# можливо створювати програми IoT (інтернету речей) для Raspberry Pi, HummingBoard, BeagleBoard, Pine A64 тощо.  Використовуючи наявні бібліотеки та фреймворки з відкритим кодом для взаємодії зі спеціалізованим обладнанням, таким як датчики, аналого-цифрові перетворювачі та LCD-пристрої.

Також, за допомогою .NET можна писати ігри під платформу Unity. Під Unity написані такі відомі ігри, як: Hearthstone: Heroes of Warcraft; Cities Skylines; Cuphead; Pillars of Eternity; Pokemon Go; Subnautica та інші. Для створення гри достатньо знати мову C# та використовувати бібліотеки платформ Mono та Unity

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

Електронні ресурси

  1. Бібліотека документації та навчальних ресурсів Microsoft для розробників та інших професіоналів, які працюють із технологіями — https://docs.microsoft.com/uk-ua/
  2. W3Schools — найбільший безкоштовний освітній веб-сайт для розробників та навчання програмуванню онлайн. Щороку відображається 3 мільярди сторінок. 60 мільйонів відвідувачів щомісяця — https://www.w3schools.com/
  3. C# Corner — Глобальна мережева спільнота розробників програмного забезпечення. У 2021 році C# Corner обслужив 29,4 мільйона відвідувачів — https://www.c-sharpcorner.com/
  4. Programiz — навчальний веб-сайт для вивчення програмування. Мільйони користувачів переглядають підручники та приклади Qjut з усього світу — https://www.programiz.com/
  5. Stackify - допомагає розробникам писати кращий код. Їх продукти дозволяють тестувати свій код під час написання. Це допомагає розробникам завчасно виправляти проблеми з продуктивністю та краще перевіряти код — https://stackify.com/

Книги

  1. Head First патерни проєктування, Ерік Фрімен, Елізабет Робсон, Кеті Сьєрра, Берт Бейтс (укр.)
  2. Чистий Код, Роберт Мартін (укр.)
  3. C#: Learn C# in One Day and Learn It Well. C# for Beginners with Hands-on Project, LCF Publishing, 161 pages (англ.)
  4. C# 8.0 and .NET Core 3.0, Mark J. Price (англ.)
  5. C# in Depth: тонкощі програмування, Джон Скіт (англ.)

 

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

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

Номер заняття

Вид заняття

Опис

Тема 1. Комп’ютери, програмування та Microsoft.NET

1

Лекція

  • Організаційні моменти.
  • Конструкція комп’ютера.
  • Операційна система.
  • Програмне забезпечення, комп’ютерні програми.
  • Мови програмування. Як комп’ютер обробляє програми?
  • Що таке .NET?

2

Практичне

Виконання завдання 1 до теми 1. Ознайомлення з теоретичними матеріалами і виконання практичних дій:

  • знайомство з Visual Studio;
  • знайомство з редактором коду C#;

3

Практичне

Виконання завдання 2 до теми 1:

  • знайомство з проектами та рішеннями;
  • доповнення шаблону проекту кодом та проходження автоматизованого тестування;
  • інсталяція інструменту для статичного аналізу коду.

Тема 2. Основи виконання програм та мови програмування C#

4

Лекція

  • Виконання програми в .NET.
  • Структура програми С#.
  • Категорії даних: тип-значення та тип-посилання.
  • Змінні та константи.

5

Практичне

  • Математичні операції.
  • Оператори умови та циклу.

6

Практичне

  • Одновимірні масиви.
  • Багатовимірні масиви.

Тема 3. Типи даних та основи ООП

7

Лекція

  • Типи в C#.
  • Оператори та вирази.
  • Знайомство з ООП.
  • Класи та об’єкти.
  • Принципи ООП.

8

Практичне

  • Методи

9

Практичне

  • Класи

Тема 4. Особливості реалізації ООП та взаємодії між класами

10

Лекція

  • Особливості реалізації ООП (конструктор; this; створення об'єкту; статичний клас; деструктор).
  • Взаємодія між класами (асоціація; композиція; агрегація; успадковування).
  • Поліморфізм (під час компіляції; під час виконання; приховування методів).

11

Практичне

  • Наслідування (створення базового класу та класу нащадку, оголошення їх вмісту, робота з методами таких класів)

12

Практичне

  • Асоціація, композиція та агрегація (абстрактний клас, класи-нащадки, абстрактні методи, перевизначення методів)

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

13

Лекція

  • Винятки та обробка виняткових ситуацій.
  • LINQ (англ. Language Integrated Query - запити, інтегровані в мову). Запити до різних джерел даних або форматів даних.

14

Практичне

  • Винятки та обробка виняткових ситуацій (перевірка аргументів, використання конструкції try…catch,  оператор throw).

15

Практичне

  • Виконання запитів даних за допомогою LINQ.

Тема 6. Інтерфейс програмування додатків

16

Лекція

  • Створення першої програми з графічним інтерфейсом (форма).
  • Додавання елемента керування до форми.
  • Створення обробників подій.
  • Налаштування розміру та масштабу.
  • Приклади створення програм.

17

Практичне

  • Створення програми з графічним інтерфейсом на основі проекту Windows Forms (.NET 6.0).

18

Практичне

  • Створення бази даних та підключення її до проекту.
  • Налагодження програми для роботи з базою даних.
  • Публікація та перевірка працездатності застосунку.

Тема 7. Створення вебзастосунків за архітектурним шаблоном MVC

19

Лекція

  • ASP.NET — технологія створення вебзастосунків і вебсервісів від компанії Майкрософт.
  • Архітектурний шаблон Model-View-Controller (MVC), що розділяє програму на три основні групи компонентів.
  • Створення додатку ASP.NET MVC, структура папок, додавання компонентів.
  • Передача даних між контролером та представленням.
  • Робота з базою даних у програмі ASP.NET Core MVC.
  • Фронтенд — презентаційна частина, інтерфейс користувача і пов'язані з ним компоненти (HTML, CSS, JS).

20

Практичне

  • Створення веб-застосунку за допомогою технології ASP.NET Core та архітектурного шаблону MVC частина 1: користувацький інтерфейс (Front-end) його зв’язок з контролером (Back-end).

21

Практичне

  • Підключення Entity Framework Core.
  • Робота з базою даних у додатку ASP.NET Core MVC.

Тема 8. Принципи та шаблони проектування програмного забезпечення

22

Лекція

  • Принципи ООП програмування та дизайну SOLID.
  • Шаблони (патерни) програмування.
  • Рефакторинг.

23

Практичне

  • Створення кросплатформового застосунку MAUI (Multi-platform App UI) для мобільних і настільних пристроїв.
  • Налаштування емулятору та пристрою Android.

24

Практичне

  • Кросплатформова розробка. Міграція проекту з Windows Forms на MAUI.
  • Перевірка роботи програми на мобільному пристрої Android/iOS.

Захисти робіт та семестровий контроль

25-26

Практичне

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

27

Лекція

Залік проводиться в період останніх двох тижнів теоретичного навчання у семестрі, як правило, на останньому за розкладом занятті з відповідної навчальної дисципліни (освітнього компонента).

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

1. На протязі семестру:

  • Вивчення лекційного матеріалу.
  • Опрацювання літературних джерел.
  • Відповіді на запитання для самоперевірки.

2. На протязі тижня перед запланованою датою:

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

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

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

Правила відвідування занять:

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

Правила поведінки на заняттях:

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

Правила захисту практичних робіт:

  • для захисту практичних роботи необхідно пройти відповідний тест;
  • практичних роботи захищаються на поточному занятті або на наступному від заняття присвяченого роботі що захищається.
  •  практичні роботи захищаються в вигляді відповідей на контрольні запитання та також пояснення отриманих результатів або в вигляді відповідей на онлайн тест.

Правила захисту індивідуальних завдань:

  • результати виконання індивідуальних завдань подаються до захисту не пізніше ніж за два тижні після видачі завдань.

Правила призначення штрафних балів:

  • штрафні бали призначаються за невчасне виконання/захист практичної роботи.

Політика дедлайнів та перескладань:

  • захист/здача практичних робіт виконується до останнього заняття (включно).

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

  • Поточний контроль: опитування (тест) за темами лекцій (16 балів), виконання практичних робіт (64 бали), МКР (10 балів), ДКР (10 балів).
  • Календарний контроль: провадиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу.
  • Умови допуску до семестрового контролю: семестровий рейтинг більше 60 балів.
Таблиця відповідності рейтингових балів оцінкам за університетською шкалою
Кількість балівОцінка
100-95Відмінно
94-85Дуже добре
84-75Добре
74-65Задовільно
64-60Достатньо
Менше 60Незадовільно
Не виконані умови допускуНе допущено

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

...
Опис матеріально-технічного та інформаційного забезпечення дисципліни

Заняття проводяться на комп’ютерах, розміщених в навчальному класі кафедри ПРЕ. Також студенти можуть використовувати власні комп’ютери. Основним програмним забезпеченням є Microsoft Visual Studio Community -  це безкоштовне повнофункціональне розширюване інтегроване середовище розробки (IDE) для створення сучасних додатків Android, iOS та Windows, а також веб-додатків та хмарних служб.




Робочу програму навчальної дисципліни (силабус):
Складено Нікітчук А. В.;
Ухвалено кафедрою ПРЕ (протокол № від )
Погоджено методичною комісією факультету/ННІ (протокол № ______ від ______)