Основы программирования на Python весна 2019 матфак
Содержание
О курсе
Курс читается для студентов факультета математики ВШЭ в 3-4 модулях.
Лектор: Иванникова Вероника
Лекции проходят по понедельникам, первой парой, в аудитории 318.
Полезные ссылки
Семинары
Группа | Преподаватель | Учебный ассистент | Расписание |
---|---|---|---|
1 | Андрей Кудинов | Мовсес Элбакян | вторник, 15:10 - 16:30, ауд. 318 |
2 | Дмитрий Контуров | Соня Дымченко | понедельник, 10:30 - 11:50, ауд. 318 |
Система оценок
Формула оценки
Результирующая оценка по дисциплине рассчитывается по формуле:
Oитог = 0.8 * Oнакопл + 0.2 * Oэкз
Накопленная оценка рассчитывается как сумма баллов за все практические задания, переведённая в шкалу от 0 до 10.
Подробнее |
Правила вычисления оценокОценка за практику вычисляется как сумма баллов по всем семинарским работам, переведенная в 10 бальную шкалу. Оценка за домашнюю работу — как сумма баллов по всем домашним заданиям, переведенная в 10 бальную шкалу. Количество баллов за разные задания может различаться в зависимости от их сложности. Все промежуточные оценки (за домашние, практику и экзамен) могут быть не целыми. Накопленная и итоговая оценки округляются математически. Правила сдачи заданийДедлайны по всем домашним заданиям являются жёсткими, то есть после срока работы не принимаются. (поправить!) Домашнее задание выполняется самостоятельно. Часть заданий будет проверяться автоматически, часть - вручную. При попытке сдать хотя бы частично списанный код (текст), или код (текст), полученный в результате совместного решения задач, вся работа будет оценена на 0 баллов. При обнаружении плагиата оценки за домашнее задание или практику обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. |
Лекции
Лекция 1 (14.01). Введение. Обзор возможностей языка.
Философия Python, классы решаемых задач. Интерпретация программы на Python. stdin/stdout/stderr. Память, процессор. Использование библиотек.
Лекция 2-3 (XX.01). Структуры данных.
Структуры данных и коллекции Python, сложность вычислений по времени и памяти. Сравнение коллекций. Асимптотика. O-символика. Структуры данных numpy, pandas Однопроходный алгоритм. Генератор списка, словаря, множества. Бинарный поиск и его сложность. Сортировки. Оценка сложности. Хеш-таблицы. Стек, очередь, правильная скобочная последовательность. Бинарный поиск.
Лекция 4 (ХХ.02). Строки, кодировки, Unicode.
Представление строк. Конкатенация. Быстрый поиск подстрок. Длина строки. Кодировки. Работа с файлами.
Лекция 5 (ХХ.02). Функции.
Входные и выходные параметры. Позиционные и именованные аргументы. Лямбда-функции. Декораторы. Модуль functools
Лекция 6-7 (). ООП. Цели и задачи ООП. Классы, атрибуты, методы. Объектная модель Python. Паттерны проектирования
Лекция 8 (). Обработка ошибок. Исключения. Обработка ошибок. Менеджеры контекста.
Лекция 9 (). Дизайн приложений и библиотек. Промышленное программирование.
Распространение кода на Python: wheel, egg. Пакетные менеджеры. Дизайн программы. Стиль кода. Документация и тестирование
Лекция 10 (). Регулярные выражения.
Лекция 11 (). Стандартная библиотека языка Python.
Лекция 12-14 (). Анализ данных на Python.
Mathplotlib, Numpy, Pandas, Scapy. Описательные статистики. Гистограммы. Ящики с усами. Ядерные оценки плотности.
Лекция 15-16 (). Web-технологии.
HTTP, клиент-сервер, REST. requests, telegram-боты
Лекция 17 (). Итераторы, последовательности, генераторы.
Лекция 18 (). Обзор всего пройденного на курсе.
Семинары
Семинары 1-2
Note! Очень желательно принести с собой ноутбук, потому что сдавать в систему задачки с компьютеров из дисплейного класса нельзя.
1. Общие организационные моменты
2. продвинутые python-интерпретаторы jupyter, colab.
Подсказки в продвинутых интерпретаторах.
https://colab.research.google.com/notebooks/welcome.ipynb
3. Как поставить python и настроить окружение.
Научный дистрибутив Anaconda https://www.anaconda.com/download
Как ставить либы через pip https://www.digitalocean.com/community/tutorials/common-python-tools-using-virtualenv-installing-with-pip-and-managing-packages#a-thorough-pip-how-to
4. Базовый рассказ про работу в командной строке, git, ssh (необходимо для сдачи заданий) Навигация по папкам, перемещение и удаление папок/файлов. Note! про stdin, stdout, stderr практических примеров! На лекции не разобрались. Материалы про git https://git-scm.com/book/ru/v2 (достаточно будет разобраться что же такое система контроля версий, коммит, репозиторий, что делают команды git push, git pull)
Материалы про ssh https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process
5. Знакомство с чудо-системой приёма домашек. https://hse-programming-intro.manytask.org/
Инструкция как настроить систему https://gitlab.com/appleveronika/hse-programming-intro/blob/master/README.md
6. Работа в PyCharm Подсказки по питону и либам. Как настроить проект с задачками курса и запускать тесты. Навигация по проекту.
https://www.jetbrains.com/pycharm/download/#section=mac нужна версия Community (PyCharm CE)
7. Для вашего удобства, для тех кто затрудняется настроить систему, мы подготовили виртуальную машину с Ubuntu с преднастроенной системой (там есть git, python, pytest) архив https://yadi.sk/d/cYJx1a1SLpM0yQ пароль от архива спрашивайте у семинаристов и в чате курса
Домашние задания
Новости курса
14.01 Семинар Димы Контурова перенесён на понедельник, после лекции, в аудитории 318. На этой неделе семинар состоится в среду, 16 января, в дисплейном классе 318.
Полезные материалы
Основная литература
- Н.А.Ворожцов, А.В.Винокуров, 2008. Практика и теория программирования. Физматкнига
- Документация языка Python https://docs.python.org/3/
- Б.У. Керниган, Р. Пайк , 2017. Практика программирования. Вильямс
- Д.Бизли, 2014. Python. Подробный справочник. Символ-плюс
Полезные ссылки
- [ ? ]
- [ ? ]