Машино-орієнтоване програмування

Вибіркова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5.
Кількість аудиторних занять: 
30 годин лекційних занять, 16 годин лабораторних занять.
Самостійна робота: 
складає 89 годин.
Індивідуальна робота: 
• очна форма — розрахунково-графічна робота.
Семестровий контроль: 
Залік.
Освітню компоненту забезпечує: 
Анотація: 

Анотація навчальної дисципліни

Мета дисципліни:
вивчення засобів програмування за допомогою мов машинно-орієнтованого рівня і розвиток навичок їх практичного застосування.

Завдання дисципліни:
- ознайомитись з командами та API-функціями
-  навчитися написанню та наладці програм із застосуванням мов машинно-орієнтованого рівня

Основні результати навчання

Знати регістри сучасних процесорів і засоби їх використання в програмах.

Знати команди, директиви та операції асемблеру різних синтаксисів.

Знати основи побудови консольних, віконних та діалогових програм із застосуванням API-функцій Windows та системних викликів UNIX.

Вміти об’єднувати модулі, що написані на різних мовах машинно-орієнтованого програмування.

Вміти розробляти програми, що включають системні виклики для роботи з екраном та клавіатурою, а також віконні і діалогові програми.

Форми організації освітнього процесу та види навчальних занять

Л – лекційні заняття; ЛЗ – лабораторні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; РГР – розрахунково-графічна робота; К – консультації.

Тематика та види навчальних занять

1    тиждень

Л1. Вступ. Про дисципліну, мета і задачі 
ЛЗ1. Робота з програмами за допомогою наладчика x64dbg
СРС. К.

2    тиждень

Л2. Регістри мікропроцесорів ix86 і x64 (початок)
СРС. К.

3    тиждень

Л3. Регістри мікропроцесорів ix86 і x64 (продовження). API-функції та засоби їх виклику. 
ЛЗ2. Робота с API-функціями і командами. Перша 64-розрядна програма на асемблері 
СРС. К.

4    тиждень

Л4. Режими адресації даних. Операнди команд і директив
СРС. К.

5    тиждень

Л5. Арифметичні команди  для роботи з цілими двійковими числами. Команди для роботи зі співпроцесором.  
ЛЗ3. Арифметичні команди. Команди передачі управління (початок).  
СРС. К.

6    тиждень

Л6. Команди безумовної та умовної передачі управління. 
СРС. К.

7    тиждень

Л7. Команди для роботи з процедурами. Угода про роботу з параметрами та регістрами для процедур під Windows. 
ЛЗ3. Арифметичні команди. Команди передачі управління (продовження).  

СРС. К.

8    тиждень

Л8. Стандарти викликів процедур. Зв’язок асемблера та мов високого рівня
МКР1. СРС. К.

9    тиждень

Л9. Класифікація команд. Цикли 
ЛЗ4. Процедури, зовнішній модуль на асемблері
СРС. К.

10    тиждень

Л10. Команди маніпулювання бітами: логічні та команди зсуву. Команди введення/виведення.
СРС. К.

11    тиждень

Л11. Команди пересилки даних та адрес. Команди керування процесором
ЛЗ5. Робота з консоллю і файлами на асемблері за допомогою API-функцій Windows. Цикли (початок)
СРС. К.

12    тиждень

Л12. Розробка консольних програм Windows на рівні API. 
СРС. К.

13    тиждень

Л13. Робота з файлами. Пошук файлів по шаблону.
ЛЗ5. Робота з консоллю і файлами на асемблері за допомогою API-функцій Windows. Цикли (продовження)
 
СРС. К.

14    тиждень

Л14. Основи побудови програм в Unix синтаксису SysV/386. Основні команди та директиви, порівняння з синтаксисом Intel. 
СРС. К.

15    тиждень

Л15. Приклади консольної програми під Linux на основі системних викликів 
ЛЗ6. Діалогові програми
МКР2. СРС. К.

Індивідуальна робота 

Виконується РГР. Мета виконання розрахунково-графічної роботи (РГР) складається в закріпленні, поглибленні й розширенні отриманих студентами знань в ході роботи на лекціях та лабораторних заняттях, в оволодінні практичними навичками низько-рівневого програмування для ОС Linux.

РГР передбачає розробку програми на асемблері в Linux для роботи з екраном і файлами

12 тиждень

Одержання й уточнення завдання. 

13 тиждень

Розробка програми

14 тиждень

Оформлення пояснювальної записки.

15 тиждень

Захист РГР.

