Бэкенд-разработчик Python (Начальный уровень)

Освой профессию бэкенд-разработчика с нуля! Научишься создавать серверные приложения на Python, работать с базами данных и API. Курс подходит для школьников и студентов — практика с первого урока, проекты и поддержка ментора. Стань частью IT-мира уже сегодня!

Описание программы:
Курс предназначен для школьников и студентов, желающих освоить профессию бэкенд-разработчика с нуля. Программа включает базовые и практические аспекты разработки серверной части приложений на языке Python.

 

Что предстоит пройти на курсе:

  • Введение в программирование и основы Python
  • Работа с переменными, циклами, функциями
  • Основы работы с Git и системой контроля версий
  • Создание простых веб-приложений с Flask
  • Работа с базами данных (SQLite)
  • Основы REST API
  • Итоговый проект: мини-сервис с регистрацией, авторизацией и хранением данных
 

Ожидаемые результаты после прохождения:

Слушатель должен уметь:

  • Синтаксис Python
  • Принципы построения бэкенд-архитектуры
  • Как работать с базами данных и API
 

Слушатель должен знать:

    • Писать простые скрипты и веб-приложения
    • Использовать Git для управления кодом
    • Реализовывать CRUD-операции и обрабатывать HTTP-запросы
 

Дополнительно:
По окончании курса выдается сертификат и предоставляется возможность доработать портфолио с помощью преподавателя.

  1. Какой возрастной диапазон у целевой аудитории курса?
    Курс рассчитан на школьников и студентов, начиная с 12 лет. Главное условие — желание учиться программированию и развиваться в IT.

  2. Нужны ли предварительные знания Python для прохождения курса?
    Нет, курс стартует с основ программирования, поэтому никаких предварительных знаний не требуется.

  3. Какие инструменты понадобятся для обучения?
    Понадобится компьютер с установленным Python, редактор кода (например, VS Code), Git и доступ к интернету для выполнения заданий и общения с преподавателем.

  4. Сколько длится курс?
    Продолжительность курса составляет 3 месяца при интенсивности 2–3 занятия в неделю по 1,5 часа.

  5. Есть ли практические проекты в курсе?
    Да, каждая тема завершается мини-проектом, а финальным этапом станет разработка собственного веб-сервиса с базой данных.

  6. Какие темы охватывает курс?
    Курс включает: основы Python, работу с Git, создание веб-приложений на Flask, работу с БД SQLite, REST API и итоговый проект.

  7. Как проходят занятия?
    Занятия проводятся онлайн в формате живых вебинаров или записей лекций, дополненных практическими заданиями и обратной связью от ментора.

  8. Можно ли обучаться в своём темпе?
    Да, курс частично адаптирован под самостоятельное изучение, но предусмотрена также поддержка преподавателя и живое общение с группой.

  9. Что даёт сертификат по окончании курса?
    Сертификат подтверждает прохождение курса и может использоваться как часть портфолио при поступлении на стажировки или курсы повышения квалификации.

  10. Есть ли домашние задания?
    Да, после каждого модуля предусмотрены практические задачи для закрепления навыков.

  11. Как проверяются домашние задания?
    Задания проверяются преподавателем или автоматизированной системой с последующей обратной связью.

  12. Можно ли задавать вопросы преподавателю?
    Конечно, предусмотрены регулярные консультации, чат с преподавателем и возможность задавать вопросы во время прямых эфиров.

  13. В чём разница между начальным и профессиональным уровнями?
    Начальный уровень — это освоение основ и первые шаги в бэкенд-разработке. Профессиональный уровень предполагает углублённое изучение архитектуры, масштабируемых решений и фреймворков.

  14. Может ли выпускник курса найти первую работу или стажировку?
    Курс помогает создать портфолио, достаточное для участия в стажировках, Junior-проектах и open-source разработке.

  15. Какие материалы используются в обучении?
    Используются видеоуроки, текстовые гайды, практические задания, шаблоны проектов и примеры кода.

  16. Есть ли поддержка сообщества или группы в соцсетях?
    Да, для студентов создаются закрытые чаты в Telegram/Slack, где можно общаться с одногруппниками и преподавателями.

  17. Что такое CRUD и будет ли он на курсе?
    CRUD — это операции создания, чтения, обновления и удаления данных. Да, эта тема подробно разбирается при работе с базами данных.

  18. Какие фреймворки изучаются на начальном уровне?
    На начальном уровне используется Flask — простой и понятный фреймворк для создания веб-приложений.

  19. Будут ли уроки по работе с базами данных?
    Да, вы научитесь работать с SQLite, выполнять запросы, создавать таблицы и реализовывать взаимодействие с данными через Python.

  20. Что такое REST API и почему он важен?
    REST API — это способ взаимодействия клиентской и серверной части приложения. Он важен для связи компонентов веб-приложений и мобильных сервисов.

  21. Какой итоговый проект предусмотрен?
    Вы создадите мини-веб-сервис с регистрацией, авторизацией, хранением данных и возможностью управления ими через интерфейс.

  22. Какие навыки получает студент по окончании курса?
    Вы сможете писать серверные приложения, работать с базами данных, использовать Git и создавать простые API-интерфейсы.

  23. Можно ли продолжить обучение на профессиональном уровне после начального?
    Да, начальный уровень является отличной базой для перехода на следующий этап обучения — "Бэкенд-разработчик Python (Профессиональный уровень)".

  24. Какие качества развиваются в процессе обучения?
    Курс развивает логическое мышление, навыки решения задач, усидчивость, самостоятельность и интерес к технологиям.

  25. Можно ли получить помощь с резюме после окончания курса?
    Да, преподаватель поможет составить первое техническое резюме и подготовить портфолио для старта карьеры.

  26. Какие форматы занятий используются в курсе?
    Курс сочетает лекции, практические задания, живые вебинары и групповые обсуждения. Также предусмотрены индивидуальные консультации с преподавателем.

  27. Можно ли проходить курс без компьютера?
    Нет, так как обучение связано с написанием кода и выполнением практических заданий, необходим доступ к компьютеру или ноутбуку.

  28. Есть ли возможность пересдачи или повторного прохождения курса?
    Да, при необходимости студент может пройти курс повторно бесплатно в течение года после первого старта.

  29. Какие технические требования к компьютеру?
    Рекомендуется ПК с Windows, macOS или Linux, 4 ГБ ОЗУ, свободное место на диске для установки Python, редактора кода и баз данных.

  30. Как оценивается успеваемость?
    Оценка проводится по результатам домашних заданий, промежуточных проектов и финальной работы. Также учитывается активность на занятиях.

  31. Что делать, если не понял тему?
    Преподаватель и ментор всегда готовы помочь — можно задать вопрос в чате, записаться на дополнительную консультацию или пересмотреть материал.

  32. Какие навыки помогут лучше подготовиться к курсу заранее?
    Полезно будет ознакомиться с основами алгоритмов, логики и понимания того, как работает интернет и веб-приложения.

  33. Какие преимущества онлайн-формата?
    Гибкий график, возможность учиться из любой точки мира, доступ к архиву занятий и возможность задавать вопросы в удобное время.

  34. Есть ли обратная связь от преподавателя?
    Да, каждое задание проверяется с комментариями и рекомендациями. Также возможны устные разборы ошибок на консультациях.

  35. Что такое Flask и почему он используется на начальном уровне?
    Flask — это легковесный веб-фреймворк Python, идеально подходящий для обучения. Он позволяет быстро создавать серверные приложения без лишней сложности.

  36. Какие примеры проектов будут на курсе?
    Проекты включают: блог, TODO-лист, мини-чат, система регистрации/авторизации, сервис хранения заметок.

  37. Как поддерживается мотивация в процессе обучения?
    Мотивация поддерживается через реальные результаты, проекты, общение с другими студентами и регулярные успехи в освоении новых тем.

  38. Можно ли использовать свои идеи для проектов?
    Да, студенты могут предложить собственные идеи проектов, которые будут согласованы с преподавателем и реализованы в рамках курса.

  39. Какие возможности карьерного роста даёт курс?
    Вы сможете стать стажёром, получить первую позицию Junior-разработчика или продолжить обучение на профессиональном уровне.

  40. Как часто проходят занятия?
    Занятия проходят 2–3 раза в неделю, в вечернее время или в выходные — в зависимости от расписания группы.

  41. Можно ли совмещать курс с учёбой в школе или университете?
    Да, нагрузка рассчитана так, чтобы не мешать школьным или университетским занятиям.

  42. Какие soft skills развиваются на курсе?
    На курсе развивается ответственность, самодисциплина, работа в команде (на групповых проектах), тайм-менеджмент и коммуникация.

  43. Есть ли демо-версия курса?
    Да, перед регистрацией можно пройти пробный модуль бесплатно и оценить уровень подачи материала и формат занятий.

  44. Какие языки программирования, кроме Python, затрагиваются в курсе?
    Основной язык — Python. HTML и SQL рассматриваются поверхностно для связи с веб-разработкой и базами данных.

  45. Что делать, если пропущено занятие?
    Все занятия записываются, поэтому вы всегда можете посмотреть пропущенный материал в любое время.

  46. Какие материалы остаются у студента после окончания курса?
    Все видеоуроки, шаблоны проектов, примеры кода и текстовые материалы доступны бессрочно в личном кабинете.

  47. Как происходит взаимодействие с другими студентами?
    Студенты общаются в закрытых чатах, участвуют в совместных проектах, обсуждают решения и помогают друг другу.

  48. Есть ли возможность стажировки после курса?
    Некоторые партнёры курса предоставляют рекомендации или возможность участия в стажировках для успешных выпускников.

  49. Какие самые сложные темы курса?
    Сложными могут быть работа с API, понимание HTTP-запросов, базы данных и организация логики приложений.

  50. Как определить, подходит ли мне этот курс?
    Если вам интересно, как работают сайты "изнутри", вы хотите научиться создавать программы и решать задачи — курс вам подойдёт.

  1. Какие инструменты контроля версий изучаются на курсе?
    На курсе подробно разбирается Git — его установка, настройка, использование для отслеживания изменений и командная работа над проектами.

  2. Какой уровень английского языка требуется для обучения?
    Для прохождения курса достаточно базового уровня английского — большинство материалов на русском, но некоторые термины и документация могут быть на английском.

  3. Можно ли использовать знания курса для участия в школьных/вузовских проектах?
    Да, навыки, полученные на курсе, можно применять для создания учебных проектов, научных работ или автоматизации задач.

  4. Есть ли возможность ускоренного прохождения курса?
    Да, при согласовании с преподавателем можно увеличить темп обучения и пройти курс быстрее, чем за 3 месяца.

  5. Какие инструменты используются для написания кода?
    Основной редактор кода — VS Code. Также рассматриваются альтернативы, такие как PyCharm Community Edition.

  6. Что такое HTTP-запросы и будут ли они на курсе?
    HTTP-запросы — это способ обмена данными между клиентом и сервером. Да, эта тема подробно изучается при работе с Flask и API.

  7. Какие виды тестирования рассматриваются в курсе?
    Рассматривается базовое тестирование функций и API с использованием библиотеки unittest.

  8. Как формируется расписание занятий?
    Расписание составляется с учётом пожеланий группы и обычно фиксируется на начало курса: 2–3 занятия в неделю по будням или выходным.

  9. Можно ли задавать вопросы вне занятий?
    Да, студенты могут задавать вопросы через чат поддержки, электронную почту или в закрытых сообществах.

  10. Какие ошибки чаще всего совершают новички?
    Среди распространённых ошибок — неверное оформление синтаксиса, неправильное обращение к переменным, логические ошибки в циклах и условиях.

  11. Помогает ли курс в понимании карьерного пути в IT?
    Да, курс включает вводные материалы о возможностях развития в сфере программирования, направлениях и перспективах.

  12. Какие ресурсы рекомендуются для дополнительного изучения?
    Рекомендуется изучать официальную документацию Python, сайты like Codewars, LeetCode, GitHub-проекты и YouTube-каналы по Python.

  13. Будет ли обучение работе с файлами в Python?
    Да, вы научитесь читать и записывать данные в файлы, работать с JSON и текстовыми документами.

  14. Какие темы помогут развить логическое мышление?
    Задачи на условия, циклы, функции, работу с массивами и алгоритмы значительно развивают логическое мышление.

  15. Какие библиотеки Python изучаются на начальном уровне?
    Изучаются стандартные библиотеки, такие как datetime, random, json, а также flask и sqlite3.

  16. Можно ли использовать курс для подготовки к ЕГЭ/ОГЭ по информатике?
    Курс полезен для углублённого изучения программирования, особенно если вы хотите развивать практические навыки, однако он не направлен строго на подготовку к экзаменам.

  17. Какие основы безопасности рассматриваются в курсе?
    Рассматриваются базовые принципы хранения паролей (hashing), защита данных при передаче через API и безопасная работа с пользовательским вводом.

  18. Как организовано выполнение домашних заданий?
    Задания выдаются после каждого модуля, их можно выполнять в удобное время, загружать решения в систему и получать обратную связь.

  19. Какие метрики успеха на курсе?
    Успех определяется по завершению всех заданий, успешной реализации финального проекта и активному участию в процессе обучения.

  20. Есть ли возможность получить обратную связь от других студентов?
    Да, предусмотрены peer-review задания и обсуждения в группе, где можно получить мнение одногруппников.

  21. Какие технологии взаимодействия с интернетом изучаются?
    Вы научитесь отправлять HTTP-запросы, работать с API сторонних сервисов и создавать собственные веб-сервисы.

  22. Какие возможности даёт изучение Flask?
    Flask позволяет создавать полноценные веб-приложения, REST API, обрабатывать запросы и отдавать данные, что открывает дорогу к реальной разработке.

  23. Какой опыт нужен для перехода на профессиональный уровень?
    Для перехода достаточно успешно пройти начальный уровень и иметь понимание базовых концепций бэкенд-разработки.

  24. Какие качества важны для успешного прохождения курса?
    Важны регулярность, желание учиться, любознательность, настойчивость и умение находить решения самостоятельно.

  25. Какие шаги нужно сделать после окончания курса, чтобы продолжить развитие?
    После курса рекомендуется углубить знания, поработать над своими проектами, изучить Django, асинхронность, Docker и другие профессиональные технологии.

  1. Какой фреймворк используется на начальном уровне для создания веб-приложений?
    A) Django
    B) Flask
    C) FastAPI
    D) Pyramid
    Ответ: B) Flask

  2. Какая база данных изучается в рамках курса?
    A) PostgreSQL
    B) MySQL
    C) SQLite
    D) MongoDB
    Ответ: C) SQLite

  3. Какой тип HTTP-запроса используется для получения данных?
    A) POST
    B) PUT
    C) GET
    D) DELETE
    Ответ: C) GET

  4. Какой инструмент контроля версий изучается на курсе?
    A) SVN
    B) Mercurial
    C) Git
    D) CVS
    Ответ: C) Git

  5. Что означает аббревиатура CRUD?
    A) Create, Read, Update, Delete
    B) Copy, Rename, Undo, Delete
    C) Connect, Run, Upload, Download
    D) Call, Return, Use, Deploy
    Ответ: A) Create, Read, Update, Delete

  6. Какой файловый формат часто используется для передачи данных между клиентом и сервером?
    A) XML
    B) CSV
    C) JSON
    D) HTML
    Ответ: C) JSON

  7. Какой редактор кода рекомендуется для использования на курсе?
    A) Notepad++
    B) Sublime Text
    C) VS Code
    D) Atom
    Ответ: C) VS Code

  8. Какой уровень английского желателен для прохождения курса?
    A) Advanced
    B) Intermediate
    C) Beginner
    D) Не требуется
    Ответ: C) Beginner

  9. Какой тип проекта является итоговым на курсе?
    A) Мобильное приложение
    B) Веб-сервис с авторизацией
    C) Настольная игра
    D) Графический редактор
    Ответ: B) Веб-сервис с авторизацией

  10. Какой вид проверки знаний используется после каждого модуля?
    A) Тестирование с множественным выбором
    B) Устный экзамен
    C) Практическое задание
    D) Эссе
    Ответ: C) Практическое задание

  11. Какой из следующих HTTP-методов используется для отправки данных на сервер?
    A) GET
    B) POST
    C) HEAD
    D) OPTIONS
    Ответ: B) POST

  12. Какой формат расширения имеют файлы баз данных SQLite?
    A) .sql
    B) .db
    C) .sqlite
    D) .json
    Ответ: B) .db

  13. Что такое REST API?
    A) Язык программирования
    B) Стиль архитектуры для построения веб-сервисов
    C) База данных
    D) Фреймворк
    Ответ: B) Стиль архитектуры для построения веб-сервисов

  14. Какая библиотека Python используется для работы с датами и временем?
    A) random
    B) datetime
    C) math
    D) os
    Ответ: B) datetime

  15. Какой тип ошибок связан с неправильной логикой программы?
    A) Синтаксическая
    B) Логическая
    C) Ошибка времени выполнения
    D) Лексическая
    Ответ: B) Логическая

  16. Как называется операция сохранения изменений в Git?
    A) Push
    B) Commit
    C) Clone
    D) Pull
    Ответ: B) Commit

  17. Какой из перечисленных методов позволяет добавить данные в список в Python?
    A) add()
    B) insert()
    C) append()
    D) push()
    Ответ: C) append()

  18. Какой символ используется для обозначения комментариев в Python?
    A) //
    B) <!-- -->
    C) #
    D) --
    Ответ: C) #

  19. Какой тип переменной хранит последовательность символов?
    A) int
    B) float
    C) str
    D) bool
    Ответ: C) str

  20. Какой ключевой словом объявляется функция в Python?
    A) function
    B) def
    C) fun
    D) method
    Ответ: B) def

  21. Какой цикл используется для повторения действий определённое количество раз?
    A) while
    B) for
    C) loop
    D) repeat
    Ответ: B) for

  22. Какой тип данных в Python может содержать пары "ключ-значение"?
    A) Список
    B) Кортеж
    C) Словарь
    D) Множество
    Ответ: C) Словарь

  23. Какой из этих терминов не относится к Git?
    A) Branch
    B) Commit
    C) Query
    D) Merge
    Ответ: C) Query

  24. Какой из перечисленных языков не изучается на курсе?
    A) Python
    B) SQL
    C) JavaScript
    D) HTML
    Ответ: C) JavaScript

  25. Какой из перечисленных принципов не относится к основам программирования?
    A) Читаемость кода
    B) Повторяемость
    C) Асинхронность
    D) Простота
    Ответ: C) Асинхронность

  1. Какой из следующих типов данных используется для хранения неизменяемой последовательности элементов?
    A) Список
    B) Словарь
    C) Кортеж
    D) Множество
    Ответ: C) Кортеж

  2. Какой командой в Git можно создать копию репозитория на локальной машине?
    A) git push
    B) git clone
    C) git commit
    D) git branch
    Ответ: B) git clone

  3. Как называется процесс проверки подлинности пользователя?
    A) Авторизация
    B) Аутентификация
    C) Регистрация
    D) Идентификация
    Ответ: B) Аутентификация

  4. Какой HTTP-метод обычно используется для обновления существующих данных на сервере?
    A) GET
    B) POST
    C) PUT
    D) DELETE
    Ответ: C) PUT

  5. Что такое переменная в программировании?
    A) Константное значение
    B) Объект, хранящий данные
    C) Функция без параметров
    D) Команда интерпретатора
    Ответ: B) Объект, хранящий данные

  6. Какой символ используется в Python для объединения строк?
    A) +
    B) *
    C) &
    D) ||
    Ответ: A) +

  7. Какой из перечисленных модулей позволяет генерировать случайные числа в Python?
    A) math
    B) random
    C) datetime
    D) os
    Ответ: B) random

  8. Какой тип ошибки возникает при попытке деления на ноль?
    A) Синтаксическая
    B) Логическая
    C) Ошибка времени выполнения
    D) Ошибка компиляции
    Ответ: C) Ошибка времени выполнения

  9. Какое ключевое слово в Python используется для создания условной конструкции?
    A) loop
    B) if
    C) for
    D) while
    Ответ: B) if

  10. Какая команда в Git отправляет изменения в удалённый репозиторий?
    A) git add
    B) git commit
    C) git push
    D) git status
    Ответ: C) git push

  11. Какой из следующих методов удаляет последний элемент списка?
    A) pop()
    B) remove()
    C) delete()
    D) clear()
    Ответ: A) pop()

  12. Что означает аббревиатура API?
    A) Application Programming Interface
    B) Advanced Program Integration
    C) Application Performance Index
    D) Automated Programming Interface
    Ответ: A) Application Programming Interface

  13. Какой файл используется для указания зависимостей проекта в Python?
    A) .gitignore
    B) README.md
    C) requirements.txt
    D) config.json
    Ответ: C) requirements.txt

  14. Какой из перечисленных типов данных может содержать только уникальные значения?
    A) Список
    B) Кортеж
    C) Множество
    D) Словарь
    Ответ: C) Множество

  15. Какой из следующих циклов работает до тех пор, пока условие истинно?
    A) for
    B) range
    C) while
    D) loop
    Ответ: C) while

  16. Какой из перечисленных операторов возвращает остаток от деления?
    A) /
    B) //
    C) %
    D) **
    Ответ: C) %

  17. Какой из следующих терминов обозначает блок кода, который можно вызвать по имени?
    A) Переменная
    B) Цикл
    C) Функция
    D) Условие
    Ответ: C) Функция

  18. Какой из следующих инструментов используется для работы с виртуальным окружением в Python?
    A) pip
    B) venv
    C) git
    D) flask
    Ответ: B) venv

  19. Какой из следующих форматов данных является текстовым и человекочитаемым?
    A) JSON
    B) JPEG
    C) MP3
    D) EXE
    Ответ: A) JSON

  20. Какой из следующих методов преобразует строку в число в Python?
    A) int()
    B) float()
    C) str()
    D) chr()
    Ответ: A) int()

  21. Какой из следующих операторов в Python используется для возведения в степень?
    A) ^
    B) **
    C) //
    D) %
    **Ответ: B) **

  22. Какой из следующих терминов обозначает процесс исправления ошибок в коде?
    A) Тестирование
    B) Отладка
    C) Компиляция
    D) Документирование
    Ответ: B) Отладка

  23. Какой из следующих методов открывает файл для чтения в Python?
    A) open("file.txt", "w")
    B) open("file.txt", "r")
    C) open("file.txt", "a")
    D) open("file.txt", "x")
    Ответ: B) open("file.txt", "r")

  24. Какой из следующих терминов описывает повторяющийся фрагмент кода?
    A) Цикл
    B) Условие
    C) Функция
    D) Переменная
    Ответ: A) Цикл

  25. Какой из следующих принципов не относится к хорошему стилю написания кода?
    A) Читаемость
    B) Многострочные комментарии в каждой функции
    C) Использование понятных названий переменных
    D) Разделение кода на логические блоки
    Ответ: B) Многострочные комментарии в каждой функции

  1. Какой из следующих типов данных в Python является изменяемым?
    A) Кортеж
    B) Строка
    C) Список
    D) frozenset
    Ответ: C) Список

  2. Какой командой в Git можно посмотреть текущее состояние репозитория?
    A) git status
    B) git log
    C) git diff
    D) git branch
    Ответ: A) git status

  3. Что такое сервер в контексте бэкенд-разработки?
    A) Программа для просмотра интернет-страниц
    B) Компьютер или программа, предоставляющая данные клиентам
    C) Локальная сеть
    D) База данных
    Ответ: B) Компьютер или программа, предоставляющая данные клиентам

  4. Какой HTTP-код означает успешный ответ от сервера?
    A) 200
    B) 301
    C) 404
    D) 500
    Ответ: A) 200

  5. Какой метод используется для добавления элемента в конец списка в Python?
    A) insert()
    B) add()
    C) append()
    D) extend()
    Ответ: C) append()

  6. Какой символ используется для обозначения начала блока кода после условия или цикла в Python?
    A) Точка с запятой
    B) Отступ (пробелы или табуляция)
    C) Фигурная скобка
    D) Круглая скобка
    Ответ: B) Отступ (пробелы или табуляция)

  7. Какой из перечисленных терминов относится к базам данных?
    A) Сервер
    B) API
    C) Таблица
    D) Функция
    Ответ: C) Таблица

  8. Какой из следующих модулей не входит в стандартную библиотеку Python?
    A) math
    B) random
    C) flask
    D) datetime
    Ответ: C) flask

  9. Какой из следующих терминов описывает процесс сохранения данных пользователя между запросами?
    A) Авторизация
    B) Аутентификация
    C) Сессия
    D) Регистрация
    Ответ: C) Сессия

  10. Какая команда в Git создаёт новую ветку?
    A) git checkout
    B) git branch
    C) git merge
    D) git init
    Ответ: B) git branch

  11. Какой из следующих типов данных хранит ключи и значения?
    A) Словарь
    B) Список
    C) Множество
    D) Кортеж
    Ответ: A) Словарь

  12. Какой из следующих операторов возвращает результат деления без остатка?
    A) /
    B) %
    C) //
    D) **
    Ответ: C) //

  13. Какое ключевое слово используется для выхода из цикла в Python?
    A) break
    B) continue
    C) exit
    D) return
    Ответ: A) break

  14. Какой из следующих форматов используется для передачи структурированных данных между сервером и клиентом?
    A) CSV
    B) JSON
    C) TXT
    D) DOCX
    Ответ: B) JSON

  15. Какой из следующих терминов описывает ошибку, возникающую при неправильной структуре кода?
    A) Логическая ошибка
    B) Ошибка времени выполнения
    C) Синтаксическая ошибка
    D) Ошибка подключения
    Ответ: C) Синтаксическая ошибка

  16. Какой командой в Git можно переключиться на другую ветку?
    A) git branch
    B) git checkout
    C) git switch
    D) git clone
    Ответ: B) git checkout

  17. Какой из следующих терминов описывает повторяющийся набор шагов в программировании?
    A) Условие
    B) Цикл
    C) Функция
    D) Переменная
    Ответ: B) Цикл

  18. Какой из следующих типов данных в Python может содержать разные типы элементов?
    A) Массив
    B) Список
    C) Кортеж
    D) Оба варианта B и C
    Ответ: D) Оба варианта B и C

  19. Какой из следующих файлов указывает, какие файлы игнорировать Git?
    A) .gitignore
    B) .env
    C) requirements.txt
    D) config.json
    Ответ: A) .gitignore

  20. Какой из следующих терминов описывает процесс отправки формы на сервер?
    A) GET-запрос
    B) POST-запрос
    C) PUT-запрос
    D) DELETE-запрос
    Ответ: B) POST-запрос

  21. Какой из следующих методов удаляет определённый элемент из списка по значению?
    A) pop()
    B) remove()
    C) del
    D) clear()
    Ответ: B) remove()

  22. Какой из следующих терминов описывает место, где хранится история изменений проекта?
    A) Ветка
    B) Репозиторий
    C) Тэг
    D) Коммит
    Ответ: B) Репозиторий

  23. Какой из следующих фреймворков НЕ используется для бэкенд-разработки на Python?
    A) Flask
    B) Django
    C) FastAPI
    D) React
    Ответ: D) React

  24. Какой из следующих типов данных в Python позволяет хранить только уникальные значения и не имеет порядка?
    A) Список
    B) Кортеж
    C) Множество
    D) Словарь
    Ответ: C) Множество

  25. Какой из следующих принципов не является основой хорошего кода?
    A) Читаемость
    B) Повторное использование кода
    C) Зависимость от конкретного оборудования
    D) Поддерживаемость
    Ответ: C) Зависимость от конкретного оборудования

