Системне програмування (курсовий проєкт)

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.034
Кількість кредитів: 3.00
Кафедра: Електронні обчислювальні машини
Лектор: Ногаль Марія Василівна
Семестр: 5 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою курсового проектування з дисципліни «Системне програмування» є опанування студентами теоретичних аспектів, методик та надання практичних навиків з проектування і реалізації мовних процесорів з використанням новітніх технологій програмування; вироблення у студентів чітких систематизованих знань про особливості функціонування трансляторів і компіляторів мов програмування, принципів та способів їх побудови, а також використовуваних структур даних.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: Загальні компетентності: - ЗК3. Здатність застосовувати знання у практичних ситуаціях; - ЗК16. Відповідальність за якість виконуваної роботи. Фахові компетентності: - ФК2. Здатність використовувати сучасні методи і мови програмування для розроблення алгоритмічного та програмного забезпечення. - ФК3. Здатність створювати системне та прикладне програмне забезпечення комп’ютерних систем та мереж. - ФК11. Здатність оформляти отримані результати у вигляді презентацій, науковотехнічних звітів. - ФК15. Здатність аргументувати вибір методів розв’язування спеціалізованих задач, критично оцінювати отримані результати, обґрунтовувати та захищати прийняті рішення.
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання: • знати принципи, методи та алгоритми ефективного програмування компонентів систем програмування і вміти створювати програмні модулі для їх реалізації; • володіти основами теорії формальних мов та автоматів; • знати вимоги до мовних процесорів, узагальнену схему компіляції і розуміти вплив архітектури та апаратного забезпечення комп’ютерних систем на процес їх створення, розрізняти машинно-залежні та машинно-незалежні особливості їх реалізації; • уміти створювати типові елементи мовних процесорів: лексичний, синтаксичний та семантичний аналізатори, генератор коду; • володіти методиками застосування сучасних технологій і інструментів при створенні програмних продуктів і мати практичні навички у розробці та валідизації модулів системних програм; В результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання: ЗН2 Мати навички проведення експериментів, збирання даних та моделювання в комп’ютерних системах. УМ1 Вміти застосовувати знання для ідентифікації, формулювання і розв’язування технічних задач спеціальності, використовуючи методи, що є найбільш придатними для досягнення поставлених цілей. УМ5 Вміти розробляти програмне забезпечення для вбудованих і розподілених застосувань, мобільних і гібридних систем, розраховувати, експлуатувати типове для спеціальності обладнання.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни: Програмування, частина 1 і частина 2 Алгоритми та моделі обчислень Системне програмування, частина 1 Супутні і наступні навчальні дисципліни: Системне програмування, частина 2 Інженерія програмного забезпечення Системне програмне забезпечення
Короткий зміст навчальної програми: Курсове проектування з дисципліни «Системне програмування» систематизує та розширює у студентів теоретичні знання, розглядає методики та надає практичні навики з проектування і реалізації мовних процесорів з використанням новітніх технологій програмування. В ході проектування розглядаються особливості функціонування трансляторів мов програмування, принципи та способи їх побудови, а також використовувані структури даних. Студент створює граматику для формального опису мови програмування, розробляє структуру та організацію інформаційних таблиць, вибирає базові методи та реалізує алгоритми для основних програмних модулів трансляторів: лексичного, синтаксичного та семантичного аналізаторів, а також генератора коду.
Опис: Уніфікована тематика курсового проектування «Розробка системних програмних модулів та компонент систем програмування». Індивідуальне завдання “Розробка транслятора з вхідної мови програмування”. В проекті підлягають реалізації: • створення граматики для заданої мови програмування; • проектування та реалізація інформаційних таблиць для транслятора; • розробку та реалізацію модуля лексичного аналізатора; • розробку та реалізацію модуля синтаксичного аналізатора; • розробку та реалізацію модуля семантичного аналізатора; • розробка генератора коду. Варіант вхідної мови програмування формуються індивідуально для кожного студента. Після чого студент розробляє деталізований опис вхідної мови програмування і погоджує його з викладачем.
Методи та критерії оцінювання: Оцінювання знань студентів проводиться відповідно до робочого навчального плану у вигляді семестрового контролю, який проводиться в кінці семестру і включає в себе три складові: якість оформлення і повноту змісту пояснювальної записки, якість і функціональність програмного коду, захист проекту. Захист проекту є обов’язковим видом контролю і проводиться в усній формі перед комісією. Сумарна залікова оцінка, яку студент може отримати за результатами семестрового контролю для курсового проектування, обчислюється як сума із трьох вище зазначених складових. Максимальна кількість балів, яку може отримати студент, становить 100 балів.
Критерії оцінювання результатів навчання: 1. Семестровий контроль знань проводиться у вигляді диференційованого заліку протягом терміну, визначеного навчальним графіком. 2. Максимальна кількість балів для оцінки семестрового контролю складає 100 балів і формується із трьох складових: якість оформлення і повноту змісту пояснювальної записки – 30 балів, якість і функціональність програмного коду – 30 балів, захист проекту перед комісією – 40 балів.. 3. До захисту проекту перед комісією допускаються студенти при умові представлення ними керівнику проекту пояснювальної записки і програмного проекту, і які при оцінюванні отримали не менше половини від максимально можливих балів для перших двох складових сумарної оцінки, інакше за результатами проведення семестрового контролю студент вважається не атестованим.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Рекомендована латература: 1) Основи проектування трансляторів: Конспект лекцій : [Електронний ресурс] : навч. посіб. для студ. спеціальності 123 – «Комп’ютерна інженерія» / О. І. Марченко ; КПІ ім. Ігоря Сікорського. – Київ: КПІ ім. Ігоря Сікорського, 2021. – 108 с. 2) Формальні мови, граматики та автомати: Навчальний посібник / Гавриленко С.Ю. – Харків: НТУ « ХПІ », 2021. – 133 с. 3) Сопронюк Т.М. Системне програмування. Частина І. Елементи теорії формальних мов: Навчальний посібник у двох частинах. – Чернівці: ЧНУ, 2008. – 84 c. 4) Сопронюк Т.М. Системне програмування. Частина ІІ. Елементи теорії компіляції: Навчальний посібник у двох частинах. – Чернівці: ЧНУ, 2008. – 84 c. 5) Alfred V. Aho, Monica S. Lam, Ravi Seth, Jeffrey D. Ullma. Compilers, principles, techniques, and tools, Second Edition, New York, 2007. – 1038 c. Інформаційні ресурси: 1) Системне програмування, частина 2 [Електронний ресурс] – Режим доступу до ресурсу: https://vns.lpnu.ua/course/view.php?id=7714. 2) MIT OpenCourseWare. Computer Language Engineering [Електронний ресурс] – Режим доступу до ресурсу: https://ocw.mit.edu/courses/6-035-computer-language-engineering-spring-2010.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).