Программирование на Python КНАД 24/25
Содержание
Основная информация по курсу
Форма обратной связи. Можно заполнять когда угодно с любыми вопросами
Ссылка на чат курса в телеграм – обязательно к вступлению
Преподавательский состав
| |||||
---|---|---|---|---|---|
Горшков Сергей | Егор Крыльцов | Иван Потапов | Мария Горденко | Владимир Кристалинский | Павел Беляков |
Лектор курса | Семинарист КНАД241 | Семинарист КНАД242 | Семинарист ВСН | Семинарист СмолГУ1 | Семинарист СмолГУ2 |
Ассистенский состав
| |||||
---|---|---|---|---|---|
Зуев Гордей | Барсуков Дмитрий | Сидорова Алика | Князев Федор | Валялов Даниил | Шокаров Тимур |
Ассистент лектора | Ассистент КНАД241 | Ассистент КНАД242 | Ассистент ВСН1 | Ассистент ВСН2 | Ассистент СмолГУ |
Лекции
Вторник и четверг с 09:30 до 10:50, Ссылка на конференцию
1. 10 сентября. Немного об истории. Hello, world! Понятие переменной, целочисленная арифметика, вещественные числа. Представление целых чисел в памяти компьютера. Битовые операции. Питон как простейший калькулятор. Операторы сравнения, присваивания. Знакомство с Jupyter Notebook, docs.python.org. слайды
2. 12 сентября. Условный оператор. Цикл while. Использование стандартных модулей. слайды
3. 17 сентября Списки и кортежи. Цикл for. Основы работы с файлами. слайды
4. 19 сентября Функции и рекурсия. слайды
5. 24 сентября Сортировка в Python. Итераторы и генераторы слайды
6. 26 сентября Методы генераторов. Именованные кортежи, двусторонняя очередь. Декораторы. слайды
7. 1 октября Декораторы. Функциональное программирование. Модули itertools и operator. Знакомство с аргументами командной строки, работой с файловой системой с помощью модуля os слайды
8. 3 октября Множества и словари. Модуль collections. слайды
9. 8 октября Основы ООП: Инкапсуляция. Классы в Python. Статические поля. Методы классов, арифметические magic методы, строковое представление классов. слайды
10. 10 октября Продвинутые возможности работы с классами. Методы класса и статические методы. Property. слайды
11. 15 октября Наследование и полиморфизм в Python. Класс как пространство имён (продолжение лекции 10). Абстрактные классы, слоты, пакеты и модули, pip, нововведения Python 3.8+ слайды
12. 17 октября Пакеты и модули, pip, нововведения Python 3.8+ слайды. SOLID-принципы, паттерны проектирования: код
13. 22 октября Асинхронность в Python. Пишем руками слайды код
14. 24 октября Библиотека asyncio. Использование слотов. Паттерны проектирования. слайды паттерны
Семинары
Репозиторий семинаров (автор Денис Беляков)
(КНАД242) https://github.com/ivan-digital/python_basics_2024
Домашнее задание
После почти каждого семинара вам будет выдано оцениваемое домашнее задание. На выполнение задания дается 8 дней от момента начала дня соответствующего семинара.
В каждом контесте можно использовать только те приемы, которые обсуждались на предшествующих лекциях и семинарах! Соответственно, в скобочках указываются темы, которые считаются последними пройденными к данному контесту. А значит, только эти и все предшествующие темы можно использовать для решения ДЗ.
Значения первой строки в таблицах кликабельны и при нажатии открывается страница соответствующего контеста. Если по каким-то причинам это не работает, можно переходить напрямую по ссылке https://official.contest.yandex.ru/contest/ваш-id-контеста/enter/
КНАД
ДЗ1 | ДЗ2 | ДЗ3 | ДЗ4 | ДЗ5 | ДЗ6 | ДЗ7 | ДЗ8 | ДЗ9 | |
---|---|---|---|---|---|---|---|---|---|
Дедлайн | 20.09.2024 23:59:59 | 23.09.2024 23:59:59 | 27.09.2024 23:59:59 | 30.09.2024 23:59:59 | 05.10.2024 23:59:59 | 08.10.2024 23:59:59 | 10.10.2024 23:59:59 | 15.10.2024 23:59:59 | 16.10.2024 23:59:59 |
id контеста | 67848 | 68045 | 68101 | 68398 | 68696 | 68968 | 69072 | 69245 | 69248 |
ВСН
ДЗ1 | ДЗ2 | ДЗ3 | ДЗ4 | ДЗ5 | ДЗ6 | ДЗ7 | ДЗ8 | ДЗ9 | |
---|---|---|---|---|---|---|---|---|---|
Дедлайн | 22.09.2024 23:59:59 | 23.09.2024 23:59:59 | 29.09.2024 23:59:59 | 30.09.2024 23:59:59 | 06.10.2024 23:59:59 | 08.10.2024 23:59:59 | 10.10.2024 23:59:59 | 15.10.2024 23:59:59 | 16.10.2024 23:59:59 |
id контеста | 67849 | 68046 | 68102 | 68399 | 68697 | 68969 | 69073 | 69246 | 69250 |
СмолГУ
ДЗ1 | ДЗ2 | ДЗ3 | ДЗ4 | ДЗ5 | ДЗ6 | ДЗ7 | ДЗ8 | ДЗ9 | |
---|---|---|---|---|---|---|---|---|---|
Дедлайн | 20.09.2024 23:59:59 | 23.09.2024 23:59:59 | 27.09.2024 23:59:59 | 30.09.2024 23:59:59 | 05.10.2024 23:59:59 | 08.10.2024 23:59:59 | 10.10.2024 23:59:59 | 15.10.2024 23:59:59 | 16.10.2024 23:59:59 |
id контеста | 67854 | 68047 | 68103 | 68400 | 68698 | 68970 | 69074 | 69247 | 69251 |
Общие Проекты
Проект 1. Написать телеграм-бот (можно вк), который будет делать что-нибудь полезное. Число методов - не менее 5, как можно более разнообразные. Схожие методы считаются как один метод. Это творческое задание, в нём формальные критерии избыточны. Использование запросов в интернет, использование LLM или баз данных крайне приветствуется и может быть оценено бонусными баллами на усмотрение проверяющего. Если вы хотите посоветоваться по поводу выбранной идеи – пишите вашему учебному ассистенту. Дедлайн 24.10.2024 23:59:59
Проект 2. Написать тесты к проекту 1, максимально покрыв его функциональность. Будет оцениваться корректность выбора метода тестирования/задания контракта в зависимости от вашего кейса. Дедлайн 27.10.2024 23:59:59
Оценки
Накоп = 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, то студент может получить Накоп в качестве итоговой оценки, не приходя на экзамен. Если студент идет на экзамен, то возможность получения в качестве оценки накопленной пропадает.
Ссылки на интерпретатор и среду программирования
Сначала нужно установить интерпретатор языка Python 3 версии отсюда: https://www.python.org/downloads/
Затем среду программирования JetBrains PyCharm (Community) отсюда: https://www.jetbrains.com/pycharm/download
Рекомендуется так же установить jupyter notebook (гугл в помощь). Можно установить через anaconda navigator
Список онлайн-ресурсов
https://www.coursera.org/learn/python-osnovy-programmirovaniya
https://www.coursera.org/specializations/programming-in-python