Экзаменационный билет №1

Теоретическая часть

  1. Опишите, что такое REST API и как он используется в бэкенд-разработке.
  2. Объясните, как работает система контроля версий Git на примере создания и слияния веток.

Ответы на теоретическую часть:

  1. REST API — это стиль проектирования веб-сервисов, основанный на использовании HTTP-методов (GET, POST, PUT, DELETE) для взаимодействия между клиентом и сервером. Он позволяет обмениваться данными в формате JSON или XML и строить масштабируемые приложения.
  2. Git позволяет создавать ветки для параллельной разработки. Например, git branch feature создаёт новую веткуgit checkout feature переключает на неё. После внесения изменений и коммитов можно выполнить git checkout maingit merge featureчтобы объединить изменения.

Практическая часть

Напишите функцию на Python, которая принимает список чисел и возвращает их среднее значение. Если список пустой, функция должна возвращать 0.

def average(numbers):
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

 

Экзаменационный билет №2

Теоретическая часть

  1. Что такое CRUD и как он связан с базами данных?
  2. Охарактеризуйте этапы создания простого веб-приложения на Flask.

Ответы на теоретическую часть:

  1. CRUD — это аббревиатура от Create, Read, Update, Delete. Это четыре базовые операции работы с данными в системах хранения информации, таких как базы данных. В бэкенде они реализуются через HTTP-запросы и соответствующие обработчики.
  2. Создание веб-приложения на Flask начинается с установки фреймворка и запуска сервера. Затем определяются маршруты @app.route()Подключается база данных, реализуется логика обработки запросов, после чего приложение тестируется и развёртывается.

