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

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

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

  • 174 учебни часа (29 седмици по 6 часа)
  • 12 клас, първи и втори учебен срок

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

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

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

Запознаване с TCP/IP и сокети

  • Протоколи от TCP/IP protocol suite
  • Комуникация по сокет
  • Протокол WebSocket
  • Упражнения: работа с инструменти за анализ на мрежов трафик и мрежови протоколи
6
2

HTTP протокол

  • HTTP заявки и отговори
  • HTTP хедъри
  • GET и POST методи
  • Упражнения с curl, Postman и други инструменти
6
3

Запознаване с HTML

  • Език HTML: основни тагове
  • Създаване на уеб страници
  • Форми, полета, изпращане на форми
  • Упражнения: създаване на уеб страници и уеб форми
12
4

HTTP сървъри и сервиране на статични HTML файлове

  • Инсталиране и конфигуриране на HTTP server
  • Сервиране на статични файлове
  • Упражнение: инсталация и настройка на HTTP сървър, сервиране на статично съдържание
6
5

Запознаване с MVC технологична рамка

  • Запознаване с някой MVC framework за уеб разработка
  • Упражнение: изграждане на уеб приложение с използване на MVC framework
12
6

Свързване на HTTP сървър с backend език за програмиране (PHP / Python / Java / C# / JS / друг)

  • Обработка на HTTP заявка и връщане на HTTP отговор
  • Обработване на данни от HTML форма
  • Упражнения: обработка на данни, изпратени от HTML форма
6
7

Комуникация с база от данни

  • Комуникация с база от данни посредством SQL или ORM заявки
  • Реализиране на CRUD заявки (създаване, четене, промяна и изтриване на данни) в уеб приложенията
  • Упражнения: изграждане на просто приложение с CRUD заявки (например TODO List)
12
8

Шаблонни езици от страна на сървъра

  • Генериране на HTML документи посредством backend темплейтен език (server-side templating)
  • Преизползване на фрагменти
  • Упражнения: изграждане на уеб приложение с използване на сървърен език за шаблони
12
9

MVC архитектура

  • Изграждане на мини MVC framework за уеб приложения: front controller, routing, views, controllers, models
  • Разделяне на изградените до момента уеб приложения по MVC модела
  • Упражнения: изграждане на мини MVC framework
18
10

Управление на състоянието в уеб приложенията

  • HTTP сесии
  • Бисквитки (cookies)
  • Storage – къде пазим сесии и бисквитки?
  • Упражнения: имплементация на home / login / user home / logout
6
11

Автентикация и авторизация

  • Login / logout в уеб приложение
  • Роли (администратор, потребител, анонимен)
  • Съхранение на пароли в back-end системи
  • Упражнения: имплементация на home / register / login / user home / admin home / logout
6
12

Сигурност на уеб приложенията

  • Сигурност на уеб приложенията и добре известни атаки
  • XSS (cross site scripting) и HTML escaping
  • SQL injection и параметрични SQL заявки
  • CSRF (cross-site request forgery) и anti-forgery token
  • Най-важните 10 уязвимости според OWASP
  • Упражнения:
    • Инжектиране на скрипт чрез XSS атака
    • Промяна на базата данни чрез SQL injection атака
    • Промяна на базата данни чрез CSRF атака
    • Речникова атака на хеширани пароли
6
13

Създаване на REST API

  • Имплементация на CRUD API върху данни
  • HTTP статус кодове
  • Упражнения: имплементация на REST услуги с CRUD операции
6
14

Консумиране на REST API

  • Извикване на REST заявки с JavaScript и AJAX
  • Упражнения: добавяне / изтриване на бележки в TODO list чрез AJAX заявка към Firebase или друг back-end service
6
15

Внедряване на проект (deployment)

  • Качване на уеб приложение на хостинг, VPS или PaaS платформа
  • Пренасяне на базата данни, кода на приложението, настройки
  • Упражнение: deployment на проект в Heroku или друга cloud платформа за приложения
6
16

Разработване на практически проект (индивидуално)

  • Разработка на практически уеб проект
  • Уеб приложение със сървърна част (back-end) и клиентска част (front-end)
30
17

Защита на практически проект

  • Разработените проекти се защитават пред учителя
12
18 Резерв 6

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

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

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

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