Программирование для дата-журналистики: различия между версиями
(Новая страница: «Это страничка курсов «Введение в программирование» и «Программирование» на магистерск...») |
|||
Строка 3: | Строка 3: | ||
Автор курса: Щуров И.В. | Автор курса: Щуров И.В. | ||
− | + | ==Софт== | |
− | |||
− | == Софт == | ||
Мы используем Python 3 и оболочку Jupyter (ранее известный как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://continuum.io/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x. | Мы используем Python 3 и оболочку Jupyter (ранее известный как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://continuum.io/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x. | ||
Строка 11: | Строка 9: | ||
* Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook». | * Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook». | ||
+ | |||
* Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook. | * Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook. | ||
− | После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скриптом, а иногда не работает) со списком файлов. В нём надо выбрать | + | После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скриптом, а иногда не работает) со списком файлов. В нём надо выбрать New → Python 3. Откроется новая вкладка браузера, в ней будет запущен пустой notebook, состоящий из отдельных ячеек (cells). В ячейку с кодом можно вписать код и нажать Shift+Enter — он выполнится и вам покажут тут же результат. |
− | == Материалы == | + | ==Материалы== |
+ | ===Как использовать=== | ||
+ | Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам выше вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке <code>Serving notebooks from local directory: /home/user/IPython</code>, появляющейся в чёрненьком окошке при запуске Jupyter; здесь <code>/home/user/IPython</code> — искомый путь. | ||
− | === | + | ===Основы программирования=== |
− | + | {| class="wikitable" | |
− | + | ! неделя | |
+ | ! тема | ||
+ | ! конспект | ||
+ | ! доп. материалы | ||
+ | ! видео | ||
+ | ! задачи | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | 1 | + | | 1<br> |
− | | Первое знакомство. | + | | Первое знакомство.<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb ipynb] | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb ipynb]<br> |
− | | | + | | PT: [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа]<br> |
− | | [http://www.youtube.com/watch?v=5Y5tKPKhurA видео] | + | | [http://www.youtube.com/watch?v=5Y5tKPKhurA видео]<br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps01/ps01.ipynb ps01] | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps01/ps01.ipynb ps01]<br> |
|- | |- | ||
− | | 2 | + | | 2<br> |
− | | Списки и цикл <code>for</code>. | + | | Списки и цикл <code>for</code>.<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb ipynb] | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb ipynb]<br> |
− | | | + | | PT: [http://pythontutor.ru/lessons/for_loop/ цикл for], [http://pythontutor.ru/lessons/lists/ списки]<br> |
− | | [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео] | + | | [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео]<br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps02/ps02.ipynb ps02] | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps02/ps02.ipynb ps02]<br> |
|- | |- | ||
− | | 3 | + | | 3<br> |
− | | Ещё о списках и циклах | + | | Ещё о списках и циклах<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/djprog2017/blob/master/lecture03.ipynb ipynb] | + | | [http://python.math-hse.info:8080/github/ischurov/djprog2017/blob/master/lecture03.ipynb ipynb]<br> |
− | | | + | | <br> |
− | | | + | | <br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps03/ps03.ipynb ps03] | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps03/ps03.ipynb ps03]<br> |
|- | |- | ||
− | | 4 | + | | 4<br> |
− | | Конструкция <code>if</code> и проверка условий. Списковые включения. | + | | Конструкция <code>if</code> и проверка условий. Списковые включения.<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9 проверка условий] [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb#Списковые-включения-(list-comprehensions) list comprehensions] | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9 проверка условий] [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb#Списковые-включения-(list-comprehensions) list comprehensions]<br> |
− | | | + | | PT: [http://pythontutor.ru/lessons/lists/#section_2 split и join], [http://pythontutor.ru/lessons/ifelse/ if], [http://pythontutor.ru/lessons/while/ while]<br> |
− | | [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео] | + | | [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]<br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps04/ps04.ipynb ps04] | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps04/ps04.ipynb ps04]<br> |
|- | |- | ||
− | | 5 | + | | 5<br> |
− | | Функции | + | | Функции<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb ipynb] | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb ipynb]<br> |
− | | | + | | PT: [http://pythontutor.ru/lessons/functions/ функции]<br> |
− | | [http://www.youtube.com/watch?v=NYrYSFyCg4w видео] | + | | [http://www.youtube.com/watch?v=NYrYSFyCg4w видео]<br> |
− | | [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/dj2017/ps05/ps05.ipynb ps05] | + | | [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/dj2017/ps05/ps05.ipynb ps05]<br> |
|- | |- | ||
− | | 6 | + | | 6<br> |
− | | Словари | + | | Словари<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb ipynb] | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb ipynb]<br> |
− | | | + | | PT [http://pythontutor.ru/lessons/dicts словари]<br> |
− | | [http://www.youtube.com/watch?v=z8bu_b5BboI видео] | + | | [http://www.youtube.com/watch?v=z8bu_b5BboI видео]<br> |
− | | [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/dj2017/ps06/ps06.ipynb ps06] | + | | [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/dj2017/ps06/ps06.ipynb ps06]<br> |
|} | |} | ||
+ | ===Программирование: Python=== | ||
+ | {| class="wikitable" | ||
+ | ! неделя | ||
+ | ! тема | ||
+ | ! конспект | ||
+ | ! доп. материалы | ||
+ | ! задачи | ||
− | |||
− | |||
− | |||
|- | |- | ||
− | | 7 | + | | 7<br> |
− | | Обсуждение задач экзамена. Сортировка | + | | Обсуждение задач экзамена. Сортировка<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb#Сортировка ipynb] | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb#Сортировка ipynb]<br> |
− | | [https://docs.python.org/3/howto/sorting.html О сортировке] (англ.) | + | | [https://docs.python.org/3/howto/sorting.html О сортировке] (англ.)<br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps07/ps07.ipynb ps07] | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps07/ps07.ipynb ps07]<br> |
+ | |- | ||
+ | | 8<br> | ||
+ | | Особенности работы с изменяемыми типами данных: <code>copy</code> и <code>deepcopy</code>. Файловый ввод-вывод<br> | ||
+ | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb ipynb]<br> | ||
+ | | [https://docs.python.org/3/tutorial/inputoutput.html Ввод-вывод в Python 3] (англ.), [https://www.youtube.com/watch?v=KaWGNPgUOHo видео]<br> | ||
+ | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps08/ps08.ipynb ps08]<br> | ||
+ | |- | ||
+ | | 9<br> | ||
+ | | Форматирование строк. Хитрости с вещественными числами. Исключения.<br> | ||
+ | | [http://python.math-hse.info:8080/github/ischurov/dj-prog/blob/master/Lesson%203.ipynb#Исключения Исключения]<br> | ||
+ | | [https://pyformat.info Шпаргалка по форматированию строк] (англ., не обсуждаются f-strings)<br> | ||
+ | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps09/ps09.ipynb ps09]<br> | ||
+ | |- | ||
+ | | 10<br> | ||
+ | | Функции как способ структурирования программы<br> | ||
+ | | [http://python.math-hse.info:8080/github/ischurov/djprog2017/blob/master/process-elections.ipynb Задачи]<br> | ||
+ | | [http://python.math-hse.info:8080/github/ischurov/dj-prog/blob/master/Lesson%202.ipynb Конспект семинара прошлого года]<br> | ||
+ | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps10/ps10.ipynb ps10]<br> | ||
+ | |- | ||
+ | | 11<br> | ||
+ | | JSON API<br> | ||
+ | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb Лекции]<br> | ||
+ | | <br> | ||
+ | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps11/ps11.ipynb ps11]<br> | ||
|- | |- | ||
− | | | + | | 12<br> |
− | | | + | | Классы и объектно-ориентированное программирование<br> |
− | + | | <br> | |
− | | [https://docs.python.org/3/tutorial/ | + | | [https://docs.python.org/3/tutorial/classes.html Официальная документация]<br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps12/ps12.ipynb ps12]<br> |
|- | |- | ||
− | | | + | | 13-14<br> |
− | | | + | | Веб-скреппинг<br> |
− | | [http://python.math-hse.info:8080/github/ischurov/ | + | | [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%208.ipynb базовый скреппинг], [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb robobrowser и selenium]<br> |
− | + | | Оригинальная документация (англ.): [http://docs.python-requests.org/en/latest/ requests] [http://www.crummy.com/software/BeautifulSoup/bs4/doc/ BeautifulSoup], [http://www.youtube.com/watch?v=3nPksaHTMGI видео], [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser], [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную), [http://www.youtube.com/watch?v=tC618tbA5Yk видео]<br> | |
− | + | | <br> | |
|- | |- | ||
− | | | + | | 15<br> |
− | | | + | | Генераторы. Наследование.<br> |
− | | | + | | <br> |
− | | | + | | <br> |
− | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ | + | | [http://nbviewer.ipython.org/url/python.math-hse.info/static/assignments_release/dj2017/ps13/ps13.ipynb ps13]<br> |
|} | |} | ||
+ | ===JavaScript=== | ||
+ | * [https://ischurov.github.io/pythonvjs/ Python.v.JS]: сравнение Python и JavaScript. | ||
+ | |||
+ | * [http://python.math-hse.info:8080/github/ischurov/dj-prog/blob/master/javascript.ipynb Сырой конспект первого занятия] | ||
+ | |||
+ | * [http://learn.javascript.ru learn.javascript.ru]: хороший электронный учебник. | ||
+ | |||
+ | * [https://github.com/getify/You-Dont-Know-JS You Don't Know JavaScript]: серия книг для тех, кто хочет разобраться, как оно действительно там всё устроено. | ||
+ | |||
+ | * [http://jsbin.com/tejaqev/ коровы и быки] | ||
+ | |||
+ | * [https://jsbin.com/dakuman/ пример с plotly] | ||
+ | ** | ||
+ | ** [http://math-info.hse.ru/2017-18/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%B0%D1%82%D0%B0-%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8/%D0%94%D0%97_%E2%84%9615 ДЗ №15] | ||
+ | |||
+ | ===Итоговый проект=== | ||
+ | * [http://math-info.hse.ru/2017-18/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%B0%D1%82%D0%B0-%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8/%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 Итоговый проект] |
Текущая версия на 14:11, 8 февраля 2020
Это страничка курсов «Введение в программирование» и «Программирование» на магистерской программе «Журналистика данных».
Автор курса: Щуров И.В.
Содержание
Софт
Мы используем Python 3 и оболочку Jupyter (ранее известный как IPython Notebook). Чтобы их установить, проще всего скачать пакет 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 — он выполнится и вам покажут тут же результат.
Материалы
Как использовать
Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам выше вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке Serving notebooks from local directory: /home/user/IPython
, появляющейся в чёрненьком окошке при запуске Jupyter; здесь /home/user/IPython
— искомый путь.
Основы программирования
неделя | тема | конспект | доп. материалы | видео | задачи |
---|---|---|---|---|---|
1 |
Первое знакомство. |
ipynb |
PT: арифметические операции, целые и вещественные числа |
видео |
ps01 |
2 |
Списки и цикл for . |
ipynb |
PT: цикл for, списки |
видео |
ps02 |
3 |
Ещё о списках и циклах |
ipynb |
ps03 | ||
4 |
Конструкция if и проверка условий. Списковые включения. |
проверка условий list comprehensions |
PT: split и join, if, while |
видео |
ps04 |
5 |
Функции |
ipynb |
PT: функции |
видео |
ps05 |
6 |
Словари |
ipynb |
PT словари |
видео |
ps06 |
Программирование: Python
неделя | тема | конспект | доп. материалы | задачи |
---|---|---|---|---|
7 |
Обсуждение задач экзамена. Сортировка |
ipynb |
О сортировке (англ.) |
ps07 |
8 |
Особенности работы с изменяемыми типами данных: copy и deepcopy . Файловый ввод-вывод |
ipynb |
Ввод-вывод в Python 3 (англ.), видео |
ps08 |
9 |
Форматирование строк. Хитрости с вещественными числами. Исключения. |
Исключения |
Шпаргалка по форматированию строк (англ., не обсуждаются f-strings) |
ps09 |
10 |
Функции как способ структурирования программы |
Задачи |
Конспект семинара прошлого года |
ps10 |
11 |
JSON API |
Лекции |
ps11 | |
12 |
Классы и объектно-ориентированное программирование |
Официальная документация |
ps12 | |
13-14 |
Веб-скреппинг |
базовый скреппинг, robobrowser и selenium |
Оригинальная документация (англ.): requests BeautifulSoup, видео, RoboBrowser, неофициальная документация по Python-Selenium (её проще читать, чем официальную), видео |
|
15 |
Генераторы. Наследование. |
ps13 |
JavaScript
- Python.v.JS: сравнение Python и JavaScript.
- learn.javascript.ru: хороший электронный учебник.
- You Don't Know JavaScript: серия книг для тех, кто хочет разобраться, как оно действительно там всё устроено.