Процедура оцінювання
Модульні контрольні роботи №1 і №2 виконуються у письмовій формі. Максимальна оцінка за бездоганне виконання модульних контрольних робіт становить 30 балів.
Модульні контрольні роботи містять написання програм або їх фрагментів, а також відповіді на запитання. Для модульної контрольної роботи №1 бали по завданням розподіляються наступним чином: максимально – 3, 3, 6, 6, 6, 6 (всього – 30 балів). Для модульної контрольної роботи №2 бали по завданням розподіляються наступним чином: максимально – 5, 5, 10, 10 (всього – 30 балів). 
Якщо відповідь на теоретичне питання правильна та повна, то ставиться максимальний бал; якщо правильна, але неповна, то знімається 1/2 або 1/3 від максимального балу в залежності від ступеня повноти; якщо відповідь невірна, то знімаються всі бали. 
Завдання практичної частини складаються в розробці комп’ютерних програм або їх фрагментів. Якщо студент виконав розрахунок вірно, то він одержує максимальний бал; якщо виконав не весь розрахунок, то знімається 3/4, 1/2 або 1/3 від максимального балу в залежності від ступеня повноти; якщо відповідь невірна, то знімаються всі бали. 

За результатами виконання лабораторних робіт та захисту протоколів студент може отримати до 15 балів за перший модуль та 10 балів за другий модуль, тобто 25 балів за семестр.
За результатами опитувань протягом лабораторних занять студент може отримати до 5 балів за кожний модуль, тобто 10 балів за семестр.
За результатами виконання РГР та захисту протоколів студент може отримати до 5 балів за другий семестр.
Якщо студент виконав лабораторну роботу, РГР  або відповів на опитування бездоганно та своєчасно, то ставиться максимальний бал; якщо правильно, але неповно, то знімається 1/2 або 1/3 від максимального балу в залежності від ступеня повноти; якщо невірно, то знімаються всі бали. 

Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів. 

Підсумковим контролем з дисципліни є залік. Залік виставляється за підсумками модульних контрольних робіт та накопичувальної частини дисципліни

Семестровий модуль № 1
ЛЗ1- ЛЗ3. Оцінка за виконання – 20 балів. Термін виконання – 1-8 тиждень. 
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.

Семестровий модуль № 2
ЛЗ5- ЛЗ8. Оцінка за виконання – 15 балів. Термін виконання – 9-15 тиждень. 
МК2. Модульна контрольна робота – 30 балів (14 тиждень).
РГР. Оцінка за виконання – 5 балів. Термін надання 15 тиждень.

Політика освітнього процесу

Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання, відвідувати консультації викладача з метою з’ясування всіх незрозумілих під час самостійної та індивідуальної роботи питань. Такий підхід сприяє формуванню академічної культури та академічної доброчесності, здобуттю навичок самостійної роботи і формування відповідних компетентностей як для успішного навчання на відповідному освітньому рівні, так і для майбутньої професійної діяльності.
Викладач на першому аудиторному занятті надає повну інформацію щодо усіх складових дисципліни, роз’яснює кількісне та якісне наповнення змістовних модулів, рекомендує відповідну фахову літературу, інформує щодо критеріїв оцінювання рівня навчальних досягнень здобувача з усіх видів та форм навчання та термінів контрольних заходів.
Викладач зобов’язаний здійснювати консультації відповідно до затвердженого завідувачем кафедри графіка консультацій.
Всі види завдань, які виконано після встановлених графіком навчального процесу та викладачем термінів вважаються «не зарахованими» та отримують, відповідно, оцінку «0».
Відсутність здобувача на МКР відповідає оцінці «0». Складання/перескладання контрольних робіт відбувається за встановленим деканатом розкладом.
Під час контрольних робіт користуватися телефонами заборонено. Заборонено використання будь-яких літературних джерел, конспектів лекцій, шпаргалок під час проходження модульних контролів з дисципліни.

Документи (файли), що додаються: Робоча програма навчальної дисципліни.

Література

Базова
1. Гагарина Л. Г., Кононова А. И. «Архитектура вычислительных систем и Ассемблер» -СОЛОН-Пресс – 2019 - с. 368. 
2. Рувінська В.М. Машинно-орієнтовані мови програмування  - Одеса, ТОВ «Удача», 2013 - 191 c. (Рекомендовано Міністерством освіти і науки України як начальний посібник для студентів вищих навчальних закладів, які навчаються за напрямком «Програмна інженерія». 
3. Макогон В.С., Рувинская В.М.  Задачи и упражнения по программированию на языке ассемблера – Астропринт – 2003 – с. 276. 

Додаткова
4. Аблязов Р.З. Программирование на ассемблере на платформе x86-64 – ДМК ПРЕС – 2016 - с. 302.

Методична
5. Методичні вказівки до лабораторних робіт з дисципліни «МОП” для студентів спеціальності 121 — Інженерія програмного забезпечення / Уклали В.М. Рувінська, Л.С. Жиро. - Одеса: ОНПУ. 2017. - 38 с. (№ 4412- PC-2017)
 

2021 рік