Практическая часть

Создайте простой скрипт на Python, который считывает текст из файла input.txt и записывает его в обратном порядке в файл output.txt

with open('input.txt', 'r') as infile:
    content = infile.read()

with open('output.txt', 'w') as outfile:
    outfile.write(content[::-1])

 

Экзаменационный билет №3

Теоретическая часть

  1. Какие типы переменных существуют в Python? Приведите примеры использования.
  2. Что такое HTTP-запросы и какие основные методы используются в бэкенд-разработке?

Ответы на теоретическую часть:

  1. В Python есть такие типы переменных, как int (целые числа), float (дробные), str (строки), bool (логические значения), list (списки), tuple (кортежи), dict (словари), set (множества). Например: age = 25name = "John"data = {"id": 1, "name": "Alice"}
  2. HTTP-запросы — это способ обмена данными между клиентом и сервером. Основные методы: GET (получение данных), POST (отправка данных), PUT (обновление), DELETE (удаление).

Практическая часть

Напишите программу, которая выводит все чётные числа из списка [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [n for n in numbers if n % 2 == 0]
print(even_numbers)

 

Экзаменационный билет №4

Теоретическая часть

  1. Дайте определение термину «база данных» и назовите её основные элементы.
  2. Какие задачи решают миграции в работе с базами данных?

Ответы на теоретическую часть:

  1. База данных — это организованная структура хранения данных. Основные элементы: таблицы, записи, поля, ключи. Таблицы содержат данные в виде строк и столбцов.
  2. Миграции позволяют управлять изменениями схемы базы данных. Они помогают добавлять, изменять или удалять таблицы и поля без потери данных.

Практическая часть

Создайте функцию, которая проверяет, является ли число простым.

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

 

Экзаменационный билет №5

Теоретическая часть

  1. Что такое функция в Python и зачем она нужна?
  2. Перечислите основные принципы безопасной работы с пользовательскими данными.

Ответы на теоретическую часть:

  1. Функция — это блок кода, который может быть вызван по имени. Она используется для группировки повторяющихся действий, упрощения чтения кода и повышения переиспользуемости.
  2. Основные принципы: шифрование паролей (например, через hashing), защита от SQL-инъекций, использование HTTPS, ограничение прав доступа к данным, валидация входных данных.

Практическая часть

Напишите программу, которая считает сумму всех чисел от 1 до N, где N задаёт пользователь.

n = int(input("Введите число N: "))
total = sum(range(1, n + 1))
print(f"Сумма чисел от 1 до {n} равна {total}")

 

Экзаменационный билет №6

Теоретическая часть

  1. Объясните, что такое переменная в Python и как происходит её объявление.
  2. Что такое HTTP-статус-коды? Приведите примеры и их значение.

Ответы на теоретическую часть:

  1. Переменная — это именованное место для хранения данных. В Python переменная создаётся при присвоении ей значения, например: x = 10Тип переменной определяется автоматически.
  2. HTTP-статус-коды — это числовые коды, возвращаемые сервером в ответ на HTTP-запрос. Например:
  • 200 OK — запрос выполнен успешно
  • 404 Not Found — страница не найдена
  • 500 Internal Server Error — ошибка сервера

Практическая часть

Напишите программу, которая принимает строку от пользователя и выводит количество гласных букв в ней (гласные: a, e, i, o, u).

text = input("Введите строку: ").lower()
vowels = "aeiou"
count = sum(1 for char in text if char in vowels)
print(f"Количество гласных: {count}")

 

Экзаменационный билет №7

Теоретическая часть

  1. Какие типы циклов есть в Python? Приведите примеры их использования.
  2. Что такое Git и зачем он нужен в разработке?

Ответы на теоретическую часть:

  1. В Python есть два основных типа циклов: for и while
    • for используется для перебора последовательности: for i in range(5): print(i)
    • while выполняется до тех пор, пока условие истинно: i = 0; while i < 5: print(i); i += 1
     
  2. Git — это система контроля версий, которая позволяет отслеживать изменения в коде, работать в команде, сохранять историю изменений и восстанавливать предыдущие версии проекта

Практическая часть

Создайте функцию, которая принимает список слов и возвращает новый список, содержащий только слова длиннее 5 символов.

def filter_long_words(words):
    return [word for word in words if len(word) > 5]

words_list = ["apple", "banana", "kiwi", "strawberry", "pear"]
print(filter_long_words(words_list))

 

Экзаменационный билет №8

Теоретическая часть

  1. Дайте определение термину «бэкенд» и объясните его роль в веб-разработке.
  2. Охарактеризуйте понятие «функция» в Python. Какие аргументы могут быть у функции?

Ответы на теоретическую часть:

  1. Бэкенд — это серверная часть веб-приложения, отвечающая за обработку данных, логику работы и взаимодействие с базами данных. Он обеспечивает работу сайта «под капотом».
  2. Функция — это блок кода, который можно вызвать по имени. Аргументы бывают: позиционные, именованные, со значениями по умолчанию, произвольное количество (*args, **kwargs).

Практическая часть

Напишите программу, которая проверяет, является ли введённая строка палиндромом (читается одинаково вперёд и назад).

text = input("Введите строку: ").lower().replace(" ", "")
if text == text[::-1]:
    print("Это палиндром")
else:
    print("Это не палиндром")

 

Экзаменационный билет №9

Теоретическая часть

  1. Что такое словарь в Python? Как добавить и удалить элемент из словаря?
  2. Что такое API и как оно используется в современной разработке?

Ответы на теоретическую часть:

  1. Словарь — это коллекция пар ключ-значение. Добавление: my_dict["key"] = valueУдаление: del my_dict["key"] или my_dict.pop("key").
  2. API (Application Programming Interface) — это набор правил и инструментов для взаимодействия между компонентами программного обеспечения. Используется для связи клиентской и серверной части, получения данных из внешних сервисов.

Практическая часть

Напишите программу, которая принимает список чисел и возвращает кортеж из минимального и максимального значений.

numbers = list(map(int, input("Введите числа через пробел: ").split()))
result = (min(numbers), max(numbers))
print(f"Минимум и максимум: {result}")

 

Экзаменационный билет №10

Теоретическая часть

  1. Что такое файл и какие операции можно выполнять с файлами в Python?
  2. Объясните, что такое сессия в контексте веб-приложений.

Ответы:

  1. Файл — это место хранения данных на диске. В Python можно: читать (open('file.txt', 'r')записывать'w'дополнять'a'закрывать файлы.
  2. Сессия — это временный объект, который хранит данные о пользователе между запросами. Используется для поддержания состояния, например, авторизации.

Практическая часть

Создайте простое Flask-приложение, которое по адресу /hello/<name>выводит приветствие: "Привет, <name>!".

from flask import Flask

app = Flask(__name__)

@app.route('/hello/<name>')
def hello(name):
    return f"Привет, {name}!"

if __name__ == '__main__':
    app.run(debug=True)

 

Экзаменационный билет №11

Теоретическая часть

  1. Что такое список в Python? Какие основные методы работы со списками вы знаете?
  2. Охарактеризуйте понятие «веб-сервис» и его роль в современной разработке.

Ответы на теоретическую часть:

  1. Список — это изменяемая коллекция элементов, хранящая данные в определённом порядке. Основные методы: append()remove()pop()insert()sort()reverse()
  2. Веб-сервис — это приложение, доступное через сеть и предоставляющее определённый функционал по запросам. Используется для обмена данными между клиентом и сервером, например, REST API.

Практическая часть

Напишите программу, которая принимает строку от пользователя и выводит статистику: количество слов, предложений и символов.

text = input("Введите текст: ")

words = len(text.split())
sentences = text.count('.') + text.count('!') + text.count('?')
characters = len(text)

print(f"Количество слов: {words}")
print(f"Количество предложений: {sentences}")
print(f"Количество символов: {characters}")

 

Экзаменационный билет №12

Теоретическая часть

  1. Что такое аутентификация и авторизация? Чем они отличаются?
  2. Дайте определение термину «контроль версий». Почему он важен в командной разработке?

Ответы на теоретическую часть:

  1. Аутентификация — это проверка личности пользователя (логин/пароль). Авторизация — это проверка прав доступа после аутентификации.
  2. Контроль версий — это система отслеживания изменений в коде. Он позволяет нескольким разработчикам работать над проектом одновременно без потери данных и с возможностью отката к предыдущей версии.

Практическая часть

Создайте функцию, которая принимает список чисел и возвращает только уникальные значения из этого списка.

def unique_numbers(numbers):
    return list(set(numbers))

nums = [1, 2, 2, 3, 4, 4, 5]
print(unique_numbers(nums))

 

Экзаменационный билет №13

Теоретическая часть

  1. Объясните, что такое тип данных в Python. Приведите примеры.
  2. Что такое маршрутизация в Flask и как она реализуется?

Ответы на теоретическую часть:

  1. Тип данных определяет, какие данные может хранить переменная и какие операции с ней можно выполнять. Примеры: intstrlistdict
  2. Маршрутизация в Flask — это связь URL с функцией. Реализуется через декоратор @app.route('/путь')

Практическая часть

Создайте простое Flask-приложение с маршрутом /sum/<a>/<b>которое возвращает сумму a и b.

from flask import Flask

app = Flask(__name__)

@app.route('/sum/<int:a>/<int:b>')
def sum_numbers(a, b):
    return f"Сумма {a} и {b} равна {a + b}"

if __name__ == '__main__':
    app.run(debug=True)

 

Экзаменационный билет №14

Теоретическая часть

  1. Что такое условный оператор в Python? Приведите пример использования.
  2. Что такое JSON и где он применяется в бэкенд-разработке?

Ответы на теоретическую часть:

      1. Условный оператор (if) позволяет выполнять блок кода, если условие истинно. Пример:

Пример:

age = 18
if age >= 18:
    print("Вход разрешён")
else:
    print("Вход запрещён")

      2. JSON (JavaScript Object Notation) — это формат обмена данными, удобный для чтения человеком и машиной. Применяется для передачи данных между клиентом и сервером в REST API.

Практическая часть

Напишите программу, которая преобразует словарь в JSON и сохраняет его в файл data.json

import json

data = {
    "name": "Alice",
    "age": 25,
    "city": "Moscow"
}

with open("data.json", "w") as file:
    json.dump(data, file, indent=4)

print("Данные записаны в data.json")

 

Экзаменационный билет №15

Теоретическая часть

  1. Что такое цикл forПриведите пример его использования.
  2. Что такое база данных SQLite и почему она подходит для начального уровня?
 

Ответы на теоретическую часть:

  1. Цикл используется для перебора элементов последовательности.

Пример:

for i in range(5):
    print(i)

      2. SQLite — это легковесная встроенная система управления базами данных. Подходит для начального уровня, потому что не требует настройки сервера и легко интегрируется в Python.

Практическая часть

Создайте базу данных SQLite и таблицу users с полями idnameemail

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE
)
''')

conn.commit()
conn.close()

print("Таблица создана")

 

(1) Кейс: "Ошибка в движке игрока — персонаж не двигается"


Описание кейса

Вы — начинающий бэкенд-разработчик, проходите стажировку в небольшой IT-компании, которая разрабатывает веб-приложение для учёта школьных оценок. Ваша задача — помочь реализовать функционал регистрации новых пользователей через веб-форму.

Вам передан фрагмент кода на Python (Flask + SQLite), который должен обрабатывать POST-запросы с формы регистрации. Однако после запуска выяснилось, что:

  • При отправке формы иногда возникает внутренняя ошибка сервера (500),
  • Иногда пользователи регистрируются, но не могут войти,
  • В базе данных появляются дубликаты записей с одинаковыми email.

Фрагмент исходного кода:

from flask import Flask, request, redirect
import sqlite3

app = Flask(__name__)

def init_db():
    with app.app_context():
        db = sqlite3.connect('school.db')
        db.execute('''
            CREATE TABLE IF NOT EXISTS users (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                username TEXT NOT NULL,
                email TEXT NOT NULL,
                password TEXT NOT NULL
            )
        ''')
        db.commit()

@app.route('/register', methods=['POST'])
def register():
    username = request.form['username']
    email = request.form['email']
    password = request.form['password']

    db = sqlite3.connect('school.db')
    db.execute("INSERT INTO users (username, email, password) VALUES (?, ?, ?)",
               [username, email, password])
    db.commit()
    return redirect('/')

if __name__ == '__main__':
    init_db()
    app.run(debug=True)

 

Анализ ситуации и выявление проблем


Проблема №1: Отсутствие проверки уникальности email

  • Проблема: База позволяет добавлять пользователей с одинаковым email, так как ограничение UNIQUE отсутствует.
  • Решение: Добавить ограничение UNIQUE к полю email
    CREATE TABLE IF NOT EXISTS users (
        ...
        email TEXT NOT NULL UNIQUE
    )

Проблема №2: Пароли хранятся в открытом виде

  • Проблема: Пароли сохраняются без шифрования — это серьёзная угроза безопасности.
  • Решение: Использовать хэширование паролей, например, с помощью библиотеки bcrypt
    import bcrypt
    
    hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())

Проблема №3: Нет обработки исключений

  • Проблема: Если при выполнении запроса произойдёт ошибка (например, дублирование email), приложение вызовет Internal Server Error.
  • Решение: Добавить блок try-except
try:
    db.execute(...)
    db.commit()
except sqlite3.IntegrityError:
    return "Email уже занят", 400

 

Проблема №4: Безопасность SQL-запросов

  • Проблема: Хотя используются параметризованные запросы (что хорошо), всё равно стоит явно закрывать соединение.
  • Решение: Использовать контекстный менеджер или вручную закрывать соединение.
with sqlite3.connect('school.db') as db:
    ...

 

Проблема №5: Включение режима debug в production

  • Проблема: Режим debug=True может раскрыть внутренние данные ошибок, что опасно в боевой среде.
  • Решение: Перед выпуском установить debug=False

Дополнительные задания для самостоятельной работы

Научиться находить типовые ошибки новичков в бэкенд-коде, анализировать их последствия и предлагать практические пути исправления. Кейс подходит для развития навыков анализа, понимания безопасности и работы с базами данных.

 

(2) Кейс: "Персонаж проваливается сквозь платформы — почему не работает гравитация и столкновения?"


Описание ситуации

Вы продолжаете работать над школьным веб-приложением, где реализуете функционал регистрации и входа пользователей. После того как вы внедрили систему регистрации (как в предыдущем кейсе), появилась новая задача — реализовать авторизацию.

Вам передан фрагмент кода, который должен обрабатывать POST-запрос на вход пользователя/loginОднако при тестировании:

  • Пользователь, успешно зарегистрированный ранее, не может войти.
  • При попытке отправить форму входа возникает ошибка 500 или просто ничего не происходит.
  • Иногда система принимает неверный пароль как корректный.
  • Иногда система принимает неверный пароль как корректный.

Фрагмент исходного кода:

from flask import Flask, request, redirect, session
import sqlite3

app = Flask(__name__)
app.secret_key = 'supersecretkey'

def init_db():
    with app.app_context():
        db = sqlite3.connect('school.db')
        db.execute('''
            CREATE TABLE IF NOT EXISTS users (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                username TEXT NOT NULL UNIQUE,
                email TEXT NOT NULL UNIQUE,
                password TEXT NOT NULL
            )
        ''')
        db.commit()

@app.route('/login', methods=['POST'])
def login():
    email = request.form['email']
    password = request.form['password']

    db = sqlite3.connect('school.db')
    cursor = db.cursor()
    cursor.execute("SELECT * FROM users WHERE email=?", [email])
    user = cursor.fetchone()

    if user and user[3] == password:
        session['user_id'] = user[0]
        return redirect('/dashboard')
    else:
        return "Неверный email или пароль", 401

if __name__ == '__main__':
    init_db()
    app.run(debug=True)

 

Анализ ситуации и выявление возможных причин


Проблема №1: Пароли сравниваются напрямую

  • Проблема: Пароли хранятся в захэшированном виде (предположительно, согласно логике прошлого кейса), но в данном коде они сравниваются как обычные строки.
  • Решение: Использовать библиотеку bcryptдля проверки пароля.
import bcrypt

if user and bcrypt.checkpw(password.encode(), user[3].encode()):

 

Проблема №2: Нет обработки исключений

  • Проблема: Если произойдет ошибка при работе с базой данных, сервер вернёт 500 Internal Server Error.
  • Решение: Добавить блок try-except
    try:
        cursor.execute(...)
        ...
    except Exception as e:
        print(e)
        return "Ошибка сервера", 500

Проблема №3: Нет обработки исключений

  • Проблема: Хотя используется sessionНет гарантии, что сессия начата корректно.
  • Решение: Убедиться, что секретный ключ задан правильно и используется безопасная конфигурация.

Проблема №4: Нет обработки исключений

  • Проблема: Если пользователь не найден, user[3] вызовет TypeError
  • Решение: Проверка наличия пользователя до обращения к его данным.
if not user:
    return "Пользователь не найден", 401

 

Проблема №4: Отсутствие защиты от подбора паролей

  • Проблема: Нет ограничений на количество попыток входа.
  • Решение: Можно добавить временную блокировку после нескольких неудачных попыток.

Дополнительные вопросы для самостоятельного размышления

  • Как можно реализовать восстановление пароля?
  • Какие инструменты помогают автоматически проверять безопасность сессий?
  • Как протестировать логику авторизации без ручного ввода?

 

Ролевая игра №1: "Стартап Weekend"


Цель игры

Создать MVP (минимально жизнеспособный продукт) простого веб-приложения за ограниченное время, используя навыки бэкенд-разработки на Python. Развить у обучающихся навыки командной работы, решения задач в условиях неопределенности и практического применения знаний.

 

Формат

  • Длительность: 3–4 академических часа
  • Форма: групповая ролевая игра (по 3–5 человек в команде)
  • Платформа: онлайн (Zoom/MS Teams + Google Docs / Miro) или офлайн в аудитории
  • Инструменты: Python, Flask, SQLite, Git (опционально), текстовый редактор
 

Сеттинг

Вы — молодые разработчики, собравшиеся на «стартап-викенд». Каждая команда представляет собой стартап-команду, которая должна за короткое время придумать идею, реализовать серверную часть и продемонстрировать её работу. В конце игры каждая команда представляет свой проект перед жюри (преподаватель или одногруппники).


Роли в команде

Каждый участник берёт на себя одну из следующих ролей:

Роль  Описание
Технический лидер (Tech Lead)
  • Определяет архитектуру приложения
  • Следит за выполнением технической части
  • Помогает распределять задачи
Backend-разработчик
  • Реализует маршруты, логику, взаимодействие с БД
  • Тестирует API
QA-инженер (или тестировщик)
  • Проверяет работоспособность функций
  • Находит ошибки и предлагает улучшения
Product Manager (опционально)
  • Отвечает за идею и функционал
  • Следит за сроками и соответствием цели

 

 

Этапы игры:

Этап 1: Генерация идеи 

Команды получают случайный набор ограничений (например: «для школьников», «хранение данных», «без авторизации») и придумывают идею минимального веб-приложения.

Примеры:

  • TODO-лист
  • Сервис хранения заметок
  • Мини-чат
  • Голосовалка
 

Этап 2: Планирование 

Команда:

  • Выбирает роли
  • Создаёт список минимальных функций
  • Распределяет задачи
  • Намечает маршрут реализации
 

Этап 3: Разработка 

Реализация бэкенд-части приложения:

  • Маршруты (Flask)
  • Работа с базой данных (SQLite)
  • Обработка форм, запросов
  • Логика приложения
 

Этап 4: Тестирование и доработка 

Проверка работоспособности, исправление ошибок, подготовка презентации.

 

Этап 5: Презентация 

Каждая команда демонстрирует:

  • Идею
  • Функционал
  • Интерфейс (можно просто показать работу API)
  • Как решались возникшие проблемы
 

Обучающие эффекты:

  • Практическое применение знаний по Python, Flask и SQLite
  • Работа в команде и распределение ролей
  • Управление временем и приоритетами
  • Решение реальных проблем (ошибки, непредвиденные ситуации)
  • Понимание процесса создания веб-приложений от идеи до MVP
Проблема Возможное решение
Не все участники активны Четко распределить роли и задачи
Неверная архитектура
Tech Lead должен принимать решения
Конфликты в команде Установить правила взаимодействия заранее
Ошибки в коде QA-инженер проверяет результаты
Закончилось время Подчеркнуть важность MVP и отказаться от лишнего

 

 

Ролевая игра №2: "BugHunter: Спасение стартапа"


Цель игры

Научить обучающихся находить, анализировать и исправлять ошибки в готовом бэкенд-коде. Развить навыки отладки, тестирования, работы с чужим кодом и командного взаимодействия.


Формат

  • Длительность: 2–3 академических часа
  • Форма: групповая ролевая игра (по 3–5 человек в команде)
  • Платформа: онлайн (Zoom/MS Teams + GitHub / GitLab) или офлайн в аудитории
  • Инструменты: Python, Flask, SQLite, Git, текстовый редактор

Сеттинг

Вы — молодые разработчики из IT-стартапа «CodeNova», который получил задание спасти проект клиента. Клиент запустил MVP веб-приложения для учёта школьных проектов, но оно начало падать с ошибками. Он просит вашу команду разобраться в ситуации, найти и исправить критические проблемы в бэкенде, чтобы приложение снова заработало стабильно.

 

Роли в команде

Роль  Описание
Team Lead
  • Организует работу команды
  • Распределяет задачи по поиску и исправлению багов
  • Отвечает за общую стратегию
Debug Master
  • Отвечает за поиск и диагностику ошибок в коде
  • Использует логирование, дебаггер, тестовые запросы

Security Analyst

  • Ищет уязвимости в безопасности: SQL-инъекции, открытые эндпоинты, слабые пароли и т.д.
QA Engineer (опционально)
  • Пишет тесты и проверяет работоспособность фиксов
  • Тестирует через Postman или curl

 

Этапы игры

Этап 1: Введение в ситуацию
  • Преподаватель рассказывает историю стартапа, даёт описание проблем в приложении:

    • Сервер падает при регистрации
    • Некоторые маршруты недоступны
    • Возможна утечка данных
 
Этап 2: Знакомство с кодовой базой
  • Команды получают доступ к репозиторию с готовым, но "сломанным" Flask-приложением. В нём намеренно добавлены несколько типичных ошибок (см. ниже).
 
Этап 3: Анализ и диагностика
  • Команда:

    • Изучает код
    • Запускает приложение
    • Находит и классифицирует ошибки
 
Этап 4: Исправление и доработка 
  • Команда исправляет найденные ошибки, документирует изменения, может использовать Git для контроля изменений.
Этап 5: Презентация решений и демо

Каждая команда демонстрирует:

  • Какие ошибки были найдены
  • Как они их исправили
  • Как протестировали решение
  • Что улучшили дополнительно

 


Обучающие эффекты

  • Умение работать с чужим кодом
  • Навыки анализа и диагностики ошибок
  • Понимание принципов безопасности и надежности
  • Развитие soft skills: распределение ролей, управление задачами
  • Умение объяснять технические решения коллегам

Примеры скрытых ошибок в коде:

Ошибка Описание
Нетapp.run() Приложение не запускается
Неверное подключение БД Программа падает при попытке записи
SQL-инъекция в запросе Можно удалить таблицу через поле email
Пароль хранится без хэширования Угроза безопасности
Нет проверки существования пользователя Возникает ошибкаNoneType
Дублирование имён переменных Логическая ошибка
Нет обработки исключений Сервер выдает 500 при любой ошибке

 

Ролевая игра №3: "API Wars: Битва Сервисов"


Цель игры

Научить обучающихся проектировать, реализовывать и тестировать REST API на Python (с использованием Flask), а также взаимодействовать с внешними сервисами. Развить навыки документирования API, работы в команде и решения задач в условиях ограниченного времени.


Формат

  • Длительность: 3–4 академических часа
  • Форма: групповая ролевая игра (по 3–5 человек в команде)
  • Платформа: онлайн (Zoom/MS Teams + GitHub / Swagger / Postman) или офлайн
  • Инструменты: Python, Flask, SQLite, Git, Postman (или curl), OpenAPI/Swagger
 

Сеттинг

Вы — молодые разработчики из IT-стартапа «DataForce», участвующие в хакатоне под названием "API Wars" . Цель — создать собственный REST API для одного из вымышленных клиентов, который должен интегрироваться с уже существующими внешними системами. Победит та команда, чье API будет стабильным, логичным, соответствующим стандартам и готовым к внедрению в реальный продукт.

 

Роли в команде

Роль
Описание

API Architect

  • Отвечает за проектирование структуры API
  • Определяет эндпоинты, методы, формат ответов
Backend Developer
  • Реализует логику маршрутов и взаимодействие с базой данных
  • Тестирует функционал
Documentation Master
  • Создаёт документацию к API (например, через Swagger)
  • Указывает примеры запросов и ответов
Integration Specialist (опционально)
  • Обеспечивает взаимодействие с внешними API (моковые версии)
  • Проверяет совместимость и корректность запросов

 

 

Этапы игры

Этап 1: Получение задания
  • Команды получают карточку клиента с описанием:

    • Клиент: школьная библиотека
    • Задача: создать API для учёта книг и выдач студентам
    • Должны быть: CRUD-операции, фильтрация, пагинация, связь между таблицами
Этап 2: Проектирование API
  • Команда:

    • Продумывает структуру эндпоинтов (например: /books/loans/users
    • Выбирает HTTP-методы (GET, POST, PUT, DELETE)
    • Определяет формат запросов и ответов (JSON)
 
Этап 3: Разработка
  • Команда реализует:

    • Маршруты и логику
    • Взаимодействие с SQLite
    • Связь между моделями (книги – пользователи – выдачи)
    • Поддержку параметров фильтрации и пагинации
     

    Примеры:

@app.route('/books', methods=['GET'])
def get_books():
    page = request.args.get('page', default=1, type=int)
    ...

 

Этап 4: Тестирование и документирование

Команда:

  • Тестирует API через Postman или curl
  • Пишет документацию с примерами использования
  • Может использовать Swagger/OpenAPI для визуального представления
Этап 5: Демо и защита решения

Каждая команда демонстрирует:

  • Как работает их API
  • Какие возможности реализованы
  • Как оформлена документация
  • Как она взаимодействует с внешними системами (симуляция)

Обучающие эффекты

  • Написание и тестирование REST API на Flask
  • Использование параметров запроса, заголовков, JSON-тела
  • Проектирование логической структуры API
  • Работа с базой данных через SQL
  • Создание документации по стандартам
  • Командное распределение задач и работа с Git

Возможные проблемы и вызовы во время игры

Проблема Возможное решение
Не согласованы эндпоинты между участниками Провести предварительный митап по архитектуре
Нет обработки ошибок Добавить обработку исключений и возвращать правильные коды ошибок
Несоответствие стандартам REST Следить за выбором методов и путей
Отсутствие документации Назначить ответственного за неё
Конфликты в Git Использовать отдельные ветки и проводить ревью

 

Ролевая игра №4: "DevOps в школе: запуск своего сервера"


Цель игры

Научить обучающихся базовым навыкам развертывания (деплоя) бэкенд-приложения на удалённом сервере, работать с системой контроля версий Git, а также освоить минимальные практики DevOps. Развить понимание того, как приложение переходит из локальной среды в боевой сервер.

 

Формат

  • Длительность: 2–3 академических часа
  • Форма: групповая ролевая игра (по 3–5 человек в команде)
  • Платформа: онлайн (Zoom/MS Teams + GitHub / облачный сервер) или офлайн
  • Инструменты: Python, Flask, Git, SSH, Ubuntu (или Windows Server), screentmuxgunicornnginx

Сеттинг

Вы — группа школьных программистов, участвующих в проекте "SchoolTech Challenge" , где нужно не просто написать приложение, но и показать, что оно работает «в реальном мире». Ваш учитель информатики дал вам задание:

«Запустите своё Flask-приложение на публичном сервере, чтобы любой желающий мог его протестировать».

Каждая команда получает доступ к виртуальной машине (например, на Яндекс.Облаке или VirtualBox) и должна самостоятельно подготовить среду, установить зависимости, загрузить код и запустить его.

 

Роли в команде

Роль Описание
Project Lead (PL)
  • Организует работу команды
  • Следит за выполнением этапов
  • Координирует действия
Backend Developer
  • Подготавливает рабочую версию Flask-приложения
  • Обеспечивает корректную структуру проекта для деплоя
DevOps Engineer
  • Отвечает за настройку сервера: установка Python, pip, gunicorn, nginx
  • Запускает приложение в фоне и обеспечивает его стабильную работу
QA / Tester
  • Проверяет, что приложение доступно по внешнему IP
  • Тестирует маршруты через Postman или curl

 

 

Этапы игры

Этап 1: Подготовка проекта
  • Команды:

    • Берут готовое Flask-приложение (например, от предыдущих игр)
    • Убеждаются, что оно работает локально
    • Создают файл requirements.txtсо списком зависимостей
 
Этап 2: Настройка сервера
  • Команды подключаются по SSH к выделенному серверу и:

    • Устанавливают Python, pip, git
    • Клонируют репозиторий с проектом
    • Устанавливают зависимости: pip install -r requirements.txt
 
Этап 3: Запуск приложения
  • Команды:

    • Запускают Flask-приложение через gunicorn
    • Переводят его в фоновый режим (через screen или nohup
    • Настраивают проброс порта, если необходимо

Пример:

gunicorn app:app --bind 0.0.0.0:8000

Этап 4: Тестирование и демонстрация

Команды:

  • Проверяют, что сайт доступен по внешнему IP:порт
  • Демонстрируют работу API через Postman или браузер
  • Фиксируют возможные проблемы и пути их решения

Обучающие эффекты

  • Понимание разницы между локальной и серверной средой
  • Навыки работы с терминалом и командной строкой
  • Умение использовать Git для синхронизации кода
  • Опыт установки и настройки зависимостей на сервере
  • Умение запускать и сохранять процессы в фоне
  • Основы DevOps: от написания кода до его запуска "в облаке"

Возможные проблемы и вызовы во время игры

Проблема
Возможное решение
Сервер недоступен по IP
Проверить фаервол и открытые порты
Приложение падает после закрытия терминала
Использоватьscreentmuxили systemd
Не установлены зависимости
Проверитьrequirements.txtиpip install
Конфликты в Git
Использовать pull перед запуском
Нет прав на запись в директорию
Использовать

 

Интеллект-карта 1: "Путь новичка в бэкенд-разработке"

Центральный узел:
Нет опыта в программировании

Ветки:

  • Основы программирования

    • Переменные, типы данных
    • Условия и циклы
    • Функции
  • Работа с Git

    • Создание репозитория
    • Коммиты и ветки
    • Push / Pull / Merge
  • Базы данных

    • SQLite
    • CRUD-операции
    • SQL-запросы
  • Flask и маршруты

    • GET / POST / PUT / DELETE
    • Шаблоны и API
    • Обработка форм
  • Практика проектов

    • TODO-лист
    • Сервис регистрации
    • Мини-чат
  • Финиш: Первые шаги в профессии

    • Портфолио
    • Сертификат
    • Подготовка к следующему уровню

Интеллект-карта 2: "Технические навыки бэкенд-разработчика (начальный уровень)"

Центральный узел:
Технические навыки

Ветки:

  • Язык Python

    • Синтаксис
    • Работа с файлами
    • Стандартные библиотеки (random, datetime, json)
  • Веб-разработка

    • Flask
    • HTTP-запросы
    • REST API
  • Работа с данными

    • SQLite
    • SQL-запросы
    • JSON
  • Инструменты разработчика

    • Git
    • VS Code / PyCharm
    • Terminal / CLI
  • Тестирование и отладка

    • Postman / curl
    • Логирование
    • Обработка ошибок

Интеллект-карта 3: "Проектная деятельность на начальном уровне"

Центральный узел:
Проектная деятельность

Ветки:

  • Идея проекта

    • Простой функционал
    • Целевая аудитория — школьники/студенты
  • Планирование

    • Маршруты
    • Структура базы данных
    • Список задач
  • Реализация

    • Настройка окружения
    • Написание маршрутов
    • Работа с БД
    • Тестирование
  • Документирование

    • README
    • API-документация
    • Комментарии в коде
  • Презентация

    • Демонстрация работы
    • Ответы на вопросы
    • Получение обратной связи

 

1. Научная литература

Название: Fluent Python: Clear, Concise, and Effective Programming — Luciano Ramalho
Описание:
Фундаментальное издание по языку Python, в котором рассматриваются не только основы программирования, но и углублённое понимание возможностей языка. Подходит как справочник для тех, кто хочет перейти от новичка к уверенному разработчику.

 

2. Хрестоматия / сборник текстов

Название: «Программирование на Python: хрестоматия» — под ред. С. М. Окулова
Описание:
Сборник статей, задач и примеров кода, охватывающий ключевые аспекты программирования на Python. Отлично подходит для формирования системного мышления у школьников и студентов начального уровня.

 

3. Учебник

Название: Python. Курс молодого бойца — Эрик Мэтиз
Описание:
Практико-ориентированный учебник, написанный простым языком. Включает пошаговые объяснения, проекты и задания. Идеален для самостоятельного изучения и использования в образовательном процессе.

 

4. Методические рекомендации

Название: Методические указания по преподаванию курса «Основы бэкенд-разработки на Python» — авторские материалы преподавателей IT-академий
Описание:
Рекомендации по организации занятий, распределению нагрузки, использованию проектной деятельности и проверке знаний обучающихся. Может быть адаптирован под школьные и студенческие программы.

 

5. Учебное пособие / задачник

Название: Задачи по Python. Начальный уровень — составители: А. Г. Хачатрян, Д. А. Левин
Описание:
Дидактическое пособие с более чем 200 задачами по темам: переменные, циклы, функции, работа с файлами, базы данных и API. Задачи разделены по уровням сложности и сопровождаются решениями.

Курсы по Python и бэкенд-разработке: Начальный уровень

  1. Python с нуля до первого сервера
    Освой разработку бэкенда с самого начала: от написания первой строки кода до создания своего веб-сервиса.

  2. Бэкенд для школьников: создай своё веб-приложение
    Научись писать серверную часть приложений на Python и запускать их в интернете.

  3. Веб-разработка на Python: стартуй в IT уже сегодня
    Погрузись в мир бэкенд-программирования с практикой, проектами и поддержкой ментора.

  4. Создай API за 8 недель
    Курс для новичков, которые хотят научиться создавать REST API и работать с базами данных.

  5. Python для начинающих разработчиков
    Изучи основы языка и сразу применяй знания в реальных задачах — от скриптов до веб-серверов.

  6. Стань частью IT: Бэкенд-разработчик за полгода
    Программа обучения от основ Python до запуска первого сервиса в облако.

  7. Школьный курс Python: от алгоритмов к бэкенду
    Современный курс, объединяющий информатику и практическую разработку веб-приложений.

  8. Python Junior: первый шаг в профессию
    Курс для тех, кто хочет стать junior-разработчиком: практика, портфолио, сертификат.

  9. Программируем сервер: Введение в бэкенд-разработку
    Узнай, как устроены сайты внутри, и создай свой собственный веб-сервис.

  10. Мини-курс: Flask для новичков
    Научись создавать веб-приложения всего за несколько занятий. Подходит даже без опыта.

 

Практические программы и онлайн-курсы

  1. Python в действии: практикум по бэкенд-разработке
    Реальные проекты, домашние задания, обратная связь. Только то, что нужно для старта в IT.

  2. От теории к практике: бэкенд-разработка на Python
    Обучение через практику: от переменных до полноценного сайта с регистрацией и авторизацией.

  3. Python для школьников: программируем сервер вместе
    Доступный курс для учеников 8–11 классов. Учись создавать свои веб-проекты.

  4. Курс "Hello World Backend!"
    Твой первый шаг в бэкенд-разработку. Простой, понятный, с живыми примерами.

  5. Python. Старт в бэкенд-разработку
    Идеально для новичков: никаких предварительных знаний не требуется — только желание учиться.

  6. Бэкенд-разработка для начинающих: Python + Flask
    Один из самых простых путей в профессию: легкий старт, быстрый результат.

  7. Запусти свой сервер: мини-курс по Python
    За месяц ты научишься создавать веб-приложения и запускать их в интернете.

  8. Веб-разработка для детей и подростков
    Курс для юных программистов: интересные задачи, игровые элементы, творческие проекты.

  9. Python. Первые шаги в бэкенд-разработке
    Простой и понятный курс для тех, кто делает первый шаг в мире серверной разработки.

  10. Курс для будущего разработчика: Python и Flask
    От идеи до готового продукта: создай своё веб-приложение с нуля.

 

Тематические и специализированные курсы

  1. Разработка API на Python: начальный уровень
    Научись создавать интерфейсы, которые будут использовать другие программисты.

  2. Работаем с базами данных на Python
    Освой работу с SQLite и научись хранить данные в своих веб-приложениях.

  3. Git и командная работа для начинающих разработчиков
    Научись использовать Git и работать в команде, как настоящий программист.

  4. Проектное обучение: создай свой сайт на Python
    Курс с акцентом на практике: реализуй свой проект под руководством опытного ментора.

  5. Python для начинающих: бэкенд-разработка в школе
    Школьная программа дополнительного образования. Современно, доступно, по делу.

Заявка ученика, студента, слушателя
Заявка преподавателя, репетитора админу сети.
16:25
19
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.