|
|
Строка 1: |
Строка 1: |
− | Курс ведёт Илья Щуров.
| + | * Лекции читает: Щуров Илья Валерьевич. |
| | | |
− | ==Инструменты==
| + | * Семинары ведёт: Солодовников Никита Алексеевич. |
− | ===Python===
| |
− | Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://continuum.io/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x.
| |
| | | |
− | После установки Anaconda у вас появится:
| + | * Учебный ассистент: Петрова Ксения. |
− | | |
− | * Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook».
| |
− | | |
− | * Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook. | |
− | | |
− | После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скриптом, а иногда не работает) со списком файлов. В нём надо выбрать New → Python 3. Откроется новая вкладка браузера, в ней будет запущен пустой notebook, состоящий из отдельных ячеек (cells). В ячейку с кодом можно вписать код и нажать Shift+Enter — он выполнится и вам покажут тут же результат.
| |
− | | |
− | Для установки дополнительных пакетов вам необходимо открыть консоль (это может быть Anaconda Prompt под Windows или стандартный «Терминал» под Mac OS или Linux) и набрать команду <code>conda install <название пакета></code> или <code>pip install <название пакета></code> (например, <code>conda install seaborn</code>).
| |
− | | |
− | Вы можете также запустить Jupyter онлайн [http://try.jupyter.org здесь], но данные там не сохранятся и возможности будут ограничены.
| |
− | | |
− | ===Работа с ipynb-файлами===
| |
− | Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке <code>Serving notebooks from local directory: /home/user/IPython</code>, появляющейся в чёрненьком окошке при запуске Jupyter; здесь <code>/home/user/IPython</code> — искомый путь.
| |
| | | |
| ==Материалы== | | ==Материалы== |
− | ===Занятие 1: Первое знакомство=== | + | ===Общая теория дифференциальных уравнения=== |
− | * Первое знакомство: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb конспект], [http://www.youtube.com/watch?v=5Y5tKPKhurA видео]. | + | * Тема 1: Понятие дифференциального уравнения: [http://math-info.hse.ru/odebook/chapter/label/chap:notion_of_ODE/ лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar01.pdf семинар]. |
− | **
| |
− | ** Дополнение: PT [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа].
| |
− | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps01/ps01.ipynb ДЗ№1]
| |
| | | |
− | ===Занятие 2: Списки и цикл <code>for</code>===
| + | * Тема 2: Автономные дифференциальные уравнения на прямой: [http://math-info.hse.ru/odebook/chapter/label/chap:2:auto/ лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar02.pdf семинар]. |
− | * Списки: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb конспект], [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео].
| |
| ** | | ** |
− | ** Дополнение: PT [http://pythontutor.ru/lessons/lists/ списки]. | + | ** Дополнительный материал: [https://nplus1.ru/blog/2015/07/09/doomsday На пути к концу света]: Как учёные в 1960-х с помощью дифференциальных уравнений и статистики предсказали конец света и как над ними посмеялась реальность. |
| | | |
− | ===Занятие 3: Ввод-вывод списков, проверка условий, цикл <code>while</code>===
| + | * Тема 3: Теорема существования и единственности решения ОДУ: [http://math-info.hse.ru/odebook/chapter/label/chap:3:eu/ лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar03.pdf семинар]. |
− | * Ввод-вывод списков, проверка условий, цикл <code>while</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb конспект], [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]
| |
| ** | | ** |
− | ** Дополнение: PT [http://pythontutor.ru/lessons/lists/#section_2 split и join], [http://pythontutor.ru/lessons/ifelse/ if], [http://pythontutor.ru/lessons/while/ while] | + | ** Дополнительный материал: фильм «Хаос». [http://www.youtube.com/watch?v=vts0YHACsYY Глава 1: Панта рей. Движение и детерминизм] (англ. яз, доступны русские субтитры). |
| | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps02/ps02.ipynb ДЗ№2] | + | * Тема 4: Многомерные дифференциальные уравнения [http://math-info.hse.ru/odebook/chapter/label/chap:4:phasespace/ лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar04.pdf семинар]. |
| | | |
− | ===Занятие 4: Функции===
| + | * Тема 5. Ещё о многомерных уравнениях. [http://math-info.hse.ru/odebook/chapter/label/chap:5:multidim/ лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar05.pdf семинар]. |
− | * Функции: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb конспект] [https://www.youtube.com/watch?v=NYrYSFyCg4w видео]. | |
− | **
| |
− | ** Дополнение: PT [http://pythontutor.ru/lessons/functions/ функции].
| |
| | | |
− | ===Занятие 5: Списковые включения, <code>zip</code> и двумерные массивы===
| + | * Тема 6. Дифференциальные 1-формы. Уравнения в полных дифференциалах. См. последний параграф [http://math-info.hse.ru/odebook/chapter/label/chap:5:multidim/#label_h2_number_5_4 тут] и раздел 6.1 [http://math-info.hse.ru/odebook/chapter/label/chap:6:firstint/#label_par_6_diff здесь]. [http://math-info.hse.ru/a/2017-18/nes-ode/seminar06.pdf Семинар]. |
− | * Списковые включения (list comprehensions): [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb#Списковые-включения-(list-comprehensions) конспект] [https://www.youtube.com/watch?v=z8bu_b5BboI&feature=youtu.be&t=24m59s видео] | |
− | **
| |
− | ** Дополнение: PT [http://pythontutor.ru/lessons/lists/#section_3 списковые включения][1]], [http://pythontutor.ru/lessons/2d_arrays/ двумерные массивы]
| |
| | | |
− | ===Занятие 6: Словари и всякая всячина===
| + | * Тема 7. Первые интегралы: [http://math-info.hse.ru/odebook/chapter/label/chap:6:firstint/#label_h2_number_6_2 лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar07.pdf семинар]. |
− | * Словари: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb конспект], [http://www.youtube.com/watch?v=z8bu_b5BboI видео] | |
− | **
| |
− | ** Дополнение: PT [http://pythontutor.ru/lessons/dicts/ словари]
| |
| | | |
− | * Множества: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb#Множества конспект] | + | * Тема 8. Консервативные системы с одной степенью свободы: [http://math-info.hse.ru/odebook/chapter/label/chap:7:cons/#label_chap_7_cons лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar08.pdf семинар]. |
| | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps03/ps03.ipynb ДЗ№3] | + | * Семинар 9. Линейные уравнения первого порядка, разное: [http://math-info.hse.ru/a/2017-18/nes-ode/seminar09.pdf семинар] |
| | | |
− | ===Занятие 7: Сортировка и работа с файлами===
| + | * Семинар 10. Однородные уравнения. Замены переменных, разное: [http://math-info.hse.ru/a/2017-18/nes-ode/seminar10.pdf семинар] |
− | * Сортировка: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb#Сортировка конспект], [https://www.youtube.com/watch?v=1w0NG-pfcsg&feature=youtu.be&t=9m17s видео] | |
− | **
| |
− | ** Дополнение: [https://docs.python.org/3/howto/sorting.html Sorting howto] (англ.)
| |
| | | |
− | * Файлы: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb#Файловый-ввод-вывод конспект] | + | ===Линейная теория и её приложения=== |
− | **
| + | * Тема 11: Простейшие линейные уравнения: [http://math-info.hse.ru/odebook/chapter/label/chap:9:linear/#label_chap_9_linear лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar11.pdf семинар] |
− | ** Дополнение: [https://docs.python.org/3/tutorial/inputoutput.html официальная документация] (англ.)
| |
| | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps04/ps04.ipynb ДЗ№4] | + | * Тема 12: Линейные особые точки на плоскости: вещественные собственные значения. [http://math-info.hse.ru/odebook/chapter/label/chap:10:linear-systems/#label_chap_10_linear-systems лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar12.pdf семинар] |
| | | |
− | ===Занятие 8: numpy и картинки===
| + | * Тема 13 (отступление): Линейные уравнения высших порядков. [http://math-info.hse.ru/a/2017-18/nes-ode/seminar13.pdf семинар] |
− | * [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2011.ipynb конспект], [http://www.youtube.com/watch?v=A84rlgoVnMY видео]
| |
| | | |
− | * [https://docs.scipy.org/doc/numpy-dev/user/quickstart.html numpy quickstart], [http://matplotlib.org/users/pyplot_tutorial.html pyplot tutorial], [http://matplotlib.org/gallery.html matplotlib gallery] | + | * Тема 14: Линейные особые точки на плоскости: комплексные собственные значения. [http://math-info.hse.ru/odebook/chapter/label/chap:10:linear-systems/#label_h3_number_10_2_7 лекция], [http://math-info.hse.ru/a/2017-18/nes-ode/seminar14.pdf семинар] |
| | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps05/ps05.ipynb ДЗ№5] | + | * Тема 15: Линейные системы в высших размерностях. Матричная экспонента. [http://math-info.hse.ru/odebook/chapter/label/chap:11:multidim-linear/#label_chap_11_multidim-linear лекция] |
| | | |
− | ===Занятие 9-10: pandas===
| + | * Темы 16-17: Устойчивость положений равновесия ([http://math-info.hse.ru/odebook/chapter/label/chap:12:stability/#label_chap_12_stability лекция]), структурная устойчивость ([http://math-info.hse.ru/odebook/chapter/label/chap:13:bifurc/#label_chap_13_bifurc лекция]), [http://math-info.hse.ru/a/2017-18/nes-ode/seminar15.pdf семинар] |
− | * pandas и датафреймы: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2012.ipynb конспект по базовым возможностям pandas], [http://www.youtube.com/watch?v=ENKfnIEXyKw видео]
| |
| | | |
− | * [http://math-info.hse.ru/a/2014-15/nes-stat/lectures/lecture14.html О регрессиях и символьной математике] | + | ==Домашние задания== |
| + | * [http://math-info.hse.ru/f/2017-18/nes-ode/hw1/ ДЗ№1] |
| | | |
− | * Дополнительные материалы: | + | * [http://math-info.hse.ru/f/2017-18/nes-ode/hw2/ ДЗ№2] |
− | **
| |
− | ** Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/10min.html 10-минутное введение] (обзор возможностей), [http://pandas.pydata.org/pandas-docs/stable/tutorials.html#pandas-cookbook pandas cookbook], [http://pandas.pydata.org/pandas-docs/stable/indexing.html индексация и выбор данных] (подробно), [http://seaborn.pydata.org seaborn].
| |
− | **
| |
− | ** [http://nbviewer.jupyter.org/github/ischurov/odebook/blob/master/mathandpython.ipynb О математике в Python]: обзор возможностей и примеры.
| |
− | | |
− | * Для установки пакета <code>seaborn</code> нужно в командной строке (<code>cmd.exe</code> под Windows, <code>Terminal</code> под Mac OS) набрать <code>pip install seaborn</code>, либо исползовать функцию установки пакетов в Anaconda Navigator.
| |
− | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps06/ps06.ipynb ДЗ№6]
| |
| | | |
− | ===Занятие 11: ещё о pandas: мультииндексы===
| + | * [http://math-info.hse.ru/f/2017-18/nes-ode/hw3/ ДЗ№3] |
− | * [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb конспект] | |
| | | |
− | * Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/advanced.html Мультииндексы] | + | * [http://math-info.hse.ru/f/2017-18/nes-ode/hw_a/ ДЗ№A] (дополнительное) |
| | | |
− | ===Занятие 12: извлечение данных из веб-страниц=== | + | ==Варианты прошедших контрольных работ== |
− | * Извлечение данных из веб-страниц с помощью BeautifulSoup и requests: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%208.ipynb конспект], [http://www.youtube.com/watch?v=3nPksaHTMGI видео] | + | * [http://math-info.hse.ru/f/2016-17/nes-ode/midterm2015-16.pdf Мидтерм 2015-16] |
− | **
| |
− | ** Оригинальная документация (англ.): [http://docs.python-requests.org/en/latest/ requests] [http://www.crummy.com/software/BeautifulSoup/bs4/doc/ BeautifulSoup].
| |
− | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps07/ps07.ipynb ДЗ№7]
| |
− | | |
− | ===Занятие 13: извлечение данных из веб-страниц, заполнение форм===
| |
− | * Извлечение данных с помощью RoboBrowser: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Эмуляция-действий-с-браузером конспект], [https://www.youtube.com/watch?v=tC618tbA5Yk&feature=youtu.be&t=11m10s видео]
| |
− | **
| |
− | ** Оригинальная документация (англ.): [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser]
| |
− | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps07/ps07.ipynb ДЗ№7]
| |
− | | |
− | ===Занятие 14: XML и JSON API===
| |
− | * Работа с открытыми API с помощью XML: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb конспект], [http://www.youtube.com/watch?v=5aelkl2HAow видео].
| |
− | | |
− | * JSON и API: [http://nbviewer.math-hse.info/github/ischurov/nesopendata2017/blob/master/API-JSON.ipynb конспекты] [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb ещё один пример].
| |
− | | |
− | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-od2018/ps08/ps08.ipynb ДЗ№8]
| |
− | | |
− | ===Занятие 15: продвинутый веб-скреппинг с помощью Selenium===
| |
− | * [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Selenium конспект]
| |
− | **
| |
− | ** [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную).
| |
| | | |
− | ===Занятие 16: pandas_datareader и немного математики===
| + | * [http://math-info.hse.ru/f/2016-17/nes-ode/midterm2013-14.pdf Мидтерм 2013-14] [http://math-info.hse.ru/f/2013-14/nes-ode/midterm-prim.pdf ещё один] |
− | * [http://math-info.hse.ru/a/2014-15/nes-stat/lectures/lecture14.html#Немного-о-работе-с-временными-рядами подробный конспект похожего занятия] (нужно заменить <code>pandas.io</code> на <code>pandas_datareader</code>, предварительно установив пакет <code>pandas_datareader</code>, и вместо <code>get_data_yahoo</code> использовать <code>get_data_google</code>). | |
| | | |
− | * [http://nbviewer.jupyter.org/github/ischurov/odebook/blob/master/mathandpython.ipynb математические возможности Python] | + | * [http://math-info.hse.ru/f/2016-17/nes-ode/midterm-solutions.pdf Мидтерм 2016-17] (с решениями). |
| | | |
− | ==Задания==
| + | * [http://math-info.hse.ru/f/2017-18/nes-ode/final2017.pdf Final 2016-17]. |
− | * [http://math-info.hse.ru/2017-18/%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0_%D0%B8_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5/%D0%98%D1%82%D0%BE%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82 Итоговый проект] | |
| | | |
− | ===Примечания===
| + | * [http://math-info.hse.ru/f/2017-18/nes-ode/final2016.pdf Final 2015-16]. |
− | * ↑ PT использует термин «генераторы списков» вместо «списковые включения» | |