Курс “Математически основи на програмирането” – професия “Приложен програмист”

Курсът “Математически основи на програмирането” е сред базовите курсове за професиите “Програмист“, “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания.

Курсът е препоръчително да се провежда след задълбочено навлизане в програмирането (след курсовете “Увод в програмирането“, “Програмиране“, “Увод в алгоритмите и структурите от данни” и “Увод в обектно-ориентираното програмиране (ООП)“) и след преминаване на базова математическа подготовка на училищно ниво.

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

Разпределение

  • 72 учебни часа (18 седмици по 4 часа)
  • 11-12 клас

Учебна програма

Настоящата учебна програма по “Математически основи на програмирането” е разработена от експертната група към МОН по проект “Професия приложен програмист”.

Наименование на разделите
Минимален брой часове
1. Бройни системи и представяне на числата

  • Бройни системи и преобразуване между тях
  • Представяне на цели и дробни числа
  • Побитови операции и работа с битови маски
  • Представяне на текст в паметта
  • Представяне на цветове, пиксели и графични изображения в паметта

Примерни упражнения:

  • Програма за преминаване от десетична в двоична и шестнадесетична бройна система и обратно
  • Програма за рисуване върху виртуален екран, в който всеки пиксел е един бит, а редовете от екрана са представени чрез поредица от 32-битови числа (чертане на бял / черен пиксел, хоризонтална и вертикална линия, правоъгълник)
  • Програма за рисуване на точки и правоъгълници в RGB матрица от пиксели (с предварително налична функционалност за визуализация на екрана)
8
2. Базови понятия от линейната алгебра

  • Вектори и матрици, операции върху тях
  • Приложение на вектори и матрици в компютърните науки (стрингове, изображения, движение в игрите)
  • Ротация и транслация с матрици

Примерни упражнения:

  • Програма за четене, съединяване и печатане на null-terminated string, записан като масив от байтове
  • Програма за визуализация на движението на билярдна топка в правоъгълно поле по зададен начален вектор на движение и скорост
  • Програма за визуализация на часовник със стрелки и смятане на движението на стрелките
  • Ротация и транслация с матрици
  • Приложение на матриците при филтри за изображение
20
3. Базови понятия от дискретната математика

  • Множества, функции, релации
  • Булева алгебра: таблица на истинност, конюнкция, дизюнкция, инверсия, изключващо или, събиране по модул 2

Упражнения:

  • Примерни множества и работа с тях
  • Работа с изрази от булева алгебра
  • Да се имплементира структура от данни “множество” с операции сечение, обединение, разлика и други
12
4. Крайни автомати и регулярни граматики

  • Крайни автомати, регулярни граматики и приложението им в компютърните науки
  • Парсери, синтактични анализатори и регулярни изрази

Упражнения:

  • Да се напише програма за разпознаване на число (синтактичен анализатор, базиран на краен автомат)
  • Да се напише програма за разпознаване на число (чрез използване на готово API за регулярни изрази)
  • Да се напише програма, която изважда всички e-mail адреси от даден текст (парсер за мейли)
16
5. Подготовка за изпит – решаване на задачи 4
6. Практически изпит – задачи 4

Общ минимален брой часове

64
 

Резерв часове

8
  Общ брой часове

72

Свободно учебно съдържание

За този курс няма разработено учебно съдържание от СофтУни фондацията. Можете да разгледате учебно съдържание от Петър Петров (учител по информатика от гр. Бургас): https://github.com/BG-IT-Edu/Free-Content/tree/main/prpetrov.

Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.