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

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

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

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

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

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

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

Паралелно (асинхронно изпълнение)

  • Модели на паралелно изпълнение, паралелизъм, конкурентно изпълнение, превключване между задачи
  • Примери за конкурентно изпълнение на задачи
3
2

Нишки и многонишковост (multithreading)

  • Нишки, многонишково програмиране, стартиране, спиране и управление на нишки
  • Концепция за “басейн от нишки” (thread pool)
  • Ползи и вреди от нишките
  • Упражнения: конкурентно изпълнение с нишки
6
3

Синхронизация между асинхронни задачи

  • Синхронизация между конкурентно изпълняващи се задачи
  • Критични секции, заключване, семафори
  • Мъртва хватка (deadlock)
  • Алгоритми за синхронизация
  • Хардуерна поддръжка на алгоритмите за синхронизация
  • Модел “производител / консуматор”
  • Упражнения: реализация на “производител / консуматор”
12
4

Задачи и асинхронно изпълнение

  • Задачи и асинхронно изпълнение (например с async / await или друг API за задачи)
  • Упражнения: консумация на асинхронно API
6
5

Разработка на практически проект

  • Работа по практически проект – конкурентна система
21
6

Защита / оценяване на проектите

  • Оценяване на практическите проекти
3
7

Резерв

3

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

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

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