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

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 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-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).