Программирование на Python КНАД 24/25

Материал из Wiki - Факультет компьютерных наук
Версия от 17:26, 24 октября 2024; Gazuev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Основная информация по курсу

Учебный план прошлого года

Вики прошлого года

Записи лекций и семинаров

Форма обратной связи. Можно заполнять когда угодно с любыми вопросами

Ссылка на чат курса в телеграм – обязательно к вступлению

Преподавательский состав
Горшков Сергей Егор Крыльцов Иван Потапов Мария Горденко Владимир Кристалинский Павел Беляков
Лектор курса Семинарист КНАД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://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