• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2023/2024

Программирование на Python

Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус: Курс обязательный (Кибербезопасность)
Направление: 10.04.01. Информационная безопасность
Когда читается: 1-й курс, 2, 3 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Прогр. обучения: Кибербезопасность
Язык: русский
Кредиты: 6
Контактные часы: 60

Программа дисциплины

Аннотация

В рамках дисциплины студенты научатся описывать алгоритмы для решения задач и работы с данными. Разберут, как улучшить и упростить программу с помощью модулей, итераторов, декораторов. Изучат технологии для тестирования кода, разбора текста и веб-страниц. По завершению дисциплины студенты будут обладать теоретическими знаниями и профессиональными компетенциями программирования на языке Python, такими как работа с файлами, работа с внешними API: работа с разными форматами данных, работа с библиотекой requests, http-запросы, работа с классами на примере API VK. GIT — система контроля версий: внедрение системы контроля версий; история работы и ветки; командная работа. Профессиональная работа с Python: модули, пакеты, импорты в Python, итераторы, генераторы, декораторы. Применение Python на практике: разработка тестов, регулярные выражения, веб-скрапинг
Цель освоения дисциплины

Цель освоения дисциплины

  • Получение навыка программирования для автоматизации процессов защиты систем
Планируемые результаты обучения

Планируемые результаты обучения

  • Умеет писать код, используя условные конструкции; выполнять операции сравнения
  • Умеет различные объекты записывать в файл Python и читать их обратно, умеет объединять аналитические данные из разных систем в одну структуру
  • Знает в каких случаях эффективнее применять функции, а в каких классы. С какими проблемами можно столкнуться при применении функции и как применение классов может решить проблемы
  • Умеет объявить класс в Python
  • Знает, что такое регулярные выражения и чем они отличаются от простого поиска
  • Знает синтаксис регулярных выражений
  • Знает модуль re в Python
  • Умеет использовать регулярные выражения на практике
  • Знает существующие системы контроля версий, архитектуру работы git и svn, понятие CI/CD
  • Умеет создавать git репозиторий, создавать ветки в локальном и удаленном репозитории, выкладывать свои изменения в удаленный репозиторий, разрешать конфликты при работе с Git-репозитори
  • Умеет настраивать базовые CI/CD пайплайны
  • Знает как отправлять HTTP-запросы с помощью Python, используя соответствующие библиотеки
  • Умеет отправлять HTTP-запросы с помощью Python, использует библиотеку requests
  • Знает типы API, как работать с различными форматами данных (формат JSON), библиотеки для работы с API
  • Умеет использовать Python для работы с API и автоматизировать задач
  • Знает инструменты для сканирования уязвимостей, библиотеки для обработки данных
  • Умеет писать скрипты для автоматического сканирования и анализа уязвимостей
  • Знает базовые понятия языка Python, его преимущества, принципы работы в Jupyter Notebook.
  • Знает почему обязательно нужно писать комментарии в коде и в чём особенности простых арифметических операций в Python 3.
  • Познакомился с переменными и знает как их называть.
  • Знает применение переменных, условных конструкций и логических операторов, написание кода.
  • Умеет реализовывать поставленные задачи, используя типы данных и циклы; создавать собственные функции и умеет работать со встроенными.
  • Знает типичные проблемы со временем, ведущие к ошибкам при обработке и интерпретации данных.
  • Знает, как работать с ошибками в Python: чтение ошибок, обработка информации, как запрашивать помощь при работе с ошибками.
  • Умеет работать с датами в Datetime: знает как из строк получать полноценный объект даты и времени, как импортировать библиотеку, как заполнять datetime, как сравнивать, вычитать и прибавлять даты.
  • Знает формат Unixtime как альтернативой Datetime.
  • Знает специализированные инструменты, позволяющие расследовать инциденты, восстанавливать данные, устранять угрозы и обеспечивать безопасное функционирование систем и сетей.
  • Умеет писать скрипты для автоматического восстановления данных, устранения угроз безопасности.
  • Знает специализированные инструменты и библиотеки автоматизации для управления настройками СЗИ и SIEM- систем.
  • Умеет разрабатывать сценарии автоматизации для управления настройками безопасности сети и систем (контроль изменений конфигураций и обработку логов с использованием Python-скриптов и библиотек).
Содержание учебной дисциплины

Содержание учебной дисциплины

  • 1. Введение в программирование
  • 2. Управляющие конструкции и коллекции
  • 3. Функции и области видимости
  • 4. Работа с файлами и пакетами
  • 5. Время и даты в Python
  • 6. Классы и объекты (ООП)
  • 7. Регулярные выражения и основы синтаксического разбора
  • 8. GIT - система контроля версий
  • 9. Взаимодействие в WWW
  • 10. Работа с API
  • 11. Автоматизация поиска уязвимостей на Python
  • 12. Python форензика
  • 13. Python управление
