|
|
|
Огляд курсу;
Інструкція з оформлення звіту
Репозиторій з лекційними проектами
|
04.09. |
Тема 01. Вступ до об’єктно-орієнтованого програмування
Базові концепції об’єктно-орієнтованого програмування;
Огляд платфоми .NET;
Структура програми мовою C#;
Система типів мови програмування C#;
|
Практична робота 01. Знайомство з платформою .NET
|
Книга "Объектно-ориентированное мышление" (Вайсфельд, 2014)
Winderton про ООП
|
16.09. |
Тема 02. Знайомство з базовим синтаксисом мови програмування C#
Управляючі інструкції мови програмування C#;
Математичні обчислення за допомогою класу Math
Робота з масивами
Програмні засоби для роботи з текстом (чорновик)
|
Практична робота 02. Знайомство з базовим синтаксисом мови програмування C#
|
|
29.09. |
Тема 03. Фундаментальні принципи ООП. Інкапсуляція
Базова робота з класами;
Інкапсуляція та приховування даних у мові C#;
Практики cтворення класів та об'єктів
|
Практична робота 03. Фундаментальні принципи ООП. Інкапсуляція
|
Дизайн и эволюция свойств в C#
|
06.10. |
Тема 04. Фундаментальні принципи ООП. Взаємодія класів
Види зв'язків між класами
Наслідування на прикладі структурованої обробки винятків (чорновик)
Поліморфізм та його різновиди
Перетворення типів та поліморфізм підтипів (чорновик)
|
Фундаментальні принципи ООП. Взаємодія класів
|
|
20.10. |
Тема 05. Фундаментальні принципи ООП. Абстрагування даних та параметричний поліморфізм
Абстрактні класи;
Інтерфейси;
Вбудовані інтерфейси .NET;
Делегати та анонімні типи;
Параметричний поліморфізм. Узагальнені типи даних
|
Практична робота 05. Абстрагування даних та параметричний поліморфізм
|
|
03.11. |
Тема 06. Принципи побудови якісного об’єктно-орієнтованого коду
Додатковий погляд на інкапсуляцію;
Філософія об’єктно-орієнтованого проєктування програмного забезпечення;
SOLID-принципи розробки об’єктно-орієнтованого коду
|
ІНДЗ-6. Принципи побудови якісного об’єктно-орієнтованого коду
|
Чому SOLID — важлива складова мислення програміста;
Рефакторинг - запахи кода
Фінальний проєкт з лекції
Забытая история ООП
Відеоуроки "Making Your C# Code More Object-oriented, 2016"
|
10.11. |
Тема 07. Колекції в мові програмування C#
Огляд АРІ колекцій
Стандартні структури даних на платформі .NET;
|
Практична робота 06. Колекції в мові програмування C# (+ІНДЗ 7-10)
|
System.Collections in .NET Core 3;
Еволюція АРІ колекцій у .NET Framework;
Сравнение коллекций в .NET;
Доступні тільки для читання та спостережувані колекції (планується в наступному навчальному році)
|
17.11. |
Тема 08. Технологія LINQ та організація доступу до даних
Огляд технології LINQ;
Фільтрування, впорядкування та проєктування даних;
З’єднання, групування та агрегування даних
|
Практична робота 07. Технологія LINQ та організація доступу до даних
|
The 6 best practices for writing LINQ extension methods
На наступний навчальний рік планується розгляд LINQ to XML
Принципы работы IQueryable и LINQ-провайдеров данных
Репозиторій до курсу
|
24.11. |
Тема 09. Основи модульного тестування об’єктно-орієнтованого коду
Принципи написання модульних тестів;
|
Практична робота 08. Основи модульного тестування об’єктно-орієнтованого коду
|
Unit Testing Best Practices;
Курси Pluralsight;
|
01.12. |
Тема 10. Файловий ввід-вивід у мові програмування C#
Файловий ввід-вивід;
Потоки вводу-виводу;
Серіалізація об'єктів
|
Практична робота 09. Файловий ввід-вивід у мові програмування C#
|
|
II семестр |
15.02. |
Тема 11. Асинхронне виконання коду
Загальні відомості про конкурентне виконання коду;
Асинхронні операції на базі синтаксису async-await;
Бібліотека TPL (Task Parallelism Library)
|
Практична робота 10. Асинхронне виконання коду
|
C# Async/Await/Task Explained (Deep Dive);
Репозиторій до книги Concurrency in C# Cookbook;
ValueTask<TResult> — почему, зачем и как?;
C# Async Antipatterns;
ConfigureAwait: часто задаваемые вопросы;
Асинхронность в C#. Разрушение легенд;
Youtube-плейліст з мережевого програмування мовою C# (англ)
|
01.03. |
Тема 12. Паралельне виконання коду
Паралельна обробка даних;
Паралельна обробка даних за допомогою Parallel LINQ;
Бібліотека TPL Dataflow (чорновик)
|
Практична робота 11. Паралельне виконання коду
|
|
15.03. |
Тема 13. Додаткові питання конкурентного виконання коду
Потоки: синхронізація та планування;
Конкурентні колекції даних;
Асинхронні потоки;
|
Практична робота 12. Додаткові питання конкурентного виконання коду
|
Открытая лекция «weak memory models»
Основи реактивного програмування (плануться в 2022 році)
|
09.04. |
Тема 14. Конструювання графічного інтерфейсу користувача на базі технології Windows Forms
Огляд форм Windows (чорновик);
Панелі інструментів, меню та події (чорновик);
Технологія прив'язування даних (чорновик)
|
Практична робота 13. Конструювання графічного інтерфейсу користувача на базі технології Windows Forms
|
Контейнеры в Windows Forms;
Элементы управления;
Меню и панели инструментов
|
23.04. |
Тема 15. Основи роботи з технологією Entity Framework
Огляд технології Entity Framework. Робота з існуючою базою даних;
Підхід Entity Framework: Code First
|
Практична робота 14. Основи роботи з технологією Entity Framework
|
Entity Framework Core/Windows Forms tips and tricks;
Руководство по Entity Framework Core (metanit)
|
07.05. |
Тема 16. Створення реляційної моделі даних та доступ до даних з бази
Робота з контекстом бази даних (-);
Формування та впровадження реляційної моделі даних (-);
Базові CRUD-операції за допомогою технології LINQ (-);
Fluent API та розширений доступ до даних (-);
Сортування та фільтрація даних з бази (-);
Складені запити та LINQ (-)
|
Практична робота 15. Створення реляційної моделі даних та доступ до даних з бази
|
|