Программирование на Python — различия между версиями
Serggor (обсуждение | вклад) |
Serggor (обсуждение | вклад) |
||
(не показано 97 промежуточных версии 2 участников) | |||
Строка 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 Записи] | ||
==Лекции== | ==Лекции== | ||
Строка 11: | Строка 13: | ||
1. '''8 сентября.''' Немного об истории. Hello, world! Понятие переменной, целочисленная арифметика. Представление целых чисел в памяти компьютера. Битовые операции. Питон как простейший калькулятор. Команда id. Модель copy-on-write. Операторы сравнения, присваивания. Правила именования переменных. Логический тип. None. Ленивые вычисления. Использование однострочных комментариев. Знакомство с Jupyter Notebook, docs.python.org [https://docs.google.com/presentation/d/1xtIv77N5MtXLnZT1aCuk0i9oJ6ldUrckG3kL78c-U9o/edit?usp=sharing слайды], [https://jamboard.google.com/d/1Pjut_LSNWNtTRakuMwWHDqwg0AjG5MNsC2AvCcWhljo/edit?usp=sharing доска], [https://disk.yandex.ru/d/5IoLoQ7hKrkuig Jupyter], [https://disk.yandex.ru/i/Atn1RNEkaojW5g Jupyter PDF], [https://forms.gle/L3b837ZTbNek6PUk8 обратная связь]. | 1. '''8 сентября.''' Немного об истории. Hello, world! Понятие переменной, целочисленная арифметика. Представление целых чисел в памяти компьютера. Битовые операции. Питон как простейший калькулятор. Команда id. Модель copy-on-write. Операторы сравнения, присваивания. Правила именования переменных. Логический тип. None. Ленивые вычисления. Использование однострочных комментариев. Знакомство с Jupyter Notebook, docs.python.org [https://docs.google.com/presentation/d/1xtIv77N5MtXLnZT1aCuk0i9oJ6ldUrckG3kL78c-U9o/edit?usp=sharing слайды], [https://jamboard.google.com/d/1Pjut_LSNWNtTRakuMwWHDqwg0AjG5MNsC2AvCcWhljo/edit?usp=sharing доска], [https://disk.yandex.ru/d/5IoLoQ7hKrkuig Jupyter], [https://disk.yandex.ru/i/Atn1RNEkaojW5g Jupyter PDF], [https://forms.gle/L3b837ZTbNek6PUk8 обратная связь]. | ||
− | 2. '''10 сентября''' Условный оператор. Цикл while. Вещественные числа. Использование стандартных модулей. Модули math и decimal. Строки. Списки и кортежи. Цикл for. | + | 2. '''10 сентября''' Условный оператор. Цикл while. Вещественные числа. Использование стандартных модулей. Модули math и decimal. Строки, форматирование строк. Знакомство с регулярными выражениями. [https://docs.google.com/presentation/d/1y7fZMcx9zOdOM1gaaUndkrdlciQbZ1rj4t3vKJSHE9Y/edit?usp=sharing слайды] [https://forms.gle/pRHKvjeadeaVSKus8 обратная связь]. |
+ | |||
+ | 3. '''15 сентября''' Списки и кортежи. Цикл for. Основы работы с файлами. [https://docs.google.com/presentation/d/1OxeR-y1LO3pQltrihm6WYHambCh5AsKNqRae5V94tPE/edit?usp=sharing слайды] [https://colab.research.google.com/drive/1Ezgt5oBt85zhpkUN3gsQ97Fx7iPArtUu?usp=sharing код] [https://forms.gle/HVtMhsm1Cu5hiQ439 обратная связь] | ||
+ | |||
+ | 4. '''17 сентября''' Функции и рекурсия. [https://docs.google.com/presentation/d/1vcibwSDPC0treU4DSWJ9pdN34Tx98885xfE9yQuJT-k/edit?usp=sharing слайды] [https://colab.research.google.com/drive/1LEnX6EdUNigSzNXWk03Kmfm2PDd0QaRv?usp=sharing код] [https://forms.gle/Fe2hp8x2XmRbvhPWA обратная связь] | ||
+ | |||
+ | 5. '''18 сентября''' Сортировка в Python. Основы обработки ошибок в Python. Итераторы и генераторы. | ||
+ | [https://docs.google.com/presentation/d/1xES6zkMNO71fIvPjAjqPDZBj79oFTu9_kjPLSxx8gnQ/edit?usp=sharing слайды про исключения] [https://docs.google.com/presentation/d/1acXlt8W2e28ewoRxkt5oNUguWcSZBzhgyC6dm5XtJsg/edit?usp=sharing слайды] [https://colab.research.google.com/drive/1CpBlRYdsJRj0DDcRzMmzo0jzNxmxth8I?usp=sharing код] [https://forms.gle/QWs8J33phJo1Gj557 обратная связь] | ||
+ | |||
+ | 6. '''22 сентября''' Методы генераторов. Именованные кортежи, двусторонняя очередь. Декораторы. [https://docs.google.com/presentation/d/1x78vCIWxY70uWgVvBCPOhjnNWemMBqG1gVv_9I0Iddo/edit?usp=sharing слайды] [https://colab.research.google.com/drive/10JQTySnvuJvSLDEcmDa8ej3LKhzpo7p6?usp=sharing код][https://forms.gle/HtnaXxVPgJeDFB8x8 обратная связь] | ||
+ | |||
+ | 7. '''24 сентября''' Функциональное программирование. Модули itertools и operator. Знакомство с аргументами командной строки, работой с файловой системой с помощью модуля os [https://docs.google.com/presentation/d/1-K9W2DneAql9CZEPACsWcDRBlUI9rlN_Sd0MTlNNYdk/edit?usp=sharing слайды] [https://replit.com/@SierghieiGorshk/Seminar7-1 код: main.py, gcd_many.py ] [https://forms.gle/bk3fMHFZiyoxabVL6 обратная связь] | ||
+ | |||
+ | 8. '''29 сентября''' Множества и словари. Модуль collections. [https://docs.google.com/presentation/d/1isbMmgKFQg_cwER-_PgZ3zUPg_KLklgR0_nxXAF3phY/edit?usp=sharing слайды] [https://forms.gle/ADYDU75m8nai81Nc8 обратная связь] | ||
+ | |||
+ | 9. '''1 октября''' Основы ООП: Инкапсуляция. Классы в Python. Статические поля. Методы классов, арифметические magic методы, строковое представление классов. [https://docs.google.com/presentation/d/16fUGtIZDI5607Mlh0iJ0MWtFdisPoXc4EHCLBhQ86kI/edit?usp=sharing слайды] [https://replit.com/@SierghieiGorshk/Complex код] [https://forms.gle/zkuMwQfSejeMTpgGA обратная связь] | ||
+ | |||
+ | 10. '''2 октября''' Продвинутые возможности работы с классами. Методы класса и статические методы. Property. Наследование и полиморфизм в Python. Класс как пространство имён. [https://docs.google.com/presentation/d/14dVlhwYykGUS0Xcm2f7fba1XsrfTQK-9DAXICcbZ5Is/edit?usp=sharing слайды] [https://replit.com/@SierghieiGorshk/Lecture10 код] [https://forms.gle/pV4QKBHcpEZfDLTv7 обратная связь] | ||
+ | |||
+ | 11. '''6 октября''' Абстрактные классы, слоты, работа с файловой системой, работа с аргументами командной строки, пакеты и модули, pip, нововведения Python 3.8 [https://docs.google.com/presentation/d/1ukHsyUEM_mf0PgcQR1ONNEn_NHGow-_ctZ36ivQL2Jc/edit?usp=sharing слайды] [https://replit.com/@SierghieiGorshk/Lecture11 код] [https://forms.gle/1eTdv9rhChdfNDrQA обратная связь] | ||
+ | |||
+ | 12. '''8 октября''' Асинхронность в Python [https://docs.google.com/presentation/d/1Ik28hL_gLFD3MFQibtrJt3KYplaszQ67WwLrJaZJScY/edit?usp=sharing слайды] [https://replit.com/@SierghieiGorshk/Lecture12 код] [http://uneex.org/LecturesCMC/PythonIntro2020/14_Async первоисточник] [https://forms.gle/a2EQcoL3k5XnqhPw7 обратная связь] | ||
+ | |||
+ | 13. '''13 октября'''. Основы организации компьютерных сетей. Основы TCP/IP. Основы DNS. Основы HTTP. requests [https://docs.google.com/presentation/d/1hhEOXHvAh2oQqJhyXqNlXUHAf7-o-utoUW8cIvni8NE/edit?usp=sharing слайды] [https://forms.gle/qJ3itu6UKaczY5uP7 обратная связь] | ||
+ | |||
+ | 14. '''15 октября'''. Хотсинг телеграм бота на Heroku. Архитектура веб приложений. Обзор фреймворков. Знакомство с django. API, Routing. [https://teletype.in/@cozy_codespace/Hk70-Ntl4 хостинг + heroku ps:scale worker=1] [https://uptimerobot.com/ чтобы не отрубалось каждые полчаса] [https://docs.google.com/presentation/d/1JyUuBYaVm6GQLahHmU66UQkFMrdkXztvI1XXriqKCVk/edit?usp=sharing слайды] [https://forms.gle/DATpTEc3ta6BpRP78 обратная связь] | ||
==Семинары== | ==Семинары== | ||
Строка 19: | Строка 46: | ||
БКНАД212: Четверг 9:30 – 10:50, [https://zoom.us/j/94456246887?pwd=b2E4dFYvcmhlZjNBMC9EZ2hIQmtwdz09 zoom], Пятница 11:10 – 12:30, [https://zoom.us/j/91576348117?pwd=S0FKWWRNQ09rN1JWcUo3MHBaUitXZz09 zoom] | БКНАД212: Четверг 9:30 – 10:50, [https://zoom.us/j/94456246887?pwd=b2E4dFYvcmhlZjNBMC9EZ2hIQmtwdz09 zoom], Пятница 11:10 – 12:30, [https://zoom.us/j/91576348117?pwd=S0FKWWRNQ09rN1JWcUo3MHBaUitXZz09 zoom] | ||
− | 1. '''9 сентября.''' | + | 1. '''9 сентября.''' Решение проблем с установкой интерпретатора языка. Настройка PyCharm и дебаг кода. Практика работы с целыми числами. Целочисленное деление с отрицательными числами в языке Python. Закон де Моргана. Знакомство со строками. Арифметические операции со строками. Понятие неизменяемого объекта, неизменяемость строк. Знакомство с Яндекс.Контестом. Решение задач. [https://docs.google.com/presentation/d/16dNBX2-SoDzUNFVK8yLlpwEALUQNO6TMJvtWY_MqT6E/edit?usp=sharing слайды] [https://colab.research.google.com/drive/1XUMJ31EG2A0b7vxjomWVLrSsygPcHgZy?usp=sharing colab с кодом с семинара (из Pycharm)] [https://forms.gle/vMxibZxPNYPLa3JP6 обратная связь] |
− | 2. '''10 сентября''' [https://forms.gle/PTRxPo7sn2etebf66 обратная связь] | + | 2. '''10 сентября''' Продолжение лекции. Решение задач. [https://colab.research.google.com/drive/1nM0VmdeDai1wL9vs2xFQ3GX-JYCycpCZ?usp=sharing colab с кодом с семинара (из Pycharm)] [https://forms.gle/PTRxPo7sn2etebf66 обратная связь] |
+ | |||
+ | 3. '''16 сентября''' Работа со стандартным вводом как с файлом. Байтовые строки. Разбор задач на темы: списки, кортежи, цикл for. Регулярные выражения. [https://docs.google.com/presentation/d/1BuGjQpAff6ZmaU5-eKusnHRUOIpY3CAM8TP11OnFpKU/edit?usp=sharing слайды] [https://colab.research.google.com/drive/1Zzt4PhhG0BAHU4ABUTWqbyV-ozd7J1C1?usp=sharing код 212] [https://colab.research.google.com/drive/1HCul_Z_U58e_fe87az9NdqyY9knes7VW#scrollTo=3WI41Poz8dhZ код 211] [http://uneex.org/LecturesCMC/PythonIntro2020/09_RegularExpressions про регулярки] [https://forms.gle/a9SDSpMtvBq8KYeb6 обратная связь] | ||
+ | |||
+ | 4. '''17 сентября''' Продолжение решения задач на регулярные выражения. Решение задач на функции и рекурсию. [https://replit.com/@KNAD21/Seminar04211#main.py код 211] [https://forms.gle/A45AXhT6b4b4u7cg6 обратная связь] | ||
+ | |||
+ | 5. '''18 сентября''' Решение задач. Бинарный поиск [https://replit.com/@KNAD21/Seminar05211#main.py код 211] [https://colab.research.google.com/drive/1mRRsjHSrUe11hRfcduyWWgTl8dfTUrVS?usp=sharing код 212] [https://docs.google.com/presentation/d/1ts_Jc52kBFilYj6NSINEVaot1NsE9h9SL2v4cZUkwBw/edit?usp=sharing слайды] [https://forms.gle/gMuZoz4eXoDuWDQp6 обратная связь] | ||
+ | |||
+ | 6. '''23 сентября''' Практика работы с декораторами. docstring. Декоратор @functools.wraps. [https://docs.google.com/presentation/d/1TFh86b0pU1OUvUHsVtsHsbG23hQ7QAym6x179TTSFaM/edit?usp=sharing слайды] [https://replit.com/@KNAD21/Seminar06#main.py код 211] [https://replit.com/@SierghieiGorshk/Seminar6#logger.py код 212] [https://forms.gle/ik5zkbrwMHyJAu6V9 обратная связь] | ||
+ | |||
+ | 7. '''24 сентября''' Практика работы с декораторами. Практика использования методов функционального программирования в языке Python [https://replit.com/@KNAD21/Seminar07#main.py код: sem211_* ] [https://replit.com/@SierghieiGorshk/Seminar7-1 код: sem212_* ] [https://forms.gle/s264UPH2nBv7LmCa7 обратная связь] | ||
+ | |||
+ | 8. '''30 сентября''' Множества и словари. Модуль collections. Решение задач: сначала B, N из ДЗ7, [http://uneex.org/LecturesCMC/PythonIntro2020/Homework_PokeMon PokeMon], [https://ya.cc/t/MmHmujWZom4gB задача про непрерывный подмассив с суммой N], G, U из ДЗ7 (сколько успеем) [https://replit.com/@KNAD21/Seminar08#main.py код 211] [https://replit.com/@SierghieiGorshk/Seminar8 код 212] [https://forms.gle/m3DzpzCD8orr8PyeA обратная связь] | ||
+ | |||
+ | 9. '''1 октября''' Классы в Python. Методы классов [https://replit.com/@KNAD21/Seminar09 код 211] [https://replit.com/@SierghieiGorshk/Complex код 212] [https://forms.gle/5KspEhFAqn4UqDeK8 обратная связь] | ||
+ | |||
+ | 10. '''2 октября''' Работа с магическими методами в Python. Обработка ошибок. Иерархия исключений. Создание пользовательских классов исключений [https://docs.google.com/presentation/d/1xES6zkMNO71fIvPjAjqPDZBj79oFTu9_kjPLSxx8gnQ/edit?usp=sharing слайды про исключения] [https://replit.com/@KNAD21/Seminar10#main.py код 211] [https://replit.com/@SierghieiGorshk/Seminar10 задачи 212] [https://replit.com/@SierghieiGorshk/Lecture10#main.py код исключения] [https://forms.gle/oRp15e6jp4FeBvFy9 обратная связь] | ||
+ | |||
+ | 11. '''7 октября''' Написание телеграм-бота [https://replit.com/@MariiaGordienko/Seminar11212?v=1 код 211] [https://forms.gle/6KHVdmM5tGFBy7kA8 обратная связь] | ||
+ | |||
+ | 12. '''8 октября''' Тестирование. Написание телеграм-бота [https://replit.com/@SierghieiGorshk/Seminar12testing код testing + PEP8] [https://replit.com/@MariiaGordienko/Seminar12?v=1 код 211] [https://forms.gle/SxEs6CLXTmfkfeFR9 обратная связь] | ||
+ | |||
+ | 13. '''14 октября'''. Регулярные выражения: продолжение. Парсинг страниц: BeautifulSoup, формат XML. Работа с API [https://docs.google.com/presentation/d/1giKQYQeBOjiGZ9a0uWIe2YU6daHBPAVI_oPZtFpsX0Y/edit?usp=sharing слайды] [https://replit.com/@MariiaGordienko/Seminar13#main.py код 211][https://colab.research.google.com/drive/1rrap6GLgpIb15Btyj7I43pkQZ_bvvtXk?usp=sharing код 212] [https://forms.gle/kvK5bEms4V3bX9SeA обратная связь] | ||
+ | |||
+ | 14. '''15 октября'''. Знакомство с базами данных: [https://replit.com/@MariiaGordienko/Lesson14#main.py код 211], [https://replit.com/@SierghieiGorshk/Seminar14 код212] | ||
==ДЗ== | ==ДЗ== | ||
Строка 33: | Строка 84: | ||
[https://official.contest.yandex.ru/contest/29123/enter/ ДЗ 2 (Условный оператор, цикл while, вещественные числа)] | [https://official.contest.yandex.ru/contest/29123/enter/ ДЗ 2 (Условный оператор, цикл while, вещественные числа)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/29196/enter/ ДЗ 3 (Строки, цикл for)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/29339/enter/ ДЗ 4 (Функции и рекурсия)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/29364/enter/ ДЗ 5 (Списки и сортировка) – первые 10 задач на списки (в них пользоваться сортировками нельзя)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/29564/enter/ ДЗ 6 (Функциональное программирование)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/29622/enter/ ДЗ 7 (Множества и словари)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/29760/enter/ ДЗ 8 (Классы)] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/30021/enter/ ДЗ 9 (Все темы, PEP 8)] | ||
+ | |||
+ | Проект 1. Написать телеграм-бот (можно вк, дискорд), который будет делать что-нибудь полезное. Число методов - не менее 5, желательно как можно более разнородные. Это творческое задание, в нём формальные критерии избыточны. [https://forms.gle/AxRbE1ztRtHe7t426 форма для сдачи] | ||
+ | |||
+ | Проект 2. Написать тесты к проекту 1, максимально покрыв его функциональность. Будет оцениваться корректность выбора метода тестирования/задания контракта в зависимости от вашего кейса. Можете почитать про моки (mock) и использовать их. [https://forms.gle/ATBuVGKKtAynVaWTA форма для сдачи] | ||
+ | |||
+ | == Экзамен == | ||
+ | Экзамен состоится 19 октября в 9:30, с синхронным прокторингом. Продолжительность экзамена – 1 час 20 минут. Необходимо будет включить камеру и (возможно) расшарить экран. [https://zoom.us/j/94197118070?pwd=YzBNVGVHcjB5VmhmeHNzYlg5ZDY4Zz09 Ссылка на zoom] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/30238/enter/ Демо-вариант экзамена] | ||
+ | |||
+ | [https://official.contest.yandex.ru/contest/30241/enter/ Ссылка на экзамен] | ||
+ | |||
+ | Всего будет 6 задач, решение 5 из них достаточно для получения максимального балла за экзамен. | ||
+ | |||
+ | Пользоваться можно только вашей IDE. | ||
+ | |||
+ | == Оценки == | ||
+ | [https://docs.google.com/spreadsheets/d/1gV31JGZqUw2V7fBDi1S8DIM5E0dhFuUkxYPmM9HngbE/edit?usp=sharing Итоговая таблица с результатами] | ||
+ | |||
+ | Накоп = 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, то студент может получить Накоп в качестве итоговой оценки, не приходя на экзамен. Если студент идет на экзамен, то возможность получения в качестве оценки накопленной пропадает. | ||
+ | |||
+ | == Дедлайны по ДЗ == | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! ДЗ 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 | ||
+ | |} | ||
==Ссылки на интерпретатор и среду программирования== | ==Ссылки на интерпретатор и среду программирования== | ||
Строка 40: | Строка 140: | ||
==Список онлайн-ресурсов== | ==Список онлайн-ресурсов== | ||
+ | |||
+ | [https://youtube.com/playlist?list=PLEwK9wdS5g0q8KTHOxlNU184NyayPXkWv Записи лекций] | ||
+ | |||
https://pythonworld.ru/ | https://pythonworld.ru/ | ||
Строка 49: | Строка 152: | ||
https://vk.com/itcookies/python | https://vk.com/itcookies/python | ||
+ | |||
+ | http://uneex.org/LecturesCMC/PythonIntro2020 |
Текущая версия на 13:08, 7 мая 2023
Преподаватели: С.С. Горшков М.К. Горденко
Содержание
Лекции
Среда 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. Основы обработки ошибок в 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