Системне програмування інфокомунікацій

Спеціальність: Телекомунікації та радіотехніка (освітньо-наукова програма)
Код дисципліни: 7.172.00.M.011
Кількість кредитів: 5.00
Кафедра: Телекомунікації
Лектор: д.т.н., проф. Демидов І.В.
Семестр: 2 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою викладання дисципліни є підготовка студентів до розроблення та підтримки програмних комплексів на основі телекомунікаційного обладнання, зокрема серверних системних платформ та масштабованих сервісних інфокомунікаційних рішень з розподіленою архітектурою.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: інтегральна - здатність розв’язувати складні спеціалізовані задачі та практичні проблеми під час професійної діяльності у галузі телекомунікацій, радіоелектроніки та електронної техніки або у процесі навчання, що передбачає застосування теорій та методів проектування програмних платформ телекомунікацій та характеризуються комплексністю та невизначеністю умов. загальні компетентності: - набуття гнучкого способу мислення, який дає можливість зрозуміти й розв’язати проблеми та задачі, зберігаючи при цьому критичне відношення до усталених наукових концепцій; - уміння працювати самостійно і в команді, здатність комунікувати з колегами з питань галузі щодо наукових досягнень, як на загальному рівні, так і на рівні спеціалістів; - знання та розуміння предметної області та розуміння фаху; - навички використання інформаційних та комунікативних технологій, впровадження комп’ютерних програм та використання існуючих; - уміння оцінювати та підтримувати якість виконаної роботи; фахові (спеціальні) компетентності: - знання теорії та методів проектування сучасних радіотехнічних систем; - знання теорій та методів проектування сучасних телекомунікаційних систем та мереж; - вміння працювати з технічною літературою і здійснювати пошук необхідної технічної інформації.
Результати навчання: Знання протоколів та методів побудови інфокомунікаційних мереж у обсязі, достатньому для здійснення професійної діяльності; Знання програмних платформ та технологій їх застосування для розроблення спеціалізованого програмного забезпечення інформаційних мереж зв’язку; Знання основ інформаційної безпеки телекомунікаційних систем; Знання основ системного програмування інфокомунікацій в обсязі, достатньому для розроблення та підтримки спеціалізованих програмних систем; Здатність працювати в команді та презентувати результати своєї діяльності.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни: Програмування (за професійним спрямуванням), частина 1 (бакалаврат); Програмування (за професійним спрямуванням), частина 2 (бакалаврат); Програмне забезпечення телекомунікацій (бакалаврат); Технології розробки програмних платформ. Супутні і наступні навчальні дисципліни: Проектування телекомунікаційних систем та мереж; Інтернет речей та повсюдний комп’ютинг.
Короткий зміст навчальної програми: Системне програмування інфокомунікацій (або програмування інфокомунікаційних систем) — це вид програмування, який полягає у розробці програм, які взаємодіють з системним програмним забезпеченням (операційною системою, мережною платформою), або апаратним забезпеченням сервісної мережної системи. Головною відмінністю системного програмування в порівнянні з прикладним програмуванням є те, що прикладне програмне забезпечення призначене для кінцевих користувачів (наприклад, текстові процесори, графічні редактори), тоді як результатом системного програмування є програми, які обслуговують апаратне забезпечення мережних платформ або операційну систему (наприклад, клієнт-серверні інтерфейси). Слід зазначити, що «звичайні» прикладні програми можуть використовувати у своїй роботі фрагменти коду, характерні для системних програм, і навпаки; тому чіткої межі між прикладним та системним програмуванням немає. Сучасні розподілені інфокомунікаційні мережі — це набір незалежних комп'ютерів, які представляється їх користувачам єдиною об'єднаною системою. У цьому визначенні обумовлюються два моменти. Перший відноситься до апаратури: всі машини автономні, але об’єднані деякою наскрізною мережею – мережною платформою. Другий стосується програмного забезпечення: користувачі думають, що мають справу з єдиною системою (сервісною мережною системою). Кожну окрему парадигму системного програмування характеризує наявність у ній методів програмування та зв'язок із моделлю життєвого циклу. Спільним для різних парадигм програмування є загальні принципи проектування програмного продукту. Можна вибирати ту або іншу парадигму програмування з позицій зручності застосування для задач та виготовлення конкретного програмного продукту в галузі інфокомунікацій.
Опис: 1. Поняття системного програмування інфокомунікаційних платформ. Загальна характеристика мов програмування. Парадигми системного програмування. Декларативність. Псевдопаралельні програмні платформи (Cisco IOS, Microsoft Windows .NET). Розпаралелювані програмні платформи (багатоядерні середовища C#, Erlang). Розподілені інфокомунікаційні програмні платформи. Функціональна парадигма мови Erlang. 2. Мова паралельного системного програмування Erlang і сучасні парадигми системного програмування. Ідеологія паралельного програмування. Розподілені обчислення. 3. Мова Erlang. Синтаксис. Базові конструкції. Шаблони. Мова Erlang. Поліморфізм. Ефективність коду. 4. Паралельні процеси та механізми асинхронного інформаційного обміну. Базові програмні шаблони. 5. Інструментарій багатоядерного розпаралелювання Erlang. 6. Клієнт-серверні шаблонні моделі. Приклад простої розподіленої клієнт-серверної системи. Розподілені мережні системи в Erlang. 7. Стандартизовані бібліотеки Відкритої Телекомунікаційної Платформи (Erlang OTP). Супервізійна ієрархія програмної платформи. 8. Оброблення TCP Sockets, UDP-повідомлень. Підходи та технології міжсистемної взаємодії. Платформа СУБД Mnesia. 9. Характеристика мов програмування C#/ Parallel C#. 10. Характеристика псевдопаралельного системного програмування. Особливості Cisco IOS. Концепції Microsoft .NET, NET API: платформи Windows, ASP.NET. UTS та COM. Концепції об’єктно-орієнтованого програмування. Компонентна модель Sun Microsystems Java Beans. Інфокомунікаційна платформа Softswitch: архітектура Parlay API/Parlay X.
Методи та критерії оцінювання: Під час навчання студенти виконують лабораторний практикум, що містить десятки різноманітних практично-орієнтованих завдань, розв’язання яких вимагає вагомої теоретичної підготовки відповідно до цієї програми. Оцінювання результатів виконання лабораторних робіт передбачене в якості основної форми поточного контролю. Передбачене також бліц-тестування на лекційних та лабораторних заняттях. Оцінювання результатів виконання індивідуального науково-дослідного завдання шляхом їх захисту дозволяє мотивувати студентів з метою більш якісного навчання та отримання додаткових балів. Семестровий екзаменаційний контроль проводиться в письмовій формі на основі розробленого комплекту екзаменаційних білетів, який затверджується на відповідному засіданні кафедри.
Критерії оцінювання результатів навчання: • письмові звіти з лабораторних робіт, потокове бліц-тестування, оцінювання індивідуального науково-дослідного завдання (захист) (40%) • підсумковий контроль (60 %, контрольний захід, екзамен): письмово-усна форма (60%)
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Cesarini, F. and Thompson, S. (2009) Erlang programming. Sebastopol, CA: O’Reilly. 2. Armstrong J. Programming Erlang. Software for a Concurrent World. Dallas, TX: The Pragmatic Bookshelf, 2007. – 519 pp.: illustrated. 3. Freeman, A. (2010) Pro .NET 4 parallel programming in C#. Berkeley, CA: Apress. 4. Neward T. Server-Based Java Programming. Grinwich: Manning, 2013. – 556 pp. 5. Sommerville, I. (2004) Software engineering. Boston: Pearson/Addison-Wesley. 6. Booch, G. (2007) Object-oriented analysis and design with applications. Reading, MA: Addison-Wesley. 7. Royce, W. (2010) Software project management: A unified framework. New Jersey: Pearson. 8. The Unified Software Development process (2012). New Jersey: Pearson Education (US). 9. Kent Beck: Extreme Programming Explained: Embrace Change, Addison–Wesley. First edition, 1999. Second edition, with Cynthia Andres, 2004. 10. E. Yourdon. Modern Structured Analysis. Prentice Hall, 1988. 11. T. DeMarco. Structured Analysis and System Specification. A Yourdon Book, Yourdon Inc., NY, 1979. 12. C. Sarson, T. Gane. Structured Systems Analysis. Englewood Cliffs, NJ.: Prentice-Hall, 1979. 13. Clarke, E.M. (2018) Model checking. Cambridge, MA: The MIT Press. 14. Vasudevan, S.K. et al. (2017) Software engineering. Oxford: Alpha Science International Ltd. 15. Bass, L., Clements, P. and Kazman, R. (2022) Software architecture in practice. Boston: Addison-Wesley. 16. Booch, G., Jacobson, I. and Rumbaugh, J. (2005) UML: The Unified Modeling Language User Guide: Thoroughly updated - the ultimative tutorial to the UML from the original designers. Upper Saddle River, NJ: Addison-Wesley. 17. Sanders, W.B. and Cumaranatunge, C. (2008) ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques. Sebastopol: O’Reilly Media, Inc. 18. M. Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997. 19. Fowler, M. (2003) Patterns of enterprise application architecture. Boston: Addison-Wesley. 20. Landry, J.B. (1986) Software development technology. Arlington, Va. (1300 North 17th Street, Suite 300, Arlington 22209): ADAPSO. 21. Hilborn, E.H. (1965) Handbook of Engineering Psychology. Cambridge, Mass,: Tad. 22. Tanenbaum, A.S. and Steen, M.V. (2017) Distributed systems principles and paradigms. Upper Sddle River: Prentice-hall. 23. G. Alonso, F. Casati, H. Kuno, V. Machiraju. Web Services. Concepts, Architectures and Applications. Springer-Verlag, 2004. 24. Rubinger, A.L., Monson-Haefel, R. and Burke, B. (2010) Enterprise javabeans. Farnham: O’Reilly. 25. Enterprise JavaBeans Specification, version 2.1. 26. Доступно за посиланням http://java.sun.com/products/ejb/docs.html. 27. Сайт проекту NetBeans http://www.netbeans.org/.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).