Парадигмы осень 2016 — различия между версиями
(→Дополнительные задания) |
(→Полезные ссылки) |
||
Строка 53: | Строка 53: | ||
* [https://docs.python.org/3/library/io.html документация по StringIO и похожим file-like классам] | * [https://docs.python.org/3/library/io.html документация по StringIO и похожим file-like классам] | ||
* [https://docs.python.org/3.6/library/profile.html документация по Python cProfile/profile] | * [https://docs.python.org/3.6/library/profile.html документация по Python cProfile/profile] | ||
+ | * [http://docs.pytest.org/en/latest/ Пример с Pytest], [http://docs.pytest.org/en/latest/getting-started.html#grouping-multiple-tests-in-a-class пример с классами в Pytest] | ||
=== Проверка стиля кода === | === Проверка стиля кода === |
Версия 22:48, 10 декабря 2016
Содержание
Организационное
Преподаватели
- Андроник Ордиян (andronik.ordian@gmail.com)
- Миша Кринкин (krinkin.m.u@gmail.com)
- Егор Суворов (egor_suvorov@mail.ru)
Домашние задания
NOTE: мы используем python 3.x.
- домашнее задание №1
- домашнее задание №2
- домашнее задание №3
- домашнее задание №4 (Шаблон model.py для дз)
- домашнее задание №5
- домашнее задание №6
- домашнее задание №7
- домашнее задание №8
- домашнее задание №9
- домашнее задание №10 (literacy.sql, NOTE: мы используем sqlite3 в качестве базы данных)
- домашнее задание №11
Правила сдачи домашних заданий
- Домашние задания отправляются на почту в виде ссылки на git репозиторий (например, на github) и пути к папке внутри репозитория;
Время занятий
В связи с тем, что 2 пары в неделю слишком много, и усвоить за раз материал рассказанный за две пары проблематично, занятия будут начинаться с 11 часов, а не с 10 как указано в расписании.
Третья группа может по желанию приходить к 10 часам на office hours для разбора проблем. 7 декабря в качестве эксперимента занятие начнётся в 10:30 (консультация будет и до, и после - в течение обеденного перерыва).
У первой группы занятия с 10:30 до 13:30.
Полезная информация
Полезные ссылки
- Официальный сайт python и в частности python tutorial
- Git Book
- github
- туториал по класса в python из официальной документации
- объяснение MRO с примерами
- объяснение super с примерами
- алгоритм Штрассена
- сайт с документацией по numpy
- Haskell Platform - должно хватить минимальной версии, битность не важна.
- SQLite3. В Ubuntu можно запустить
sudo apt-get install sqlite3
. Также можно взять архив sqlite-tools из раздела Precompiled Binaries. - DB Browser for SQLite, там есть собранный файл для Windows и инструкция по установке для Ubuntu.
- документация по Python unittest
- про оценку покрытия кода тестами
- документация по StringIO и похожим file-like классам
- документация по Python cProfile/profile
- Пример с Pytest, пример с классами в Pytest
Проверка стиля кода
PEP 8 -- Style Guide for Python Code | Python.org
Для проверки кода на соответствие гайду используйте утилиту pep8. Установка:
- Для Python 3:
pip3 install pep8
- Для Python 2 (который мы не используем!):
pip2 install pep8
- На Ubuntu:
sudo apt-get install pep8
Использование:
pep8 my_code.py
Для автоматического исправления можно использовать утилиту autopep8. Установка и использование аналогичны (может оказаться полезным ключ --in-place
). Будьте с ней осторожны.
Информация по группам
Группа 1
Преподаватель: Андроник Ордиян.
Группа 2
Преподаватель: Миша Кринкин.
- таблица с результатами
- примеры с пары 14 сентября
- примеры с пары 28 сентября
- примеры с пары 5 октября
- некоторый текст про представление чисел
- примеры с пары 19 октября
- примеры с пары 26 октября
- вводный текст про haskell
- коротко о типах в haskell
- примеры с пары про SQL
- примеры Python C API
Группа 3
Преподаватель: Егор Суворов.
Презентации:
- 21.09.2016: Матрицы, numpy и классы.
- 28.09.2016: ДЗ и популярные проблемы.
- 28.09.2016: Продолжаем классы. Лог занятия.
- 05.10.2016: Мимикрия, паттерны. Лог занятия. Файл с консультации перед занятием.
- 12.10.2016: Арифметика в компьютерах. Лог занятия.
- 19.10.2016: Многопоточность. Примеры с занятия.
- 26.10.2016: Функциональное программирование. Примеры с занятия.
- 09.11.2016: Типы в Haskell. Примеры с занятия.
- 16.11.2016: Базы данных и язык запросов. Примеры с занятия.
Дополнительные задания
Дополнительные задания необходимо выполнять, чтобы закрывать темы. Дедлайн - конец зачётной недели. По умолчанию дополнительное задание закрывает тему, если оно проходит все тесты и вообще корректно, и приносит 50% баллов, если к нему вдобавок нет стилистических замечаний. В некоторых заданиях правила указаны подробнее.
Базовый Python: новое задание. Тема письма: [parad] [task-01x]
.
Усложнённый Python: новое задание. Тема письма: [parad] [task-02x]
.
ЯТЬ-интерпретатор: задание остаётся прежним, однако теперь не требуется писать тесты. Только сами классы и функцию evaluate
. Тема письма: [parad] [task-04x]
.
ЯТЬ-Visitors: новое задание. Тема письма: [parad] [task-05x]
.
Потоки: новое задание. Тема письма: [parad] [task-07x1]
и [parad] [task-07x2]
(в зависимости от подзадания).