Основы программирования

Python

Ресурсы

  • Эта страничка

    • Слайды / блокноты / примеры

    • Список литературы и не литературы

  • Чатик в Discord

Задания

0. Регистрация, создание репозитория, подключение к Discord.

  • До 10.09 зарегистрировать аккаунт на GitHub, создать репозиторий и заполнить форму

  • До 10.09 зарегистрироваться в Discord, зайти в чатик, поставить себе там ник в виде фамилии, имени [отчества], со всеми радостно поздороваться

  1. Инсталлировать программное обеспечение из списка ниже

Ресурсы — слайды, листинги, блокноты

  1. Слайды: Python: что это, откуда и зачем

  2. Слайды: Немного практики

  3. Блокнот: Основы

  4. Блокнот: Ответы на вводный тест

  5. Блокнот: Функции, декораторы, статическая типизация, Lint

  6. Блокнот: Простые задачки, чтобы всё-таки набить руку

  7. Пример: Задача N тел

  8. Блокнот: Определяем свои пространства

  9. Пример: Модуль и пакет (TODO)

  10. Блокнот: Метод Гаусса решения СЛАУ

  11. Блокнот: Just-in-Time компиляция

  12. Слайды: Параллельное программирование: потоки, процессы, сопрограммы, циклы обработки сообщений и примеры

  13. Блокнот: Немного данных и статистики

  14. Примеры: Декларативный GUI; Множественное наследование

  15. Пример: Простое Web-приложение

  16. Пример (неоконченный): Игра на PyGame

  17. Блокнот: Реляционные БД и ORM

  18. Слайды: Классификаторы — простейший линейный и на базе нейронной сети

  19. Блокноты: Совсем немного нейронных сетей и Чуть больше нейронных сетей. И ещё чуть-чуть, и ещё чуть-чуть.

Те же блокноты, но в режиме предпросмотра GitHub (с некоторыми ошибками, но GiHub умеет их показывать).

Программное обеспечение

Программное обеспечение для Windows устанавливается с официальных сайтов, для Unix-подобных систем — при помощи системного менеджера пакетов.

  • Python 3.8+ https://www.python.org/downloads/, очень желательно 64-битный

    • Для Windows:

      • говорим, что хотим изменить настройки

      • ставим галочку на тему того, что надо внести Python в системные пути

      • каталог для инсталляции выбираем c:\Python38

  • Пакеты для Python — либо при помощи системного пакетного менеджера, либо (например, для Windows) при помощи менеджера Python:

    • Обновление пакетного менеджера (необязательно) python -m pip install --upgrade pip

    • Инсталляция пакетов pip install ipython scipy numpy pandas jupyterlab matplotlib

  • Git, например отсюда: https://git-scm.com/download/win

  • Не вредно — IDE. Популярные варианты:

    • Для небольших прогамм (наш случай) или «средни» ПК — Visual Studio Code + плагин для Python

    • Для крупных проектов и мощных ПК — JetBrains PyCharm, при наличии Email в домене университета — Professional Edition

Удобный файловый менеджер, позволяющий быстро бегать по файловой системе и редактировать текстовые файлы, например (но не обязательно) двухпанельные Far Manager или Midnight Commander — научиться пользоваться без мышки

  • Любой современный веб-браузер

Выполненные задания

В таблице ниже лишь сводка. Комментарии доступны по ссылке.

Основы программирования (Python), осень 2018

Содержание курса

Язык программирования Python

  1. История и предназанчение языка, основные свойстваю.

  2. Оболочки Python, IPython, Jupyter Notebook, Jupyter Lab. Система контроля версий Git, основные операции.

  3. Встроенные типы данных языка, операции над ними.

  4. Модули стандартной и внешней библиотек.

  5. Функции. Встроенная документация. Передача параметров, рекурсивные функции. Продвинутая тема — декораторы.

  6. Пользовательские типы данных. Описание классов.

  7. Реализация стандартных операций над пользовательскимим типами. Операции, вызываемые встроенными функциями и операторами.

  8. Реализация собственных модулей.

  9. Промежуточная консультация.

  10. Немного ускоримся: Numba, PyPy, Cython

  11. Работа с массивами данных: чтение/запись CSV, HDF5.

  12. Анализ массивов данных: библиотека Pandas.

  13. Сопроцедуры. AsyncIO — пример того, как Python очень не хочет быть функциональным.

  14. Веб-приложения. Фреймворки для веб-приложений.

  15. Параллельное и распределённое программирование.

Источники

Литература

  1. Mark Lutz. Learning Python, 5th Edition // O'Reilly Media, 2013, 1648 p.

  2. R. Sedgewick, K. Wayne, R. Dondero. Introduction to Programming in Python: An Interdisciplinary Approach // Addison-Wesley Professional, 2015, 792 p.

  3. [перевод предыдущей книги] Роберт Седжвик, Кевин Уэйн, Роберт Дондеро. Программирование на языке Python. Учебный курс / пер. с англ. — СПб.: ООО "Альфа-книга" // М.: Диалектика, 2017, 736 с.

  4. Брайсон Пэйн. Python для детей и родителей. Играй и программируй / пер. с англ. М.А. Райтман // М.: Издательство «Э», 2017. — 352 с. [книжку можно почитать с Google Books]

  5. Сегаран. Т. Программируем коллективный разум. / пер. с англ. – СПб: Символ-Плюс, 2008. – 368 с.

  6. Дейт К. Дж. Введение в системы баз данных / пер. с англ. Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с.

Не литература

Отдельные лекции, комментарии, важные реплики и прочие материалы