Курсът “Интернет програмиране” е специализирано обучение по практическа уеб разработка и се изучава в професиите “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания. Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.
Разпределение
- 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 |
Свободно учебно съдържание
Всички учители, преподаватели и ентусиасти ще могат да изтеглят свободно учебно съдържание за курса “Интернет програмиране” (Internet-Programming-IT-Kariera-2020.zip), което включва:
- Презентации за всяка тема
- Добре разписани задания за упражнения за всяка тема
- Примерно задание за практически курсов проект
Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.