Інженерія програмного забезпечення
Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.031
Кількість кредитів: 5.00
Кафедра: Електронні обчислювальні машини
Лектор: асистент,к.ф.-м.н. Пуйда Дмитро Володимирович
Семестр: 5 семестр
Форма навчання: денна
Завдання: Загальні компетентності
1.Базові знання фундаментальних наук, в обсязі, необхідному для освоєння загально-професійних дисциплін.
2.Базові знання в галузі комп’ютерної інженерії (комп’ютерної логіки, теорії програмування, електротехніки) необхідні для освоєння професійно-орієнтованих дисциплін.
3.Здатність до аналізу та синтезу.
4.Здатність до застосування знань на практиці.
5.Здатність здійснювати пошук та аналізувати інформацію з різних джерел.
6.Мати дослідницькі навички.
7.Мати навички розроблення та управління проектами.
8.Здатність розв’язувати поставлені задачі та приймати відповідні рішення.
9.Здатність до письмової та усної комунікації українською мовою.
10.Знання іншої мови(мов).
11.Здатність працювати як індивідуально, так і в команді.
12.Здатність ефективно спілкуватися на професійному та соціальному рівнях.
13.Креативність, здатність до системного мислення.
14.Потенціал до подальшого навчання.
15.Відповідальність за якість виконуваної роботи.
Фахові компетентності
1.Здатність застосовувати та інтегрувати знання і розуміння дисциплін інших інженерних галузей.
2.Здатність використовувати та впроваджувати нові технології, брати участь в модернізації та реконструкції комп’ютерних систем та мереж , зокрема з метою підвищення їх енергоефективності.
3.Здатність розуміти і враховувати соціальні, екологічні, етичні, економічні аспекти, що впливають на формування технічних рішень.
4.Здатність застосовувати професійно-профільовані знання й практичні навички для розв’язання типових задач спеціальності, а також експлуатації комп’ютерних систем та мереж.
5.Здатність використовувати знання й уміння для розрахунку, дослідження, вибору, впровадження, ремонту, та проектування комп’ютерних систем, мереж та їх компонентів.
6.Здатність ідентифікувати, класифікувати та описувати роботу комп’ютерних систем, мереж та їх компонентів шляхом використання аналітичних методів і методів моделювання.
7.Здатність досліджувати проблему та визначати обмеження, у тому числі технічні та обумовлені проблемами сталого розвитку, а також проблемами впливу на навколишнє середовище та безпеку життєдіяльності.
8.Здатність проектувати системи та їх компоненти з урахуванням усіх аспектів їх життєвого циклу та поставленої задачі, включаючи створення, налаштування, експлуатацію, технічне обслуговування та утилізацію; здатність аргументувати вибір методів розв’язування спеціалізованих задач, критично оцінювати отримані результати та захищати прийняті рішення.
Результати навчання: Здобувач освіти повинен бути здатним продемонструвати такі результати навчання:
1. Знати основні методології розробки програмного забезпечення.
2. Вміти користуватися поширеними системами контролю версій.
3. Знати основні вимоги до коду сучасного програмного забезпечення.
4. Вміти користуватися поширеними системами статичного аналізу коду.
5. Вміти документувати код програмного забезпечення за допомогою Doxygen.
6. Знати основні підходи до тестування програмного забезпечення.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Основи організації та функціонування комп’ютерів.
Програмування.
Короткий зміст навчальної програми: Дисципліна „Інженерія програмного забезпечення” повинна надати систематизовані знання про концепції, методи та засоби створення сучасного програмного забезпечення, сприяти освоєнню основних технологій програмування, розвинути навики роботи із сучасними засобами проектування програмного забезпечення та надати можливість отримати практичні навички із застосування цих засобів.
Опис: Підходи до розробки програмного забезпечення та керування проектом.
Системи контролю версій.
Короткий огляд поширених мов програмування.
Основні вимоги до коду програмного забезпечення.
Документування коду програмного забезпечення.
Об’єктно-орієнтоване та функційне програмування.
Поняття Domain-Driven Design.
Підходи до тестування програмного забезпечення.
Профайлінг програмного забезпечення.
Особливості розробки багатопоточного програмного забезпечення.
Методи та критерії оцінювання: Письмові звіти з лабораторних робіт, поточний контроль – 20%;
підсумковий контроль -
екзамен: письмово-усна форма (80 %).
Критерії оцінювання результатів навчання: 1. Розподіл балів при умові виконання навчального плану, виконання усіх контрольних робіт і календарного плану виконання лабораторних робіт, інакше за результатами проведення семестрового контролю студент вважається не атестованим.
2. Максимальна кількість балів для оцінки поточного контролю (ПК) знань за семестр – 20 балів.
3. Екзаменаційний контроль проводиться в письмово-усній формі.
4. Максимальна кількість балів для оцінки екзаменаційного контролю – 80 балів.
5. Іспит перед комісією студент складає також в письмово-усній формі з фіксацією запитань та оцінок відповідей в екзаменаційному листі.
6. До іспиту студенти допускаються при умові виконання навчального плану (в тому числі усіх лабораторних робіт).
Порядок та критерії виставляння балів та оцінок: 100-88 балів - атестований з оцінкою «відмінно» - Високий рівень: здобувач освіти демонструє поглиблене володіння поняттєвим та категорійним апаратом навчальної дисципліни, системні знання, вміння і навички їх практичного застосування. Освоєні знання, вміння і навички забезпечують можливість самостійного формулювання цілей та організації навчальної діяльності, пошуку та знаходження рішень у нестандартних, нетипових навчальних і професійних ситуаціях. Здобувач освіти демонструє здатність робити узагальнення на основі критичного аналізу фактичного матеріалу, ідей, теорій і концепцій, формулювати на їх основі висновки. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку, самостійної науково-дослідної діяльності, що реалізується за підтримки та під керівництвом викладача. 87-71 балів - атестований з оцінкою «добре» - Достатній рівень: передбачає володіння поняттєвим та категорійним апаратом навчальної дисципліни на підвищеному рівні, усвідомлене використання знань, умінь і навичок з метою розкриття суті питання. Володіння частково-структурованим комплексом знань забезпечує можливість їх застосування у знайомих ситуаціях освітнього та професійного характеру. Усвідомлюючи специфіку задач та навчальних ситуацій, здобувач освіти демонструє здатність здійснювати пошук та вибір їх розв’язання за поданим зразком, аргументувати застосування певного способу розв’язання задачі. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку. 70-50 балів - атестований з оцінкою «задовільно» - Задовільний рівень: окреслює володіння поняттєвим та категорійним апаратом навчальної дисципліни на середньому рівні, часткове усвідомлення навчальних і професійних задач, завдань і ситуацій, знання про способи розв’язання типових задач і завдань. Здобувач освіти демонструє середній рівень умінь і навичок застосування знань на практиці, а розв’язання задач потребує допомоги, опори на зразок. В основу навчальної діяльності покладено ситуативність та евристичність, домінування мотивів обов’язку, неусвідомлене застосування можливостей для саморозвитку. 49-00 балів - атестований з оцінкою «незадовільно» - Незадовільний рівень: свідчить про елементарне володіння поняттєвим та категорійним апаратом навчальної дисципліни, загальне уявлення про зміст навчального матеріалу, часткове використання знань, умінь і навичок. В основу навчальної діяльності покладено ситуативно-прагматичний інтерес.
Рекомендована література: 1. Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley Professional, 2003, – 560 p.
2. Erich Gamma, Richard Helm, et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994, – 416 p.
3. Martin Fowler, Kent Beck, et al., Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 1999, – 431 p.
4. Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley Professional, 2002, – 560 p.
5. Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008, – 464 p.
6. Robert C. Martin, Clean Architecture: A Craftsman's Guide to Software Structure and Design, Pearson, 2017, – 432 p.
7. Robert C. Martin, Clean Agile: Back to Basics, Pearson, 2019, – 240 p.
8. Robert C. Martin, The Clean Coder: A Code of Conduct for Professional Programmers, Pearson, 2011, – 256 p.
9. Scott Chacon and Ben Straub, Pro Git, 2nd ed., Apress, 2014, – 440 p.
10. Steve McConnell, Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press, 2004, – 960 p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).