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

1. Метою викладання дисципліни «Основи алгоритмізації та програмування» є вивчення теоретичних основ та здобуття практичних навичок програмування, зокрема освоєнні парадигм структурного та об'єктно-орієнтованого програмування, концепцій інкапсуляції, спадкування та поліморфізму.

 

2. Основні завдання вивчення дисципліни:

  розрізняти  основні принципи структурного та об'єктно-орієнтованого програмування;

  знати стандартні типи даних та правила зберігання в пам’яті змінних різних типів;

  опанувати принципи модульного програмування, синтаксис перевантаження функцій і операторів;

  розуміти особливості роботи з динамічними структурами даних;

  розуміти основні концепції об'єктно-орієнтованого програмування (інкапсуляція, спадкування, поліморфізм);

  знати правила визначення класів та ієрархій класів, поняття абстрактного класу та віртуальної функції;

  розробляти об'єктно-орієнтований код для вирішення поставленої задачі згідно технічного завдання;

  розробляти власні класи та ієрархії класів з дотриманням концепцій об'єктно-орієнтованого програмування;

  застосовувати механізм обробки виняткових ситуацій;

  проектувати діаграми класів мовою UML (Unified Modeling Language);

  розробляти ефективні алгоритми для вирішення поставлених задач;

  використовувати класи, ітератори та алгоритми бібліотеки стандартних шаблонів STL;

  розробляти власні статичні та/або динамічні бібліотеки підпрограм з урахуванням особливостей налаштувань програмного проєкту;

  підключати та використовувати сторонні бібліотеки підпрограм, зокрема бібліотеку NTL, яка включає велику кількість класів для вирішення задач теорії чисел та алгебри, що використовуються в сучасних криптографічних алгоритмах;

  проводити тестування та визначати ефективність алгоритмів та програм.

Для успішного опанування курсу необхідні базові знання з інформатики та математики, отримані в рамках загальної середньої освіти.