- •Парадигми програмування
- •8.080401: Інформаційні управляючі системи та технології
- •Тема 1. Парадигма імперативного програмування Лекція 1. Огляд парадигм програмування
- •1.1 Базові поняття і визначення
- •1.2 Класифікація парадигм програмування
- •Парадигми
- •Объектно-ориентированные возможности
- •Функциональные возможности
- •1.3 Огляд парадигми імперативного програмування
- •1.4 Програмування, кероване подіями
- •1.5 Узгоджене програмування і паралельні обчислення
- •1.6. Підтримка різних парадигм програмування в ms.Net
- •Тема 2. Парадигма об’єктно-орієнтованого програмування Лекція 2. Об'єктно-орієнтоване програмування та його реалізація в c# на платформі ms.Net
- •2.1 Основні принципи об’єктно-орієнтованого програмування
- •2.2 Чисто об'єктно-орієнтовані і гібридні мови програмування
- •2.3. Реалізація принципів ооп в мові c#
- •Тема 3. Програмування за прототипом і сценарне програмування Лекція 3. Програмування за прототипом і сценарне програмування
- •3.1 Програмування за прототипом
- •3.2 Сценарне програмування
- •Тема 4. Парадигма компонентного програмування Лекція 4. Компонентне програмування як розвиток об’єктного
- •4.1 Основні ідеї компонентної розробки
- •4.2 Компонентна об'єктна модель com (Component Object Model).
- •4.3. Технологія ActiveX – основні можливості
- •Лекція 5. Компонентне програмування в .Net
- •5.1 Основні концепції платформи ms.Net
- •5.1.1 Структура fcl
- •5.1.2 Загально мовне середовище виконання – clr – динамічна складова ms.Net Framework
- •5.1.3. Система типів даних в Microsoft .Net
- •Управління типами в cts
- •5.2. Розробка компонентів на платформі .Net
- •5.3. Поняття збірки і маніфесту в .Net
- •1. Створення dll-бібліотеки
- •2. Створення консольного проекту для тестування функції з бібліотеки.
- •3. Підключення проекту бібліотеки до консольного проекту.
- •4. Встановлення стартового проекту.
- •5. Створення Windows-проекту в тому самому рішенні.
- •6. Робимо проект стартовим і запускаємо на виконання. Результат:
- •7. Документування коду
- •Лекція 6. Візуальне програмування
- •6.1. Парадигма візуального програмування
- •1. Підключення до сервера бд
- •2. Створення власної бд і таблиць
- •3. Заповнення таблиці тестовими даними
- •4. Створення Windows-застосунку (форми)
- •5. Зв'язування елементів форми з джерелом даних
- •7. Створення запитів до даних і їх відображення на формі у вигляді таблиці (Grid)
- •Тема 5. Парадигма декларативного програмування Лекція 7. Основи парадигми декларативного програмування
- •7.1 Основи парадигми декларативного програмування
- •7.2 Основи функціонального програмування
- •Основи Лісп
- •7.3 Основи логічного програмування
- •7.4 Основи Пролог
- •Лекція 8. Основи xml
- •8.1. Визначення і структура xml-документа
- •8.2. Створення xml-документа
- •8.2.1. Структура xml-документа
- •8.3. Способи відображення xml-документа
- •8.4. Правила створення коректного xml-документа
- •8.4.1. Визначення коректного документа
- •8.4.2. Складові частини коректно сформованого хмl-документа
- •8.4.3. Додавання елементів в документ
- •8.4.4. Типи вмісту елементу
- •Лекція 9. Робота з xml в .Net
- •9.1. Класи для роботи з xml .Net
- •9.2. Читання і запис потоків даних Xml
- •9.2.1. Використання класу XmlReader
- •9.2.2. Методи читання даних
- •9.2.3. Контроль типів даних при читанні Xml-документа
- •9.3. Створення xml-документа в Visual Studio
- •Лекція 10. Створення xml-документів в .Net
- •10.1. Використання класу XmlWriter - запис потоків даних Xml
- •10.2. Використання dom в .Net
- •10.2.1. Читання xml-документа за допомогою XmlNodeList
- •10.2.2. Вставка елементів (вузлів) в xml- документ
- •10.3. Обробка атрибутів
- •10.3.1. Витягання атрибутів за допомогою XmlReader
- •10.3.2. Вставка атрибутів в документ за допомогою XmlWriter
- •Лекція 11. Елементи функціонального програмування в c#
- •11.1. Елементи функціонального програмування в c#
- •11.2. Делегати
- •11.3. Лямбда-вирази і лямбда-функції
- •Приклади
- •Лекція 12. Мова linq
- •2. Linq: узагальнення і інтерфейси
- •3. Основні операції запиту
- •4. Перетворення даних з linq
- •12.1. Основи мови linq
- •1.1 Джерело даних
- •1.2. Запит
- •1.3. Виконання запиту
- •12.2. Linq: узагальнення і інтерфейси
- •12.2.1. Змінні iEnumerable в запитах linq
- •12.3. Основні операції запиту
- •12.3.1. Визначення джерела даних
- •12.3.2. Фільтрація
- •12.3.3. Впорядкування
- •12.3.4. Угрупування
- •12.4. Перетворення даних з linq
- •12.4.1. З'єднання декількох вхідних послідовностей в одну вихідну
- •12.3.5. З'єднання
- •12.3.6. Вибір (Проектування)
- •12.4.2. Вибір підмножини кожного вихідного елементу
- •12.4.3. Перетворення об'єктів, що знаходяться в пам'яті, в xml
- •12.4.4. Виконання операцій над вихідними елементами
- •12.5. Зв'язки типів в операціях запиту
- •12.5.1. Запити, що не виконують перетворення вихідних даних
- •12.5.2. Запити, що виконують перетворення вихідних даних
- •12.5. 3. Дозвіл компілятору визначати відомості про типа
- •12.6. Синтаксис запиту або синтаксис методу
- •12.6.1. Методи розширення стандартних операторів запитів
- •12.6.2. Лямбда-вирази
- •Тема 7. Парадигма агентно-орієнтованого програмування Лекція 13. Агентно-орієнтоване програмування
- •13.1 Основні поняття агентно-орієнтованої парадигми програмування
- •1. За архітектурою побудови агентів і їх властивостями:
- •За функціональним призначенням:
- •3. За здатністю до мобільності:
- •3Адачні агенти
- •13.2 Мультиагентні інформаційні системи
- •1. Формальна мова опису системи моделей (ментальної, соціальної):
- •2. Інструменти перетворення звичайних програм у відповідні агентні програми.
- •13.3. Приклади практичного застосування агентної парадигми
- •3Асоби пошуку в Інтернет
- •Тема 8. Парадигма теоретичного програмування Лекція 14. Основні парадигми теоретичного програмування
- •Основна література
- •Додаткова література
1.6. Підтримка різних парадигм програмування в ms.Net
процедурне, структурне – методи класів усіх мов C++,C#,VB
модульне – DLL, модулі класів
ООП – класи C#, власні класи
кероване подіями – обробники подій (модель Windows)
паралельне - .Net Framework 4.0, MC#
візуальне – VisualStudio
метапрограмування (за шаблоном) – VisualStudio (шаблони проектів)
узагальнене програмування – узагальнені класи C# (generic)
компонентне – основа платформи .Net Framework
сценарне - .Net Framework 3.5 (підтримка JavaScript та AJAX)
сервісно-орієнтоване – Web-сервіси, WCF
функціональне програмування – C# (делегати, LINQ, лямбда-вирази)
WPF (Windows Presentation Foundation) – технологія для створення презентацій: складних графічних інтерфейсів з можливостями анімації, 2D і 3D графіки. Використовується векторна графіка для 2D, тому інтерфейси будуть максимально незалежні від роздільної здатності екрану і розміру вікна.
WCF (Windows Communication Foundation) - створення сервіс-орієнтованих систем і звичайних розподілених систем.
Windows CardSpace —нова метасистема ідентифікації від Microsoft. (замість .NetPassport).
Windows Workflow Foundation (WF) – технологія для визначення, виконання і управління робочими процесами (англ. workflow).
ADO.NET Entity Framework (EF) - об'єктно-орієнтована технологія доступу до даних. Надає можливість взаємодії з об'єктами як за допомогою LINQ у вигляді LINQ to Entities, так і з використанням Entity SQL.
Parallel LINQ (PLINQ) – паралельне виконання запитів LINQ
Task Parallel Library (TPL) – розпаралелювання задач
Висновки
1. Загальні парадигми програмування, що склалися на самому початку ери комп'ютерного програмування, - парадигми прикладного, теоретичного і функціонального програмування мають найбільш стійкий характер.
2. Прикладне програмування підпорядковане проблемній спрямованості, що відображає комп'ютеризацію інформаційних і обчислювальних процесів чисельної обробки, досліджених задовго до появи ЕОМ. Саме тут швидко виявився явний практичний результат.
3. Домінуючі парадигми прикладного програмування за роками розвитку:
60-і роки 20 ст. – процедурне програмування;
70-і 80-і роки 20 ст – структурне програмування;
90-і роки 20 ст – об'єктно-орієнтоване програмування;
кінець 90-х – початок 21 ст. – компонентне програмування;
10-і – 20-і роки – функціональне?
3. Сучасні мови програмування підтримують одночасно декілька парадигм, тобто є мультипарадигменними.
4. Парадигми програмування склалися у міру зростання складності вирішуваних завдань. Відбулося розшарування засобів і методів програмування залежно від глибини і спільності опрацювання технічних деталей організації процесів комп'ютерної обробки інформації.
5. Напрями розвитку парадигм програмування відбивають зміну кола фахівців, зацікавлених в розвитку і використанні інформаційних технологій.
Запитання
1. Що означає поняття “парадигма програмування”?
2. Які парадигми відносяться до основних?
3. Які основні причини, обумовлюють появу нових парадигм?
4. В чому різниця між передачею параметра за значенням та за посиланням?
5. Чим відрізняється підпрограма від функції?
6. Яку концепцію, покладено в основу парадигми процедурного програмування?
7. Які мови програмування підтримують процедурну парадигму?
8. Які основні риси модульного підходу?
9. До якої основної парадигми відноситься структурне програмування?
10. Що таке “область дії змінної” ?
11. Що таке “модуль” і чим він відрізняється від процедури чи методу?
12. У чому суть структурного підходу?
13. Які основні ознаки визначають парадигму паралельного програмування?
14. Які основні ознаки визначають парадигму програмування, орієнтовану на обробку подій?
15. Що таке “розподілені обчислення”?
16. Що таке події, оброблювачі подій і як вони пов’язані між собою?
17. Які основні підходи використовуються для організації паралельних обчислень?
