Программирование на Python
Новосибирск / осень 2018, посмотреть все семестры

Курс ориентирован на людей, уже знакомых с каким-либо языком программирования, например, Java или C++.

Предварительная программа

  1. Начало
  2. Всё, что вы хотели знать о функциях
  3. Декораторы и модуль functools
  4. Строки, байты, файлы и ввод/вывод
  5. Встроенные коллекции и модуль collections
  6. Классы
  7. Модули, исключения и менеджеры контекста
  8. Итераторы, генераторы и модуль itertools
  9. Документация и тестирование
  10. Высокопроизводительный Python: миф или реальность?
  11. Многопоточность и GIL

Возможные темы

  • Интроспекция в Python: что можно и невозможно в runtime
  • Модули, пакеты: как это работает
  • Распространение кода на Python: яица и колёса
  • Сериализация: консервировать или нет
  • NumPy и другие библиотеки для научных вычислений на Python
  • Кооперативная многозадачность и асинхронный ввод/вывод
  • Опциональная типизация для Python

Хорошие книги про Python

  1. David M. Beazley, Python Essential Reference, 2009.
  2. Mark Lutz, Learning Python, 5th edition, 2013 (значительная часть 4-го издания также будет релевантной).
  3. David M. Beazley, Brian K. Jones, Python Cookbook, 3rd edition, 2013.

Логистика курса

Все активности в рамках курса будут оцениваться баллами. Необходимое количество баллов для получения зачёта будет объявлено позже.

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

Домашние задания будут выдаваться после лекции. Количество баллов за домашнее задание зависит от времени сдачи:

  • в течение недели после лекции за каждую задачу из домашнего задания можно будет получить максимум 4 балла,
  • в течение второй стоимость задачи будет 2 баллa.

Сдавать домашнее задание позже, чем через две недели, смысла нет: оно будет оценено 0 баллов.

Задачи в домашнем задании будут оцениваться по двум критериям: корректность и идиоматичность, то есть решение должно правильно работать и соответствовать руководству по стилю.

Тесты

В начале каждой лекции (кроме первой) будет короткий тест по материалам предыдущей лекции. За полностью правильный тест можно получить 4 балла. Получить баллы за тест каким-либо образом после лекции нельзя.

Дата и время Название Место Материалы
14 сентября
22:30–23:50
Лекция 1. Введение, история, ликбез, лекция Заочный просмотр слайдывидео
21 сентября
22:30–23:50
Лекция 2. Функции, лекция Заочный просмотр слайдывидео
28 сентября
22:30–23:50
Лекция 3. Декораторы, лекция Заочный просмотр видеофайлы
05 октября
22:30–23:50
Лекция 4. Строки, байты, IO, лекция Заочный просмотр слайдывидео
12 октября
22:30–23:50
Лекция 5. Коллекции и collections, лекция Заочный просмотр слайдывидео
19 октября
22:30–23:50
Лекция 6. Классы I, лекция Заочный просмотр слайдывидео, файлы
26 октября
22:30–23:50
Лекция 7. Работа с Исключениями, лекция Заочный просмотр видео
02 ноября
22:30–23:50
Лекция 8. Итераторы, лекция Заочный просмотр видео
09 ноября
22:30–23:50
Лекция 9. async/await, лекция Заочный просмотр видео
16 ноября
22:30–23:50
Лекция 10. Классы II, лекция Заочный просмотр видео
23 ноября
22:30–23:50
Лекция 11. Тестирование, лекция Заочный просмотр видео
30 ноября
22:30–23:50
Лекция 12. Модули, лекция Заочный просмотр видео