ОиМП-2015
Содержание
[убрать]Основы и методология программирования, 2015 год, базовый поток, 1-2 модули
Лектор: к. ф.-м. н. А. И. Зобнин
Лекции: вторник (еженедельно), 1-я пара, ауд. 622;
пятница (четные недели), 1-я пара, ауд. 622.
Контрольные работы
Переписывание контрольной работы состоится 17 октября на второй паре (в 10:30). Аудитории - 501, 503 и 505. Оценка за переписывание (для тех, кто уже писал основной вариант контрольной) ставится по следующей схеме:
3 задачи - не более 7 баллов 2 задачи - не более 6 баллов 1 задача - не более 4 баллов
Домашние задания
Выберите свой вариант задачи с помощью следующей функции:
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. [Код, написанный на лекции]
- 29.09.2015. Пространства имен. Классы и объекты в python'е. [Код, написанный на лекции]
- 06.10.2015. Разбор первого домашнего задания (решения задач будут опубликованы позже). Дзен питона.
- 09.10.2015. C++: ввод-вывод, условный оператор, циклы, оператор switch. Знакомство с std::vector. [Код, написанный на лекции]
- 13.10.2015. Шаблон std::vector. [Код, написанный на лекции]
Код, написанный на лекциях, доступен также [здесь].
Контесты для семинаров
- C++: функции
- C++: контейнеры
- C++: ввод-вывод, условия, циклы
- Python: дополнительные задачи
- Python: sort, itertools, collections
- Python: повторение
- Python: функции
- Python: контейнеры
- Python: циклы
- Python: строки
Полезные ссылки
- Tutorial по языку Python 3 (на английском).
- Курс "Программирование на языке Python" (Д. Кириенко, школа 179).
- informatics.mccme.ru - дистанционная подготовка по информатике.
- pep8online.com - автоматическая проверка соответствия оформления программы требованиям PEP8.
- Рекомендуемый стиль оформления программ на C++.
Часто задаваемые вопросы
Можно ли использовать на семинарах свой ноутбук?
Да, мы этого не запрещаем.
В какой среде лучше писать программы для 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; вторник, 3-я пара, ауд. 327; вторник, 4-я пара, ауд. 327 (нечетные недели) |
Валерий Гиркин |
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