ОиМП-2015

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Основы и методология программирования, 2015 год, базовый поток, 1-2 модули

Лектор: к. ф.-м. н. А. И. Зобнин

Лекции: вторник (еженедельно), 1-я пара, ауд. 622;
пятница (четные недели), 1-я пара, ауд. 622.


Домашние задания

Выберите свой вариант задачи с помощью следующей функции:


   def generate(key, problems=4, variants=4):
       r = 0
       for c in key:
           r += ord(c)
       result = []
       for j in range(problems):
           result.append(chr(ord('A') + j) + str(r % variants + 1))
           r //= variants
       return result

В качестве ключа укажите ей свои фамилию, имя и отчество (по-русски, с большой буквы, через пробел, без опечаток). Например, так:

   print(generate("Зобнин Алексей Игоревич"))
   ['A1', 'B1', 'C2', 'D3']


Решения следует сдавать не только в Я.Контест, но и в систему [Anytask]. Получить инвайт для регистрации в этой системе вы можете у преподавателей своей группы.

Краткое содержание прочитанных лекций

  • 04.09.2015. Hello, world! Интерпретатор python в режиме калькулятора. Арифметические операции. Типы int, float, complex, bool. Функции print и input. Строки. Списки. Функция len. Срезки в строках и списках. Функции split и join. Итерация с помощью цикла for. [Код, написанный на лекции (по техническим причинам использовали python2)].
  • 08.09.2015. Цикл for. Функция range. Цикл while. Условный оператор if/elif/else. Раздел else в циклах. Кортежи, словари и множества. Задача о частотном словаре символов в строке. [Код, написанный на лекции]
  • 11.09.2015. Чтение строк из стандартного ввода с помощью sys.stdin. Задача о частотном словаре слов. Функции. Функция map. Сортировка списка по указанному ключу. Лямбда-функции. [Код, написанный на лекции]
  • 15.09.2015. Еще раз о сортировке по ключам и лямбда-функциях. Двумерные массивы (списки списков). Транспонирование матрицы. Функция zip. Функции с переменным числом аргументов и именованные параметры. [Код, написанный на лекции]
  • 22.09.2015. Модуль itertools: функции permutations, combinations, product, cycle. Генераторы и оператор yield. Модуль collections и классы defaultdict и Counter. [Код, написанный на лекции]
  • 25.09.2015. Модуль re и знакомство с регулярными выражениями. Модуль urllib.request и скачивание ресурсов из сети. Модуль datetime. Форматированный вывод с помощью str.format. [Код, написанный на лекции]


Код, написанный на лекциях, доступен также [здесь].


Контесты для семинаров

Полезные ссылки

Часто задаваемые вопросы

Можно ли использовать на семинарах свой ноутбук?
Да, мы этого не запрещаем.

В какой среде лучше писать программы для python'а?
В компьютерных классах можно запустить PyCharm (выбирайте при создании проекта python 3!), ipython3 notebook, IDLE (под Windows), а также просто написать код программы в произвольном текстовом редакторе (например, vim :) и запустить из терминала с помощью python3 <имя_файла>. Выбирайте любую среду на свой вкус.


Расписание семинаров

Подгруппа Преподаватель Расписание семинаров Учебные ассистенты
152-1 Зобнин Алексей Игоревич вторник, 2-я пара, ауд. 501;
пятница, 1-я пара, ауд. 501 (нечетные недели);
пятница, 2-я пара, ауд. 501
152-2 Кондратьев Андрей Владимирович понедельник, 2-я пара, ауд. 513 (нечетные недели);
понедельник, 3-я пара, ауд. 513;
вторник, 2-я пара, ауд. 503
154-1 Макаров Илья Андреевич понедельник, 5-я пара, ауд. 505;
четверг, 3-я пара, ауд. 503;
четверг, 5-я пара, ауд. 503 (нечетные недели)
Владимир Гончаров
154-2 Умнов Алексей Витальевич вторник, 3-я пара, ауд. 501;
среда, 3-я пара, ауд. 501;
среда, 4-я пара, ауд. 501 (нечетные недели)
155-1 Дектярев Михаил Владимирович понедельник, 2-я пара, ауд. 503;
среда, 1-я пара, ауд. 503 (нечетные недели);
среда, 2-я пара, ауд. 503
155-2 Мельничук Павел Владимирович понедельник, 2-я пара, ауд. 505;
среда, 1-я пара, ауд. 301 (нечетные недели);
среда, 2-я пара, ауд. 301
Александр Тиунов
156-1 Синицын Филипп Геннадьевич среда, 2-я пара, ауд. 605;
среда, 3-я пара, ауд. 301 (нечетные недели);
четверг, 1-я пара, ауд. 501
156-2 Умнов Алексей Витальевич вторник, 4-я пара, ауд. 501;
вторник, 5-я пара, ауд. 501 (нечетные недели);
среда, 2-я пара, ауд. 327
157-1 Густокашин Михаил Сергеевич понедельник, 2-я пара, ауд. 501;
вторник, 4-я пара, ауд. 501;
вторник, 5-я пара, ауд. 501 (нечетные недели)
157-2 Цетлин Сергей Витальевич вторник, 4-я пара, ауд. 301;
вторник, 5-я пара, ауд. 505 (нечетные недели);
четверг, 3-я пара, ауд. 327
158-1 Вельтищев Дмитрий Николаевич среда, 1-я пара, ауд. 513;
среда, 2-я пара, ауд. 420 (нечетные недели);
четверг, 1-я пара, ауд. 513
158-2 Строк Федор Владимирович четверг, 1-я пара, ауд. 505;
суббота, 1-я пара, ауд. 513;
суббота, 2-я пара, ауд. 513 (нечетные недели)


Список студентов с разбиением по группам: http://www.hse.ru/ba/ami/studentlist