Язык программирования Python
Простановка >>> оценок <<< состоится в пятницу 23.01.2015 в 18:00 в аудитории 613. Имейте при себе зачетку, ведомость, а также будьте готовы прямо на месте подтвердить ejudge-аккаунт (залогинившись в него) или email, связанный с аккаунтом (написав с него письмо). Оценку можно добровольно не ставить, изменить ее нельзя.
Лектор: Курячий Георгий Владимирович
Ассистент: Сутырин Павел Георгиевич (если не можете зайти на факультет, звоните: +7 903 592 76 87)
Время и место проведения: Пятница, 18:00, ауд. П-6. Первая встреча — 3 октября.
Лицам, не имеющим пропуск на факультет ВМК МГУ, рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска.
Материалы
№ |
Тема |
Лектор |
Запись |
Срок сдачи |
1 |
|
|||
2 |
Логические выражения, операторы ветвления и цикла. Решение Д/З |
31.10.2014 18:00 |
||
3 |
07.11.2014 18:00 |
|||
4 |
14.11.2014 18:00 |
|||
5 |
21.11.2014 18:00 |
|||
6 |
28.11.2014 18:00 |
|||
7 |
05.12.2014 18:00 |
|||
8 |
12.12.2014 18:00 |
|||
9 |
19.12.2014 18:00 |
|||
10 |
|
|||
11 |
|
Экзамен
На экзамен допускаются только те, кто сдал все домашние задания (из них — не менее 80% вовремя), либо прошёл предэкзаменационное тестирование.
Если в решениях плагиат отсутствует, а эстетическая ценность присутствует, возможно получить экзамен-«автомат» (UPD: на первый раз это основной метод, см. в начале страницы!)
- Вы можете улучшать вовремя сданное домашнее задание и после срока сдачи
«Эстетическая ценность» — дело исключительно вкуса; в данном случае — моего -- FrBrGeorge
- О времени и месте проведения экзамена будет объявлено дополнительно (предположительно — 26-го декабря 2014).
Вступительное слово
В результате обсуждения в списке рассылки в рамках воззвания я принял решение в этом учебном году «взять паузу» по части Linux и спланировать (в идеале — постоянный) спецкурс по языку программирования Python и его применению.
Для меня Python оказался в своё время настоящим открытием. Создавалось ощущение, что Гвидо планировал его по принципу «в других языках неудобно, надо сделать попроще». Основной упор в своей версии курса я постараюсь делать на вот этой простоте.
Несмотря на то, что предполагается изучать Python «с начала», я буду весьма благодарен, если на наших встречах появятся люди, у которых есть что рассказать про особенности, вкусности и прочие интересности языка. Предложения и замечания по темам можно присылать мне или добавлять на страницу предложений.
Аннотация
Название: Язык программирования Python
Title: Python programming language
Язык программирования Python — объектно-ориентированный ЯП, сочетающий в себе простоту начального освоения, наличие современных конструкций и приёмов программирования, богатую инструментально-прикладную поддержку и огромное поле практического применения во всех отраслях знания, включая естественные и гуманитарные науки. Курс преследует цель обучить слушателей эффективному использованию языка, для достижения чего необходимо решить четыре задачи:
- по возможности всесторонне ознакомить слушателей с языком программирования,
- предоставить возможность наработки навыков программирования на языке во время решения домашних заданий,
- представить эффективные приёмы программирования на Python на примере некоторых инструментально-прикладных компонент,
- осветить современные тенденции программирования, нашедшие отражение в структуре языка, в том числе мультипарадигмальный подход при разработке программ.
В процессе изучения предполагается самостоятельная практическая работа.
По окончанию курса проходит устный экзамен, основанием для которого будет являться исходный код выполненных домашних заданий или предэкзаменационного online-тестирования.
Требования к уровню знаний слушателей:
- знание алгоритмического программирования,
- умение составлять и отлаживать программы,
- представление об объектном планировании и ООП.
Тематический план курса
В скобках указаны главы учебника (имеется слегка устаревший русский перевод), используемые при подготовке лекций.
Поскольку объём тем неодинаковый, разбивка на лекции и их именование пока черновые. Кроме того, пока что вложенные пункты плана — это скорее черновик; я постараюсь по мере подготовки материалов эти пункты переносить на страницы лекций.
- Введение: история, основные свойства языка
- Условный оператор и операторы цикла
- Функции и исключения
- Структуры данных и их свойства
Структуры данных и их свойства, в т. ч. не упомянутые в (5). Выражения-конструкторы.
- Работа со строками
- Модули и пакеты
Модули и пакеты (6)
python -m
- Строки документации
- Ввод/вывод
- Потоковый (байтовые и типизированные файлы)
- Сериализация
- DB-интерфейс
- Классы: определение и использование
- Объектное планирование и объектно-ориентированные ЯП
Классы в Python 2 (9)
- Модульность и инкапсуляция
- Строки документации
- Классы: динамическая объектная модель
Наследование (9), в т. ч.
- Полиморфизм и интроспекция
- Перегрузка полей
__ — «защита» от перегрузки путём замены __name на __<class>_name
- Декораторы
- Итераторы и генераторы
Итераторы и генераторы (9.9 и далее)
itertools и functools
- Стандартные модули
Ссылки
Наработки FrBrGeorge:
Небольшая статья про классы в Python с примерами
По-моему, была вторая серия на бумаге, но я её потерял FrBrGeorge
Доклад «Использование языка программирования Python в качестве базового при обучении специалистов» на восьмой конференции «Свободное программное обеспечение в высшей школе»
Агитка про Python, не помню уже зачем написанная, явно для госзаказчика