Крос-платформне програмування

 

І. Мета та зміст навчальної дисципліни

Курс «Крос-платформне програмування» є однією із навчально-професійних дисциплін спеціальності, яка формує професійні знання майбутніх фахівців в галузі комп’ютерних технологій.

Вивчення курсу забезпечує теоретичні знання і практичні навики в галузі розробки програмного забезпечення, розуміння програмування, навики розробки кросплатформних комп’ютерних програм. 

Головною метою викладання курсу «Крос-платформне програмування» є теоретичне вивчення та отримання практичних навичок у питаннях розробки крос-платформних програмних систем та принцип використання засобів крос-платформного програмування. 

Предметом курсу «Крос-платформне програмування» є вивчення методів та засобів розробки кросплатформного програмного забезпечення. 

Завдання вивчення дисципліни є теоретична та практична підготовка студентів з

питань розробки кросплатформного програмного забезпечення. 

 

ІІ. Перелік знань і умінь, яких набуде студент після опанування даної дисципліни: Програмні результати навчання: 

Мати грунтовну підготовку в області програмування, володіти алгоритмічним

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

Проводити передпроектне обстеження предметної області, системний аналіз об'єкта проектування. Знати, розуміти і застосовувати ефективні підходи щодо проектування програмного забезпечення. Знати, розуміти основні процеси, фази та ітерації життєвого циклу програмного забезпечення. Аналізувати, оцінювати і вибирати інструментальні та обчислювальні засоби, технології, алгоритмічні і програмні рішення для розв’язання завдань інженерії програмного забезпечення. 

Перелік компетентностей, яких набуде студент після опанування даної дисципліни: 

Здатність розв’язувати складні спеціалізовані завдання або практичні проблеми інженерії програмного забезпечення або у процесі навчання, що характеризуються комплексністю та невизначеністю умов, із застосуванням теорій та методів інформаційних технологій.

Здатність до абстрактного мислення, аналізу та синтезу. Здатність розробляти

архітектури, модулі та компоненти програмних систем. Здатність проектувати та розробляти програмне забезпечення із застосуванням різних парадигм програмування: структурного, об’єктно-орієнтованого, функціонального, логічного, з відповідними моделями, методами та алгоритмами обчислень, структурами даних і механізмами управління. Здатність до алгоритмічного та логічного мислення.

 

ІІІ. Сфера реалізації набутих знань і вмінь в майбутній професії

Сферою реалізації набутих компетенцій є посади фахівців та керівників в галузі

розробки програмного забезпечення. 

 

 

  1. Зміст дисципліни, що пропонується для вивчення студентами за модулями та темами

 

Змістовий модуль № 1. Основи програмування на Java.

Тема 1. Що таке Java? Історія створення. Лексика мови Java. [ 1, с.9...25; 2, с. 8…21]

Історія створення Java. Історія розвитку Java. Аналіз програми. Ідентифікатори. Ключові слова. Літерали. Оператори привласнення і порівняння. Арифметичні операції. Логічні операції. Тема 2. Компонентна ідеологія [ 1, с.12...28; 2, с. 9…26]

Поняття кросплатформності, її типи. Визначення та властивості компонентів. Специфікація інтерфейсу як контракту. Модель посилань (узагальнена модель компонентної системи). Компонента модель .Net Framework. Типи компонентів. Динамічна бібліотека DLL як приклад компонента. 

Тема 3. Стратегії інтеграції програмного забезпечення.

Концепції взаємодії компонентів. Виклик віддалених об'єктів. Маршалінг і серіалізація. Підходи до інтеграції компонентів інформаційних систем.

Тема 4. Методи створення компонентів

Розробка та збирання компонентів. Об'єкти та сервіси, що ними надаються. Створення компонентів типу Windows Forms на мові C# в компонентному середовищі .Net Framework.

Тема 5. Типи даних. [ 2, с.7...23; 7, с. 24…35]

Змінні. Примітивні і посилальні типи даних. Дробові типи. Булевий тип. Об'єкти і правила роботи з ними.

Тема 6. Імена. Пакети. [ 1, с.125...159; 7, с. 8…89]

Прості й складені імена. Елементи. Елементи пакета. Платформна підтримка пакетів.

Оголошення верхнього рівня. Унікальність імен пакетів. Область видимості імен.

Тема 7. Оголошення класів. [ 3, с.7...45; 5, с. 23…63]

Модифікатори доступу. Оголошення класів. Додаткові властивості класів.

 

Змістовий модуль 2. Програмування на Java.

Тема 8. Коллекции объектов. [ 7, с.6...78; 12, с. 57…112]

Параметризованные и типизованные контейнеры. Добавление групп элементов. Вывод содержимого контейнеров. List. Итераторы. Стек. Множество.

Тема 9. Масиви. [ 7, с.16...118; 12, с. 111…134]

Масиви, як тип даних в Java. Перетворення типів для масивів. Клонування. Тема 10.  Пакет java.awt. [ 7, с.126...178; 12, с. 157…233]

Аплети. Базові класи. Основні компоненти. Менеджери компонування. Вікна. Меню.

Обробка подій.

Тема 11.  Пакет java.io. [ 7, с.87...99; 2, с. 141…156]

Система уведення/виведення. Потоки даних (stream). Класів-реалізації потоків даних. Класи ByteArrayіnputStream і ByteArrayOutputStream. Класи FіleіnputStream і FіleOutputStream. Класи FіlterіnputStreeam і FіlterOutputStream. Їхні спадкоємці. Serіalіzatіon. Версії класів. Класи Reader і Wrіter. Їхні спадкоємці. Клас StreamTokenіzer. Робота з файловою системою.

Тема 12.  Потоки виконання. Синхронізація. [ 9, с.34...78; 2, с. 157…171]

Багаторівнева архітектура. Базові класи для роботи з потоками. Інтерфейс Runnable.

Демон-потоки. Синхронізація.

Тема 13.  Пакет java.util. [ 1, с.134...157; 2, с. 173…189]

Робота з датами і часом. Клас Date. Класи Calendar і GregorianCalendar. Клас TimeZone.

Клас SimpleTimeZone. Інтерфейс Observer і клас Observable.

Тема 14.  Проміжне програмне забезпечення 

Брокери об'єктних запитів. Монітори оброблення транзакцій. Виклики віддалених процедур. Вибір застосування, сервісів, компонентів і протоколів зв'язку.

Тема 15.  Особливості компонентних технологій 

Теми модуля. COM/DCOM/COM+/NET  CORBA. Java Beans.

 

  1. Основна література:
  2. Крейтон, Р.Х. Unity Game Development Essentials / Р.Х. Крейтон Packt Publishing, 2010, 83

c.Вербицький О. Вступ до криптології / О. Вербицький. – Львів, 1998. – 247 с. 

  1. Сью Блэкман, Beginning 3D Game Development with Unity/ Cью Блэкман; Apress, 2011, 992 c. 3. Шилдт, Г. C# Полное руководство / Г. Шилдт И.В. Берштейн Москва., Вильямс, 2011. - 1056 c