Курсът “Математически основи на програмирането” е сред базовите курсове за професиите “Програмист“, “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания.
Курсът е препоръчително да се провежда след задълбочено навлизане в програмирането (след курсовете “Увод в програмирането“, “Програмиране“, “Увод в алгоритмите и структурите от данни” и “Увод в обектно-ориентираното програмиране (ООП)“) и след преминаване на базова математическа подготовка на училищно ниво.
Настоящата учебна програма е приложима както за професионалните гимназии, така и за профилираните гимназии и за други учебни заведения.
Разпределение
- 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
|
Свободно учебно съдържание
Към момента няма разработено учебно съдържание за този курс.
Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.