Программирование на Python — различия между версиями
Serggor (обсуждение | вклад) |
Serggor (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
[https://www.hse.ru/ba/compds/courses/482733330.html Учебный план] | [https://www.hse.ru/ba/compds/courses/482733330.html Учебный план] | ||
+ | |||
+ | [https://youtube.com/playlist?list=PLEwK9wdS5g0q8KTHOxlNU184NyayPXkWv Записи] | ||
==Лекции== | ==Лекции== |
Версия 20:39, 6 июня 2022
Преподаватели: С.С. Горшков М.К. Горденко
Содержание
Лекции
Среда 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 октября Написание телеграм-бота код 211 обратная связь
12. 8 октября Тестирование. Написание телеграм-бота код testing + PEP8 код 211 обратная связь
13. 14 октября. Регулярные выражения: продолжение. Парсинг страниц: BeautifulSoup, формат XML. Работа с API слайды код 211код 212 обратная связь
14. 15 октября. Знакомство с базами данных: код 211, код212
ДЗ
После почти каждого семинара вам будет выдано оцениваемое домашнее задание. На выполнение задания дается 8 дней от момента начала дня соответствующего семинара.
В каждом контесте можно использовать только те приемы, которые обсуждались на предшествующих лекциях и семинарах
По вопросам получения логинов-паролей пишите лектору
ДЗ 2 (Условный оператор, цикл while, вещественные числа)
ДЗ 5 (Списки и сортировка) – первые 10 задач на списки (в них пользоваться сортировками нельзя)
ДЗ 6 (Функциональное программирование)
Проект 1. Написать телеграм-бот (можно вк, дискорд), который будет делать что-нибудь полезное. Число методов - не менее 5, желательно как можно более разнородные. Это творческое задание, в нём формальные критерии избыточны. форма для сдачи
Проект 2. Написать тесты к проекту 1, максимально покрыв его функциональность. Будет оцениваться корректность выбора метода тестирования/задания контракта в зависимости от вашего кейса. Можете почитать про моки (mock) и использовать их. форма для сдачи
Экзамен
Экзамен состоится 19 октября в 9:30, с синхронным прокторингом. Продолжительность экзамена – 1 час 20 минут. Необходимо будет включить камеру и (возможно) расшарить экран. Ссылка на zoom
Всего будет 6 задач, решение 5 из них достаточно для получения максимального балла за экзамен.
Пользоваться можно только вашей IDE.
Оценки
Итоговая таблица с результатами
Накоп = 0.1 * (ДЗ1 + ДЗ2 + ДЗ3 + ДЗ4 + ДЗ5 + ДЗ6 + ДЗ7 + ДЗ8 + ДЗ9 + Пр1 + Пр2 – МИН(ДЗ1, ДЗ2, ДЗ3, ДЗ4, ДЗ5, ДЗ6, ДЗ7, ДЗ8, ДЗ9, Пр1, Пр2)) Если просто – из 11 оценок не учитывается минимальная.
Итог = Округление(0.7 * Накоп + 0.3 * Э), где ДЗi — оценка за i-е домашнее задание, ПРi – оценка за i-й проект, Э — оценка за экзамен. Округление арифметическое.
Автоматы. Определим накопленную оценку как Накоп. Если Накоп >=6, то студент может получить Накоп в качестве итоговой оценки, не приходя на экзамен. Если студент идет на экзамен, то возможность получения в качестве оценки накопленной пропадает.
Дедлайны по ДЗ
ДЗ 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 | 16.10.21 00:20 | 17.10.21 23:59 | 18.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