Парадигмы осень 2016 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Группа 3)
 
(не показаны 43 промежуточные версии 2 участников)
Строка 16: Строка 16:
 
* [https://docs.google.com/document/d/1VvrQTZ_xEvwAOHSsPWf40Ra3iQTQAGMMNyu5mWeQhhc/edit?usp=sharing домашнее задание №5]
 
* [https://docs.google.com/document/d/1VvrQTZ_xEvwAOHSsPWf40Ra3iQTQAGMMNyu5mWeQhhc/edit?usp=sharing домашнее задание №5]
 
* [https://docs.google.com/document/d/1_OTyKQjtrjYJR79pAKz5TFuhz-a9950Kv4MTF7vK-Cw/edit?usp=sharing домашнее задание №6]
 
* [https://docs.google.com/document/d/1_OTyKQjtrjYJR79pAKz5TFuhz-a9950Kv4MTF7vK-Cw/edit?usp=sharing домашнее задание №6]
 +
* [https://docs.google.com/document/d/1-uAwUHELK2ObTOxMYrWtI2uKZWO8c280EiCG17rDt3s/edit?usp=sharing домашнее задание №7]
 +
* [https://docs.google.com/document/d/1w-g04FpgAR_fTtrtPInWGX9JD2VaXi7i54mMYDMi1lc/edit?usp=sharing домашнее задание №8]
 +
* [https://docs.google.com/document/d/19Sh53nrGIdGlIUXd7z45Vs88k8KzkCw1NAnddhnVLh0/edit?usp=sharing домашнее задание №9]
 +
* [https://docs.google.com/document/d/19mxQrwMH0rm1tCljYGxzuQrLtBRcZN6Kt_frtC11b-M/edit?usp=sharing домашнее задание №10] ([https://www.dropbox.com/s/jo26qgwysxsb8aj/literacy.sql?dl=0 literacy.sql], <b>NOTE: мы используем sqlite3 в качестве базы данных</b>)
 +
* [https://docs.google.com/document/d/1qBLc6_EnA5HbqLeQGFFQxRQ4Ielepw7Z7Hc99Zo3vZg/edit?usp=sharing домашнее задание №11]
  
 
==== Правила сдачи домашних заданий ====
 
==== Правила сдачи домашних заданий ====
Строка 26: Строка 31:
 
занятия будут начинаться с 11 часов, а не с 10 как указано в расписании.
 
занятия будут начинаться с 11 часов, а не с 10 как указано в расписании.
  
Третья группа может по желанию приходить к 10 часам на office hours для разбора проблем.
+
Третья группа может по желанию приходить к 10 часам на office hours для разбора проблем. '''7 декабря''' в качестве эксперимента занятие начнётся в 10:30 (консультация будет и до, и после - в течение обеденного перерыва).
  
 
У первой группы занятия с 10:30 до 13:30.
 
У первой группы занятия с 10:30 до 13:30.
Строка 41: Строка 46:
 
* [http://bioinfo.ict.ac.cn/~dbu/AlgorithmCourses/Lectures/Strassen1968.pdf алгоритм Штрассена]
 
* [http://bioinfo.ict.ac.cn/~dbu/AlgorithmCourses/Lectures/Strassen1968.pdf алгоритм Штрассена]
 
* [http://www.numpy.org/ сайт с документацией по numpy]
 
* [http://www.numpy.org/ сайт с документацией по numpy]
 +
* [https://www.haskell.org/platform/ Haskell Platform] - должно хватить минимальной версии, битность не важна.
 +
* [http://www.sqlite.org/download.html SQLite3]. В Ubuntu можно запустить <code>sudo apt-get install sqlite3</code>. Также можно взять архив sqlite-tools из раздела Precompiled Binaries.
 +
* [http://sqlitebrowser.org/ DB Browser for SQLite], там есть собранный файл для Windows и инструкция по установке для Ubuntu.
 +
* [https://docs.python.org/3/library/unittest.html документация по Python unittest]
 +
* [https://docs.python.org/devguide/coverage.html про оценку покрытия кода тестами]
 +
* [https://docs.python.org/3/library/io.html документация по StringIO и похожим file-like классам]
 +
* [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], [https://holgerkrekel.net/2009/03/03/monkeypatching-in-unit-tests-done-right/ monkey patching в Pytest]
 +
* [https://github.com/yeputons/fall-2016-paradigms/tree/master/161214/sources/debug-log Пример с автоматически удаляемым отладочным выводом в C/C++]
  
 
=== Проверка стиля кода ===
 
=== Проверка стиля кода ===
Строка 70: Строка 84:
 
* [[Медиа:Python_examples_5_October_2016.zip|примеры с пары 5 октября]]
 
* [[Медиа:Python_examples_5_October_2016.zip|примеры с пары 5 октября]]
 
* [https://www.dropbox.com/s/2xo37iiak8age2f/numbers.txt?dl=0 некоторый текст про представление чисел]
 
* [https://www.dropbox.com/s/2xo37iiak8age2f/numbers.txt?dl=0 некоторый текст про представление чисел]
 +
* [[Медиа:Pthread_examples_19_October_2016.zip|примеры с пары 19 октября]]
 +
* [[Медиа:Pthread_examples_26_October_2016.zip|примеры с пары 26 октября]]
 +
* [https://www.dropbox.com/s/h785m6h3qn9yez8/haskell_intro.txt?dl=0 вводный текст про haskell]
 +
* [https://www.dropbox.com/s/58w1qdzvaa1assw/haskell_data_types.txt?dl=0 коротко о типах в haskell]
 +
* [https://www.dropbox.com/s/8hlor93ivwzyhak/examples.zip?dl=0 примеры с пары про SQL]
 +
* [https://www.dropbox.com/s/lejbplr5ngjfthj/python-api.zip?dl=0 примеры Python C API]
 +
* [[Медиа:makefile_examples.zip|Makefile, примеры]]
 +
* [[Медиа:network_examples.zip|Сеть, примеры]]
  
 
=== Группа 3 ===
 
=== Группа 3 ===
Строка 77: Строка 99:
  
 
Презентации:
 
Презентации:
* [[Медиа:spbau-bach-term-1-parad-21.09.2016.pdf|21.09.2016: Матрицы, numpy и классы]]
+
* [[Медиа:spbau-bach-term-1-parad-21.09.2016.pdf|21.09.2016: Матрицы, numpy и классы]].
* [[Медиа:spbau-bach-term-1-parad-28.09.2016-a.pdf|28.09.2016: ДЗ и популярные проблемы]]
+
* [[Медиа:spbau-bach-term-1-parad-28.09.2016-a.pdf|28.09.2016: ДЗ и популярные проблемы]].
 
* [[Медиа:spbau-bach-term-1-parad-28.09.2016-b.pdf|28.09.2016: Продолжаем классы]]. [[Лог занятия по парадигмам, 28.09.2016|Лог занятия]].
 
* [[Медиа:spbau-bach-term-1-parad-28.09.2016-b.pdf|28.09.2016: Продолжаем классы]]. [[Лог занятия по парадигмам, 28.09.2016|Лог занятия]].
* [[Медиа:spbau-bach-term-1-parad-05.10.2016.pdf|05.10.2016: Мимикрия, паттерны]]. [https://gist.github.com/yeputons/3aa361222349383498e4ebaf25b3c62f Лог занятия]. [[Лог консультации по парадигмам, 05.10.2016|Файл с консультации перед занятием]].
+
* [[Медиа:spbau-bach-term-1-parad-05.10.2016.pdf|05.10.2016: Мимикрия, паттерны]]. [https://github.com/yeputons/fall-2016-paradigms/blob/master/161005/161005-log.ipynb Лог занятия]. [[Лог консультации по парадигмам, 05.10.2016|Файл с консультации перед занятием]].
 +
* [[Медиа:spbau-bach-term-1-parad-12.10.2016.pdf|12.10.2016: Арифметика в компьютерах]]. [https://github.com/yeputons/fall-2016-paradigms/blob/master/161012/161012-log.ipynb Лог занятия].
 +
* [[Медиа:spbau-bach-term-1-parad-19.10.2016.pdf|19.10.2016: Многопоточность]]. [https://github.com/yeputons/fall-2016-paradigms/tree/master/161019/sources Примеры с занятия].
 +
* [[Медиа:spbau-bach-term-1-parad-26.10.2016.pdf|26.10.2016: Функциональное программирование]]. [https://github.com/yeputons/fall-2016-paradigms/tree/master/161026/sources Примеры с занятия].
 +
* [[Медиа:spbau-bach-term-1-parad-09.11.2016.pdf|09.11.2016: Типы в Haskell]]. [https://github.com/yeputons/fall-2016-paradigms/tree/master/161109/sources Примеры с занятия].
 +
* [[Медиа:spbau-bach-term-1-parad-16.11.2016.pdf|16.11.2016: Базы данных и язык запросов]]. [https://github.com/yeputons/fall-2016-paradigms/tree/master/161116/sources Примеры с занятия].
 +
* 23.11.2016: Ликбез по ОС, ФС и прочему
 +
* 30.11.2016: Многопоточность: повторение
 +
* [https://github.com/yeputons/fall-2016-paradigms/blob/master/161207/plan.md 07.12.2016: Тестирование, теория. План занятия]
 +
* 14.12.2016: Тестирование, практика (PyTest)
 +
* 21.12.2016: Системы контроля версий
 +
* 28.12.2016: Зачётная неделя, досдача хвостов.
 +
 
 +
==== Дополнительные задания ====
 +
 
 +
Дополнительные задания необходимо выполнять, чтобы закрывать темы. Дедлайн - конец зачётной недели. По умолчанию дополнительное задание закрывает тему, если оно проходит все тесты и вообще корректно, и приносит 50% баллов, если к нему вдобавок нет стилистических замечаний. В некоторых заданиях правила указаны подробнее.
 +
 
 +
''Базовый Python'': [https://docs.google.com/document/d/1G3x21ARPFrDvnc3WuWe8Hpltf38tHtDTj_BACAysG3E/edit# новое задание]. Тема письма: <code>[parad] [task-01x]</code>.
 +
 
 +
''Усложнённый Python'': [https://docs.google.com/document/d/1bhs2EoYxE6w7PFMpsZTACsKyQI7kGRYphmUJSCFe7Os/edit# новое задание]. Тема письма: <code>[parad] [task-02x]</code>.
 +
 
 +
''ЯТЬ-интерпретатор'': задание остаётся [https://docs.google.com/document/d/1q6e6CJSHZET-sQGExtPFuKSWkrGIAuJcI-gWJeCaTb0 прежним], однако теперь не требуется писать тесты. Только сами классы и функцию <code>evaluate</code>. Тема письма: <code>[parad] [task-04x]</code>.
 +
 
 +
''ЯТЬ-Visitors'': [https://docs.google.com/document/d/1vVBXpeoMHLu9dCZYNaKNLSZZjB67gi7eLCNmbOgX2wA/edit новое задание]. Тема письма: <code>[parad] [task-05x]</code>.
 +
 
 +
''Потоки'': [https://docs.google.com/document/d/1o32LCOqdccBLe55RIwS5jtX0zg8F_YsF75VAJr2ndzk/edit новое задание]. Тема письма: <code>[parad] [task-07x1]</code> и <code>[parad] [task-07x2]</code> (в зависимости от подзадания). [https://gist.github.com/yeputons/7f451a6fbfced5602eb66fbd0cbaab72 Пример с консультации 14.12.2016].

Текущая версия на 19:15, 17 июня 2017

Организационное

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

Домашние задания

NOTE: мы используем python 3.x.

Правила сдачи домашних заданий

  • Домашние задания отправляются на почту в виде ссылки на git репозиторий (например, на github) и пути к папке внутри репозитория;

Время занятий

В связи с тем, что 2 пары в неделю слишком много, и усвоить за раз материал рассказанный за две пары проблематично, занятия будут начинаться с 11 часов, а не с 10 как указано в расписании.

Третья группа может по желанию приходить к 10 часам на office hours для разбора проблем. 7 декабря в качестве эксперимента занятие начнётся в 10:30 (консультация будет и до, и после - в течение обеденного перерыва).

У первой группы занятия с 10:30 до 13:30.

Полезная информация

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

Проверка стиля кода

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

Преподаватель: Миша Кринкин.

Группа 3

Преподаватель: Егор Суворов.

Табличка с успеваемостью.

Презентации:

Дополнительные задания

Дополнительные задания необходимо выполнять, чтобы закрывать темы. Дедлайн - конец зачётной недели. По умолчанию дополнительное задание закрывает тему, если оно проходит все тесты и вообще корректно, и приносит 50% баллов, если к нему вдобавок нет стилистических замечаний. В некоторых заданиях правила указаны подробнее.

Базовый Python: новое задание. Тема письма: [parad] [task-01x].

Усложнённый Python: новое задание. Тема письма: [parad] [task-02x].

ЯТЬ-интерпретатор: задание остаётся прежним, однако теперь не требуется писать тесты. Только сами классы и функцию evaluate. Тема письма: [parad] [task-04x].

ЯТЬ-Visitors: новое задание. Тема письма: [parad] [task-05x].

Потоки: новое задание. Тема письма: [parad] [task-07x1] и [parad] [task-07x2] (в зависимости от подзадания). Пример с консультации 14.12.2016.