Матеріали лекцій по курсу ООП

Теми бакалаврських та магістерських робіт

2015-2016 навчальний рік

Бакалаври (4):

Заміщення реляційних баз даних сховищами триплетів в програмах інженерних розрахунків.
Дослідити переваги та недоліки RDF storage над реляційними СУБД в якості системи збереження даних для прикладного програмного забезпечення, зокрема, орієнтованого на виконання інженерних обчислень.

RDF-бібліотека наукових публікацій
База знань, що містить як бібліометричні дані, так і дані по змісту публікації.
Це уможливлює “інтелектуальний пошук” потрібних даних.

Алгоритми логічного виведення фактів в OWL-онтологіях
Дослідження найбільш ефективних алгоритмів вилучення нових фактів з онтологій баз знань. Важливий елемент побудови баз знань та додатків на їх основі.

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

Інтерактивна візуалізація даних наукових та інженерних розрахунків у Веб
Дослідити можливості існуючих бібліотек візуалізації даних (зокрема, D3.js) для їх інтеграції в розподілені системи інженерних та наукових розрахунків.

Магістри (2):

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

Агентно-орієнтований підхід до пошуку і оркестрування REST-сервісів в розподілених системах аналізу даних
Аналіз сучасних засобів побудови потоків робіт в СОА, побудова системи автоматизованого підбору та оркестрування веб-сервісів для вирішення складних задач аналізу даних з використанням агентно-орієнтованого підходу.

Нереляційні бази даних у сучасних інженерних веб-додатках
Дослідження існуючих варіацій нереляційних (“No SQL”) баз даних та їх застосування у веб-орієнтованих середовищах для інженерії.

2014-2015 навчальний рік

Семантичні веб-додатки для інженерії (бак. Яременко В.)
Аналіз сучасних засобів розробки, дослідження методів побудови семантичних веб-додатків, побудова семантичних веб-додатків для інженерних та наукових застосувань.

Композитні веб-додатки в наукових дослідженнях (маг. Вініченко А.)
Аналіз сучасних засобів розробки, дослідження методів побудови композитних (mashup) веб-додатків, побудова композитних веб-додатків для інженерних та наукових застосувань.

Візуалізація запитів до ресурсів Linked Open Data (бак. Королевський Г.)
Дослідження способів побудови розподілених систем на основі принципу пов’язаних даних (Linked Data), а також шляхів візуалізації результатів пошукових запитів для ефективної роботи користувачів.

Література для вивчення C++ та ООП

Рекомендована література для вивчення C++:

  • Роберт Лафоре. Объектно-ориентированное программирование в C++
  • Харви М. Дейтел, Пол Дж. Дейтел. Как программировать на C++
  • Джесс Либерти. Освой самостоятельно С++ за 21 день. учебн. пос.
  • Герберт Шилдт. C++ Руководство для начинающих
  • Эл Стивенс. Самоучитель по C++

Література для поглибленого вивчення C++ та ООП:

  • Чернетка стандарту C++ (версія №3337 від 16.01.2012)
  • Роберт Седжвик. Алгоритмы на C++. Фундаментальные алгоритмы и структуры данных
  • Уильям Топп, Уильям Форд. Структуры данных в C++
  • Бьерн Страуструп. Язык программирования C++. Спец.изд.
  • Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++
  • Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес. Приемы объектно-ориентированного проектирования. Паттерны проектирования
  • Скотт Мейерс. Эффективное использование C++
  • Скотт Мейерс. Эффективное использование STL
  • Герб Саттер. Решение сложных задач на С++
  • Герб Саттер. Новые сложные задачи на С++
  • Анрей Александреску, Герб Саттер. Стандарты программирования на С++
  • Анрей Александреску. Современное проектирование на С++

Безкоштовні редактори UML-діаграм

Деякі засоби, варті уваги:

Теми робіт студентів по курсу ООП

Теми та орієнтовний зміст робіт на I сем. 2015-2016 н.р.

Не більше 1 людини на тему в 1 групі. Інформація щодо закріплених тем оновлюється раз на 1-2 доби. Велике прохання запити на перелік бажаних трьох тем у порядку пріоритету надсилати не на пошту, а через Issue Tracker у Bitbucket (див. інструкцію)

Оновлено 25.11.15 09:00

Редактор блок-схем. Створення, редагування, збереження блок-схем, пошук елементів на схемі (ДА-41 Когут, ДА-42 Худяков).

Редактор UML-діаграм класів. Створення, редагування, збереження UML-діаграм класів, можливість генерації “заготовок коду” (ДА-42 Приставський).

Редактор електричних схем.  Створення, редагування, збереження схем електричних кіл, можливість генерації опису на мові SPICE.

Редактор мереж Петрі.  Створення, редагування, збереження мереж Петрі, можливість їх покрокового моделювання (ДА-41 Кулик).

Редактор топологій комп’ютерних мереж.  Створення, редагування, збереження топологій комп’ютерних мереж (ДА-41 Степаніщева).

Редактор діаграм типу Mind map.  Створення, редагування, збереження діаграм (ДА-41 Рейфман).

Редактор діаграм.  Створення, редагування, збереження гістограм різних типів, побудованих на основі масиву вхідних даних (ДА-41 Грицай, ДА-42 Рудий).

Редактор нотного запису.  Створення, редагування, збереження нотних записів музичних композицій (ДА-41 Бондар, ДА-42 Пархоменко).

Редактор карт.  Створення, редагування, збереження багатошарових карт місцевості (ДА-41 Левочко).

