Основи програмування
Анотація навчальної дисципліни
Мета дисципліни:
надання знань з теоретичних основ розробки прикладного програмного забезпечення за процедурно-орієнтованою технологією, оволодіння основними прийомами побудови алгоритмів для вирішення прикладних завдань в області інженерії програмного забезпечення та їх програмної реалізації з використанням мови програмування С.
Завдання дисципліни:
ознайомитись з основними поняттями та особливостями процедурно-орієнтованої технології програмування, сформувати комплексне уявлення про етапи розробки прикладних програм;
вивчити особливості синтаксису і семантики базових конструктивних елементів мови програмування С: лексем, виразів та операторів;
отримати знання про різновиди простих та складених типів даних, усвідомити особливості їх використання при вирішенні прикладних завдань мовою програмування С;
сформувати уявлення про програмування функцій і їх використання для реалізації ієрархічної структури програми;
отримати знання щодо програмування динамічних структур даних;
вивчити особливості роботи з файловими структурами даних з використанням основних операцій над файловими структурами та вмістом файлів;
оволодіти прийомами тестування та налагодження програм з використанням інтегрованого середовища розробки;
сформувати уявлення про основні етапи документування програмного забезпечення та вимоги до даних етапів.
Основні результати навчання
Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань.
Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення.
Форми організації освітнього процесу та види навчальних занять
Л – лекційні заняття; ЛЗ – лабораторні заняття; ПР – практичне заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.
Тематика та види навчальних занять
1 тиждень
Л1. Класифікація мов програмування. Процес розробки програми. Розподіл мов програмування. Основні етапи розробки програми. Транслятори, компоновщики, відладчики. Засоби опису синтаксису мови.
ПР1. Основні програмні терміни та етапи розробки програм.
СРС. К.
2 тиждень
Л2. Алфавіт мови програмування С. Ідентифікатори, константи. Операції: логічні, математичні, операції відношення та інші. Пріоритети та приклади використання операцій. Вирази.
ЛЗ1. Знайомство з інтегрованим середовищем розробки програм мовою С.
СРС. К.
3 тиждень
Л3. Структура програми мовою програмування С, складові частини програмного модулю, поняття області видимості. Заголовні файли: призначення та використання. Базові типи даних. Явне та неявне перетворення типів даних, проблеми перетворення. Ввід та вивід даних, функції форматованого вводу та виводу.
ПР2. Складання програм для обчислення арифметичних виразів з використанням форматованого вводу і виводу даних.
СРС. К.
4 тиждень
Л4. Поняття простих та складених операторів мови програмування С. Умовний оператор if-else: повний, скорочений. Стандартні математичні функції: синтаксис та приклади використання.
ЛЗ2. Створення програми з використанням операторів вводу/виводу, умовного оператору та математичних функцій.
СРС. К.
5 тиждень
Л5. Вкладені умовні оператори: синтаксис, приклади використання. Складені умови: логічні оператори, приклади використання. Тернарний оператор. Оператор switch.
ПР3. Складання програм з використанням умовних операторів. Прийоми для перевірки значень змінних на коректність за допомогою умовного оператора.
СРС. К.
6 тиждень
Л6. Використання структур в програмах мовою програмування С: призначення структур. опис структури, доступ к даним структури. Приклади вирішення прикладних завдань з використанням структур.
ЛЗ3. Створення програми з використанням структурованого типу даних з організацією вводу, виводу та вибірки даних.
СРС. К.
7 тиждень
Л7. Поняття циклу. Цикли з передумовою та з післяумовою. Синтаксис операторів циклу while та do-while мови програмування С. Особливості та приклади використання. Оператори continue та break.
ПР4. Створення програм з використанням структур та циклів з передумовою та з післяумовою. Прийоми організації меню користувача.
СРС. К.
8 тиждень
Л8. Цикл з параметром (з лічильником). Синтаксис оператора циклу for мови програмування С. Особливості та приклади використання.
ЛЗ4. Створення програми з використанням операторів циклів з передумовою та післяумовою. Циклічна перевірка коректності введених користувачем значень. Відстеження приналежності значення виразу певному діапазону.
МКР1. СРС. К.
9 тиждень
Л9. Поняття масиву. Одновимірні масиви. Опис та ініціалізація одновимірного масиву. Приклади роботи з одновимірним масивом.
ПР5. Створення програми з використанням циклу з параметром та одновимірного масиву. Виконання простих дій над масивом: ввід даних, перегляд, фільтрація, вивід даних.
СРС. К.
10 тиждень
Л10. Двовимірні та багатовимірні масиви. Опис та ініціалізація двовимірного масиву. Робота з двовимірним масивом. Приклади багатовимірних масивів.
ЛЗ5. Створення програми з використанням циклу з параметром з реалізацією заданого алгоритму обробки даних, які подані у вигляді одновимірного та двовимірного масивів.
СРС. К.
11 тиждень
Л11. Поняття покажчика. Типізовані покажчики. Покажчики та масиви. Статична та динамічна пам’ять. Функції для роботи з пам’яттю. Робота з динамічними масивами.
ПР6. Створення програм з використанням динамічних масивів базових та структурованих типів даних.
СРС. К.
12 тиждень
Л12. Поняття рядків у мові програмування С. Рядки як динамічні масиви. Стандартні функції для роботи з рядками. Масиви рядків.
ЛЗ6. Створення програми, що опрацьовує рядки з використанням стандартних функцій та за механізмом розгляду рядку як динамічного одновимірного масиву.
СРС. К.
13 тиждень
Л13. Створення власних функцій у програмах на мові програмування С: опис, декларація прототипу, виклик функції. Механізми передачі параметрів та повернення значень. Вказівники на функції. Поняття рекурсії.
ПР7. Створення програм з власними програмними функціями, використання методів виклику по значенню та по посиланню. Повернення значень базових та структурованих типів.
СРС. К.
14 тиждень
Л14. Поняття файлу. Особливості створення, відкриття та закриття файлу. Типи файлів. Функції для роботи з бінарними файлами та їх використання. Функції для запису, читання та пошуку у бінарних файлах.
ЛЗ7. Створення програм для роботи з бінарними файлами даних. Реалізація заданого алгоритму обробки даних у файлі.
МКР2.СРС. К.
15 тиждень
Л15. Особливості роботи з текстовими файлами: функції для роботи з файлами, приклади їх використання. Функції для запису, читання та пошуку у текстових файлах.
ПР8. Створення програм для роботи з текстовими файлами даних. Робота з текстовими файлами, що містять дані базових та структурованих типів.
СРС. К.
Процедура оцінювання
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних, практичних та лабораторних занять, виконують 2 модульні контрольні роботи.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.
Кожний модуль оцінюється у максимально можливі 50 балів:
Модульна робота складається з теоретичної частини та практичної частини - задач.
Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №1 становить 10 балів, за виконання практичної частини – 20 балів. Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №2 становить 10 балів, за виконання практичної частини – 20 балів.
Кількість питань теоретичної частини модульної роботи №1 – 5. Кожна правильна відповідь оцінюється в 2 бали. Кількість питань теоретичної частини модульної роботи №2 – 5. Кожна правильна відповідь оцінюється в 2 бали.
Кількість задач модульної роботи №1 – 2. Правильне розв’язання кожної задачі оцінюється в 10 балів. Задача вважається розв’язаною, якщо коректно визначені її структури даних, витриманий правильний набір та послідовність операторів для реалізації алгоритму, коректно записано ввід початкових даних та вивід результату. Кількість задач модульної роботи №2– 2. Правильне розв’язання кожної задачі оцінюється в 10 балів. Кожна задача вважається розв’язаною, якщо при її розв’язанні коректно визначено структури даних та алгоритм, що реалізує завдання, відсутні синтаксичні помилки.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів.
Підсумковим контролем з дисципліни є усний екзамен, білет до якого складається з теоретичної частини (2 запитання) та практичної частини (3 задачі). За бездоганну відповідь на кожне теоретичне питання студент отримує 20 балів. За бездоганне виконання кожного завдання практичної частини студент отримує 20 балів.
Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.
Семестровий модуль № 1
ЛЗ1- ЛЗ3. Оцінка за виконання – 15 балів. Термін виконання – 1-8 тиждень.
ПР1- ПР4. Оцінка за виконання – 5 балів. Термін виконання – 1-8 тиждень.
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.
Семестровий модуль № 2
ЛЗ4- ЛЗ7. Оцінка за виконання – 16 балів. Термін виконання – 9-15 тиждень.
ПР5- ПР8. Оцінка за виконання – 4 бали. Термін виконання – 9-15 тиждень.
МК2. Модульна контрольна робота – 30 балів (14 тиждень).
Умови допуску до підсумкового контролю
До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60%.
Екзамен відбувається за всіма тематичними (змістовними) модулями дисципліни.
Політика освітнього процесу
Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх незрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.
Виконаний не свій варіант завдання здобувачем не оцінюється.
Робота, яка виконана після встановлених викладачем термінів, не приймається.
Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0».
Складання/перескладання екзаменів – за встановленим деканатом розкладом.
Під час лекції здійснювати телефонні дзвінки забороняється.
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних контролів та екзамену з дисципліни.
Документи (файли), що додаються: Робоча програма навчальної дисципліни.
Література
1. Seacord, Robert C.. Effective C: An Introduction to Professional C Programming Paperback. – No Starch Press, Inc., 2020. – 272 pp.
2. Thareja, Reema. Data Structures Using C, 2nd Edition. – Oxford University Press, 2018. – 560 p.
3. Szuhay, Jeff. Learn C Programming: A beginner's guide to learning C programming the easy and disciplined way. – USA, University of Pittsburgh: Packt Publishing, 2020. – 646 p.
4. Стивен Прата. Язык программирования C++. Лекции и упражнения. 6-е издание – Диалектика, 2018. – 1248 с.
5. Васильев А.Н.: Программирование на С++ в примерах и задачах. – Москва: Издательство «Э», 2017. – 368 с.
6. Вступ до програмування мовою С++. Структури даних / Р. А. Веклич, Т. О. Карнаух, А. Б. Ставровський. К.: ВПЦ "Київський університет", 2018.
7. Куликов С. Тестирование программного обеспечения. Базовый курс. 3-е издание ©EPAM Systems. Версия книги 3.0.9 от 24.02.2021. http://svyatoslav.biz/software_testing_book/.
Методична література
1. Комлева, Н.О. Навчальний посібник по дисципліні «Основи програмування» для студентів спеціальності 121 «Інженерія програмного забезпечення» – Одеса: ОНПУ, 2020. – 256 с.
2. Комлева, Н.О. Конспект лекцій з дисципліни «Основи програмування» для студентів спеціальності 121 – «Інженерія програмного забезпечення» – Одеса: ОНПУ, 2019. – 94 с.
3. Комлева, Н.О. Методичні вказівки до лабораторних робіт з дисципліни «Основи програмування» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / Н.О. Комлева, Л.С. Жиро, Ю.М. Нестеров. – Одеса: ОНПУ, 2019. – 24 с.
4. Комлева, Н.О. Методичні вказівки до практичних занять з дисципліни «Основи програмування» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / Н.О. Комлева, Л.С. Жиро, Ю.М. Нестеров. – Одеса: ОНПУ, 2019. – 28 с.
Додаткова література
1. Prinz, Peter. C in a Nutshell: The Definitive Reference, 2nd Edition/ Peter Prinz, Tony Crawford. – USA, O'reilly Media, Kindle Edition, 2015. – 826 p.
2. Кочан, С. Программирование на языке С. – М.: Изд. дом «Вильямс», 2007. – 496 с.
3. Павловська, Т.О. С / С++: Програмування на мові високого рівня. – СПб .: Пітер, 2005. – 461 с. Режим доступу http://cph.phys.spbu.ru/documents/First/books/7.pdf
4. Пахомов Б.І. С / С ++ і MS Visual C ++ 2010 року для початківців. СПб.: БХВ-Петербург, 2008. Режим доступу: https://proklondike.net/books/cpp/pahomov-c-i-ms-visual-c-2010-dlya-nach...
5. Кернiган, Браян В. Мова програмування C, 2-е видання/ Браян В. Кернiган, Денiс М. Рiчi. Перекл. В. Цибуляк. – К.: Диалектика-Вильямс, 2012. – 232 с.
6. Зубенко, В.В. Програмування: навчальний посібник / В.В. Зубенко, Л.Л. Омельчук. – К.:Видавничо-поліграфічний центр “Київський університет”, 2011. - 623 с.
7. Татарчук, Д. Д. Програмування мовами С та С++: навч. посіб. / Д.Д. Татарчук, Ю.В. Діденко. – К., 2012. – 112 с.
8. Ліберті, Джесс. Опановуй самостійно С ++. 3 і-е. М.: Вільямс. – 2000. Режим доступу: https://royallib.com/read/liberti_dgess/osvoy_samostoyatelno_s_za_21_den...
9. Шілдт, Г. Повний довідник по С ++. 4-е видання. – М .: Вільямс. – 2006. – 800 с. Режим доступу: https://sharpened.ucoz.ru/lib/polnyj_spravochnik_po_c-gerbert_shildt-200...
10. Дейтел, Х. М. Як програмувати на С ++ / Х. М. Дейтел, П. Дж. Дейтел. – М.: Біном, 2008. – 1454 с. Режим доступу: http://lib.maupfib.kg/wp-content/uploads/2015/12/c-.pdf
11. Страуструп, Бйорн. Мова програмування С ++. – М.: Біном, 2011. – 1 136 с. Режим доступу: http://8361.ru/6sem/books/Straustrup-Yazyk_programmirovaniya_c.pdf
12. Азарян А.А., Карабут Н.О., Козикова Т.П., Рибальченко О.Г., Трачук А.А., Шаповалова Н.Н.: Основи алгоритмізації та програмування: Навчальний посібник. – Кривий Ріг: Вид-во ОктанПринт, 2014. - 308 с.
13. Мейерс С. Эффективный и современный C++. / С. Мейерс. . М.: Вильямс, 2016.
14. Комлева Н.О. Адаптивне управління системою навчання програмного комплексу «Handy Soft Maker». – Вчені записки ТНУ імені В.І. Вернадського. Серія: технічні науки. – Київ, 2018. – Том 29 (68) № 3 Ч. 1. – С. 146 – 151.
15. Шпак, З. Я. Програмування мовою С. – Л.: Львівська політехніка, 2011. – 436 с.