Програмування. Частина 1. Основи програмування - Робоча програма навчальної дисципліни (Силабус)
Реквізити навчальної дисципліни
Рівень вищої освіти | Перший (бакалаврський) |
---|---|
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інформаційні управляючі системи та технології |
Статус дисципліни | Обов’язкова (нормативна) |
Форма навчання | заочна/дистанційна |
Рік підготовки, семестр | 1 курс, осінній семестр |
Обсяг дисципліни | 6 кредитів ECTS / 180 годин (6 годин – Лекції, 6 годин – Лабораторні, 168 годин – СРС) |
Семестровий контроль/ контрольні заходи | Залік |
Розклад занять | http://rozklad.kpi.ua/Schedules/ScheduleGroupSelection.aspx |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів |
Лектор: ас., Нестерук Андрій Олександрович, aonesterukr@gmail.com, Лабораторні: ас., Нестерук Андрій Олександрович, aonesterukr@gmail.com, |
Розміщення курсу | https://campus.kpi.ua |
Програма навчальної дисципліни
Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Опис дисципліни. Відповідно до стандарту вищої освіти зі спеціальності 126 Інформаційні системи та технології галузі знань 12 Інформаційні технології для першого (бакалаврського) рівня вищої освіти та освітньо-професійної програми першого (бакалаврського) рівня вищої освіти дисципліна «Програмування. Частина 1. Основи програмування» формує (ЗК01) здатність до абстрактного мислення, аналізу та синтезу, (ЗК03) здатність спілкуватися з представниками інших професійних груп різного рівня (з експертами з інших галузей знань/видів економічної діяльності), (ЗК05) здатність оцінювати та забезпечувати якість виконуваних робіт, (СК01) здатність розробляти та застосовувати ІСТ, необхідні для розв’язання стратегічних і поточних задач, (СК03) здатність проектувати інформаційні системи з урахуванням особливостей їх призначення, неповної / недостатньої інформації та суперечливих вимог, (СК04) здатність розробляти математичні, інформаційні та комп’ютерні моделі об’єктів і процесів інформатизації, (СК05) здатність використовувати сучасні технології аналізу даних для оптимізації процесів в інформаційних системах, (СК09) здатність до розв’язання оптимізаційних задач при проектуванні інформаційних систем та технологій, (СК11) володіння концепціями та атрибутами якості програмних систем (надійність, безпека, мобільність, послідовність, зручність, точність, розширення, модифікованість та ін.) у тому числі ролі людини, процесів, методів, інструментів та технологій забезпечення якості, (РН01) відшуковувати необхідну інформацію в науковій і технічній літературі, базах даних, інших джерелах, аналізувати та оцінювати цю інформацію, (РН03) приймати ефективні рішення з проблем розвитку інформаційної інфраструктури, створення і застосування ІСТ, (РН05) визначати вимоги до ІСТ на основі аналізу бізнес-процесів та аналізу потреб зацікавлених сторін, розробляти технічні завдання, (РН13) на базі математичних моделей та обраного критерію оптимальності виконувати оптимізацію процесів в інформаційних системах досліджувати алгоритми розв’язання задач оптимізації.
Вивчення дисципліни "Програмування. Частина 1. Основи програмування" має велику актуальність і важливість у сучасному світі з багатьма обґрунтованими причинами. Сучасний світ стає дедалі більш цифровим. ІТ-технології впроваджуються в усі галузі економіки, включаючи медицину, освіту, промисловість, транспорт та навіть побутові потреби людей. Програмування є основою для створення будь-яких цифрових продуктів, від додатків до складних інформаційних систем. Тому базові знання програмування є необхідними для будь-якого фахівця, який бажає ефективно працювати в умовах сучасного ринку праці. Попит на кваліфікованих програмістів та розробників програмного забезпечення продовжує зростати. Оволодіння основами програмування дає можливість студентам зробити перший крок до здобуття професії, яка є однією з найбільш затребуваних і високооплачуваних у світі. Навчання основам програмування забезпечує фундамент, на якому можна будувати більш складні знання в майбутньому. Знання основ програмування є частиною загальної цифрової грамотності, яка стає такою ж важливою, як уміння читати та писати. Вміння розуміти, як працюють алгоритми, комп'ютери та програми, є важливим не лише для професійної діяльності, а й для повсякденного життя. Розуміння програмних процесів дозволяє користувачам краще взаємодіяти з технологіями, робити їх більш ефективними для своїх потреб.
Предмет навчальної дисципліни: вивчення базових концепцій та принципів розробки програмного забезпечення, включаючи створення алгоритмів, основні структури даних, контроль виконання програм та відлагодження коду.
Міждисциплінарні зв’язки. Дисципліна «Програмування. Частина 1. Основи програмування» базується на дисциплінах: математичка, логіка та алгоритми, інформаційні технології, англійська мова.
Мета навчальної дисципліни. Метою дисципліни є забезпечення студентів фундаментальними знаннями та навичками, необхідними для розуміння, розробки та аналізу програмного забезпечення: оволодіння базовими знаннями та навичками програмування, розвиток логічного та алгоритмічного мислення, ознайомлення з основними структурами даних та методами їх використання, навчання створенню, відлагодженню та тестуванню програм, закладання основ для подальшого вивчення складніших мов програмування та технологій розробки програмного забезпечення.
Основні завдання навчальної дисципліни
Знання:
розуміння принципів створення алгоритмів та способів їх використання для вирішення задач;
робота з середовищами розробки та інструментами програмування;
розуміння принципів роботи з вхідними та вихідними даними;
розуміння основ обробки помилок та налагодження програм;
розуміння основ об’єкно-орієнтованого програмування.
Уміння:
створення простих програм для базових обчислень;
розробка алгоритмів для вирішення поставлених задач;
структурувати код через використання функцій та циклів;
працювати з текстовими та бінарними файлами.
Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)
Пререквізити: здатність застосовувати знання у практичних ситуаціях, навички використання інформаційних і комунікаційних технологій, здатність застосовувати логічне мислення та вирішувати проблеми шляхом побудови алгоритмів, навички використання комп'ютерних технологій для вирішення практичних завдань, знання основних принципів побудови алгоритмів та базових обчислювальних процесів.
Постреквізити: знання основних концепцій та парадигм програмування, розуміння структури програм і методів їх оптимізації, здатність розробляти та відлагоджувати програми для вирішення різноманітних задач, навички роботи з сучасними інструментами програмування, включаючи бібліотеки, модулі та системи контролю версій, здатність організовувати та структурувати програмні проекти, розробляти алгоритми та застосовувати їх у програмуванні.
Після проходження дисципліни студенти зможуть застосовувати методи та засоби програмування в повсякденній діяльності.
Зміст навчальної дисципліни
Лекційні заняття
Вступ до програмування.
Базові концепції програмування.
Вступ до структури даних та ООП.
Лабораторні заняття
Створення першої програми.
Цикли та робота зі змінними. Створення блок-схем.
Функції та основи ООП.
Навчальні матеріали та ресурси
Базова література
Іващенко, І. (2020). Основи програмування. Київ: Видавництво "Освіта". 356 с.
Бєлов, В. (2019). Програмування для початківців: Python. Харків: Видавництво "Фоліо". 289 с.
Допоміжна література
Matthes, E. (2016). Python Crash Course: A Hands-On, Project-Based Introduction to Programming. San Francisco: No Starch Press. 560 p.
Hunt, A., & Thomas, D. (1999). The Pragmatic Programmer: Your Journey to Mastery. Reading, MA: Addison-Wesley Professional. 352 p.
Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Upper Saddle River, NJ: Prentice Hall. 464 p.
Навчальний контент
Методика опанування навчальної дисципліни (освітнього компонента)
Лекційні заняття
№ з/п | Назва теми лекції та перелік основних питань | Кількість ауд. годин |
---|---|---|
1 | Лекція 1. Вступ до програмування. Історія розвитку програмування. Визначення програмування в залежності від розуміння. Базові поняття в сфері програмування. Мета програмування. Життєвий цикл розробки програмного забезпечення. Методи розробки програмного забезпечення. Парадигми програмування. Інструменти для програмування. Завдання на СРС. Вплив архітектури комп’ютера на продуктивність програм. Огляд існуючих мов програмування для різних задач та сфер діяльності людини. Використання мов програмування в науці та дослідженнях. |
2 |
2 | Лекція 2. Базові концепції програмування. Змінні та типи даних. Оператори. Умовні оператори. Логічні оператори. Умовні конструкції для прийняття рішень. Цикли та ітерації для повторення завдань. Функції та підпрограми для оптимізації програми. Робота з файлами. Завдання на СРС. Робота з великими числами та оптимізація даних. Робота з JSON та XML файлами. Обробка помилок під час роботи з файлами. Регулярні вирази для роботи з текстовими даними. |
2 |
3 | Лекція 3. Вступ до структури даних та ООП. Поняття структури даних. Основні типи структури даних. Введення в об’єктно-орієнтоване програмування (ООП). Основні поняття та принципи ООП. Завдання на СРС. Взаємодія структур даних та ООП. Порівняння ООП з іншими парадигмами програмування. Використання структур даних та ООП для вирішення реальних задач. |
2 |
**
**
Лабораторні заняття
№ | Назва лабораторної роботи | Кількість ауд. годин |
---|---|---|
1 | Лабораторна робота 1. Створення першої програми. Отримати загальне уявлення та отримати навички в роботі з середовищами розробки. Ознайомитися з мовою програмування Python. Отримати загальне уявлення про створення найпростішої програми. Робота з бібліотеками. Створення документації до програми. |
2 |
2 | Лабораторна робота 2. Цикли та робота зі змінними. Створення блок-схем. Отримати загальне уявлення та набути навички в реалізації циклів, роботі зі змінними та керуючими конструкціями. Створення блок-схем алгоритмів. |
2 |
3 | Лабораторна робота 3. Функції та основи ООП. Отримати загальне уявлення про функції та ООП та набуття навичок в створенні функцій та створенні найпростіших програм з використанням ООП, а саме створення класів та методів, а також їх наслідування. |
2 |
Самостійна робота студента/аспіранта
|
Назва теми, що виноситься на самостійне опрацювання | Кількість годин СРС |
---|---|---|
1 | Основи програмування – термінології та концепції. | 6 |
2 | Компілятори та інтерпретатори, принципи роботи. | 6 |
3 | Вплив пам’яті комп’ютера на програмування. | 6 |
4 | Числові системи – двійкова, вісімкова та шістнадцяткова. | 6 |
5 | Архітектура комп’ютера. | 6 |
6 | Поняття асинхронного програмування. | 6 |
7 | Обробка даних процесором. | 6 |
8 | Типізація даних у програмуванні. | 6 |
9 | Робота виклику функцій та повернення ними даних. | 6 |
10 | Основи алгоритмів. | 6 |
11 | Алгоритми пошуку в рядках. | 6 |
12 | Алгоритми злиття та сортування. | 6 |
13 | Швидке сортування даних. | 6 |
14 | Основні поняття в структурі даних. | 6 |
15 | Базові поняття про дерева та їх структуру. | 6 |
16 | Введення в поняття графів. | 6 |
17 | Хешування даних. | 6 |
18 | Пам’ять на основі списків. | 6 |
19 | Черги та двосторонні черги. | 6 |
20 | Основні поняття про ООП. | 6 |
21 | Множинне наслідування. | 6 |
22 | Внутрішні класи. | 6 |
23 | Перевантаження методів. | 6 |
24 | Функціональне програмування | 6 |
25 | Декларативне програмування | 6 |
26 | Програмування подій. | 6 |
27 | Метапрограмування. | 6 |
28 | Модульність програм в програмуванні. | 6 |
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Система вимог, які ставляться перед студентом:
правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та лабораторних заняттях;
модульні контрольні роботи виконуються без застосування допоміжної інформації з Інтернет, дистанційного курсу на платформі Сікорський, конспекту;
політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Прикладні задачі машинного навчання».
Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Рейтинг студента з дисципліни складається з балів, що він отримує за:
виконання та захист 3 лабораторних робіт;
виконання 1 модульної контрольної роботи (МКР).
Система рейтингових балів та критерії оцінювання
Лабораторні роботи:
«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 20 балів;
«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 16 балів;
«задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 12 балів;
«незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.
Модульні контрольні роботи:
«відмінно», повна відповідь (не менш ніж 90% потрібної інформації) – 40 балів;
«добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 32 бали;
«задовільно», неповна відповідь (але не менш ніж 60% потрібної інформації) та незначні помилки – 24 бали;
«незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0 балів.
Максимальна сума вагових балів контрольних заходів протягом семестру складає:
R=3*rлаб+rмкр=3*20+40=100.
Студенти, які наприкінці семестру мають рейтинг менше 60 балів, а також ті, хто хоче підвищити оцінку, виконують залікову контрольну роботу.
Контрольна робота складається з 4 питань. Кожне оцінюється 25 балами.
Сума балів за кожне з чотирьох питань ()переводиться до залікової оцінки згідно з таблицею :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Залік:
Сума стартових балів і балів за модульну контрольну роботу переводиться до залікової оцінки згідно з таблицею:
Бали | Оцінка |
---|---|
95-100 | відмінно |
85-94 | дуже добре |
75-84 | добре |
65-74 | задовільно |
60-64 | достатньо |
Менше 60 | незадовільно |
Невиконання семи лабораторних робіт та виконання МКР на оцінку «незадовільно» | не допущено |
Робочу програму навчальної дисципліни (Силабус):
Складено асистент, Нестерук Андрій Олександрович
Ухвалено кафедрою ІСТ (протокол № 16 від 12.06.2024 р.)
Погоджено Методичною комісією факультету[1] (протокол № 10 від 21.06.2023 р.)
[1] Методичною радою університету – для загальноуніверситетських дисциплін.