Магістр комп'ютерних наук
Software Engineering
Рівень 1
Заголовок | ECTS / Години |
Основи HTML і CSS для дизайну користувацького інтерфейсу | 5 / 125 |
Цифровий дизайн для веб: принципи та застосування | 5 / 125 |
Основи JavaScript: від найпростішого до складних концепцій JavaScript Fundamentals: From Basics to Advanced Concepts | 5 / 125 |
Рівень 2
Рівень 3
Заголовок | ECTS / Години |
Foundations of Cloud Computing | 5 / 125 |
Програмування на Python: основи та передові методи Python Programming: Foundations and Best Practices | 5 / 125 |
Комплексна веб-розробка на Python FullStack Web Development with Python | 5 / 125 |
Кар’єрні стратегії та “м'які” навички для ІТ-фахівців Career Strategies and Soft Skills for IT Professionals | 5 / 125 |
Applied Computer Science: Capstone Project | 10 / 250 |
Опис: це практичний курс із розробки адаптивного, сучасного та легкого інтерфейсу користувача для браузерних та мобільних веб додаткiв із використанням HTML5 та CSS. Протягом курсу вивчаємо інформацію про роботу веб-браузерів, мобільних застосунків і веб-серверів. Потім розглянемо все, що стосується використання HTML5 для створення веб-сторінок. Розпочемо з простих веб-сторінок, потім перейдемо до складніших макетів і функцій HTML. Після цього ми вивчимо таблиці стилів на основі CSS, інтерпретацію браузерами файлів CSS для відтворення веб-сторінок. Знову ж, аби вивчити внутрішні особливості CSS, ми використаємо декілька прикладів реальних веб-сторінок, вивчимо популярні передові методи написання адаптивного коду HTML і CSS для створення кроссбраузерних сайтів. Також ми вивчимо семантичну верстку, яка є важливою складовою розробки веб-додатків з точки зору доступності та SEO. Студенти дізнаються про різні типи HTML-тегів, якi використовуються для опису структури та змісту веб-сторінки, що дозволяє браузерам та іншим інтерпретаторам правильно інтерпретувати контент та поліпшує його читабельність для людей та пошукових роботів.
Основні результати навчання:
Опис: цей курс із веб-дизайну призначено для надання студентам навичок та знань, необхідних для створення привабливих, функціональних і ефективних сайтів, включаючи лендинги та сайти компаній. Курс охоплюватиме низку тем, у тому числі основи веб-дизайну, наприклад пошук референсів, дослідження конкурентів, базові дослідження, вайрфрейми, прототипування, сітки, композицію, типографіку, колір, растрову та векторну графіку, патерни інтерфейсів користувача та адаптацію.
Студенти вивчатимуть основні закони UX та основні патерни поведінки користувачів на сайті. Студенти ознайомляться з такими інструментами, як Figma, FigJam, Protopie, які використовуватимуться для створення вайрфреймів, макетів, прототипів. Курс також включатиме підготовку кейсу до публікації на Behance, що надасть можливість продемонструвати роботодавцям отримані навички.
Основні результати навчання:
Опис: це практичний курс, який на прикладах охоплює всі тонкощі JavaScript від основ до складних концепцій. Ми почнемо з базових концепцій програмування, як-от: змінні, оператори керування, цикли, класи та об’єкти. Студенти дізнаються про основні структури даних, такі як рядки, масиви й дати, а також навчаться налагоджувати код та вміло коригувати помилки в ньому. Ми вивчимо популярні посібники зі стилю та ефективні способи кодування, для створення читабельного високопродуктивного коду, який можна використовувати багаторазово. Потім, на прикладі движка V8 дізнаємося, як у веб-браузерах виконується код JavaScript. Ми також розглянемо такі поняття, як JIT-компіляція, що допомагає прискорити роботу коду JS. Далі ми розглянемо дещо складніші концепції, як-от DOM, асинхронні функції, веб-API та Fetch, які дуже широко використовуються в розробці сучасних користувацьких інтерфейсів. Ми дізнаємося, як за допомогою ElectronJS оптимізувати код JavaScript, щоб він виконувався як у мобільних програмах і браузерах, так і у браузерах та програмах для настільних ПК. Більша частина цього курсу супроводжуватиметься реальними прикладами та вивченням коду JS популярних веб-сайтів і бібліотек із відкритим кодом.
Основні результати навчання:
Опис: цей поглиблений курс JavaScript ґрунтується на базових концепціях, розглянутих у курсі JavaScript, з акцентом на складніших концепціях і передових практиках для створення сучасних, продуктивних веб-застосунків. Завдяки практиці з реальними прикладами студенти дізнаються як оптимізувати код JavaScript для мобільних пристроїв і настільних ПК, працювати з DOM і Web API, а також взаємодіяти із серверними API.
Курс починається з огляду методів розповсюдження та оптимізації подій, включаючи спливання, делегування та регулювання подій. Студенти також дізнаються про відкладене завантаження зображень, використання бібліотек через CDN та інші методи оптимізації продуктивності. Далі в курсі йдеться про інфраструктуру проєктів і веб-сховища, включаючи роботу з Node.js, керування пакетами npm, модульність коду та синтаксис для модулів ECMAScript. Студенти дізнаються про Webpack, Babel та інший інструментарій для транспіляції та об'єднання коду, а також про форматування коду та передові методики перевірки якості коду.
Курс також охопить асинхронність і обробку дат у JavaScript, особливу увагу буде приділено Promise API, синтаксису async/await і циклам подій. Студенти дізнаються, як взаємодіяти із серверними API, включаючи роботу з REST API, методами HTTP, заголовками та кодами статусів відповідей. Також студенти дізнаються про техніки пагінації, включаючи кнопки "Завантажити більше" та нескінченну прокрутку. На завершення, курс охопить CRUD-операції з асинхронними функціями, включаючи роботу з приватними API та передові практики обробки помилок.
Основні результати навчання:
Опис: кожна організація створює продукти з метою вирішення проблем своїх клієнтів. Продукт-менеджери — критично важлива частина організації. Вони забезпечують безперервне спостереження за потребами клієнтів і ринковими тенденціями та допомагають перетворювати їх на привабливі рішення, які допомагають бізнесу досягти бажаних результатів.
У цьому курсі студенти отримають фундаментальне розуміння практики продукт-менеджменту.
Це надасть вичерпне уявлення про повний життєвий цикл управління продуктом.
Основні результати навчання:
Опис: цей курс ґрунтується на вступному курсі JavaScript і знайомить студентів з популярними та сучасними фреймворками для створення інтерфейсу. Ми зосередимось на трьох надзвичайно розповсюджених бібліотеках/фреймворках: React.js, jQuery та AngularJS. Розпочнемо з React.js - однієї з найбільш популярних та вдосконалених серед цих трьох. Студенти дізнаються про різні компоненти і потоки даних, та за допомогою React.js навчаться створювати реальні інтерфейси. Це буде досягнуто за допомогою численних практичних прикладів коду та його детального покрокового розбору з нуля.
Основні результати навчання:
Опис: це основний та фундаментальний курс, метою якого є навчити студентів моделювати, проєктувати, впроваджувати та надсилати запити до систем реляційних баз даних для реальних потреб зберігання та обробки даних. Студенти почнуть із діаграмних інструментів (ER-модель), для відображення реальної проблеми зберігання даних у вигляді сутностей, зв’язків і ключів. Після цього вони навчаться перетворювати ER-модель на реляційну модель з таблицями. Потім буде представлено SQL, як фактичний інструмент створення, змінювання, додавання, видалення, запитування та маніпулювання даними в реляційних базах даних. Зважаючи на популярність SQL, курс приділяє значну увагу формуванню вміння писати оптимізовані та складні запити для різноманітних задач маніпулювання даними. Модуль знайомить студентів з різними реальними прикладами SQL, щоб сформувати міцні практичні знання. Далі студенти отримають розуміння різноманітних компромісів у сучасних реляційних базах даних, наприклад, між обсягом пам’яті та затримкою. Проєктування баз даних потребує чіткого розуміння звичайних форм для мінімізації дублювання даних, індексування для прискорення та зведення таблиць, аби уникнути складних об’єднань у середовищах із низькою затримкою. Ці реальні стратегії проєктування баз даних обговорюються на практичних прикладах із різних областей. Більша частина цього курсу використовує базу даних MySQL з відкритим кодом і хмарні реляційні бази даних (наприклад, Amazon RDS).
Основні результати навчання:
Опис: це базовий курс зі створення серверних (back-end) застосунків із використанням популярних середовищ виконання JavaScript, як-от Node.js. Студенти вивчатимуть подійно-орієнтоване програмування для створення масштабованого бекенду для веб-застосунків. Протягом модуля вивчаються різні аспекти Node.js, як-от: налаштування, менеджер пакетів, клієнт-серверне програмування та підключення до різних баз даних і REST API. Більшість із цих концепцій будуть розглянуті на практиці з реальними прикладами та застосунками, створеними з нуля за допомогою Node.js на серверах Linux. Цей курс також містить введення до адміністрування серверів Linux і створення сценаріїв з особливим акцентом на веб-розробку та мережі. Студенти зможуть навчитися використовувати інструменти моніторингу Linux (наприклад, Monit) для відстеження стану серверів. Модуль також знайомить з Express.js — популярним легким фреймворком для застосунків на Node.js. Враховуючи практичний характер цього курсу, він включатиме створення реальних бекендів для веб-сайтів за допомогою завдань/проєктів для електронної комерції, онлайн-навчання та/або обміну фотографіями.
Основні результати навчання:
Опис: Цей курс покликаний забезпечити комплексне розуміння забезпечення якості (QA) при розробці програмного забезпечення. Курс охоплює фундаментальні принципи й різні типи тестування на різних рівнях розробки програмного забезпечення. Студенти також дізнаються про різні методи тестування, що використовуються в QA, такі як чорний і білий ящик та тестування на основі досвіду.
Курс також познайомить студентів з різними інструментами та методологіями тестування, які широко використовуються в індустрії, включаючи інструменти управління тестами, бази даних SQL, Postman та мобільне тестування. Студенти дізнаються про веб-технології та клієнт-серверну архітектуру, а також про фронтенд та бекенд розробку. Курс охоплюватиме основи HTML/CSS, сучасну архітектуру застосунків та роботу з інструментами командного рядка, такими як CI/CD та Git.
Протягом курсу студенти отримають ґрунтовне розуміння контролю якості та його ролі в розробці програмного забезпечення. Вони дізнаються, як розробляти тестову документацію та отримають практичний досвід впровадження різних стратегій тестування. Вони також навчаться аналізувати та критикувати різні методології контролю якості та пропонувати відповідні рішення для проблем, що змінюються, та складних проблем у контексті структур даних. Студенти зможуть застосовувати розуміння веб-технологій і сучасної архітектури застосунків для проєктування та тестування веб-застосунків, а також отримають необхідні навички для продовження кар'єри у сфері розробки програмного забезпечення чи контролю якості.
Основні результати навчання:
Опис: дизайн користувацького досвіду та користувацького інтерфейсу (UX/UI) — це розуміння потреб і уподобань користувача та створення цифрових продуктів, які відповідають цим потребам. Протягом цього курсу студенти ознайомляться з основними навичками та інструментами, необхідними для розробки ефективного користувацького інтерфейсу та досвіду.
Студенти дізнаються про процес дизайн-мислення, персоналії та потоки користувачів, картування подорожі клієнта та візуалізацію даних. Також вони дізнаються про важливість співпраці між дизайнерами та розробниками, а також про те, як тестувати та ітерувати дизайн.
Курс охоплюватиме основні теми, такі як Figma Pro, створення дизайн-систем, mobile-first дизайн, смарт-анімація та мікротексти. Студенти ознайомляться з процесом створення дизайну від ідеї до створення прототипу, тестування та вдосконалення, зрозуміють як працювати ітераціями. Курс включає розуміння того, що таке UX-тестування та які є його види, а також як працювати з аналітикою.
Наприкінці курсу студенти матимуть чітке розуміння того, як створювати цифрові продукти, які є естетично привабливими та зручними для користувача.
Основні результати навчання:
Опис: Розробка мобільних застосунків - це сфера, що стрімко розвивається і вимагає глибокого розуміння потреб користувачів, технологій та принципів UX-дизайну. Цей курс має на меті надати студентам поглиблене розуміння різних аспектів, пов'язаних з проєктуванням та розробкою крос-платформних мобільних застосунків з використанням React Native. Курс охоплює широкий спектр тем, включаючи архітектуру React Native, компоненти інтерфейсу користувача, навігацію, управління даними, залучення користувачів, анімацію та оптимізацію магазинів застосунків .
Студенти дізнаються про унікальні особливості дизайну мобільних застосунків, типи застосунків та технології, які використовуються в цій галузі. Курс підкреслює важливість крос-платформної сумісності, гарантуючи, що створені мобільні застосунки можуть безперешкодно працювати на обох платформах - iOS та Android. Курс також охоплює знайомство з ключовими патернами дизайну мобільних застосунків, залучення користувачів, анімацію та підготовку застосунку до публікації.
Протягом курсу студенти матимуть можливість працювати над реальними проєктами та завданнями, що дозволить їм застосувати отримані знання на практиці. Вони дізнаються, як аналізувати та оцінювати різні типи мобільних застосунків та технологій, що використовуються в дизайні мобільних застосунків, а також як застосовувати принципи та патерни дизайну для створення інтерфейсів мобільних застосунків, які будуть зручними та привабливими для користувачів.
Крім того, курс охоплює такі важливі теми, як процес подання застосунків до магазинів застосунків та оптимізація продуктивності застосунків, що дозволить студентам підготувати свої мобільні застосунки до публікації.
Основні результати навчання:
Опис: це базовий і обов’язковий курс, який має на меті сформувати у студентів вміння застосовувати різні методи алгоритмічного проєктування для забезпечення оптимального розв'язування обчислювальних задач. Цей курс починається з аналізу часової та просторової складності алгоритмів типу «розділяй і володарюй» з використанням методів на основі рекурсивних дерев та майстер-методу. Студенти також дізнаються про аналіз складності амортизованого часу та простору для рандомізованих/імовірнісних алгоритмів. Різні стратегії алгоритмічного проєктування будуть представлені на реальних прикладах і задачах. Студенти дізнаються, коли, де та як оптимально використовувати алгоритми типу «розділяй і володарюй», динамічне програмування, стратегії Жадібність, Зворотне відстеження та Рандомізація з прикладами. Модуль використовує різні практичні приклади маніпуляції масивами, сортування, пошуку, маніпуляцій рядками, обходу дерев і графів, пошуку шляхів у графах, дерев, що зв'язують, тощо, для представлення наведених вище алгоритмічних стратегій у дії. Студенти реалізовуватимуть багато з наведених вище методів алгоритмічного проєктування з нуля в межах завдань. Протягом модуля студенти також ознайомляться з тим, яким чином деякі з цих популярних алгоритмів доступні в популярних бібліотеках на різних мовах програмування.
Основні результати навчання:
Опис: це курс, зосереджений як на архітектурному проєктуванні, так і на практичному вивченні найбільш використовуваних хмарних служб. Протягом модуля широко використовуються веб-сервіси Amazon (AWS), щоб показати реальні приклади коду різних хмарних служб. Курс також охоплює основні концепції та архітектури незалежно від платформи, щоб студенти могли легко перенести ці знання на інші хмарні платформи (наприклад, Azure, GCP тощо). Модуль починається з віртуалізації та створення й налаштування віртуалізованих обчислювальних екземплярів. Студенти також дізнаються, як автоматично масштабувати програми за допомогою засобів балансування навантаження та створювати відмовостійкі програми в територіально розподіленій хмарі. Оскільки реляційні бази даних широко використовуються на більшості підприємств, студенти дізнаються, як провести міграцію та масштабувати (як вертикально, так і горизонтально) ці бази даних у хмарі, забезпечуючи безпеку корпоративного рівня. Віртуальні приватні хмари дозволяють нам створити логічно ізольовану віртуальну мережу обчислювальних ресурсів. Студенти дізнаються як налаштовувати VPC за допомогою віртуалізованих обчислювальних серверів на AWS. Курс також охоплює основи роботи в мережі під час налаштування VPC. Студенти дізнаються про архітектуру та практичні аспекти розподіленого сховища об’єктів і про те, як це забезпечує низьку затримку та високу доступність зберігання даних у хмарі.
Основні результати навчання:
Опис: цей курс надає практичне та детальне розуміння популярних парадигм програмування та типів зберігання даних. Студенти, які пройдуть цей курс, зможуть формулювати та розв’язувати задачі з програмування. Курс починається з основ про функції, різні вбудовані функції і способи написання коду функцій, визначених користувачем. Потім студенти дізнаються про різні типи сховищ даних, а також про списки та різні маніпуляцій зі списками, такі як розбиття списку на частини, а також ознайомляться з прикладами 2D-списків.
Вивчаючи створення функцій, студенти повинні зрозуміти як зберігати різні результати та вхідні дані за допомогою різних типів даних. Після вступу та обговорення списків студенти ознайомляться з наборами, кортежами, словниками та рядками.
Студенти будуть добре підготовлені до застосування цих концепцій та створення алгоритмів і програмного забезпечення, використовуючи знання, отримані протягом курсу.
Основні результати навчання:
Опис: розширене програмування на Python базується на вступних курсах з програмування, щоб проілюструвати концепції об’єктно-орієнтованого програмування, дизайн бази даних на Python і основи машинного навчання з бібліотеками Python. Студенти навчаться розв'язувати проблеми на Python, розробляти шаблони проєктування на Python, розробляти інтернет-застосунки за допомогою Python і співпрацювати з іншими студентами для реалізації проєктів. У курсі викладаються розширені функції, такі як декоратори та генератори, а також детально вивчається середовище розробки Python.
Цей курс призначений для підготовки розробників початкового рівня.
Основні результати навчання:
Опис: мета цього курсу — надати ІТ-фахівцям навички спілкування та кар’єрні стратегії, необхідні для досягнення успіху в індустрії технологій. Курс заснований на виконанні проєктів і охоплює низку тем, як-от комунікативні навички, командна робота, тайм-менеджмент, лідерство, нетворкінг і розвиток кар'єри.
Курс охоплює весь життєвий цикл технологічних проєктів, від збору вимог до поставки й обслуговування. Студенти навчаться ефективно спілкуватися із зацікавленими сторонами, ефективно керувати своїм часом, керувати командою та ефективно співпрацювати в командному середовищі.
Курс також охоплює такі аспекти розвитку кар'єри, як спілкування та побудова професійних стосунків, створення особистого бренду та розробка кар'єрного плану. Студенти дізнаються, як визначити свої сильні та слабкі сторони та як використовувати навички та досвід для розвитку кар’єри в індустрії технологій.
Основні результати навчання:
Опис: це проєктний курс, метою якого є формування необхідних навичок для створення веб-систем програмного забезпечення. Курс охоплює весь життєвий цикл проєктів створення програмного забезпечення, від збору вимог і визначення об'ємів робіт із документації продукту до проєктування архітектури системи та поставки й обслуговування системи програмного забезпечення.
Курс охоплює як користувацький інтерфейс, тобто створення інтерфейсів на основі веб-браузера за допомогою веб-інфраструктур розробки, так і створення серверної частини, тобто сервера, на якому працює API для обробки інформації інтерфейсу, та який працює на SQL або подібній системі керування базами даних для зберігання інформації.
Протягом курсу буде викладено всі аспекти реалізації проєктів створення програмного забезпечення, включаючи безпеку, автентифікацію та авторизацію користувачів, моніторинг і аналітику, а також підтримку проєкту. Курс також охоплює аспекти підтримки проєктів, як-от: використання системи керування версіями, налаштування безперервної інтеграції, конвеєрів розгортання та засобів відстеження помилок.
Основні результати навчання: