mipt-cs / course-site-python3 Goto Github PK
View Code? Open in Web Editor NEWСайт курса
Сайт курса
В условии не хватает упоминания о том, что система может быть не десятичной.
Нужна ссылка на документацию по функциям, ибо студентам не понятно, зачем нужно писать именно такие аргументы и какие еще варианты аргументов есть у этой функции.
Т.е. должен находиться по УКАЗАННЫМ ссылкам ответ на вопрос "почему 50 и что такое normed и в каком диапазоне его можно задавать)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
В прошлом семестре речь шла в основном о сортировках.
Нужно дополнить это пониманием ассимптотики разных встроенных операций, например list.pop(0)
Нужно вычитать, вычистить и сделать адекватной по объёму (чтобы успели за пару) работу №11 прошлого года (теперь она №10):
Содержание старой работы:
Я предлагаю сделать так:
1 часть работы:
2 часть работы:
Нужно срочно выложить ответы к упражнениям сегодняшней работы!
Иначе мы потеряем интерес студентов. Пока ещё эта работа "на острие", нужно успеть выложить ответы, тогда они их просмотрят.
Нужно переименовать работу, потому что её текущее название никак не соответствует сути.
Хорошо бы показывать как именно роботу нужно ходить.
Сюда входят все пройденные ранее виды сортировок, включая быстрые:
вставками.
выбором.
методом пузырька.
подсчётом.
Поразрядная.
Быстрая
>>> class MySecondClass:
msg = 'Hello' # Все экземпляры этого класса будут иметь атрибут msg,
# равный "Hello"
# Но впоследствии мы его можем изменить
def doSmth(self):
return self.msg
>>> b = MySecondClass()
>>> b.doSmth()
'Hello'
>>> MySecondClass.doSmth(b)
'Hello'
>>> b.msg = 'Good by'
>>> b.doSmth()
'Good by'
В этом листинге описание немного не соответствует действительному положению дел.
msg = 'Hello'
- атрибут уровня класса.
b.msg = 'Good by'
- создает атрибут msg у экземпляра b
Атрибут уровня класса по-прежнему доступен и остался прежним:
»> MySecondClass.msg
'Hello'
>>> MySecondClass.__dict__
{'msg': 'Hello', '__weakref__': <attribute '__weakref__' of 'MySecondClass' objects>, '__module__': '__main__', '__doc__': None, '__dict__': <attribute '__dict__' of 'MySecondClass' objects>, 'doSmth': <function MySecondClass.doSmth at 0x7fe3c3d47840>}
>>> b.__dict__
{'msg': 'Good by'}
Путаница между двумя разными уровнями аттрибутов может быть вызвана тем, что внутри класса можно обращаться к ним обоим через self. Вначале происходит поиск в аттрибутах экземпляра (b.__dict__
), а затем среди аттрибутов класса (MySecondClass.__dict__
).
Введение
Ветвление
Цикл while
Цикл for
Операторы сравнения
Слишком халявен, оба вопроса, фактически, про одно и тоже.
Вычитать и модернизировать работу "Графы Фрутландии"
текст 2015-2016-го года: http://judge.mipt.ru/mipt_cs_on_python3_2015/labs/lab20.html
исходник 2015-2016-го года: https://github.com/mipt-cs-on-python3/course-site/blob/master/content-2015-2016/lab20.rst
Основа этой работы: Визуализация графов при помощи библиотеки NetworkX.
Алгоритмические темы полностью повторяют два последних контеста, а именно:
плюс связанные с ними алгоритмы
Важно, чтобы студенты могли делать подсвечивание подграфа (например, построенного остовного дерева или найденного цикла). Это делается полупрозрачной широкой линией при построенном заранее layout.
Страница, на которой нужные нам ссылки:
http://mcsp.wartburg.edu/zelle/python/
В этой работе мы пишем функции без возвращаемого значения ("процедуры").
Темы:
Хотелось бы это дать по типу того, как Илья Рудольфович даёт школьникам Тупого Художника.
Т.е. обучить студентов не только созданию функций, но и проектированию "сверху-вниз".
В лабе после задания 5 нигде явно не сказано, что входные данные подаются через файл, хотя, судя по контенту лабы, это подразумевается.
Переписать исполнителя Робот так, чтобы он тебе нравился.
При этом команды робота должны быть:
up()
down()
left()
right()
paint()
без упоминания объекта робота.
Набор задач тебе сбросить в каком формате? Есть редактор карт для робота на КуМир-е.
Где и в каком формате ты будешь хранить задачи и ответы?
Внимание! Лабораторная работа "Строки и списки" делается из куска работы 5 прошлого года.
и дополняется по усмотрению.
Темы работы:
Цикл упражнений к практической работе можно оставить, но продумав, что из этого по материалу и по сложности подходит к данной работе.
В тесте 12 где на ввод подается 100к чисел, какое решение, предполагалось, должны написать студенты, чтобы не получить 'T' таймаут? Использовать set студенты еще не могут, так как он, очевидно, проходится в семинаре 10 ("Словари и множества в Python"), про бинарный поиск вроде им тоже ни чего не говорили, делать костыли и подпираться под тест - вроде не красиво. Может я что-то упустил?
Контест: перевод графа из одной формы в другую, поиск в ширину и глубину, поиск кратчайшего пути.
Ответственный: Маркеева
Критик: Хайруллин
Задача: сформировать требования к контесту.
Нужно актуализировать и улучшить работу №8 прошлого года (теперь она №11):
Цель данной работы: дать первичные навыки командной работы с использованием git.
План старой работы:
Проектирование программы
Командное программирование
Легенда
Разбиение на модули
Распределение ролей
Программист А. План работ
Программист В. План работ
Результаты
Пример солечной системы
Пример двойной звезды
Дополнительное задание
Текущий вариант плох как минимум по следующим причинам:
При старте в клетке 1,1 робот не видит стены сверху и может "шагнуть" вверх.
При этом отрисовывается шаг движения вверх, робот фактически остаётся в той же клетке, а сам после этого становится невидимым до конца выполнения программы...
При ударе робота о стену он становится красным, но продолжает движение.
Текущий способ постановки задач заключается в прописывании их в файл с исходниками робота, что не комильфо.
Задачи для контеста шестой недели:
Контест: перевод графа из одной формы в другую, поиск в ширину и глубину, поиск кратчайшего пути.
Ответственный: Маркеева
Критик: Хайруллин
Задание:
Есть три подходящих задачи в контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=540203
Первые две оттуда брать нельзя - они войдут в домашний контест ко 2-й лекции.
Нужно сделать задачи:
Как выкладываем промежуточный результат:
заливаете
условие задачи,
образцовое решение
генератор тестов ( или сами тесты )
чекер
короткое описание каждой задачи в текстовичке Markdown, содержащее кусочек конфига для этой задачи
в папку 2_03_lab
в репозиторий: https://github.com/mipt-cs-on-python3/contests/tree/master/2016-2017_python3
Вот здесь можно посмотреть как я делаю генератор тестов:
https://github.com/mipt-cs-on-python3/contests/tree/master/2016-2017_python3/2_02_lab
В первой из задачек (A_dic1) можно посмотреть на нестандартный чекер — checker.py
Условия Ejudge принимает в xml виде. Пока я оставил statements как есть.
@fufler Хотелось бы придумать rst, который будет легко переводить в xml скриптом.
Дедлайн передачи критику : 20:00 19.02.17
Дедлайн согласований с критиком: 20:00 20.02.17
Было бы неплохо отображать, как именно робот должен двигаться (например, записать gif-ки с решениями). Это нужно сделать для тех задач, где наличие подобной анимации не будет облегчать поиск решения.
Нужно сделать произвольную глубину боковых коридоров, чтоб не было соблазна решать без цикла.
Явно указать, что под вспомогательным алгоритмом понимается функция, рисующая часть узора.
Сделать генерацию коридора в произвольных местах.
Сделать генерацию стены в разных местах.
Сделать генерацию коридора в разных местах.
фракталы с черепашкой
Лабораторная работа: Консольные утилиты
Она является работой №16 прошлого года
Требуется вычитать работу и сделать её более интересной.
Проблема: задача может иметь тесты разной ценности. Может быть "блочность" задачи: за частичное решение хочется давать не около нуля, а 20-30-50% от всех баллов за задачу и т.д. Например, если существует решение для n<100 и решение для n<1000. Хочется давать немного баллов и тем, кто смог только написать простое решение.
Идея:
Дать способ задавать вес каждого теста и вес общего бонуса.
В самом контесте пусть задается суммарная стоимость задачи.
После делается так:
S - суммарная стоимость, W - суммарный вес (все тесты и бонус), w_i - вес i-ого теста, b_i - баллы за i-ый тест
b_i = int(S/W * w_i) (округление вниз!)
а в бонус отправить остаток
Кажется, такое будет надежно работать и не падать. В самых крайних случаях (слишком мелкая стоимость отдельных тестов) за тесты будет 0 баллов, а в бонус будет уходить всё :-)
Это можно починить специальным if'ом.
По умолчанию я бы сделал так: 30% бонус, остальное равномерно между всеми тестами.
В задаче не очевидно, что нужно искать уникальные числа. В не то что 1 2 3 3 3 должен вывести 3, 2, 1, а не 3,3,3
При старте в клетке 1,1 робот не видит стены сверху и может "шагнуть" вверх.
При этом отрисовывается шаг движения вверх, робот фактически остаётся в той же клетке, а сам после этого становится невидимым до конца выполнения программы...
Лабораторная работа: Словари и множества в Python
Она является работой №10 прошлого года
Требуется:
Задача B в контрольной 3 совпадает с задачей A в контрольной 4.
Задача 9:
Ребятам было не очевидно, что:
Задача 15:
Просто не поняли что делать, пришлось объяснять.
Доброго времени суток!
Заметил парочку опечаток в уроке №2 ("Введение в Python 3"):
В главе "IPython — расширенная оболочка": в коде строка "ABC" умножается на 10, а в поясняющем тексте ниже сказано, что строка умножается на 100;
В упражнении №8 в условии перепутаны ввод и вывод.
В дальнейшем предлагаю собирать всю информацию об опечатках здесь.
Лабораторная работа: Черепашка
Вычитать и доделать лабораторную работу: Максим Хламов
Приёмку работы делает Алексей Ермаков
Point нелогично складывать.
Надо сделать Vector.
Контест: поиск в ширину, поиск кратчайшего пути.
Ответственный: Семенцов-Огиевский
Критик: Хламов
Дедлайн передачи критику: 20:00 22 февраля
Дедлайн передачи в общий доступ: 20:00 24 февраля
Сделать вкладку "Достижения учащихся" с результатами контрольных работ
Генератор я закоммитил в корень: quiz_results_generate.py
Контест: двоичные дервья поиска
Ответственный: Семенцов-Огиевский
Задачи можно смотреть тут: https://server.179.ru/tasks/python/2017b1/pgm32__Graphs-1.html
и тут (для Си): http://93.175.29.65/cgi-bin/new-client?contest_id=600009
Лабораторная работа: Арифметика и статистика
Она является частью работы №5 прошлого года. Добавить разумных и интересных упражнений.
Темы работы:
Команды Робота.
Коридорные задачи.
Лесенка для робота.
Вложенные циклы: сложные коридоры
При ударе робота о стену он становится красным, но продолжает движение.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.