Магистратура
2023/2024![Планируемые результаты обучения](/f/src/global/i/edu/results.svg)
![Содержание учебной дисциплины](/f/src/global/i/edu/sections.svg)
![Элементы контроля](/f/src/global/i/edu/controls.svg)
![Промежуточная аттестация](/f/src/global/i/edu/intermediate_certification.svg)
![Список литературы](/f/src/global/i/edu/library.svg)
Программирование на 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). — Режим доступа: для авториз. пользователей.