Специалитет
2020/2021





Язык программирования Python
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Компьютерная безопасность)
Кто читает:
Департамент прикладной математики
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
с онлайн-курсом
Преподаватели:
Бобер Станислав Алексеевич
Специальность:
10.05.01. Компьютерная безопасность
Язык:
русский
Кредиты:
4
Контактные часы:
44
Программа дисциплины
Аннотация
Целями освоения дисциплины «Язык программирования Python» является: ● понимание основ функционального и объектно-ориентированного программирования на языке Python; ● использования языка Python для решения научных, вычислительных задач и задач анализа данных; ● приобретение навыков и опыта использования широко используемых модулей NumPy, SciPy, Matplotlib, SymPy, Pandas, Scikit-learn, Cython, Numba; ● приобретение навыков и опыта использования интерактивной среды Jupyter Notebook и среды разработки Spyder. Дисциплина реализуется в он-лайн формате
Цель освоения дисциплины
- Получение знаний и навыков программирования на языке Python и использования имеющих широкое применение модулей так называемого «научного стека» (Numpy, Scipy, Matplotlib, Pandas).
Планируемые результаты обучения
- Реализует вычислительный алгоритм используя Scipy, визуализирует результаты используя Matplotlib.
- Полноценно использует Jupyter Notebook, пишет программу на Python для обработки текста.
- Устанавливает сборку Anaconda, запускает и использует Jupyter Notebook, пишет простую программу на Python.
- Реализует алгоритм на Python в процедурной и функциональной парадигмах, создает регулярные выражения для обработки текста.
- Реализует вычислительный алгоритм используя Numpy, создает графики используя Matplotlib
- Загружает и обрабатывает данные используя Pandas.
- Определяет необходимость оптимизации, часть программы, подлежащую оптимизации скорости выполнения, и применяет Cython, Numba и Dask для оптимизации. Измеряет и сравнивает скорости выполнения до и после оптимизации.
- Реализует программу на языке Python в объектно-ориентированной парадигме, применяет декораторы.
Содержание учебной дисциплины
- Введение в Python. Сборка Anaconda (miniconda). Среда программирования Jupyter Notebook. Основные типы данных: строки, списки, кортежи, словари.Синтаксис Python, управляющие инструкции (условные операторы, циклы, генераторы списков), строки, списки, словари, функции.
- Интерактивное программирование в Jupyter Notebook. Обработка текстов.Статистическая обработка текста.
- Процедурное и функциональное программирование. Регулярные выражения.Функциональное программирование. Регулярные выражения.
- Модули NumPy, Matplotlib и их применение.Модуль NumPy.
- Модуль SciPy, численные алгоритмы.Модуль SciPy, численные алгоритмы.
- Модуль Pandas, работа с таблицами и анализ данных.Модуль Pandas, работа с таблицами и анализ данных.
- Оптимизация расчетов при помощи Cython, Numba и Dask.Оптимизация расчетов при помощи Cython, Numba и Dask.
- Объектно-ориентированное программирование в Python, декораторы.Объектно-ориентированное программирование в Python, декораторы.
Элементы контроля
- аудиторный контроль
- домашняя работа 1-ый модульДомашние задания выдаются в электронной форме в формате Jupyter Notebook (*.ipynb). Такой ноутбук (файл) подготавливается преподавателем для каждого студента, и студент обязан выполнить задание именно в этом ноутбуке, после чего загрузить этот ноутбук по ссылке, указанной в одной из первых ячеек этого ноутбука. Допускается загрузка нескольких версий ноутбука, при этом для проверки будет использована последняя версия, которая была загружена до дедлайна.
- прохождение онлайн курса
- экзамен 1-го модуля
- экзамен 2-го модуля
- домашняя работа 2-ой модульДомашние задания выдаются в электронной форме в формате Jupyter Notebook (*.ipynb). Такой ноутбук (файл) подготавливается преподавателем для каждого студента, и студент обязан выполнить задание именно в этом ноутбуке, после чего загрузить этот ноутбук по ссылке, указанной в одной из первых ячеек этого ноутбука. Допускается загрузка нескольких версий ноутбука, при этом для проверки будет использована последняя версия, которая была загружена до дедлайна.
- Контрольно-измерительные материалы
- аудиторный контроль
- домашняя работа 1-ый модульДомашние задания выдаются в электронной форме в формате Jupyter Notebook (*.ipynb). Такой ноутбук (файл) подготавливается преподавателем для каждого студента, и студент обязан выполнить задание именно в этом ноутбуке, после чего загрузить этот ноутбук по ссылке, указанной в одной из первых ячеек этого ноутбука. Допускается загрузка нескольких версий ноутбука, при этом для проверки будет использована последняя версия, которая была загружена до дедлайна.
- прохождение онлайн курса
- экзамен 1-го модуля
- экзамен 2-го модуля
- домашняя работа 2-ой модульДомашние задания выдаются в электронной форме в формате Jupyter Notebook (*.ipynb). Такой ноутбук (файл) подготавливается преподавателем для каждого студента, и студент обязан выполнить задание именно в этом ноутбуке, после чего загрузить этот ноутбук по ссылке, указанной в одной из первых ячеек этого ноутбука. Допускается загрузка нескольких версий ноутбука, при этом для проверки будет использована последняя версия, которая была загружена до дедлайна.
- Контрольно-измерительные материалы
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.5 * экзамен 1-го модуля + 0.5 * экзамен 1-го модуля
Список литературы
Рекомендуемая основная литература
- Северенс Ч. - Введение в программирование на Python - Национальный Открытый Университет "ИНТУИТ" - 2016 - 231с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100703
Рекомендуемая дополнительная литература
- Нуньес-Иглесиас Х., Уолт ван дер Ш., Дэшноу Х. - Элегантный SciPy - Издательство "ДМК Пресс" - 2018 - 266с. - ISBN: 978-5-97060-600-1 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/116124
- Сузи Р.А. - Язык программирования Python - Национальный Открытый Университет "ИНТУИТ" - 2016 - 350с. - ISBN: 5-9556-0058-2 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100546