
- •Що виносяться на державний іспит в 2014 р. (спеціалісти спеціальності «інформатика»)
- •1. Програмування, системне програмування
- •Системнепрограмування
- •1. Мови програмування та їх класифiкацiя.
- •2. Системнепрограмування
- •2. Типи даних, скалярні та структурованi типи. Оператори; оператор присвоєння, структурнi оператори. Засоби вводу-виводу.
- •3. Структуризація програм та даних. Підпрограми, функцiї.
- •4. Динамічні структури даних. Списки, стеки, черги. Дерева, бінарні дерева. Дерева пошуку.
- •5. Поняття про функцiональне програмування, структурне програмування, об'єктно-орiєнтоване програмування.
- •6. Інструментальні засоби розробки інформаційних технологій, case-технології
- •2. Системнепрограмування
- •7. Cучасні технології програмування та тенденції їх розвитку.
- •2. Системнепрограмування
- •8. Об’єктно-орієнтоване програмування. Мова Java.
- •2. Системнепрограмування
- •9. Поняття мовного процесора. Типи мовних процесорів. Основні фази мовного процесора.
- •2. Системнепрограмування
- •10. Скінченні автомати. Методика побудови лексичного аналізатора на основі скінченного автомата.
- •2. Системнепрограмування
- •11. Синтаксичний аналіз та породжувальні граматики. Виведення в граматиці, дерево виведення. Лівостороння та правостороння стратегії виведення.
- •2. Системнепрограмування
- •12. Ll(k)-граматики. Перевірка ll(1)-умови. Побудова ll(1)-таблиці для управління синтаксичним ll(1)-аналізатором.
- •2. Системнепрограмування
- •13. Методи денотацiйної та операційної семантики. Метод семантичних підпрограм. Атрибутний метод визначення семантики програм. Семантичний терм програми.
- •2. Системнепрограмування
- •14. Машинно-орієнтовані мови програмування. Асемблери. Структура асемблера, перегляди тексту програми та відповідні бази даних.
- •2. Інформаційні технології
- •1. Уніфікована мова моделювання uml. Діаграми прецедентів
- •2. Використання діаграм послідовностей та діаграм класів при проектуванні програмних систем.
- •3. Патерни проектування
- •Класифікації патернів:
- •4. Платформа .Net Framework.
- •5. Сервісно-орієнтована архітектура
- •6. Огляд технологій j2ee. Технологія Java rmi.
- •8. Патерн Model-View-Controller у Web-проектах.
- •9. Патерн (принцип) ioc&di та його підтримка у фреймворку Spring
- •10. Проблема валідації даних у Web-проектах. Підтримка ajax.
- •3. Інформаційні мережі
- •1. Інформаційна глобальна мережа internet (написано много, выбрать главное)
- •Internet надає такі основні види послуг:
- •2. Система доменних імен глобальної мережі internet.
- •3. Система електронної пошти глобальної мережі internet.
- •4. Системи інтерактивних комунікацій глобальноїмережі internet (на прикладі Skype, icq).
- •5. Системи електронних спільнот глобальної мережі internet (на прикладі Facebook, Twiter).
- •6. Поняття універсального вказівника ресурсу. Основні типи ресурсів.
- •7. Мережі tcp/ip.Стек протоколів tcp/ip: топологічні особливості, функції рівнів.
- •8. Поняття раутінгу в мережах tcp/ip. (аккуратно, перевод через гугл транслейт!!!)
- •9. Технології, що забезпечують відмовостійкість мереж tcp/ip. (ответ не очень)
- •10.Класифікація комп’ютерних мереж.
- •11. Системи захисту інформації в глобальній мережі internet (на прикладі pgp).
- •4. Математична логіка та теорія алгоритмів, теорія програмування
- •9. Основні поняття програмування, відношення між ними. Основні програмні поняття Розвиток основних понять програмування
- •Композиції
- •11. Методи подання синтаксису мов програмування.
- •4.8.1. Нормальні форми Бекуса–Наура
- •4.8.2. Модифіковані нормальні форми Бекуса–Наура
- •4.8.3. Синтаксичні діаграми
- •Визначення основних понять формальних мов
- •4.3. Операції над формальними мовами
- •13. Неперервні відображення.Теореми про найменшу нерухому точку (Кнастер-Тарський-Кліні); теорема про неперервність оператора нерухомої точки.
- •14. Методи формальної семантики мов програмування (композиційна, натуральна, денотаційна, аксіоматична).
- •5. Штучний інтелект
3. Структуризація програм та даних. Підпрограми, функцiї.
Підпрограма - частина програми, яка реалізує певний алгоритм і дозволяє звернення до неї з різних частин загальної (головної) програми. В термінах мов програмування: функції (С), процедури (Pascal), методи (в термінології об'єктно-орієнтованого програмування в мовах C++, Java, С# та ін.).
Підпрограма часто використовується для скорочення розмірів програм в тих задачах, в процесі розв'язання яких необхідно виконати декілька разів однаковий алгоритм при різних значеннях параметрів. Інструкції (оператори, команди), які реалізують відповідну підпрограму, записують один раз, а в необхідних місцях розміщують інструкцію виклику підпрограми.
Набір найвживаніших підпрограм утворює бібліотеку стандартних підпрограм.
В більшості мов програмування високого рівня, підпрограми називаються процедурами та функціями. В залежності від мови програмування, терміни «процедура» та «функція» можуть розрізнятися (як правило, процедурою називають підпрограму, що не повертає результату, тоді як функція має результат і може використовуватись як частина виразу) чи розглядатись як синоніми (зокрема, в мові C, де в початковому варіанті всі підпрограми могли повертати результат, їх здебільшого називають функціями). У об'єктно-орієнтованому програмуванні функції-члени класів називають методами.
4. Динамічні структури даних. Списки, стеки, черги. Дерева, бінарні дерева. Дерева пошуку.
Якщо до початку роботи з даними неможливо визначити, скільки пам'яті потрібно для їх зберігання, пам'ять слід розподіляти під час виконання програми по мірі необхідності окремими блоками. Блоки зв'язуються один з одним за допомогою покажчиків. Такий спосіб організації даних називається динамічною структурою даних, оскільки вона розміщується в динамічній пам'яті і її розмір змінюється під час виконання програми.
З динамічних структур в програмах найчастіше використовуються лінійні списки, стеки, черги і бінарні дерева. Вони розрізняються способами зв'язку окремих елементів і допустимими операціями. Динамічна структура, на відміну від масиву, може займати несуміжні ділянки оперативної пам'яті.
Динамічні структури широко застосовують і для більш ефективної роботи з даними, розмір яких відомий, особливо для вирішення завдань сортування.
Елемент будь динамічної структури складається з двох частин: інформаційної, для зберігання якої і створюється структура, і покажчиків, що забезпечують зв'язок елементів один з одним.
Лінійні списки
У лінійному списку кожний елемент пов'язаний з наступним і, можливо, з попереднім. У першому випадку список називається однозв'язний, у другому - двозв'язним. Якщо останній елемент зв'язати покажчиком з першим, вийде кільцевої список.
Кожен елемент списку містить ключ, що ідентифікує цей елемент. Ключ зазвичай буває або цілим числом, або рядком і є частиною поля даних. Як ключ в процесі роботи зі списком можуть виступати різні частини поля даних. Ключі різних елементів списку можуть збігатися.
Над списками можна виконувати такі операції:
початкове формування списку (створення першого елемента);
додавання елемента в кінець списку;
читання елемента із заданим ключем;
вставка елемента в задане місце списку (до або після елемента із заданим ключем);
видалення елемента із заданим ключем;
упорядкування списку по ключу.
Для роботи зі списком в програмі потрібно визначити покажчик на його початок. Щоб спростити додавання нових елементів в кінець списку, можна також завести покажчик на кінець списку.
Стеки
Стек є найпростішою динамічною структурою. Додавання елементів в стек і вибірка з нього виконуються з одного кінця, що називається вершиною стека. Інші операції зі стеком не визначені. При вибірці елемент виключається зі стека.
Кажуть, що стек реалізує принцип обслуговування LIFO (lastin - firstout, останнім прийшов - першим вийшов). До речі, сегмент стека названий так саме тому, що пам'ять під локальні змінні виділяється за принципом LIFO. Стеки широко застосовуються в системному програмному забезпеченні, компіляторах, в різних рекурсивних алгоритмах.
Черги
Черга - це динамічна структура даних, додавання елементів в яку виконується в один кінець, а вибірка - з іншого кінця. Інші операції з чергою не визначені. При вибірці елемент виключається з черги. Кажуть, що черга реалізує принцип обслуговування FIFO (firstin - firstout, першим прийшов - першим вийшов). У програмуванні черги застосовуються дуже широко - наприклад, при моделюванні, буферизованному введенні-виведенні або диспетчеризації завдань в операційній системі.
Бінарні дерева
Бінарне дерево - це динамічна структура даних, що складається з вузлів, кожен з яких містить крім даних не більше двох посилань на різні бінарні дерева. На кожен вузол є рівно одне посилання. Початковий вузол називається коренем дерева.
Вузол, що не має піддерев, називається листом. Вихідні вузли називаються предками, вхідні - нащадками. Висота дерева визначається кількістю рівнів, на яких розташовуються його вузли.
Дерево пошуку
Якщо дерево організовано таким чином, що для кожного вузла всі ключі його лівого піддерева менше ключа цього вузла, а всі ключі його правого піддерева - більше, воно називається деревом пошуку. Однакові ключі не допускаються. У дереві пошуку можна знайти елемент по ключу, рухаючись від кореня і переходячи на ліве або праве піддерево залежно від значення ключа в кожному вузлі. Такий пошук набагато ефективніше пошуку за списком, оскільки час пошуку визначається висотою дерева, а вона пропорційна двійковому логарифму кількості вузлів.
Дерево є рекурсивною структурою даних, оскільки кожне піддерево також є деревом. Дії з такими структурами краще всього описуються за допомогою рекурсивних алгоритмів.
Для бінарних дерев визначені операції:
включення вузла в дерево;
пошук по дереву;
читання елемента із заданим ключем;
обхід дерева;