Программирование на Python
Преподаватели: С.С. Горшков М.К. Горденко
Содержание
Лекции
Среда 9:30 – 10:50, zoom link
Пятница 9:30 – 10:50, zoom link
1. 8 сентября. Немного об истории. Hello, world! Понятие переменной, целочисленная арифметика. Представление целых чисел в памяти компьютера. Битовые операции. Питон как простейший калькулятор. Команда id. Модель copy-on-write. Операторы сравнения, присваивания. Правила именования переменных. Логический тип. None. Ленивые вычисления. Использование однострочных комментариев. Знакомство с Jupyter Notebook, docs.python.org слайды, доска, Jupyter, Jupyter PDF, обратная связь.
2. 10 сентября Условный оператор. Цикл while. Вещественные числа. Использование стандартных модулей. Модули math и decimal. Строки, форматирование строк. Знакомство с регулярными выражениями. слайды обратная связь.
3. 15 сентября Списки и кортежи. Цикл for. Основы работы с файлами. слайды код обратная связь
4. 17 сентября Функции и рекурсия. слайды код обратная связь
5. 18 сентября Сортировка в Python. Итераторы и генераторы. слайды код обратная связь
6. 22 сентября Методы генераторов. Именованные кортежи, двусторонняя очередь. Декораторы. слайды кодобратная связь
7. 24 сентября Функциональное программирование. Модули itertools и operator. Знакомство с аргументами командной строки, работой с файловой системой с помощью модуля os предварительные слайды код: main.py, gcd_many.py обратная связь
8. 29 сентября Множества и словари. Модуль collections. слайды обратная связь
9. 1 октября Основы ООП: Инкапсуляция. Классы в Python. Статические поля. Методы классов, арифметические magic методы, строковое представление классов. слайды код обратная связь
10. 2 октября Продвинутые возможности работы с классами. Методы класса и статические методы. Property. Наследование и полиморфизм в Python. Класс как пространство имён. слайды код обратная связь
11. 6 октября Абстрактные классы, слоты, работа с файловой системой, работа с аргументами командной строки, пакеты и модули, pip, нововведения Python 3.8 слайды код обратная связь
12. 8 октября Асинхронность в Python слайды код первоисточник обратная связь
13. 13 октября. Основы организации компьютерных сетей. Основы TCP/IP. Основы DNS. Основы HTTP. requests слайды обратная связь
14. 15 октября. Хотсинг телеграм бота на Heroku. Архитектура веб приложений. Обзор фреймворков. Знакомство с django. API, Routing. хостинг + heroku ps:scale worker=1 чтобы не отрубалось каждые полчаса слайды обратная связь
Семинары
БКНАД211: Четверг 11:10 – 12:30, zoom, Пятница 11:10 – 12:30, zoom
БКНАД212: Четверг 9:30 – 10:50, zoom, Пятница 11:10 – 12:30, zoom
1. 9 сентября. Решение проблем с установкой интерпретатора языка. Настройка PyCharm и дебаг кода. Практика работы с целыми числами. Целочисленное деление с отрицательными числами в языке Python. Закон де Моргана. Знакомство со строками. Арифметические операции со строками. Понятие неизменяемого объекта, неизменяемость строк. Знакомство с Яндекс.Контестом. Решение задач. слайды colab с кодом с семинара (из Pycharm) обратная связь
2. 10 сентября Продолжение лекции. Решение задач. colab с кодом с семинара (из Pycharm) обратная связь
3. 16 сентября Работа со стандартным вводом как с файлом. Байтовые строки. Разбор задач на темы: списки, кортежи, цикл for. Регулярные выражения. слайды код 212 код 211 про регулярки обратная связь
4. 17 сентября Продолжение решения задач на регулярные выражения. Решение задач на функции и рекурсию. код 211 обратная связь
5. 18 сентября Решение задач. Бинарный поиск код 211 код 212 слайды обратная связь
6. 23 сентября Практика работы с декораторами. docstring. Декоратор @functools.wraps. слайды код 211 код 212 обратная связь
7. 24 сентября Практика работы с декораторами. Практика использования методов функционального программирования в языке Python код: sem211_* код: sem212_* обратная связь
8. 30 сентября Множества и словари. Модуль collections. Решение задач: сначала B, N из ДЗ7, PokeMon, задача про непрерывный подмассив с суммой N, G, U из ДЗ7 (сколько успеем) код 211 код 212 обратная связь
9. 1 октября Классы в Python. Методы классов код 211 код 212 обратная связь
10. 2 октября Работа с магическими методами в Python. Обработка ошибок. Иерархия исключений. Создание пользовательских классов исключений слайды про исключения код 211 задачи 212 код исключения обратная связь
11. 7 октября Написание телеграм-бота обратная связь
12. 8 октября Тестирование. Написание телеграм-бота код testing + PEP8 обратная связь
13. 14 октября. Регулярные выражения: продолжение. Парсинг страниц: BeautifulSoup, формат XML. Работа с API слайды код 212 обратная связь
14. 15 октября. Знакомство с базами данных: Redis, SQLite
ДЗ
После почти каждого семинара вам будет выдано оцениваемое домашнее задание. На выполнение задания дается 8 дней от момента начала дня соответствующего семинара.
В каждом контесте можно использовать только те приемы, которые обсуждались на предшествующих лекциях и семинарах
По вопросам получения логинов-паролей пишите лектору
ДЗ 2 (Условный оператор, цикл while, вещественные числа)
ДЗ 5 (Списки и сортировка) – первые 10 задач на списки (в них пользоваться сортировками нельзя)
ДЗ 6 (Функциональное программирование)
Проект 1. Написать телеграм-бот (можно вк, дискорд), который будет делать что-нибудь полезное. Число методов - не менее 5, желательно как можно более разнородные. Это творческое задание, в нём формальные критерии избыточны.
Проект 2. Написать тесты к проекту 1, максимально покрыв его функциональность. Будет оцениваться корректность выбора метода тестирования/задания контракта в зависимости от вашего кейса. Можете почитать про моки (mock) и использовать их
Дедлайны по ДЗ
ДЗ 1 | ДЗ 2 | ДЗ 3 | ДЗ 4 | ДЗ 5 | ДЗ 6 | ДЗ 7 | ДЗ8 | ДЗ9 | тг бот | тесты |
---|---|---|---|---|---|---|---|---|---|---|
16.09.21 23:59 | 18.09.21 23:59 | 22.09.21 23:59 | 24.09.21 23:59 | 01.10.21 00:59 | 02.10.21 23:59 | 09.10.21 22:00 | 13.10.21 02:00 | 15.10.21 23:59 | 16.10.21 23:59 | 17.10.21 19:59 |
Ссылки на интерпретатор и среду программирования
Сначала нужно установить интерпретатор языка Python 3 версии отсюда: https://www.python.org/downloads/
Затем среду программирования JetBrains PyCharm (Community) отсюда: https://www.jetbrains.com/pycharm/download
Список онлайн-ресурсов
https://www.coursera.org/learn/python-osnovy-programmirovaniya
https://www.coursera.org/specializations/programming-in-python