Различия между версиями 45 и 46
Версия 45 от 2014-11-07 16:03:22
Размер: 13625
Редактор: PavelSutyrin
Комментарий: added 6 lecture to main page
Версия 46 от 2014-11-10 00:14:50
Размер: 13665
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 40: Строка 40:
По окончанию курса проходит устный экзамен, основанием для которого будет являться исходный код (по выбору) выполненных домашних заданий или семестрового проекта. По окончанию курса проходит устный экзамен, основанием для которого будет являться исходный код выполненных [[/Homework|домашних заданий]] или [[/PreExam|предэкзаменационного online-тестирования]].

Язык программирования Python

  • Лектор: Курячий Георгий Владимирович

  • Ассистент: Сутырин Павел Георгиевич (если не можете зайти на факультет, звоните: +7 903 592 76 87)

  • Время и место проведения: Пятница, 18:00, ауд. П-6. Первая встреча — 3 октября.

  • Лицам, не имеющим пропуск на факультет ВМК МГУ, рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска.

Материалы

Тема

Лектор

Запись

Срок сдачи
д/з

1

История и место Python в современном мире. Командная строка

Георгий Курячий

смотреть

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

Экзамен

  • Для сдачи надо заранее (не менее, чем за два дня до экзамена) записаться, написав письмо с темой «Экзамен дата» по адресу <frbrgeorge@gmail.com>. Внимание: от количества записавшихся зависит количество приглашённых экзаменаторов, и, соответственно, сдающих экзамен.

  • О времени и месте проведения экзамена будет объявлено дополнительно.

Вступительное слово

В результате обсуждения в списке рассылки в рамках воззвания я принял решение в этом учебном году «взять паузу» по части Linux и спланировать (в идеале — постоянный) спецкурс по языку программирования Python и его применению.

Для меня Python оказался в своё время настоящим открытием. Создавалось ощущение, что Гвидо планировал его по принципу «в других языках неудобно, надо сделать попроще». Основной упор в своей версии курса я постараюсь делать на вот этой простоте.

Несмотря на то, что предполагается изучать Python «с начала», я буду весьма благодарен, если на наших встречах появятся люди, у которых есть что рассказать про особенности, вкусности и прочие интересности языка. Предложения и замечания по темам можно присылать мне или добавлять на страницу предложений.

Аннотация

  • Название: Язык программирования Python

  • Title: Python programming language

Язык программирования Python — объектно-ориентированный ЯП, сочетающий в себе простоту начального освоения, наличие современных конструкций и приёмов программирования, богатую инструментально-прикладную поддержку и огромное поле практического применения во всех отраслях знания, включая естественные и гуманитарные науки. Курс преследует цель обучить слушателей эффективному использованию языка, для достижения чего необходимо решить четыре задачи:

  1. по возможности всесторонне ознакомить слушателей с языком программирования,
  2. предоставить возможность наработки навыков программирования на языке во время решения домашних заданий,
  3. представить эффективные приёмы программирования на Python на примере некоторых инструментально-прикладных компонент,
  4. осветить современные тенденции программирования, нашедшие отражение в структуре языка, в том числе мультипарадигмальный подход при разработке программ.

В процессе изучения предполагается самостоятельная практическая работа.

По окончанию курса проходит устный экзамен, основанием для которого будет являться исходный код выполненных домашних заданий или предэкзаменационного online-тестирования.

Требования к уровню знаний слушателей:

  • знание алгоритмического программирования,
  • умение составлять и отлаживать программы,
  • представление об объектном планировании и ООП.

Тематический план курса

В скобках указаны главы учебника (имеется слегка устаревший русский перевод), используемые при подготовке лекций.

Поскольку объём тем неодинаковый, разбивка на лекции и их именование пока черновые. Кроме того, пока что вложенные пункты плана — это скорее черновик; я постараюсь по мере подготовки материалов эти пункты переносить на страницы лекций.

  1. Введение: история, основные свойства языка
    • Введение: история, основные свойства языка. Работа в командной строке и её настройка (13). Именование и видимость объектов, функция dir() (6.3). Подсистема помощи.

    • Понятие о счётчике ссылок, стандартных типах данных и свойства python на неформальных примерах (1, 2, 3)

  2. Условный оператор и операторы цикла
    • Решение домашних заданий, использование редактора. Понятие командного сценария (14). Условный оператор; нулевой объект как False; неполное вычисление (5.7). Операторы цикла и клауза else (4).

  3. Функции и исключения
    • Определение и свойства функций (4). Утиная типизация.

    • Строки документации.
    • Исключения (8)

    • Оператор with

  4. Структуры данных и их свойства
    • Структуры данных и их свойства, в т. ч. не упомянутые в (5). Выражения-конструкторы.

    • Работа со строками
  5. Модули и пакеты
    • Модули и пакеты (6)

    • python -m

    • Строки документации
  6. Ввод/вывод
    • Потоковый (байтовые и типизированные файлы)
    • Сериализация
    • DB-интерфейс
  7. Классы: определение и использование
    • Объектное планирование и объектно-ориентированные ЯП
    • Классы в Python 2 (9)

    • Модульность и инкапсуляция
    • Строки документации
  8. Классы: динамическая объектная модель
    • Наследование (9), в т. ч.

    • Полиморфизм и интроспекция
    • Перегрузка полей
      • __ — «защита» от перегрузки путём замены __name на __<class>_name

    • Декораторы
  9. Итераторы и генераторы
    • Итераторы и генераторы (9.9 и далее)

    • itertools и functools

  10. Стандартные модули
    • Профайлер и отладчик
    • Математика (numpy? array? /!\ )

    • Расширения семантики: weakref, collections, /!\ ещё?

    • /!\ ещё какие? 10 и 11)

Ссылки

Наработки FrBrGeorge:


CategoryLectures

LecturesCMC/PythonIntro2014 (последним исправлял пользователь PavelSutyrin 2015-01-22 23:37:16)