Основы программирования в Python
Дорогие студенты!
Это страница обязательного курса «Основы программирования в Python», читаемого на образовательной программе «Политология» 1 курса бакалавриата
в 3-4 модулях 2022-2023 учебного года.
Семинары ведёт: Тамбовцева Алла Андреевна, почта allatambov@gmail.com.
Учебные ассистенты: Жужлев Борис (страница vk), Сташевски Эмиль.
Содержание
- 1 Правила игры
- 2 Программное обеспечение
- 3 Материалы курса
- 3.1 Занятие 01 (16 января). Знакомство со средой Jupyter Notebook. Вычисления и переменные в Python.
- 3.2 Занятие 02 (23 января). Типы данных в Python. Ввод и вывод.
- 3.3 Занятие 03 (30 января). Форматирование строк. Методы .split() и .join().
- 3.4 Занятие 04 (6 февраля). Списки и цикл for.
- 3.5 Занятие 05 (13 февраля). Списки и кортежи. Функции range() и zip().
- 3.6 Занятие 06 (17 февраля). Списки, кортежи, массивы. Методы на строках.
- 3.7 Занятие 07 (27 февраля). Чтение и запись txt-файлов. Условные конструкции: введение.
- 3.8 Занятие 08 (6 марта). Условные конструкции и цикл while.
- 3.9 Занятие 09 (13 марта). Повторение. Множества.
- 3.10 Занятие 10 (20 марта). Словари.
- 4 Домашние задания
- 5 Подготовка к независимому экзамену
Правила игры
- Формула оценки: Итог = 0.4 * Домашнее задание + 0.3 * Тест + 0.3 * Экзамен, где Домашнее задание и Тест – неокруглённые средние арифметические за все домашние задания и тесты соответственно, а Экзамен – целочисленная оценка за экзамен. Всего планируется 10 домашних заданий и 3 теста.
- Пояснения по формам контроля можно посмотреть в программе курса.
- При сдаче домашнего задания позже указанного срока предусмотрены штрафы. Опоздание в пределах часа ведёт к штрафу 10% от полученной оценки, в пределах суток – к штрафу 30%, в пределах недели – к штрафу 60%.
Программное обеспечение
Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook.
Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). Но в долгосрочной перспективе предпочтительнее установить Anaconda.
Материалы курса
Занятие 01 (16 января). Знакомство со средой Jupyter Notebook. Вычисления и переменные в Python.
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Инструкция по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown (читать, ipynb).
- Вычисления и переменные в Python (читать, ipynb).
Дополнительно:
- Pythontutor: вычисления.
- Вычисления с заданной точностью с модулем decimal, официальная документация decimal.
- Вычисления с обыкновенными дробями с модулем fractions, официальная документация fractions.
- Символьные вычисления с sympy: часть 1 (sympy-1.ipynb), часть 2 (sympy-2.ipynb), официальная документация sympy.
- Стандарты оформления кода Python: PEP8, проверка соответствия кода стандартам: PEP8 online check.
- Markdown и Jupyter: больше про Markdown, интерактивные виджеты в Jupyter.
Занятие 02 (23 января). Типы данных в Python. Ввод и вывод.
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Типы данных и преобразование типов. Ввод и вывод в Python (читать, ipynb).
- Практикум 01 (читать, ipynb), решения практикума (читать, ipynb).
Дополнительно:
- Pythontutor: ввод и вывод.
- Работа с f-strings: обзор, документация.
- Исполнение кода внутри строк с функцией eval(): обзор.
Для тех, кто всё это знает:
- Введение в объекты и в классы в Python: лекция, тьюториал.
- Работа с текстами: облака слов (Set up a Basic WordCloud, в text помещаем любую строку с текстом).
Занятие 03 (30 января). Форматирование строк. Методы .split() и .join().
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Форматирование строк. Методы .split() и .join() (читать, ipynb).
- Практикум 02 (читать, ipynb), решения практикума (читать, ipynb).
Занятие 04 (6 февраля). Списки и цикл for.
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Списки и цикл for (читать, ipynb). Методы на списках (читать, ipynb).
- Практикум 03 (читать, ipynb), решения практикума (читать, ipynb).
Дополнительно:
- Визуализатор кода от pythontutor.com.
- Pythontutor: списки, цикл for.
Занятие 05 (13 февраля). Списки и кортежи. Функции range() и zip().
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Функция range(), функция zip() и кортежи (читать, ipynb).
- Практикум 04 (читать, ipynb), решения практикума (читать, ipynb).
Занятие 06 (17 февраля). Списки, кортежи, массивы. Методы на строках.
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Кортежи и массивы (читать, ipynb). Методы на строках (читать, ipynb).
- Практикум 05 (читать, ipynb), решения (читать, ipynb).
- Библиотека pymorphy2 для морфологического разбора и нормализации слов.
Дополнительно:
- Работа с текстами: облака слов, пример списка стоп-слов для русского языка.
Занятие 07 (27 февраля). Чтение и запись txt-файлов. Условные конструкции: введение.
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Чтение и запись txt-файлов (читать, ipynb).
- Практикум 06 (читать, ipynb), решения (читать, ipynb). Файлы: intro.txt, ducks.txt.
Занятие 08 (6 марта). Условные конструкции и цикл while.
- Сырые ipynb-файлы лекции с занятия: 221, 222, 223.
- Логические выражения и условные конструкции (читать, ipynb). Цикл while (читать, ipynb).
- Практикум 07 читать, ipynb, решения практикума (читать, ipynb).
Дополнительно:
- Pythontutor: условия, цикл while.
- Конструкция try-except для ловли ошибок (статья).
- Операции continue и pass и циклах (статья).
Занятие 09 (13 марта). Повторение. Множества.
- Сырые ipynb-файлы с занятий: 221, 222, 223.
- Множества (читать, ipynb).
- Практикум 08 (читать, ipynb), решения практикума (читать, ipynb).
Дополнительно:
- Pythontutor: множества.
Занятие 10 (20 марта). Словари.
- Сырые ipynb-файлы с занятий: 221, 222, 223.
- Словари (читать, ipynb).
- Практикум 09 (читать, ipynb), решения практикума (читать, ipynb).
Домашние задания
- Решения домашнего задания №1 необходимо загрузить в папку Dropbox по предложенным ссылкам (отдельная ссылка для каждой группы).
- Последующие домашние задания сдаются через систему python.math-info, видео-инструкция по работе с системой.
Домашнее задание | Дедлайн |
---|---|
Домашнее задание 1 | 23.01 12:00, загружать сюда: 221, 222, 223 |
Домашнее задание 2 | 04.02 23:59, сдается через систему |
Домашнее задание 3 | 16.02 23:59, сдается через систему |
Домашнее задание 4 | 27.02 23:59, сдается через систему |
Домашнее задание 5 | 20.03 23:59, сдается через систему, pesem.txt |
Домашнее задание 6 | |
Домашнее задание 7 | |
Домашнее задание 8 | |
Домашнее задание 9 | |
Домашнее задание 10 |
Подготовка к независимому экзамену
Официальная информация
- Студенты ОП «Политология» сдают независимый экзамен по программированию базового уровня (сложнее, чем начальный).
- Экзамен запланирован на 4 модуль, точная дата пока неизвестна. Экзамен проходит в LMS, проводится с прокторингом. Во время выполнения экзамена разрешается пользоваться официальной шпаргалкой, доступной по ссылке в LMS. На экзамене не разрешается пользоваться облачными средами для работы типа Google Colab, но разрешается пользоваться стандартными средами для запуска кода Jupyter Notebook, PyCharm, VSCode.
- Для подготовки рекомендуется использовать материалы курса «Python как иностранный», а также открытый банк заданий и демоверсию экзамена из официальных материалов для подготовки. У разработчиков экзамена есть телеграм-канал, в котором публикуется полезная информация к экзамену, задачи и их разбор.
Дополнительные материалы
Здесь будут публиковаться дополнительные материалы и задачи для подготовки к экзамену.