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

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

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

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

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

  • 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

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

Към момента няма разработено учебно съдържание за този курс.

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