- •Парадигми програмування
- •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.3.5. З'єднання
- •12.3.6. Вибір (Проектування)
- •12.4. Перетворення даних з linq
- •12.4.1. З'єднання декількох вхідних послідовностей в одну вихідну
- •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. За архітектурою побудови агентів і їх властивостями:
- розсудливий агент – спроможний робить висновки і навчатися, має чітку модель світу, власну базу знань і механізми логічного виведення нових знань;
- реагуючий (реактивний) агент – спроможний аналізувати до- і після- умови активації своїх модулів, у відповідь на зміни в зовнішньому оточенні;
- гібридна агентна архітектура – в якій одна з підсистем – розсудлива (розробляє плани і приймає рішення), інша – реактивна (діє за планом, реагує на події).
За функціональним призначенням:
- інтерфейсні агенти, які взаємодіють з користувачами;
- задачні агенти, що призначені до рішення певних задач;
- інформаційні агенти, - безпосередньо працюють з джерелами даних.
3. За здатністю до мобільності:
- стаціонарні (локальні) агенти, працюють на стороні клієнта або на стороні сервера;
- мобільні (розподілені) агенти, повністю автономні, здатні переміщуватися від сервера до сервера у пошуках інформації і нести в собі інформацію про свій стан.
Стаціонарні (anchored) агенти працюють в основному на стороні клієнта або на стороні сервера. Прикладами такого підходу можуть служити клієнтські утілити компаній AgentSoft і Autonomy. Ці програми працюють з браузером і автоматизують сеанси перегляду. Безумовно, ці клієнти взаємодіють з Web-серверами: адже саме там проводиться пошук. Однак вони в тому або іншому ступені прив'язані до клієнтської машини. Інтелектуальні засоби для Web-сторінок, побудованих з застосуванням агентних технологій, містяться на серверній стороні.
Мобільні (mobile) агенти відносяться до більш досконалої і багатообіцяючої категорії продуктів. Такі агенти нагадують деякий різновид програмних роботів, що здатні самостійно переміщатися від сервера до сервера в пошуках потрібної інформації. Ці програми несуть в собі інформацію про власний стан, тобто цілком автономні. Для того щоб цей підхід знайшов застосування в Internet необхідно, щоб сервери забезпечували надійне і безпечне функціонування мобільних агентів. В умовах відсутності широко визнаних стандартів неможливо реалізувати жоден з засобів переміщення агентів між серверами.
Інтерфейсні агенти запропоновані Pattie Maes у 1994 році. Інтерфейсний агент має забезпечувати допомогу через контроль дій користувача, вивчати "short cuts" та пропонувати найкращі шляхи виконання задачі. Інтерфейсний агент повинен добре знати особливості середовища функціонування для того, щоб забезпечити адекватну підтримку. Для забезпечення персоналізованої допомоги інтерфейсний агент повинен безперервно моделювати свого користувача. Крім того, інтерфейсний агент повинен розуміти суть задач, які користувач намагається розв'язати. Інакше кажучи, агент повинен мати глибоку модель користувача. Таким чином, інтерфейсний агент повинен мати чотири моделі знань:
знання предметної області застосування;
модель користувача;
стратегії допомоги;
каталог типових проблем користувача, що можуть виникнути в цьому середовищі.
При створенні модулів знань інтерфейсного агенту виникає питання складності, а саме: якщо агент буде мати спрощену модель предметної області та задачі, то його призначення буде поставлено під питання, але якщо він матиме складну модель, то чи не перешкодить це її обробці та чи не стане така модель спрямована на занадто вузький круг задач? Зрозуміло, що необхідно знайти деякий компроміс.
Серед існуючих інтерфейсних агентів можна виділити наступні.
Фільтр новин USENET - система NEWT тренується на отриманій серії прикладів, що ілюструють статті, які користувач вибрав або не вибрав для читання. Агент після цього починає висловлювати свої припущення користувачу, і одержує відгуки на свої припущення. Мета агента NEWT - привернути увагу користувача до статей того типу, до якого користувач виявив стійкий інтерес. Схожі ідеї реалізовані в інтелектуальних помічниках адміністратора, що прогнозують дії, і виконують рутинні адміністративні процедури.
Softbot (Software robot) - інтелектуальний інтерфейсний агент, створений для взаємодії з широким спектром ресурсів мережі Internet. Цей агент забезпечує інтеграцію і інтерфейс з мережею Internet, динамічно вибирає засоби для виклику, а також їхню послідовність. Softbot має засоби для обробки неповноти на основі опитування всіх можливих джерел і тільки потім робить висновок про повноту / неповноту своїх знань. Також Softbot може обробляти двозначність в запиті користувача: він запитує додаткову інформацію від користувача або грунтується на своїх внутрішніх інформаційних ресурсах.