Редактор планів приміщень.  Створення, редагування, збереження багатошарових ескізів планування приміщень (ДА-41 Кривицький).

Програма пошуку найкоротшого маршруту.  Створення, редагування, збереження схеми доріг різної якості та розрахунок найкоротшого маршруту по ним (ДА-41 Чапалюк, ДА-42 Герасименко).

Редактор формул.  Створення, редагування, збереження математичних формул (ДА-41 Королюк, ДА-42 Голуб).

Редактор веб-сторінок.  Створення, редагування, збереження простих HTML-сторінок з текстом, заголовками, малюнками (ДА-41 Яковчук, ДА-42 Панасюк).

Редактор розкладу занять.  Створення, редагування, збереження розкладу занять, пошук інформації, генерація таблиці розкладу у форматі HTML (ДА-41 Касьянчук, ДА-42 Літовко).

Органайзер Створення, редагування, збереження записів про події та заходи: час, місце, анотація, важливість, категорія, результат, пошук інформації, генерація табличного представлення у форматі HTML (ДА-41 Кулаковська, ДА-42 Кулівник).

Бібліотека публікацій.  Створення, редагування, збереження, пошук інформації про обрані наукові публікації, генерація таблиці у форматі HTML (ДА-41 Ковальчук, ДА-42 Ель Абдулла).

Галерея зображень.  Створення, редагування, збереження, пошук інформації про обрані зображення та анімовані послідовності зображень (ДА-41 Ліченко, ДА-42 Григоренко).

Довідник контактів.  Створення, редагування, збереження, пошук контактів (ДА-41 Галета, ДА-42 Кравчук).

Програма тестування знань.  Створення, редагування, збереження, виконання тестів різних типів (ДА-41 Єрошенко, ДА-42 Будьонний).

Ігрова програма “Морський бій”.  Гра проти людини або комп’ютера (ДА-41 Муратов, ДА-42 Балан).

Ігрова програма “Змійка”.  Гра проти комп’ютера. Ігрові об’єкти різних типів (ДА-41 Єременко, ДА-42 Хмарська).

Ігрова програма “Тетріс”.  Гра проти комп’ютера. Ігрові об’єкти різних типів (ДА-41 Пивоваров, ДА-42 Крупій).

Ігрова програма “Шахи”.  Гра проти людини з дотриманням всіх правил (ДА-41 Тарасевич, ДА-42 Шпрінгер).

Ігрова програма “Більярд”.  Гра проти людини. Кулі різних типів (ДА-41 Кремпоха, ДА-42 Бернацький).

Ігрова програма “Пакмен”.  Гра проти комп’ютера. Ігрові об’єкти (монстри, іжа) різних типів (ДА-41 Клещ, ДА-42 Стогнієнко).

Ігрова програма “Сапер”.  Гра проти комп’ютера. Ігрові об’єкти (міни, бонуси) різних типів (ДА-41 Куб’юк, ДА-42 Прощенко).

Ігрова програма “Балістика”.  Артилерійська “перестрілка”. Гра проти комп’ютера або людини. Ігрові об’єкти (зброя, перешкоди) різних типів (ДА-41 Бєлан).

Ігрова програма “Гелікоптери”.  Облетіти перешкоди та уразити супротивника. Гра проти комп’ютера або людини. Ігрові об’єкти (ветольоти, перешкоди) різних типів (ДА-41 Філімонов, ДА-42 Паляничко).

Ігрова програма-симулятор “Життя”.  Гра “Life” – клітинковий автомат. Ігрові об’єкти (клітинки) різних типів (ДА-41 Краштан, ДА-42 Шевчук).

Ігрова програма-симулятор “Екосистема”.  На ігровій карті переміщуються та взаємодіють хижаки та жертви різних типів (ДА-41 Бахмач, ДА-42 Рябчинський).


Короткий зміст завдань на лабораторні роботи та курсову роботу в рамках обраної теми

Лабораторна робота №1. Клас, його будова

Розробити та затвердити вимоги до програми у викладача. Скласти попередній перелік сутностей системи. Розробити інтерфейс та протестувати (введення команд з консолі, виведення реакції на команди) інтерфейс (7-10 методів) одного з головних класів програми.

Лабораторна робота №2. Проектування класів програмної логіки

Розробити ієрархію основних класів програмної логіки (орієнтовно 5-7 класів). Пов’язати їх з головним класом програми. Розробити розроблену систему класів так, щоб вона містила відношення агрегації або композиції, а також наслідування (скласти UML-діаграму класів). Рішення щодо поєднання класів ієрархічними відношеннями мають бути обгрунтовані. Реалізувати поліморфну поведінку за допомогою механізму віртуальних функцій. Продемонструвати функціонування об’єктів за допомогою тестового коду. Реалізація окремих методів класів логіки може бути неповною.

Лабораторна робота №3. Розширення класів програмної логіки

Шляхом доцільного застосування шаблонів проектування (design patterns) розширити функціонал програми (напр., для реалізації збереження даних). Завершити реалізацію класів логіки програми, продемонструвати повне покриття вимог завдання за допомогою тестового коду.

Курсова робота. Розробка програми з графічним інтерфейсом користувача.

Розробити графічний інтерфейс користувача (бібліотека Qt) для керування розробленою в рамках лабораторних робіт логікою програми. Зміни в існуючій ієрархії класів та вже розроблених реалізаціях методів не дозволяються без обгрунтованих підстав.