факультет
інформатики
національного університету
«києво-могилянська академія»
головна новини кафедри навчання діяльність про нас
Ієрархічне програмування
Концепції сучасного програмування в рамках парадигм процедурно-орієнтованого програмування, абстрактних типів даних (об'єктне програмування) і ієрархічного програмування у їх розвитку і взаємозв'язку. Основу вивчення складають поняття типу, функції, в тому числі узагальненої , об'єкта і класу, в тому числі параметризованого. Проблеми розширення областей визначення функцій, специфікації класів, побудови ієрархії об'єктів і класів, зокрема поліморфізму, успадкування інтерфейсу і реалізації.
Веб-орієнтовані системи
Організація веб-орієнтованих інформаційних систем на основі клієнт-серверної архітектури. Мова серверних сценаріїв PHP. Шаблонізатор Smarty. Програмування на стороні клієнта: HTML, CSS, JavaScript, AJAX. Веб-застосування та бази даних (на прикладі MySQL). Виконання практичного проекту, спрямованого на побудову трирівневого веб-застосування.
Процедурне програмування
Мета курсу довести процедурно-орієнтовану парадигму, з вивчення якої починався Паскаль, до довершеності, необхідної для віртуозної розробки програмних систем з використанням впорядкованих за рівнями об’єктно-орієнтованих абстракцій з гнучкими інтерфейсами і повторно вживаними вхідними кодами.
Основи інтернет бізнесу
Специфіка ведення бізнесу в Інтернеті. Власний веб-проект як основа Інтернеті-бізнесу. Типові бізнес-моделі в Інтернеті. Просування веб-проектів: пошукова оптимізація та реклама. Використання соціальних мереж для ведення Інтернет-бізнесу. Основи SMM-маркетингу. Технологічні, організаційні та правові аспекти Інтернет-бізнесу. Вивчення курсу передбачає виконання та захист практичного проекту
Обробка зображень
Забезпечення якісної базової підготовки фахівців в області цифрової обробки зображень і суміжних областях, а саме: видавнича та поліграфічна галузі, мультимедійні технології, Web-дизайн, тощо. Студенти здобувають основні знання та навички роботи з різними типами зображень, фотографією, а також основи дизайну і роботи зі шрифтами. Результатом праці студентів стане низка художніх, композиційних і дизайнерських розробок (плакатів, листівок тощо), створених за всіма технологічними нормами та вимогами.
Об`єктно-орієнтоване програмування
Концепції сучасного програмування в рамках парадигм узагальненого програмування, абстрактних типів даних (об’єктне програмування) і ієрархічного (об’єктно-орієнтованого) програмування у їхньому розвитку і взаємозв’язку. В основі вивчення – поняття типу, функції, зокрема узагальненої, об’єкта і класу, зокрема параметризованого; проблеми довизначення функцій, специфікації класів, побудови ієрархії об’єктів і класів, зокрема поліморфізму, успадкування інтерфейсу і реалізації.
Технології мультимедіа
Сучасні програмні й технічні засоби створення, обробки, зберігання та передавання мультимедійних складових, а також розробка мультимедійних сценаріїв і створення комплексних мультимедійних застосувань. Студенти здобувають основні знання та навички роботи з графічними даними, відео, аудіо, анімацією, програмами створення мультимедійних додатків. Результатом роботи студентів стане власний мультимедійний проект.
Програмна інженерія
Нормативна дисципліна для спеціальності: Програмна інженерія
Програмування на основі .NET
Метою курсу є вивчення теоретичних основ та формування практичної бази сучасних технологій об'єктно-орієнтованого програмування на платформі Microsoft.NET. В курсі будуть розглянуті такі темі: Робота з файлами, серіалізація об'єктів, робота с XML, програмування в .NET з використанням SQL Server, ADO.NET. Технологія Language Integrated Queries (LINQ), Windows Forms, Windows Presentation Foundation, Silverlight, ASP.Net. Вступ в Windows Communication Foundation, вступ в Windows Workflow Foundation.
Практикум з об`єктно-орієнтованого програмування
Практикум об'єктно-орієнтованого програмування пропонується як вибірковий курс для студентів, які цікавляться засобами організації і визначення графічних інтерфейсів на основі об'єктно-орієнтованого підходу, виходячи з принципу відокремлення введення/виведення від логіки програми, вивчення якої складало предмет курсів процедурного і об'єктно-орієнтованого програмування. В практикумі вивчаються засоби організації графічних даних, методи відтворення графічних даних на екрані, класифікація графічних примітивів. Будуються ієрархії графічних класів. Проектується та реалізуються графічні інтерфейси користувача. Для реалізації графічних примітивів використовується бібліотека з відкритим кодом Qt("К'ют").
Методи з об`єктно-орієнтованого програмування
Мета курсу довести об'єктно-орієнтовану парадигму до довершеності, необхідної для віртуозної розробки програмних систем з використанням впорядкованих за рівнями об'єктно-орієнтованих абстракцій з гнучкими інтерфейсами і повторно вживаними вхідними кодами. Висхідною точкою курсу є вивчення структури об'єктної моделі програмного забезпечення, як статичної, так і динамічної, виходячи з якої визначається типова структура класу з урахуванням специфіки створення, копіювання, видалення об'єктів, методів доступу до об'єктів, зокрема засобами їх проксі. Значна увага приділяється концепціям інтелектуальних указників-маніпуляторів у їх різноманітті (в тому числі вкладених маніпуляторів) разом з методами підрахунку посилань на об'єкти та відкладеного копіювання. Вивчення функціональних об'єктів і класів функторів дозволяє зосередитися на методах інкапсуляції функцій. Досліджуються ієрархія і вкладення класів і об'єктів, зокрема спадкування інтерфейсів і налаштування реалізації. Вводяться поняття невіртуального стабільного інтерфейсу та нетермінальної абстракції. Досліджуються методи застосування поліморфних і, зокрема, чисто віртуальних функцій. Параметризовані класи і часткова спеціалізація шаблонів ілюструють методи проектування гнучких інтерфейсів та використання сучасних проектних взірців.
Системне програмування
Курс призначений для знайомства студентів з основними принципами і методами конструювання трансляторів з мов програмування, оволодіння основними методами і засобами програмної реалізації сучасних мов, виділення функцій і задач мовного процесування у інструментальних середовищах розробки програм. На практичних заняттях методи, що розглянуті на лекціях, будуть демонструватися на прикладах реалізації основних методів і алгоритмів компіляції та інтерпретації програм.
Електронні видання
Сучасні технічні та програмні засоби створення електронних видань, зокрема Desktop publishing, використання яких дає можливість підготувати видання будь-якого змісту як для якісного друку, так і для використання в електронному вигляді (в мережі Internet і на електронному носії). Результатом роботи студента стане власне видання, збережене в електронному вигляді з дотриманням усіх технологічних норм і вимог, для подальшого використання та розповсюдження.
Інтелектуальні системи
Основні підходи до побудови програмних систем, що мають певні риси штучного інтелекту і здатні розв'язувати задачі, які можна віднести до недостатньо формалізованих. Основні моделі подання знань; методи логічного виведення; евристичний пошук; ігрові задачі;; нейронні мережі; основні підходи до машинного навчання і пошуку закономірностей.
Розробка програмного забезпечення (груповий проект)
Курс присвячено викладенню принципів, моделей і методів, що використовуються в циклі розробки складних програмних продуктів. Вивчається повний цикл розробки програмних систем, починаючи з організації процесу конструювання та закінчуючи тестуванням і впровадженням. Розглядаються методи аналізу та проектування програмних систем, основи й моделі об'єктно-орієнтованого представлення програмних систем, а також моделі реалізації таких систем; структурне, функціональне й об'єктно-орієнтоване тестування програмного забезпечення; уніфікована мова моделювання (UML). Вивчається уніфікований процес розробки об'єктно-орієнтованих програмних систем і загальні керування програмним проектом. Курс супроводжується практичною реалізацією навичок, а принципи саме: розробкою навчальних програмних проектів невеликими групами студентів-розробників. Передбачені підтримка розподіленої групової розробки з боку Web-орієнтованих середовищ, зокрема систем управління версіями проекту, планування та документування процесу розробки, організація взаємодії і комунікації учасників, рецензування та презентація результатів розробки.
Тестування і підтримка якості програмного забезпечення
Надання базових знань для підготовки тестувальників програмного проекту. В курсі розглядаються такі теми: - основні поняття тестування: термінологія тестування, відмінності тестування і відладки, фази і технологія тестування, проблеми тестування; - критерії вибору тестів: структурні, функціональні, стохастичні, мутаційний, оцінки покриття проекту; - різновиди тестування: модульне, інтеграційне, системне, регресійне, автоматизація тестування, витрати тестування; - особливості процесу і технології індустріального тестування: планування тестування, підходи до розробки тестів, особливості ручної розробки і генерації тестів, автоматизація тестового циклу, документування тестування, огляди і метрики; - регресійне тестування: особливості і види регресійного тестування, методи відбору тестів, оцінка ефективності.
Дизайн і архітектура програмного забезпечення
В курсі вивчаються особливості процесу створення програмного продукту, в якому потребам, бажанням і обмеженням кінцевих користувачів приділяється велике увагу на кожній стадії процесу розробки. Орієнтована на користувача розробка може бути охарактеризована як багатоступеневий процес розв'язку задач, який вимагає, щоб розробники не тільки аналізували і передбачали і, ймовірно, як користувачі, використовували продукт, але також і перевірили достовірність їх припущень щодо поведінки користувача в реальних тестуваннях з фактичними користувачами. Таке тестування необхідне, оскільки для проектувальників продукту часто дуже важко інтуїтивно зрозуміти, хто є новими користувачами їх продукту, і на що може бути схожа крива навчання кожного користувача. Головна мета курсу - навчитись розробляти продукт так, як користувачі можуть, хочуть, або повинні його використовувати, замість того, щоб змусити користувачів змінити свою поведінку для пристосування до продукту.
Методи об`єктно-орієнтованого програмування
Сучасні методи розробки програмного забезпечення, здатного налаштовуватися на нові умови і вимоги, що виникають під час його експлуатації. Розробка обґрунтованої ієрархії класів і об'єктів, визначення методів класу і службових функцій, обґрунтування інтерфейсу та його розмежування з реалізацією. Важливим аспектом ієрархії слугує обґрунтування співвідношення між агрегацією і успадкуванням, зокрема розмежування успадкування інтерфейсу й успадкування реалізації. Віртуальні функції і різні методи реалізації поліморфізму. Типові патерни проектування та інші засоби підвищення надійності програмного коду. Вивчення курсу супроводжується розробкою навчальних програмних проектів.
Об`єктно-орієнтоване програмування
Концепції сучасного програмування в рамках парадигм процедурно-орієнтованого програмування, абстрактних типів даних (об'єктне програмування) і ієрархічного програмування у їх розвитку і взаємозв'язку. Основу вивчення складають поняття типу, функції, в тому числі узагальненої , об'єкта і класу, в тому числі параметризованого. Проблеми розширення областей визначення функцій, специфікації класів, побудови ієрархії об'єктів і класів, зокрема поліморфізму, успадкування інтерфейсу і реалізації.