Системне програмування, частина 1
Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.025
Кількість кредитів: 4.00
Кафедра: Електронні обчислювальні машини
Лектор: асистент,к.ф.-м.н. Пуйда Дмитро Володимирович
Семестр: 4 семестр
Форма навчання: денна
Завдання: Загальні компетентності
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-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).