Кросплатформенне програмування (курсова робота)

Спеціальність: Прикладна математика та інформатика
Код дисципліни: 6.113.02.E.064
Кількість кредитів: 2.00
Кафедра: Прикладна математика
Лектор: К.ф.-м.н., доцент. Сеник Андрій Петрович
Семестр: 6 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою вивчення навчальної дисципліни «Кросплатформне програмування» є оволодіння знаннями основних положень та парадигм кросплатформних технологій, платформ та засобів створення кросплатформного програмного забезпечення, а також набуття умінь та навичок розробки кросплатформного програмного забезпечення, його відлагодження та розгортання. Основними завданнями вивчення дисципліни «Кросплатформне програмування» є отримання теоретичних знань щодо принципів реалізації кросплатформної моделі програмного забезпечення, технологій його створення, інструметальних засобів та бібліотек, що забезпечують створення кросплатформного програмного забезпечення, опанування практичних методів створення програмного забезпечення.
Завдання: – виробити навички створення кросплатформного програмного забезпечення; – ознайомитися з інструментальними засобами для створення та відлагодження кросплатформного програмного забезпечення; – набути навички використання бібліотек кросплатформного програмування; – навчитися розробці класів та імплементації інтерфейсів; – набути навички реалізації багатопотокового програмного забезпечення; – набути навички створення програмного забезпечення для мобільних пристроїв; – набути навички створення та розгортання серверного програмного забезпечення
Результати навчання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: • загальні компетентності: ЗК2 – знання та розуміння предметної області та розуміння професійної діяльності. ЗК5 - навички використання інформаційних і комунікаційних технологій. ЗК6.- здатність вчитися і оволодівати сучасними знаннями. ЗК7 - здатність до пошуку, оброблення та аналізу інформації з різних джерел. • фахові компетентності: ФК1 – здатність використовувати знання і розуміння наукових фактів, концепцій, теорій, принципів і методів для проектування та застосування. ФК5 – здатність застосовувати відповідні математичні, наукові й технічні методи, сучасні інформаційні технології і комп'ютерне програмне забезпечення, навички роботи з комп'ютерними мережами, базами даних та Інтернет-ресурсами для вирішення інженерних задач.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Алгоритми та програмування. Частина 1 Алгоритми та програмування. Частина 2
Короткий зміст навчальної програми: Кросплатформеність – здатність програмного забезпечення працювати більш, ніж на одній апаратній платформі і (або) операційній системі. Забезпечується завдяки використанню високорівневих мов програмування, середовищ розробки і виконання, що підтримують умовну компіляцію, компоновку і виконання коду для різних платформ. Типовим прикладом є програмне забезпечення, призначене для роботи в операційних системах Linux і Windows одночасно. Здійснюється реалізацією одних і тих же функцій для кожної операційної системи окремо. Кросплатформеними можна назвати більшість сучасних високорівневих мов програмування. Саме, C, С ++, Java – кросплатформені мови на рівні компіляції, тобто для цих мов є компілятори під різні платформи. Це дозволяє – при належній якості коду – не переписувати основний двигун програми, змінюються лише особливі системозалежні частини. Не менш важливі для платформ є стандартизовані бібліотеки середовища виконання. Зокрема, стандартом стала бібліотека мови Сі. З великих кроссплатформенних бібліотек – Qt, GTK +, FLTK, STL, Boost, OpenGL, SDL, OpenAL, OpenCL. Одним з останніх прикладів кросплатформених систем є новий реліз .NET Core. Він працює на Windows, OS X і кількох дистрибутивах Linux. Він також підтримує різні архітектури процесора.
Опис: Розділ 1. Платформна незалежність програмного забезпечення 1 Принципи та технології забезпечення кросплатформності програмного забезпечення. Методи забезпечення платформної незалежності. Класифікація методів та засобів забезпечення кросплатформності ПЗ. 2 Технології віртуалізації середовища виконання програмного забезпечення. Інструментальні засоби створення кросплатформного програмного забезпечення. Мови програмування для платформонезалежного ПЗ. 3 Реалізація платформної незалежності на рівні компілятору. Реалізація платформної незалежності на рівні бібліотек. Реалізація платформної незалежності на рівні систем виконання. Мультиплатформність алгоритмів. Розділ 2. Основи технологій кросплатформного програмування на мові Java. 4 Основи програмування на мові Java. Реалізація класів та інтерфейсів. Конструктори. Перевантаження методів та конструкторів. 5 Динамічна диспетчеризація методів. Модифікатори доступу. Вкладені та внутрішні класи. Абстрактні класи. 6 Пакети та інтерфейси. Базові бібліотеки Java. Поняття про інтерфейси та класи колекцій. Розділ 3. Програмне забезпечення для мобільних пристроїв 7 Платформи для розробки мобільних додатків. Використання моделі MVC у мобільних додатках. 2 - 8 Передавання даних між активностями. Використання фрагментів у мобільних додатках. Реалізація мережевої взаємодії для мобільного додатку. 2 Розділ 4. Багатопотокове та мережеве програмування 9 Основи обробки виключень. Типи виключень. Оператори мови Java для роботи з виключеннями. 10 Вбудовані виключення. Створення власних типів виключень.. 11 Модель потоків на платформі Java. Головний потік. Створення потоків. Пріоритети потоків та синхронізація. Комунікації між потоками. 12 Мережеві класи та інтерфейси. Склад та принципи застосування пакету java.net. 13 Класи реалізації клієнтських та серверних сокетів стеку протоколів ТСР/IP. 14 Сервлети, їх створення та розгортання.
Методи та критерії оцінювання: Письмовий звіт про виконання завдання курсової роботи (100%)
Критерії оцінювання результатів навчання: Для оцінювання навчальних досягнень впродовж семестру застосовується 100-бальна національна шкала оцінювання З них: Виконання курсової роботи 100 Разом за дисципліну 100
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Базова 1. Schildt H. Java: The Complete Reference. Twelfth Edition - NY: McGraw Hill Professional, 2021. - 1573 p. 2. Cheng F. Exploring Java 9. Build Modularized Applications in Java. - Berkeley: Apress, 2018. - 174 p. 3. Галкін О.В., Катеринич Л.О., Шкільняк О.С. Програмування на Java 8: Навчальний посібник для студентів факультету комп’ютерних наук та кібернетики. – Київ: ЛОГОС, 2017. – 186 с. 4. Кадомський К.К., Ніколюк П.К. Java. Теорія і практика : Навч. посіб. - Вінниця: Донну, 2019. 197 c. 5. Smyth N. Android Studio 4.2 Development Essentials Java Edition. – North Carolina : Payload Media Inc. 2021. 782 p. 6. Кузьма К.Т. Програмування мобільних пристроїв: навчальний посібник для дистанційного навчання. – Миколаїв: СПД Румянцева Г.В., 2021. 128 с. Допоміжна 1. Бернакевич І.Є., Вагін П.П. Програмування мовою Java: використання фундаментальних класів: Тексти лекцій. – Львів: Видавничий центр ЛНУ імені Івана Франка, 2002. 48 с. 2. Horton J. Android Programming for Beginners : Learn all the Java and Android skills you need to start making powerful mobile applications. – Birmingham : Packt Publishing, 2015. 698 р. 3. Thornsby J. Android UI Design : plan, design, and build engaging user interfaces for your Android applications. – Birmingham : Packt Publishing, 2016. 364 р.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).