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

Язык Python

Статус: Курс по выбору (Науки о данных)
Направление: 01.04.02. Прикладная математика и информатика
Когда читается: 1-й курс, 1, 2 модуль
Формат изучения: Full time
Прогр. обучения: Науки о данных
Язык: русский
Кредиты: 4

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

Аннотация

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

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

  • Научиться программировать на языке Python
  • Научиться отлаживать код
  • Научиться эффективно использовать типы данных и библиотеки языка Python
  • Научиться обрабатывать данные средствами Python
Результаты освоения дисциплины

Результаты освоения дисциплины

  • знать основные структуры данных и конструкции языка Python
  • уметь писать работающий код на языке Python
  • уметь читать документацию библиотек
  • уметь работать в среде PyCharm и Jupyter Notebook
  • уметь эффективно работать с конструкциями языка Python
  • владеть парадигмами объектно-ориентированного программирования и функционального программирования
  • знать как запрограммировать параллельные вычисления на Python
  • владеть библиотеками, активно используемыми в анализе данных; среди них: pandas, NumPy, scikit-learn и другие.
Содержание учебной дисциплины

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

  • Введение, знакомство с языком.
    Интерпретатор и его интерактивный режим. Динамическая типизация, базовые типы данных: числовые, 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 : как извлечь больше информации из данных путем построения практичных систем машинного обучения на языке Python, Коэльо Л. П., Ричарт В., 2019

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

  • Чистый Python : тонкости программирования для профи, Бейдер, Д., Логунова, А., 2019