Основы программирования на Python весна 2019 матфак — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м
м
Строка 8: Строка 8:
 
'''Лектор:''' Иванникова Вероника
 
'''Лектор:''' Иванникова Вероника
  
Лекции проходят по понедельникам, первой парой, в аудитории 318.
+
Лекции проходят по понедельникам, 9:00 - 10:20, в аудитории 318.
  
  
Строка 48: Строка 48:
 
==== Правила сдачи заданий ====
 
==== Правила сдачи заданий ====
 
Дедлайны по всем домашним заданиям являются жёсткими, то есть после срока работы не принимаются.
 
Дедлайны по всем домашним заданиям являются жёсткими, то есть после срока работы не принимаются.
 
(поправить!)
 
  
 
Домашнее задание выполняется самостоятельно. Часть заданий будет проверяться автоматически, часть - вручную. При попытке сдать хотя бы частично списанный код (текст), или код (текст), полученный в результате совместного решения задач, вся работа будет оценена на 0 баллов. При обнаружении плагиата оценки за домашнее задание или практику обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат.  
 
Домашнее задание выполняется самостоятельно. Часть заданий будет проверяться автоматически, часть - вручную. При попытке сдать хотя бы частично списанный код (текст), или код (текст), полученный в результате совместного решения задач, вся работа будет оценена на 0 баллов. При обнаружении плагиата оценки за домашнее задание или практику обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат.  

Версия 17:25, 19 января 2019

О курсе

borderless


Курс читается для студентов факультета математики ВШЭ в 3-4 модулях.

Лектор: Иванникова Вероника

Лекции проходят по понедельникам, 9:00 - 10:20, в аудитории 318.


Полезные ссылки

Семинары

Группа Преподаватель Учебный ассистент Расписание
1 Андрей Кудинов Мовсес Элбакян вторник, 15:10 - 16:30, ауд. 318
2 Дмитрий Контуров Соня Дымченко понедельник, 10:30 - 11:50, ауд. 318

Система оценок

Формула оценки

Результирующая оценка по дисциплине рассчитывается по формуле:

Oитог = 0.8 * Oнакопл + 0.2 * Oэкз

Накопленная оценка рассчитывается как сумма баллов за все практические задания, переведённая в шкалу от 0 до 10.

Лекции

Лекция 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.

Полезные материалы

Основная литература

  1. Н.А.Ворожцов, А.В.Винокуров, 2008. Практика и теория программирования. Физматкнига
  2. Документация языка Python https://docs.python.org/3/
  3. Б.У. Керниган, Р. Пайк , 2017. Практика программирования. Вильямс
  4. Д.Бизли, 2014. Python. Подробный справочник. Символ-плюс

Полезные ссылки

  1. [ ? ]
  2. [ ? ]