Элементы контроля

Элементы контроля

  • неблокирующий Домашние задания с самопроверкой
    Домашние задания, проверяемые студентами самостоятельно по чек-листу самопроверки, по следующим темам: - “Управляющие конструкции и коллекции” - “Работа с файлами и пакетами” - “Время и дата в Python” - “Регулярные выражения и основы синтаксического разбора” - “GIT - система контроля версий” - “Взаимодействие в WWW” - “Работа с API” - “Автоматизация поиска уязвимостей на Python”
  • неблокирующий Итоговый тест по 2-му модулю
    Процедура сдачи итогового теста по 2-му модулю: Студенты выполняют тест в лмс. Тест содержит 20 вопросов. При ответе на вопрос необходимо выбрать один ответ или несколько правильных ответов. В этом случае в тексте вопроса будет дано особое указание. Время выполнения теста – 30 минут. Студент может пройти тест 1 раз.
  • неблокирующий Домашние задания с проверкой преподавателем
    Процедура сдачи домашних заданий с проверкой преподавателем: 1. Перед выполнением задания студент устанавливает jupyter notebook либо использует google colab 2. Студент прикрепляет ссылку на выполненное задание в Google Colab или GitHub (если использовали Jupyter Notebook). По ссылке есть доступ. 3. Преподаватель в лмс оставляет обратную связь на выполненную работу
  • блокирующий Итоговая работа по 3-му модулю
    Итоговый экзамен по дисциплине проводится в форме выполнения итоговой работы по в 3-ем модуле дисциплины. Студентам предлагается выполнить задание, которое может включать написание скриптов для автоматического сканирования и анализа уязвимостей, написание скриптов для автоматического восстановления данных, устранения угроз безопасности, автоматический поиск негативных событий, автоматизацию управления настройками безопасности сетей и др. Итоговая работа, может включать в себя элементы всех тем курса. Результатом работы студента является ссылка на репозиторий (GitHub или GitLab), в котором хранится его выполненная работа или файл с кодом программы. Название файла должно содержать номер группы, фамилию, имя и название занятия. Студент выполняет итоговое задание до заключительного вебинара по дисциплине и загружает (файл или ссылку на репозиторий) в ЛМС. Преподаватель проверяет работы. На вебинаре преподаватель даёт студентам обратную связь и выставляет оценку.
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 3 модуль
    0.3 * Домашние задания с проверкой преподавателем + 0.2 * Домашние задания с самопроверкой + 0.3 * Итоговая работа по 3-му модулю + 0.2 * Итоговый тест по 2-му модулю
Список литературы

Список литературы

Рекомендуемая основная литература

  • Титов, А. Н. Python. Обработка данных : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева. — Казань : КНИТУ, 2022. — 104 с. — ISBN 978-5-7882-3171-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/331019 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Федоров, Д. Ю.  Программирование на языке высокого уровня Python : учебное пособие для вузов / Д. Ю. Федоров. — 5-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 227 с. — (Высшее образование). — ISBN 978-5-534-17323-9. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/532868 (дата обращения: 28.08.2023).
  • Чернышев, С. А.  Основы программирования на Python : учебное пособие для вузов / С. А. Чернышев. — Москва : Издательство Юрайт, 2023. — 286 с. — (Высшее образование). — ISBN 978-5-534-14350-8. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/519949 (дата обращения: 28.08.2023).
  • Янцев, В. В. Web-программирование на Python / В. В. Янцев. — 2-е изд., стер. — Санкт-Петербург : Лань, 2023. — 180 с. — ISBN 978-5-507-46546-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/310289 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Борзунов, С. В. Языки программирования. Python: решение сложных задач / С. В. Борзунов, С. Д. Кургалин. — Санкт-Петербург : Лань, 2023. — 192 с. — ISBN 978-5-507-45923-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/319394 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Основы многопоточного и параллельного программирования - Карепова Е.Д. - Сибирский федеральный университет - 2016 - https://znanium.com/catalog/product/966962 - 1005813 - ZNANIUM
  • Персиваль, Г. Python. Разработка на основе тестирования. Повинуйся Билли-тестировщику, используя Django, Selenium и JavaScript / Г. Персиваль , перевод с английского А. В. Логунов. — Москва : ДМК Пресс, 2018. — 622 с. — ISBN 978-5-97060-594-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/111440 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.