Программирование на Python

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Преподаватели: С.С. Горшков М.К. Горденко

Учебный план

Лекции

Среда 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

слайды обратная связь

Семинары

БКНАД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 код исключения обратная связь

ДЗ

После почти каждого семинара вам будет выдано оцениваемое домашнее задание. На выполнение задания дается 8 дней от момента начала дня соответствующего семинара.

В каждом контесте можно использовать только те приемы, которые обсуждались на предшествующих лекциях и семинарах

По вопросам получения логинов-паролей пишите лектору

ДЗ 1 (Арифметика)

ДЗ 2 (Условный оператор, цикл while, вещественные числа)

ДЗ 3 (Строки, цикл for)

ДЗ 4 (Функции и рекурсия)

ДЗ 5 (Списки и сортировка) – первые 10 задач на списки (в них пользоваться сортировками нельзя)

ДЗ 6 (Функциональное программирование) – последние 2 задачи решаются с помощью множеств, их мы пройдем на следующей неделе

ДЗ 7 (Множества и словари)

ДЗ 8 (Классы)


Дедлайны по ДЗ

ДЗ 1 ДЗ 2 ДЗ 3 ДЗ 4 ДЗ 5 ДЗ 6 ДЗ 7 ДЗ8
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 07.10.21 23:59 09.10.21 23:59


Ссылки на интерпретатор и среду программирования

Сначала нужно установить интерпретатор языка Python 3 версии отсюда: https://www.python.org/downloads/

Затем среду программирования JetBrains PyCharm (Community) отсюда: https://www.jetbrains.com/pycharm/download

Краткое изложение PEP8 (источник)

Список онлайн-ресурсов

https://pythonworld.ru/

https://docs.python.org/3

https://www.coursera.org/learn/python-osnovy-programmirovaniya

https://www.coursera.org/specializations/programming-in-python

https://vk.com/itcookies/python

http://uneex.org/LecturesCMC/PythonIntro2020