Магистратура
2020/2021
Язык Python
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс по выбору (Науки о данных)
Направление:
01.04.02. Прикладная математика и информатика
Кто читает:
Базовая кафедра Яндекс
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Прогр. обучения:
Науки о данных
Язык:
русский
Кредиты:
4
Контактные часы:
48
Программа дисциплины
Аннотация
Python - язык, ориентированный на скорость и простоту разработки за счет скорости выполнения программ. Это бывает полезно во многих задачах, например в исследовательском программировании, в аналитике, для написания прототипов и т.д. На курсе мы научимся во-первых писать простые программы, а далее будем изучать различные конструкции и библиотеки, позволяющие писать программы быстрее и с меньшим количеством ошибок; а также разрабатывать библиотеки и большие проекты.
Цель освоения дисциплины
- Научиться программировать на языке Python
- Научиться отлаживать код
- Научиться эффективно использовать типы данных и библиотеки языка Python
- Научиться обрабатывать данные средствами Python
Планируемые результаты обучения
- знать основные структуры данных и конструкции языка Python
- уметь писать работающий код на языке Python
- уметь читать документацию библиотек
- уметь работать в среде PyCharm и Jupyter Notebook
- уметь эффективно работать с конструкциями языка Python
- владеть парадигмами объектно-ориентированного программирования и функционального программирования
- владеть библиотеками, активно используемыми в анализе данных; среди них: pandas, NumPy, scikit-learn и другие.
- знать как запрограммировать параллельные вычисления на Python
Содержание учебной дисциплины
- Введение, знакомство с языком.Интерпретатор и его интерактивный режим. Динамическая типизация, базовые типы данных: числовые, str, list. Основные операторы, оператор print. Блоки кода, основные составные операторы: if, while, for. Основные встроенные функции. Создание пользовательских функций. Выражения, приоритеты операторов. Работа с файла-ми. Тип dict, хэширование. Модули, оператор import, модуль sys.
- Объектно-ориентированное программированиеКлассы, объекты. Пользовательские классы, методы и члены. Конструктор класса. Перегрузка операторов. Объекты в Python.
- Обработка ошибокИсключения, их генерация и обработка. Пользовательские исключения. Освобождение ресурсов, менеджеры контекстов.
- Обработка ошибокИсключения, их генерация и обработка. Пользовательские исключения. Освобождение ресурсов, менеджеры контекстов.
- Оформление и тестирование кодаДокументирование кода. Инструмент pydoc. Юнит-тестирование. Модуль unittest. Инструменты для тестирования. Инструменты pylint, pyflakes. Отладочные инструменты. Модули, создание модулей. Пространства имен. Исполнение модулей как скриптов.
- Работа со строкамиВстроенные функции строк. Форматирование строк. Модуль string. Класс unicode, его функции. Кодировки и Unicode, кодирование файлов и исходного кода
- Модель памятиХранение объектов в памяти, сборщик мусора. Хранение объектов по ссылке и по значению. Изменяемые и неизменяемые объекты. Модуль copy.
- Функциональное программированиеОбработка списков, функция map и др., лямбда-функции, распаковка списков и словарей. Расширенная обработка аргументов функций. Генераторы и "ленивое" исполнение. Управляющие исключения. Модуль itertools.
- Обзор библиотекБиблиотеки для обработки аргументов командной строки. Системные библиотеки. Стандартные математические библиотеки. Регулярные выражения и модуль re. Библиотеки для работы с HTML/XML. Математические библиотеки: SciPy и др. Библиотека Tkinter. Библиотеки для анализа данных: Pandas, NumPy, scikit-learn
- Параллельные вычисления в PythonМногопоточные программы и GIL. Многопроцессорные программы
- Расширенная работа с объектамиМодификаторы доступа. Наследование, разрешение имен. Метаклассы. Объект type. Декораторы.
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.3 * Домашняя работа + 0.3 * Домашняя работа + 0.4 * Экзамен
Список литературы
Рекомендуемая основная литература
- Лучано Рамальо - Python. К вершинам мастерства - Издательство "ДМК Пресс" - 2016 - 768с. - ISBN: 978-5-97060-384-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/93273
- Северенс Ч. - Введение в программирование на Python - Национальный Открытый Университет "ИНТУИТ" - 2016 - 231с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100703
Рекомендуемая дополнительная литература
- Сузи Р.А. - Язык программирования Python - Национальный Открытый Университет "ИНТУИТ" - 2016 - 350с. - ISBN: 5-9556-0058-2 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100546