Двухгодичный курс обучения можно разбить на 4 части, или 4 семестра обучения. Каждый семестр должен соответствовать этапу в разработке web-приложения. Цель всего курса одна - это разработка качественного web-приложения, но на каждый этап возлагаются свои задачи и цели. Сперва рассмотрим цели и задачи каждого этапа:
1. Начало разработки проекта. Так на первом этапе студенты объединяются в команды, определяются с темой проекта и готовят дизайн своего будущего проекта.
2. Бэкенд. Задача второго этапа - реализация серверной части web-приложения: бэкенд и база данных.
3. Фронтенд. Это этап вёрстки, клиентского программирования и тестированя web-приложения.
4. Управление проектом. Разработка web-приложения - это бесконечный процесс. И на этом этапе (когда web-приложение уже есть), необходимы дисциплины управления, как проектом, так и персоналом.
Все дисциплины курса связаны между собой.
Дисциплины первого семестра - "Дизайн", "Графика", "Юзабилити", "Основы визуального дизайна". Кроме того, на преподавателей возлагается задача по формированию команд.
Дисциплины второго семестра - "Базы данных", "Серверные технологии разработки" и "Тестирование". Серверная часть приложения реализуется с помощью языка программирования PHP. Студенты должны научиться создавать базу данных, таблицы, вставлять данные, удалять, редактировать и выводить по условиям (CRUD) и пользоваться агрегатными функциями SQL. На преподавателя дисциплины "Серверные технологии разработки" возлагается обязанность - научить студентов преобразовывать данные из базы данных в формат JSON, никаких других ответов (в том числе и в формате HTML) от сервера быть не должно. Команда разрабатывает RESTfull API, которое будет использовано фронтенд-фрэймворком на следующем этапе. Для разработки RESTfull API лучше использовать фрэймворк Laravel. Соответственно, кроме изучения основ PHP, необходимо изучение этого фрэймворка. На этом этапе пока еще нет полноценного web-приложения, но уже необходимо внедрять дисциплину "Тестирования" для тестирования запросов (request) и ответов сервера (response). Для тестирования запросов можно воспользоваться инструментом Postmen.
Дисциплины третьего семестра - "Вёрстка", "Проектирование динамических страниц", "Безопасность web-приложений" и "Программирование на языке Python". Данный этап начинается с вёрстки главной страницы, студенты изучают html, css и основы JavaScript. На дисциплине "Проектирование динамических страниц" студенты используют разработанный на предыдущем этапе API, изучают продвинутое использование JavaScript, Node.js и фронтенд-фрэймворк, например Vue. Язык программирования Python может быть использован для парсинга данных и для написания скриптов по взлому "Безопасность web-приложения".
Дисциплины четвёртого семестра - "Разработка web-приложений", "Управление проектом" и "Бизнес-анализ". Дисциплина "Разработка web-приложений" подразумевает более тесное взаимодейтсвие фронтенд и бэкенд частей приложения. Подразумевается углубленное изучение Laravel и Vue, а также взаимодействие этих фрэймворков. На дисциплине "Управление проектом" студенты изучают программные инструменты для управления проектом, например CRM Bitrix24 или Jira, а также и методологии гибкой разработки - Ajile и Scrum.
Другие дисциплины, от которых не зависит разработка проекта, могут быть добавлены в учебный процесс в любой семестр.
По окнчании курса команда должна презентовать и защитить свой проект. Каждый студент "защищает" свою часть разработки, в соответствии с назначенной ролью, но презентация может быть обще-командная.