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

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

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

  • 162 учебни часа (18 седмици по 4 часа + 18 седмици по 5 часа)
  • 11 клас, първи и втори учебен срок

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

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

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

Увод в разработката на софтуер – преглед на трислойния модел

  • Слой за данни
  • Слой за услуги
  • Слой за UI
  • Упражнение: създаване на просто трислойно приложение (конзолно)
9
2

Увод в концепцията за тестване – писане на “unit” тестове

  • Какво е регресия и защо е опасна?
  • Покриване на кода с тестове
  • Упражнение: писане на unit тестове
9
3

Увод в концепцията за дебъгване – откриване и отстраняване на проблеми

  • Запознаване с различни методики за търсене на бъг
  • Използване на дебъгер
  • Добри практики при дебъгване и отстраняване на бъгове – писане на тестове, които покриват проблема
  • Упражнение: дебъгване на код с грешки, оправяне на грешките и писане на unit тестове
9
4

Увод в концепцията за рефакториране и правене на “инкрементални промени”

  • Основни инструменти и похвати за рефаткориране на код
  • Запознаване с идеята за “style guides” и “linters”
  • Запознаване с идеята за “grep на парче код”, “jump into functions” и “find usages”
  • Добри практики при рефакториране чрез писане на тестове. Как да направим кода тестваем?
  • Упражнение: рефакториране на недобре написан код, промяна на кода да стане тестваем, покриване с тестове
9
5

Увод в инструментите за разработка – IDE, текстови редактори, командни инструменти

  • Каква е разликата между IDE и текстов редактор?
  • Как може да сме продуктивни в IDE-то? Допълнителни разширения и клавишни комбинации
  • Как може да сме продуктивни в текстовия редактор? Допълнителни разширения и клавишни комбинации
  • Използване на базови инструменти за търсене и промяна на кода.
  • Обобщение на наученото до сега
  • Упражнение: работа с по-сложните функции на текстов редактор и IDE средата
9
6

Използване на външни “3rd party” библиотеки. Пакетни мениджъри

  • Търсене, инсталиране и употреба на външни библиотеки, които решават често срещани проблеми.
  • Четене, ориентация и търсене в документация на външна библиотека.
  • Запознаване с концепцията за “пакетен мениджър”. Ниво операционна система и ниво език за програмиране.
  • Упражнение: инсталиране и използване на външни библиотеки
9
7

Свързване на приложения с бази от данни

  • Използване на “клиентски библиотеки” за свързване с база от данни
  • Четене на конфигурационни файлове
  • Писане на SQL заявки през език за програмиране
  • Изпълняване на SQL заявки в транзакции през език за програмиране
  • Запознаване с идеята зад “prepared statements”
  • Създаване на CRUD приложения върху база от данни
  • Упражнения: създаване на CRUD прложение с база от данни (конзолно)
18
8

Създаване на приложения с няколко потребителски интерфейса. Дефиниране на APIs

  • Разделяне на приложението на три ясно отделени слоя – за данни, за услуги и за потребителски интерфейс.
  • Моделиране на приложението така, че да не е зависимо от потребителския интерфейс – създаване на публичен API
  • Създаване на 2 различни потребителски интерфейса за едно и също приложение
  • Упражнение: изграждане на трислойно приложение с публичен API, с конзолен и UI или уеб клиент
18
9

Ниво на абстракция – дизайн и интерфейс на приложение

  • Понятие за “публичен” и “частен” интерфейс
  • Понятие за “ниво на абстракция”
  • Използване на ORM за достъп до база от данни. Връзка между релационен и обектен модел
  • Упражнение: изграждане на трислойно приложение с публичен API, който извършва CRUD операции към база данни чрез ORM framework.
18
10

Създаване на курсова работа в екип

  • Трислойно приложение с публичен API
  • Поне два потребителски интерфейса
  • Използване на база данни
  • Използване на външни библиотеки
  • Пълно покритие с unit тестове
  • Спазване на “style guide”
54
11

Защита на курсова работа

  • Code review
  • Презентация
9

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

Всички учители, преподаватели и ентусиасти ще могат да изтеглят свободно учебно съдържание за курса “Разработка на софтуер”, което включва:

  • Презентации за всяка тема
  • Добре разписани задания за упражнения за всяка тема
  • Примерно задание за практически курсов проект

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