Системне програмування, частина 1

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.025
Кількість кредитів: 4.00
Кафедра: Електронні обчислювальні машини
Лектор: асистент,к.ф.-м.н. Пуйда Дмитро Володимирович
Семестр: 4 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою навчальної дисципліни є надання студентам базових теоретичних знань в області застосування мов асемблер та C++ для ефективного програмування та отримання достатніх практичних навичок шляхом написання та відлагодження програм для вирішення типових задач системного програмування.
Завдання: Загальні компетентності 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. Вміти робити бенчмаркінг та профайлінг програмного забезпечення під ОС Ubuntu Linux та Windows. 4. Вміти писати багатопоточне програмне забезпечення засобами С++. 5. Мати уявлення про lock-free та wait-free програмування.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Основи організації Програмування Інженерія програмного забезпечення Системне програмне забезпечення
Короткий зміст навчальної програми: Дисципліна „Системне програмування, ч.1” повинна надати систематизовані знання про концепції, методи та засоби системного програмування, сприяти освоєнню основних технологій програмування, розвинути навики роботи із сучасними засобами системного програмування та надати можливість отримати практичні навички із застосування цих засобів.
Опис: Вступ до системного програмування Системи команд базових процесорів сучасних комп`ютерних систем Поняття про Linux Бенчмаркінг та профайлінг Процеси і потоки Поняття про lock-free програмування Ефективна робота з пам’яттю
Методи та критерії оцінювання: Письмові звіти з лабораторних робіт, поточний контроль – 20%; підсумковий контроль - екзамен: письмово-усна форма (80 %).
Критерії оцінювання результатів навчання: Розподіл балів при умові виконання навчального плану, виконання усіх контрольних робіт і календарного плану виконання лабораторних робіт, інакше за результатами проведення семестрового контролю студент вважається не атестованим. 2. Максимальна кількість балів для оцінки поточного контролю (ПК) знань за семестр – 20 балів. 3. Екзаменаційний контроль проводиться в письмово-усній формі. 4. Максимальна кількість балів для оцінки екзаменаційного контролю – 80 балів. 5. Іспит перед комісією студент складає також в письмово-усній формі з фіксацією запитань та оцінок відповідей в екзаменаційному листі. 6. До іспиту студенти допускаються при умові виконання навчального плану (в тому числі усіх лабораторних робіт).
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Onorato Vaticone, C++ System Programming Cookbook, Packt Publishing, 2020, – 292 p. 2. Bjorn Andrist, Viktor Sehr, C++ High Performance, Second Edition, Packt Publishing, 2020, – 540 p. 3. Fedor G. Pikus, The Art of Writing Efficient Programs, Packt Publishing, 2021, – 464 p. 4. Jack-Benny Persson, Linux System Programming Techniques, Packt Publishing, 2021, – 432 p. 5. Anthony Williams, C++ Concurrency in Action, Second Edition, Manning, 2019, – 592 p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).