1452
Комментарий:
|
4416
|
Удаления помечены так. | Добавления помечены так. |
Строка 8: | Строка 8: |
* Что за спецкурс * Домашние задания и EJudge |
В 2017 году (осень) мы решили [[LecturesCMC/PythonIntro2017|перезапустить]] спецкурс 2014 года по Python. Причин было много — наработанная практика за предыдущие два учебных года (базовый курс в Севастопольском филиале МГУ), перевод на Python3, некоторая реструктуризация изложения. Впрочем, подход остался тем же: мы читаем авторское «[[py3tut:|Знакомство с Python3]]», дополняем его объяснениями и примерами и решаем множество практических домашних заданий (36 задач на написание программы или функции). Лекции [[https://www.youtube.com/playlist?list=PL6kSdcHYB3x7VJXiCA8OjYAiRBHi7mZTJ|записывались на видео]] — в основном, скринкаст с небольшой говорящей головой. Условия домашних заданий (в среднем по 3 к лекции) и некоторые подсказки по решениям выкладывались [[LecturesCMC/PythonIntro2017/HomeworkRules|на сайте]], а вот проверку мы доверили факультетской системе проведения олимпиад [[https://ejudge.ru/|EJudge]]. Мы использовали только одну функцию EJudge: программе участника скармливается на стандартный ввод некий текст из набора входных тестов, а результат сравнивается с эталонным. К сожалению, в курс не входили практические занятия под чьим-либо руководством, так что требования «красоты» или «лаконичности» программ-решений пришлось опустить — не стоит оценивать то, чему не учил. Видео к курсу регулярно [[https://www.youtube.com/playlist?list=PL6kSdcHYB3x7VJXiCA8OjYAiRBHi7mZTJ|выкладывались в сети]], регистрация на «соревнование» в EJudge была свободной, так что на время подведения итогов у нас было 131 зарегистрированный участник соревнования (включая меня), из которых примерно половина (включая меня :) ) «дошла до финиша», т. е. решила более ⅔ задач. Всего было более 6000 попыток сдать задачу, из которых примерно половина была, с точки зрения EJudge, успешной. * Объём работ '''TODO''' |
Строка 11: | Строка 18: |
* Объём работ | |
Строка 17: | Строка 23: |
1. Мелкие хаки | 1. Удаление имён и компрессия |
Как я делал проверку копипасты для спецкурса по Python3 и что из этого вышло
TODO Пока только план
Часть первая: why?
В 2017 году (осень) мы решили перезапустить спецкурс 2014 года по Python. Причин было много — наработанная практика за предыдущие два учебных года (базовый курс в Севастопольском филиале МГУ), перевод на Python3, некоторая реструктуризация изложения. Впрочем, подход остался тем же: мы читаем авторское «Знакомство с Python3», дополняем его объяснениями и примерами и решаем множество практических домашних заданий (36 задач на написание программы или функции). Лекции записывались на видео — в основном, скринкаст с небольшой говорящей головой.
Условия домашних заданий (в среднем по 3 к лекции) и некоторые подсказки по решениям выкладывались на сайте, а вот проверку мы доверили факультетской системе проведения олимпиад EJudge. Мы использовали только одну функцию EJudge: программе участника скармливается на стандартный ввод некий текст из набора входных тестов, а результат сравнивается с эталонным.
К сожалению, в курс не входили практические занятия под чьим-либо руководством, так что требования «красоты» или «лаконичности» программ-решений пришлось опустить — не стоит оценивать то, чему не учил.
Видео к курсу регулярно выкладывались в сети, регистрация на «соревнование» в EJudge была свободной, так что на время подведения итогов у нас было 131 зарегистрированный участник соревнования (включая меня), из которых примерно половина (включая меня ) «дошла до финиша», т. е. решила более ⅔ задач. Всего было более 6000 попыток сдать задачу, из которых примерно половина была, с точки зрения EJudge, успешной.
- Объём работ
TODO
- Почему проверка копипасты важна: особенности с/к
Часть вторая: how?
Абстрактное синтаксическое дерево разбора Python3 кода (ast.html)
- Удаление имён и компрессия
Получившийся инструмент.
Часть третья: so what?
- Сама таблица
- Кластеры решений
- Мало кода
- Очевидный алгоритм
- Списывание с доски
- Реальная копипаста
- Выводы: всё хорошо, но нет
Часть четвёртая, заключительная: till when?
Как бороться с копипастой?
- Пресекать?
- Параметрические задачи?
- Смена мотивации?