• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Основы программирования на Python-2

2019/2020
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты
Статус:
Дисциплина общефакультетского пула
Когда читается:
3, 4 модуль

Преподаватели


Иванникова Вероника Евгеньевна


Контуров Дмитрий Алексеевич

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

Аннотация

Курс посвящён практике программирования на языке Python. Мы решим много задач и так научимся основам разработки, попробуем современные инструменты аналитика и разработчика. При решении задач изучим некоторый продвинутый синтаксис Python (модули и пакеты, декораторы, генераторы ит.д.).
Цель освоения дисциплины

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

  • Студенты познакомятся с практикой программирования на языке Python и получат базовые теоретические знания информатики, научатся использовать современные инструменты анализа данных и разработки для решения широкого круга.
Планируемые результаты обучения

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

  • Умение применять для решения практических задач основные конструкции и идиомы языка программирования Python.
  • Умение решать базовые задачи анализа данных.
  • Теоретическое знакомство со стеком web-технологий, умение решать базовые задачи на применение web-технологий (сбор данных, работа с API, создание своих web-сервисов).
Содержание учебной дисциплины

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

  • Как работает программа на языке Python. Обзор возможностей языка. Базовые инструменты разработчика.
    Философия Python, классы решаемых задач. Интерпретация программы на Python. stdin/stdout/stderr. Память, процессор. Использование библиотек. Как сдавать практические задания. Как установить Python. Анаконда. Jupyter. Базовая интроспекция в интерпретаторе. Как работать в PyCharm. Ликбез по работе в командной строке.
  • Структуры данных.
    Структуры данных и коллекции Python, сложность вычислений по времени и памяти. Сравнение коллекций. Асимптотика. O-символика. Структуры данных numpy, pandas. Однопроходный алгоритм. Генератор списка, словаря, множества. Бинарный поиск и его сложность. Сортировки. Оценка сложности. Хеш-таблицы. Стек, очередь, правильная скобочная последовательность. Бинарный поиск.
  • Строки, кодировки, Unicode.
    Представление строк. Конкатенация. Быстрый поиск подстрок. Длина строки. Кодировки. Работа с файлами.
  • Функции.
    Входные и выходные параметры. Позиционные и именованные аргументы. Лямбда-функции. Декораторы. Модуль functools
  • ООП
    Цели и задачи ООП. Классы, атрибуты, методы. Объектная модель Python. Паттерны проектирования
  • Обработка ошибок.
    Исключения. Обработка ошибок. Менеджеры контекста.
  • Дизайн приложений и библиотек. Промышленное программирование.
    Распространение кода на Python: wheel, egg. Пакетные менеджеры. Дизайн программы. Стиль кода. Документация и тестирование
  • Прочие возможности языка Python
    Регулярные выражения. Итераторы, последовательности, генераторы. Стандартная библиотека языка Python
  • Анализ данных на Python
    Mathplotlib, Numpy, Pandas, Scapy. Описательные статистики. Гистограммы. Ящики с усами. Ядерные оценки плотности.
  • Web-технологии
    HTTP, клиент-сервер, REST. requests, telegram-боты
Элементы контроля

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

  • неблокирующий Контесты
    Основная форма работы на курсе - самостоятельное решение домашних заданий. У каждого домашнего задания есть дедлайн. Часть заданий проверяется полностью автоматически - в формуле оценки такие называются Контесты.
  • неблокирующий Проекты
    Проекты - это большие домашние задания, каждое на 1 или более дней работы (время выполнения зависит от вашего опыта). Таких будет 3. Сдаются в ту же систему, что и контесты, но проверка частично ручная.
  • неблокирующий Семинары
Промежуточная аттестация

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

  • Промежуточная аттестация (4 модуль)
    0.333 * Контесты + 0.333 * Проекты + 0.334 * Семинары
Список литературы

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

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

  • Саммерфилд М. - Python на практике - Издательство "ДМК Пресс" - 2014 - 338с. - ISBN: 978-5-97060-095-5 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/66480

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

  • Сычев А.В. - Web-технологии - Национальный Открытый Университет "ИНТУИТ" - 2016 - 408с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100725