Организация университетского курса по обработке сигналов +9

Педагогика интересовала меня очень давно и, много лет, я, будучи студентом, воспитанный, но в то же время изведенный и задерганный существующей организацией обучения думал о том, как бы её улучшить. В последнее время мне все чаще предоставляется случай проверить какие-нибудь из идей на практике. В частности, этой весной мне в политехе (СПБПУ) предоставилась возможность прочитать курс “Обработка сигналов”. Его организация, в особенности организация отчетности — первый эксперимент, результаты которого мне кажутся сколько-нибудь удачными, и в этой статье я хочу про организацию этого курса рассказать.


Четкого понимания того, что должно читаться в курсе с таким названием у меня нет до сих пор, но в целом это курс, про то, что и как можно автоматически делать с изображениями, звуком, текстом, видео и другими примерами естественных и искусственно порождаемых сигналов. По тому, что читалось раньше и было бы наиболее полезно, это решение задач с семантическим разрывом между входным сигналом и тем, что по нему хочется понять. Эта статья не про содержание курса — даже на русском языке существует довольно много видеозаписей хороших курсов по схожей тематике.


Но, если содержание интересно

вот по крайней мере в ближайшее время действующая ссылка на презентации курса, которые лежат на моём гугл диске. Большинство из того, что там есть, выдрано из курсов Антона Конушина, csc и разных статей интернета, попадающих в топ самых релевантных. Тем не менее, местами есть вещи, понятных описаний которых я не нашёл и пытался придумать свои, местами есть русские описания того, что я смог найти только на английском — особенно это относится к кластеризации, например, к алгоритму mcl.


План статьи примерно следующий: сначала кратко описывается выбранная мной организация курса, затем идет рассказ про те проблемы, которые я считаю полезным решить, потом про, как я это пытался сделать при прочтении курса “обработка сигналов” и как я оцениваю результаты, какие проблемы вижу, какие идеи по их решению есть. Все это — не более чем мои мысли и идеи, и я буду очень рад комментариям, возражениям и еще идеям! Более того, это все написано во многом именно в надежде на получение ваших идей и комментариев. Еще, быть может, кому-то этот текст поможет найти интерес в качественном преподавании, несмотря на все то, что происходит вокруг.


image

Общая схема организации курса


Курс имеет две составляющих: теоретическую и практическую. Обе части очень важны: теоретическая дает большой обзор существующих алгоритмов и идей их конструирования для решения задач с семантическим разрывом; практическая должна дать хоть какой-то обзор существующих библиотек, а также потренировать навыки конструирования собственных алгоритмов. Соответственно, для обеих частей требовалась стимулирующая к их изучению отчетность, задающая основную линию работы студентов.


Как обычно, теоретическая часть состояла из лекций. После каждой лекции студентам на дом давался широкий список вопросов по лекции, состоящих как из рутинных вопросов про детали рассказанного, так и из творческих от того, как и в каких случаях можно улучшить определенные рассказанные идеи и где их можно использовать до предложения студентам придумать свои вопросы по лекции (а можно заодно и ответы к ним). Все вопросы выкладывались в постом в группу вконтакте, ответы надо было писать в комментариях: можно было либо ответить на еще не затронутый никем вопрос, либо прокомментировать / дополнить уже существующий ответ, в том числе сделанный другим студентом. Простор для тесно связанного с предметом творчества, на мой взгляд, был огромен!


Дополнением к ответам на вопросы должно было стать ранжирование: после дедлайна студенты должны были мне на почту скидывать фамилии отвечавших ранжированные в зависимости от заслуженных оценок. Также при этом приветствовались комментарии к ранжированию. После всего этого я окончательно выставлял баллы за лекцию. По итогам этих баллов и еще ряда дополнительных плюшек, в том числе растущих из практической части курса, выставлялись оценки за семестр. Несогласные и бездельники могли пытаться повысить оценку на суровом экзамене (пользоваться можно абсолютно всем, но я жестко спрашиваю на понимание).


Общий посыл теоретической части был примерно таким: я стараюсь дать безумно много материала, надеясь что все студенты найдут в нем много нового и полезного. При этом я не требую от них вникать во все, они могут либо выбрать интересные/полезные для себя моменты и глубоко углубиться в них, либо делать понемногу все. Экзамен я воспринимаю скорее как штраф для тех, кто плохо работал в семестре, чем как норму.


Практическая часть состояла из


  • трех мини-лабораторных, в которых студентам надо было запускать готовый код, активно использующий разные библиотеки и подбирать данные, на которых он хорошо или плохо работает,
  • курсовой работы, в которой студентам требовалось самостоятельно решать задачу с семантическим разрывом. Исходную задачу они могли взять либо из предложенных, либо выбрать сами и согласовать со мной. Дальше они должны были придумать решение, закодировать его, увидеть, что оно работает с первого раза работает плохо и затем пытаться его улучшать, руководствуясь своими и моими советами. Идеалом было бы достижение действительно хорошего качества, убеждающего студентов с том, что и в этой области терпение и труд в правильном направлении — все перетрут, но, естественно, на это можно надеяться не всегда.

Все это необходимо было сделать на зачет. Качество работы и объем затраченных усилий могли существенно варьироваться. За счет больших усилий можно было получить больше дополнительных баллов дополнение к лекционным.


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


Ещё у меня был инсайд в виде сестры, который училась в одной из двух групп, у которых я читал лекции. Сестра иногда могла пресечь мои бредовые идеи рассказами о её видении реальной ситуации в группе и загрузке по другим предметам. В сочетании с удачной темой курса, судьба действительно благоприятствовала проведению экспериментов как никогда!


image

Размышления о проблемах, которые хочется решить


В этом разделе я пытаюсь рассказать про проблемы, размышления над которыми привели меня к описанной структуре курса. Эти проблемы преимущественно связаны с двумя фактами:


  • Есть творческие и активные студенты, которые в состоянии самостоятельно организовать свое обучение в действительно нужном им направлении. Подгоняя всех под средний уровень, существующая система образования в ВУЗах часто создаёт для таких студентов тяжелые, нервные и бессмысленные условия.
  • Многие преподаватели, к сожалению, не заинтересованы в качестве своей работы. Часто такая незаинтересованность является следствием разочарования в студентах. Но и плохая работа студентов не может не являться следствием плохой работы преподавателей. Ситуация может улучшиться, если качественная работа будет приносить пользу и самим преподавателям, а не только студентам.

Конечно, есть еще много проблем, не очень связанных как с первым, так и со вторым. Например, что делать с теми студентами, которые не в состоянии организовать себя самостоятельно? Или теми, которые вроде стараются, но все равно ничего не могут сделать?


Проблемы, связанные с двумя описанными фактами, мной наиболее выстраданы, и я много думал над их решением. Как мне кажется, существует одновременно решающая их “серебряная пуля”: если умные студенты находятся в комфортных условиях, то они могут приносить очень большую пользу преподавателям.


Мотивация преподавателя


Начнём с мотивации преподавателя. Естественно, она необходима для хорошего курса. Итак, от ведения курса преподаватель может получать:


  • Удовольствие.
  • Деньги. У нас — зачастую символические. Тем более для тех, кто хорошо преподает в IT, эти деньги совсем смешные. Как правило, эти люди имеют или могут иметь в разы больший заработок на другой работе. И они точно не могут преподавать хорошо только ради зарплаты.
  • Стимул существенно лучше погрузиться в материал. Меня очень волновала популярность моих лекций. И я, по крайней мере пока, очень боялся осуждающих взглядов студентов и их отрицательного мнения: “вот ещё одному заняться нечем, кроме как заставлять нас тратить время на какую-то чепуху, с которой он даже сам не смог или не счел нужным разобраться”.
  • Результаты студенческого погружения в материал. Можно создать атмосферу, которая будет стимулировать разумные вопросы студентов на лекциях. Такие вопросы могут сильно помогать преподавателю: указывать на какие-то ошибки и недоработки, побуждать взглянуть на вещи с другой стороны, а, может, вообще заставить разобраться в чем-то новом.
  • Можно стимулировать деятельность студентов, выходящую за рамки читаемого на лекциях материала. Тогда они могут собирать много новой информации и давать результаты в уже хоть как-то переработанном виде. Да, это все равно потом тяжело понимать и проверять. Но именно в ходе таких проверок расширяется кругозор. И есть еще один бонус: если что-то непонятно, иногда можно спросить студента вместо того, чтобы разбираться самому. Такой вопрос также будет проверкой, насколько хорошо студент разобрался.
  • Тренинг общения с людьми. Тренировка оценивания людей, понимания, чего от них можно ждать, в том числе в зависимости от собственных поступков. Можно пытаться заранее оценить, какой студент справится с задачей хорошо и вовремя, какой плохо, какой будет делать то, что нужно, но очень долго. Тренировать разные подходы менеджмента (напоминаний и т.п.). Понимать, насколько легко, и как именно студенты (а наверное и не только они) могут тобой манипулировать. Пространство для экспериментов огромно. Результаты экспериментов можно видеть относительно быстро.
  • Практику грамотного изложения мыслей, лекционных выступлений и прочих ораторских навыков. Тренировку понимания плохо сформулированных студентами ответов и вопросов (иногда все это приходится делать на лету — можно потренировать собственную реакцию).
  • Результаты проверки несложных идей на практике руками студентов. Полезны могут быть как результаты проверки собственной идеи, так и идеи, пришедшей в голову студенту. Если найти действительно интересную для студента задачу, велика вероятность того, что студент будет генерировать хорошие идеи и качественно их проверять.
  • 'Бесплатное' использование студентов для решения своих практических задач.

    Распространено мнение, что с этого преподаватели получают наибольшую выгоду. Я в это довольно долго верил, но с каждым следующим экспериментом моя вера в это убывает. Пока у меня был только один студент, от сотрудничества с которым я в итоге получил именно то, что хотел, вовремя, и действительно сэкономил свое время. Этого же студента у меня, наверное, получилось научить лучше, чем других. Правда и тут, потом, в ходе проекта, выяснилось, что решение этой задачи мне нужно в немного другом виде, но это уже однозначно моя вина.
    За всеми остальными студентами, с которыми я сталкивался, без конца приходилось бегать, напоминать им о научной работе, объяснять им одно и тоже по нескольку раз. В конце концов, я получал от них что-то очень странное, и зачастую в тот момент, когда я эту задачу уже решал самостоятельно. Плохо понимаю, насколько такой формат полезен для них (вроде они и тренируются чего-то делать, но как-то очень некачественно). У меня же этот процесс съедает много нервов и времени. Единственный плюс: иногда, в ходе обсуждений, мое внимание обращается на некоторые детали задачи, которых я раньше не замечал.




  • Известность, престиж — при качественном преподавании
  • Видимость результатов своей деятельности и благодарных студентов. Правда, тут часто сложно понять правду, студенты часто бывают благодарны совсем не за то, за что нужно.
  • Знакомство с будущими специалистами в своей области. Лучше их понимать, понимать, чем новое поколение живет. Можно выделять тех, кто понравился, и потом приглашать на работу.

Вот и все, что у меня получилось собрать. Для себя я пытаюсь как можно четче осознать, что именно, помимо удовольствия и престижа, я надеюсь получить от чтения курса. Чем это должно быть, чтобы я был готов весь семестр платить за это своим временем? Без этого понимания тяжело поверить в возможность провести курс хорошо. Cобственную мотивацию необходимо учитывать при продумывании структуры курса.


image

Комфортные условия для продвинутых студентов


Вторая часть требований к структуре курса ориентирована на творческих и активных студентов, неплохо представляющих, что им нужно. Несмотря на то, что многие преподаватели уверенно отрицают даже возможность существования таких студентов, в продвинутых ВУЗах они однозначно существуют. К старшим курсам их количество существенно растет, особенно при качественном обучении. И именно умные студенты являются надеждой нашего отечества и науки.


Почти во всех ВУЗах обучение проходит далеко не так эффективно, как могло бы. На лекциях студентам часто рассказывают что-то может и интересное, но странное: если и нужное, то в каком-то мире, до которого студенты пока не доросли. Часто бывает, что продвинутые студенты про эти вещи уже слышали или читали, поняли, а потом забыли — теперь их заставляют слушать заново. Часто студентам приходится делать странные практические задания, которые преподаватель придумал только потому, что считал, что студентов надо хоть чем-то загрузить. Писать и исправлять отчеты, которые преподаватели зачастую не принимают с первого раза просто потому, что это кажется им несолидным, да и надо же хоть чему-то научить.


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


Но бывает, такая система применяется к продвинутым студентам, у которых и так есть свой план действий, своя работа, свое понимание, куда нужно двигаться. Причем это понимание в целом правильно, а работу можно сделать очень востребованной, если чуть-чуть подкорректировать. И вот на этих студентов сваливаются лекции с абстрактным теоретическим материалом, непродуманные практические задания и отчеты, которые надо без конца писать и исправлять. Даже если это все и нужно, намного эффективнее связывать это с научными интересами студента. Так, чтобы он понимал, чем ему эти сведения помогут на практике.


Иначе, если студент не поймет, усвоена будет лишь небольшая часть. Да и она вскоре забудется, если не будет вплотную использоваться в других курсах. Останется лишь общее представление. Как и от непрофильных неинтересных школьных предметов или у ни в чем не заинтересованных студентов. Еще, может, останется понимание, куда бежать, чтобы разобраться.


Но на получение этой информации у студентов уходит довольно много личного времени. Многие продвинутые студенты могли бы потратить его с большой пользой. Такие люди готовы впитывать знания, которые им нужны почти на лету и с поразительной эффективностью, особенно на старших курсах.


Да, может быть, Ваш курс — это именно то, чего продвинутому студенту не хватает. И он, бедняга, не понимает. Но абстрактные теоретические лекции ему вряд ли помогут. Если же понять суть какой-то интересной ему работы и в нужном месте посоветовать применить хотя бы небольшой фрагмент знаний, которые Вы даете, — студент наверняка поймет и оценит. Особенно, если Ваше предложение по улучшению поможет добиться качественно лучшего результата.


На деле все, конечно, несколько сложнее. Далеко не все полезные знания могут быть применены в области, которая студенту интересна. Тогда, особенно если дело происходит на старших курсах, хорошо бы попытаться понять, что для студента полезнее: заниматься тем, чем Вы считаете нужным, или тем, что он сам считает нужным для себя. И действовать в соответствии с этим.


В этом курсе у меня такой проблемы почти не было: курс по решению задач с семантическим разрывом мне кажется применимым везде и полезным всем. По сути, это курс по проектированию алгоритмов и моделей в сложных ситуациях. Считаю, что всем полезно понимать, что это существует, да и как работает хотя бы на верхнем уровне. Также курс хорошо тренирует навыки моделирования и разумный подход к решению очень многих задач.


Значительно больше я боялся рассказывать исключительно то, что многие студенты и так знают. Не хотел заставлять их решать задания, которые ничему не научат. Хотел, чтобы продвинутые студенты не были вынуждены делать задания для галочки, только чтобы получить зачет.


Для этого нужно понимать хороших студентов, понимать, что они знают и к чему стремятся. Опрашивать их, узнавать мнения, смотреть на результаты работ, что-то понимать по ним. Сделать так, чтобы студенты не боялись меня. Не боялись неправильно ответить на вопрос. Не боялись критиковать мою линию.


Но надо быть не только не страшным, но и требовательным. Даже продвинутым студентам разумная требовательность помогает, их строит. Выделенное на выполнение задания время помогает понять, какой путь выбрать, насколько глубоко зарываться, когда просить помощи. Требования к результату помогают понять, на чем сконцентрироваться. И все это организует, помогает расставить приоритеты между уймой свалившихся дел.


Быть не страшным и требовательным для преподавателя далеко не просто. Особенно, если студентов много. Лентяям важнее требовательность. С ними замучаешься быть справедливым в каждом конкретном случае. Для продвинутых студентов — наоборот. Они существенно больше боятся самодурства преподавателей, чем остальные. Потому что у них больше поставлено на карту, больше зависит от зачета и вылета. Первое же неразумное требование повергает в сомнение: “разумен ли преподаватель? Адекватно ли отреагирует на мою критику?”. Каждое следующее это сомнение усиливает, преподаватель в глазах студента превращается в сумасброда, которому надо угодить, затратив как можно меньше времени.


Кажется, решить проблему может только разумная жесткая система отчетности. Заранее продуманная, которая не будет меняться в семестре. Соблюдение этой системы должно стать важнее мнения преподавателя, как бы странно это не звучало. Этим диктуется высокий уровень требований к разумности исходной системы. Понятно, что всего предусмотреть невозможно, да и не хочется тратить время. Поэтому можно явно указать границы, при выходе за которые преподаватель действует по своему усмотрению. Например, сданная после дедлайна лаба будет проверяться неизвестно когда, а после двух несданных вовремя лаб последствия могут быть непредсказуемыми. Дальше, в зависимости от причин, приведших к этому, можно либо помиловать, либо наказать. Но, если сделанное удовлетворяет требованиям, преподаватель должен сделать, что обещал.


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


Еще важно, чтобы системе отчетности верили и спокойно себя с ней чувствовали. Чтобы студент мог поставить себе задачу сделать все в начале семестра, получить оценку и спокойно себя чувствовать. Не бояться, что преподаватель в середине семестра подумает: “что-то у него все уж слишком хорошо. Наверно, можно дать более сложные задания и сделать оценку зависящей и от них“.


Также, как следует из прошлого раздела, система отчетности должна учитывать пожелания преподавателя. И оказалось, что многие требования уже учтены: они совпали с требованиями лояльности к разумным студентам и к качественной работе. Если продвинутые студенты могут свободно задавать вопросы — они спросят в том числе то, что преподаватель не знает. Если можно выходить за рамки курса — они выйдут и найдут новую информацию. Если они понимают, что они делают и зачем — они сделают это качественно. А сведения о результатах таких экспериментов, естественно, расширяют кругозор преподавателя. Пусть не сразу, но рано или поздно найдется что-то новое, полезное и для него.


Довольный умный студент — довольный преподаватель!


image

Проблемы оценивания


Система отчетности не может мотивировать студентов без разумного оценивания их деятельности. Как оценить по результатам семестра, какой студент заслуживает большую оценку, а какой меньшую?


Наиболее часто применяемый критерий у нас — это оценка за экзамен. Преподаватель пытается в ходе некоторого общения или по написанному понять, насколько хорошо студент разбирается в теме именно на момент сдачи экзамена. Это само по себе сложно. Часто почти все понимающие, но робкие и неумеющие говорить, студенты получают более низкие оценки, чем студенты не знающие предмет, но изворотливые и наглые. Письменный экзамен позволяет понизить степень наглости, которую студент может использовать. Но теряется интерактивность: невозможно понять, понимает ли студент то, чего он не дописал (да и то, что написал). Еще одна проблема — списывание. Я знаком с некоторыми мастерами педагогики, у которых оценки обратно коррелировали знаниям студентов: задания охватывали безумный объем материала и даже тот, кто хорошо готовился не мог этого сдать на нормальную оценку. Но списывающие получали 5 и преподаватель на их основе уверенно делал вывод, что справиться можно — если подготовиться.


Идеи решения данных проблем существуют. Но, даже если эти проблемы и удастся решить, все равно не появится возможности оценить остаточные знания студента.


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


На этом проблемы не кончаются: все студенты разные, бывает, что одному что-то очевидно, а другому над этим надо долго думать. Может быть, справедливо оценивать не только их итоговые знания, но и объемы затраченных усилий? Как их оценивать? Что лучше: переоценить студента или недооценить? Целесообразно ли при оценке студентов сравнивать их уровень с уровнем группы / потока? С одной стороны кажется да: если со всем потоком проблема — значит преподаватель плохо поработал. С другой стороны понижение планки будет способствовать падению уровня студентов.


Есть системы, в которых студенты изначально ставятся в условия зависимости от других студентов: например, как я понял, в курсе CSC на схожую тематику баллы всех студентов кластеризуются и студент получает оценку в соответствии с тем, в каком кластере его балл оказался. Такие подходы повышают соревновательный интерес, но создают неопределенность, которая может лишний раз нервировать студентов, а также могут препятствовать командной работе.


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


Итого, я старался сделать курс максимально комфортным и полезным прежде всего для старательных студентов. От них же я ждал вопросов и посылов, которые толкали бы и мои познания дальше. Но проблема, как не забыть и об остальных, конечно тоже была актуальна. Здесь ситуация очень неблагоприятная: я знал, что в результате ряда причин, к 4-му курсу многие группы приходят в уже очень разваленном состоянии: большая часть студентов еще закрывают предыдущий семестр; есть те, кто уже не может заставить себя практически ничего делать по учебе вовремя и кому годами это уже сходило с рук. Своевременный feedback же безумно важен для преподавателя: можно вовремя перестроиться.


image

Подробная схема организации курса


Возможные паттерны отчётности и поведения преподавателя, решающие перечисленные выше проблемы, я стал активно продумывать еще когда учился на 5-ом курсе. Некоторые из них я уже пытался тестировать, но было очень много поводов, по которым получить релевантные оценки не получалось. С учетом всего этого я собрал курс и рассказываю, что именно получилось.


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


В том числе в связи с целью совершенствования знаний хотелось бы, чтоб студенты не боялись меня, могли свободно задавать вопросы и открыто выражать недовольство происходящим — все это было бы хорошими стимулами для меня. Также хотелось получать знания от них — хотелось стимулировать их к коллективному расширению получаемой информации и не ограничивать просторы их деятельности. Стараться избегать бездумных повторов в их деятельности.


Таким образом появилось соображение, что студенты должны отвечать на разнообразные вопросы по курсу (в том числе творческие и те, на которые я не знаю ответов), видеть ответы друг друга и дополнять их. Но не дублировать — таким образом, мне не надо разбираться, кто списал, а кто нет, а для студентов возникает лишний повод расширить познания, выйти за рамки уже рассказанного на лекции и написанного одногруппниками. Также возникает необходимость понять, что написали опередившие их. Еще это может помогать стимулировать ранние ответы: исходно выбор возможных вопросов чуть больше.


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


Вопросы в основном были:
  • На повторение рассказанного на лекции. Иногда ответ на такой вопрос можно было найти напрямую в презентации лекции, передаваемой студентам после её прочтения.
  • На придумывание практических примеров использования рассказанного.
  • На выявление затронутых на лекции проблем в рассказанных алгоритмах. А также на продумывание алгоритмов, решающих обозначенные на лекции проблемы. Подразумевалось, что студенты могут как тащить алгоритмы из других источников, так и придумывать свои.
  • На оценки эффективности рассказанных алгоритмов — в том числе, для лучшего понимания самих алгоритмов.
  • На сравнение алгоритмов, решающих схожие задачи.
  • На математические доказательства некоторых использованных или связанных фактов (например, теоремы о свертке, теоремы Котельникова).
    Нужно сказать, что на лекциях я формальные доказательства почти не рассказывал, больше использовал доказательства “на пальцах” с большим количеством приближений и упрощений. Во-первых, потому что я сам формальные доказательства в практической жизни не особо использую и, как следствие, в них не очень хорошо разбираюсь; во-вторых, считаю, что на 4-ом курсе основной упор уже надо делать на практическое понимание, а не на теорию, без которой в целом можно жить.
  • Еще причина: просмотренные мной курсы лекций по данной тематике, обильно снабженные теоретико-математическими определениями и доказательствами мне казались либо очень сложными для понимания всего сразу, либо затрагивающими слишком маленький объем информации — погружение в них мне сейчас кажется закапыванием в то, что почти не будет использоваться.
  • На личные впечатления от курса и идеи по его улучшению — после последней лекции.

Ещё можно было разумным образом свести ответы студентов и мои замечания в единый удобочитаемый документ — это также оценивалось баллами. А сам документ впоследствии был бы полезен как студентам, так и мне.


Основным смущавшим меня вопросом было: хорошо, всем действительно понравится и они начнут действительно много и хорошо писать. Но ведь дальше это все кто-то должен проверять — хватит ли у меня на это времени? Помимо чтения этих лекций, у меня была основная работа, аспирантура + научная работа, которую я, правда, в этот семестр в итоге почти забросил. Казалось, что эту проблему можно пытаться решать схемой, позволяющей перекладывать хоть часть проверки с преподавателя на студентов. Помимо облегчения работы преподавателя, это также бесспорно полезно для студентов: через поиск ошибок и видение другого человека нередко приходит существенно лучшее понимание. Некоторых студентов такая “аля преподавательская” деятельность дополнительно заинтересовывает.


В текущем случае я остановился на ранжировании студентами результатов:


есть гипотеза, что студентам проще сравнить две работы, чем выставить конкретные оценки.

(из исследований онлайн-образования, например Waters, A.E., Tinapple, D., and Baraniuk, R.G.: "BayesRank: A Bayesian Approach to Ranked Peer Grading", 2015)


Мне же и ранжирование могло бы сильно помочь. Соответственно, после дедлайна на ответы, студенты должны были мне посылать ранжированные списки своих коллег, из комментарии в этих списках приветствовались. В принципе, на ранжировании я не настаивал, а лишь его рекомендовал, кто что хотел — тот мог это и посылать. По итогам курса оказалось, что после полного ранжирования самой распространенной формой ответа стал топ k написавших самые полезные ответы.
image

Смысловая организация курса

Следующей важной частью являлось смысловое наполнение курса. План теоретической части курса получился такой:


  1. Нулевая лекция — введение, о чем курс, какие акценты я собираюсь делать + отчётность (её правила гигантские и на их рассказ я отвел чуть ли не пол лекции)
  2. 1-3 лекция о том, как в общем случае решали задачи обработки изображений до появления машинного обучения. Свёртки для поиска перепадов интенсивности и сглаживаний, canny, морфологическая обработка изображений, просмотр изображения в разных пространствах (преобразование Фурье / вейвлеты), ransac, преобразования Хафа / Родена, детекторы особых точек, блобов, дескрипторы, построение распознающего алгоритма.
  3. 2-3 лекции (сколько будет нужно) о идеях машинного обучения, основные принципы, как оно помогает решить проблемы придуманных алгоритмов. Автоматический перебор значений параметров, условий, их последовательностей, что можно делать с данными и чего нужно бояться, какие модели лучше брать за основу, понижение размерности, аппроксимирующие данные сети, кластеризация. Первую часть этого планировал рассказать довольно быстро (она встречается и в других курсах), про кластеризации подробнее (почему их опасно использовать, какой алгоритм выбрать и о чем нужно не забыть).
  4. Лекции, на которых разбираются примеры реальных задач (как минимум, распознавание лиц и обработка видеопотока, а так — смотря на сколько хватит времени, может у студентов будут идеи или желание рассказать что-то свое). Предполагался полусеменарный формат, в котором сначала мы пытаемся поставить задачу, потом довести студенческие идеи до решающих её, потом перейти к реально используемым и ещё неугаданным ими методам. Например, в задаче идентификации лица по изображению используются идеи PCA и LDA (метрики Фишера), до чего додуматься, по крайней мере на лекции, сложно.

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


  1. установить python, pycharm и различные библиотеки. Скрипты для запуска самые простые: загрузка картинок, какие-то простейшие фильтрации по цветам и местоположению пикселей.
  2. набор скриптов иллюстрировал часть рассказанного на лекциях 1-3, студентам надо было подобрать картинки, на которых скрипты бы хорошо или плохо работали, объяснить почему. Правда, на скрипты к этой лабораторной меня не хватило и они получились довольно куцыми.
  3. на машинное обучение: нужно было выбрать одну из двух библиотек: catboost или tensorflow и посмотреть, что они дают на простеньких задачах (задачи и датасеты были взяты из примеров библиотек почти без изменений, у меня также не хватило времени). Сначала я хотел дать обе библиотеки вместе, но потом показалось, что на это может уйти слишком много времени.
    Все три лабы я старался подобрать так, чтобы их можно было сделать часа за 3 — за один вечер. Проверяемым результатом лаб были подобранные либо наборы картинок и результатов работы на них, либо значения параметров библиотечных функций в скрипте. Все лабы были обязательны, но это можно было делать либо качественно, либо некачественно, за качественное выполнение и спецзадания к лабам можно было получить доп баллы, повышающие оценку за семестр.

Сложную задачи студенты могли выбрать как сами: например, взять что-то связанное с бакалаврской или работой, так и из предложенных. Было важно, чтобы эта задача была задачей с семантическим разрывом. Было важно, чтобы решение задачи не требовало программирования в больших объёмах. Сложность была не очень важна — я считал, что плохой результат также будет результатом. Было выделено 5 этапов работы над задачей, итоги каждого этапа надо было согласовывать со мной.


  1. Выбор задачи
  2. Подбор данных: важный этап, в ходе которого, как правило, заодно формируется куда более реалистичное представление о задаче, рождаются гипотезы решающих её алгоритмов.
  3. Составление первого приближения: алгоритма, который бы хоть как-то решал поставленную задачу, от которого можно было бы оттолкнуться и дальше улучшать.
  4. Итерационное улучшение решения задачи.
  5. Неформальный отчёт, описывающий итоговый алгоритм и модификации алгоритма исходного алгоритма, предпринимавшиеся для его получения.

Сама задача, как и мини-лабы, была обязательной; за её качественное выполнение можно было получить много доп баллов.


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


image

Оценивание


Выше я много писал про баллы, настало время объяснить, что они давали.


Существовало несколько направлений деятельности, за которые баллы можно было получать. В конце баллы за все направления перемножались и возводились в степень “1/<число прочитанных в семестре лекций>”. Направления:


  • Каждая лекция — отдельное направление
  • Мини-лабораторные
  • Большая (сложная) лабораторная
  • Организационные моменты

    сюда идут баллы за советы и работу, помогающую организовать курс, например за объективное замечание о том, что чего-то не хватает, что-то делается плохо или за попытку переписать описание отчетности так, чтобы оно стало более читаемым. Количество баллов варьировалось на мое усмотрение в зависимости от полезности, актуальности, внятности формулировки и тп.




  • Все другое, связанное с темой курса

    например, если студент хочет затронуть аспект обработки сигналов, про который я ничего не рассказывал — баллы пойдут сюда. Затронуть что-то можно, например, подготовив фрагмент лекции по этой теме; в зависимости от качества сделанного и ситуации со временем я могу разрешить или не разрешить проводить такое на лекции, но в любом случае поставлю хоть какое-то количество баллов и напишу часть возникших замечаний — у студента будет возможность следующей итерации, углубляющей его познания и приносящей новые баллы.


    Исходно за каждое направление студент имел 1 балл (чтобы при перемножении точно не получился 0). Еще 1 балл можно было получить за приход на лекцию (в направление, соответствующее этой лекции), это было не так просто — лекции были в 8 утра. Систематизировать объемы баллов, получаемых за все остальное я так и не смог, поэтому ставил на свое усмотрение, однозначно часто ошибаясь. Была только общая картина, согласно которой прекрасно разобравшийся в лекции студент мог получить баллов 25, хорошо разобравшийся — баллов 10, терпимо разобравшийся — баллов 5, меньше ставилось тому, кто хоть чего-то сделал. Естественно, при оценивании я мог опираться только на то, что студент написал, хотя чаще ему могло быть лень или еще чего-то, в результате чего его реальные знания до меня не доходили.



Важно написать про дедлайны. Лекции были по вторникам в 8 утра. Сначала на ответы по лекциям был установлен дедлайн ближайшее воскресенье, на ранжирование — ближайший за воскресеньем четверг. Потом со стороны студентов было явно высказано то, к чему я пришел за пару первых лекций сам: мне необходимо писать feedback по ответам, а после него желательно давать студентам возможность исправиться. Вместе с этим стали раздаваться голоса о том, что 5-ти дней на ответы очень мало. В итоге я, вопреки высказывавшимся опасениям других студентов добавил неделю на ответы на вопросы, а ответы, пришедшие до первого воскресенья стал комментировать. Решение было однозначно неправильным: отвечать больше не стали, а за увеличившийся срок проходили новые лекции и даже я путался, что и к чему относится. Но менять ничего уже не стал: решил, что изменений и так много.


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


Дается четыре сложных вопроса по разным темам на понимание (темы буду выбирать на свое усмотрение). В вопросы может попасть все, что было сказано на лекциях или попадало в группу в вк. Полность зачитанный ответ на вопрос +1 балл к набранным в семестре (если человек понимает только часть вопроса, то ставится 0 баллов за вопрос, какая бы часть не была). Пользоваться можно будет всем, чем угодно, но вопросы будут реально сложные -на глубокое понимание.

Запрещение использования материалов на экзамене очень часто приводит к тому, что студенты вместо понимания зубрят или списывают.


Динамику набора баллов в ходе семестра я видел примерно так: продвинутые студенты наберут достаточно для 5 автоматом баллов примерно за первые 6-7 лекций. То есть, где-то к концу марта, как раз тогда, когда я расскажу основную информацию и перейду к примерам постановки и решения реальных задач. С практикой, я надеялся, что старательные разберутся тоже к апрелю, максимум к середине, если её приоритет будет понижаться требованиями других курсов. Оценивал это по себе: считаю, что когда я был студентом 4-го курса, я бы сдал такой курс примерно в указанные сроки, если б не случилось ничего неожиданного. От менее продвинутых студентов я ждал, что вопросы хотя бы как возможность получения автомата многих из них заинтересуют, они будут читать ответы своих коллег и фрагменты презентаций лекций. Темы в целом интересные, возможно и таких студентов удастся зацепить, и они будут стараться глубже разобраться.


Хочется сделать замечание про выбранное мультипликативное сочетание баллов между направлениями, а не аддитивное (корень из произведения, а не сумма, деленная на какое-то число). Это соответствует необходимости разбираться с большим числом направлений примерно на одном уровне; даже очень-очень глубокие познания в паре-тройке направлений не обеспечат студенту хорошей оценки за курс при отсутствии его познаний в остальных направлениях. Например, мультипликативность защищает от возможности получить 5, завалив меня предложениями по улучшению организации курса: каждое следующее предложение, принося столько же баллов, сколько предыдущее, вносило бы все меньший вклад в итоговую оценку.


Один из сразу заметных недостатков данной системы — её сложность. Но, поскольку сам курс довольно сложный и решение задач с семантическим разрывом требует конструирования и понимания сложных алгоритмов, я считаю, что студенты должны уметь в таком легко разбираться. Более того, эта система отчётности чем-то сама по себе похожа на решение задачи с семантическим разрывом: в модели курса возникали какие-то проблемы, из них выбирались самые важные, для их решения искались приближения.


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


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


image

Результаты


Результаты оказались сильно хуже моих ожиданий, хотя ряд надежд оправдался. Помню, после первого списка вопросов по вводной лекции, я в опасении ждал: появятся ли хоть какие-то ответы и будут ли они осмыслены. И вот, наконец стали появляться первые ответы, в комментариях даже завязалась какая-то дискуссия, правда, скорее на философскую тему. Дальше, в ходе семестра, студенты продолжили отвечать; правда, как правило, была пара-тройка доминирующих студентов, привносивших порядка 70% от всего полезного, что было написано.


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


Также меня все больше разочаровывало качество ответов: часто казалось, что многое откуда-то содрано без понимания, да и объем новых идей был далеко не так велик, как я рассчитывал. Даже от студентов было замечание, что текущая система стимулирует хоть какие-то ответы; от степени того, насколько глубоко студент разобрался, баллы зависят не так сильно. Но точно были те, кто разбирался.


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


Не очень оправдались и надежды на ранжирование: комментариев в ранжированных списках было совсем мало, к концу они вообще исчезли. Часто казалось, что оценивают скорее визуально, чем внимательно вчитываясь. Тем не менее, помню, как минимум пару раз, когда ранжирование реально помогло и я глядя на него скорректировал свои оценки. Но о том, чтобы оно оценивало за меня не было и речи. На оценивание уходило довольно много времени, но я мог делать это по дороге в метро и в итоге скорее хватило меня на своевременные ответы, чем студентов.


Отдельное разочарование, правда ожидаемое и вытекающее из существующей ситуации и того, что я эту ситуацию почти не учел, было с практикой.

Большую лабораторную никто не сдал даже в апреле. И я толком не понимал, сложная ли она или все никак не могут взяться и не знал, надо ли что-то менять и как, что в итоге требовать. Придумал задачу на 4 максимум, но и она не изменила ситуации. В лучшем случае к концу апреля студенты выбрали себе задачи и поприсылали данных. Некоторые выбранные задачи оказывались откровенно нерешаемыми на имеющемся у студентов уровне знаний. Например, студент хотел распознавать раковые опухоли, но при этом сам не понимал, чем именно они должны отличаться — я тут, естественно, никак не мог помочь.


С мини-лабораторными дело обстояло существенно лучше, первые две многие сдали в срок или не сильно вылезая за него; третью тоже почти все сдали, но в самом конце. Некоторые делали их качественно и лучше, чем я ожидал. Но основной практический упор я-то хотел сделать на большой лабораторной.


Еще одной своей ошибкой в области организации практики я считаю исходное планирование основного упора работ по сложной задаче на вторую половину семестра, к моменту, когда я уже расскажу на лекциях большую часть идей построения алгоритмов.

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


Дала ли в итоге такая система больше, чем, например, классическая система с экзаменом? Вопрос сложный, я надеюсь, что всё-таки да, материала было дано довольно много, при подготовке к экзамену его часть обязательно бы выпала из рассмотрения даже у хороших студентов. Хотя дополнений к курсу в ответах было далеко не так много, как я надеялся.


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

Связана она с тем, что бывает, случается чудо и преподавателю удается научить студентов чему-то глобально новому. Например, на моих глазах студент начинает существенно разумнее подходить к решению задачи с семантическим разрывом. Шаги он предпринимает в целом правильные, получает приемлемый результат, но объяснять не умеет. И тут я, преподаватель, пытаюсь разобраться в том, что он сделал. Объясняет он непонятно — я задаю массу странных вопросов, делаю странные предположения, наконец, продираюсь через терминологию студента и понимаю. Предлагаю советы по улучшению, иногда плохие, как замечает уже разбирающийся в задаче студент. И тут получаю реакцию схожую с обычной: “Зачем это еще нужно делать?” и “не нужны мне ваши советы” до “Я и сам все прекрасно умел и без вас”.


Особенно сильно это может проявляться, когда начинается примерно так: студент исходно приходит со своим самоуверенным и непродуманным предложением по решению задачи вида “тут надо просто взять нейронную сеть и обучить”. Ты говоришь, что просто так сделать нельзя, надо еще, как минимум, много подумать, да и вообще эту задачу лучше не нейронными сетями решать. Студент, бывает, продумывает, мучается, но, молодец, действительно разбирается и приносит хорошо продуманное решение, основанное все-таки на нейронных сетях и всем своим видом говорит “я так бы и без ваших советов сначала сделал”. Прошу прощения у тех студентов, которые так не делают, вы существуете и я с некоторыми из вас знаком, спасибо вам. Тем не менее проявляющие такую неблагодарность студенты существуют, да я и сам, к сожалению, тоже так себя неоднократно вел.


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


Замечал я эту особенность и ранее, но после этого семестра я как-то больше её прочувствовал, пережил. Возможно, потому, что действительно научил некоторых студентов. Такая неблагодарность, видимо, проистекает от внутренней гордости таких студентов, их комплексов, желанию показать себя опустившемуся почти до их уровня преподавателю. Помимо усложнения организации учебного процесса, такое поведение и показная неблагодарность студентов часто выводит из себя: страшно хочется как-нибудь вразумительно показать студенту, что он перешел черту. При этом умом понимаешь, что по сути студент разобрался, оценка должна быть положительной. Оказываешься почти в безвыходной ситуации, остается только посмотреть на это дело с юмором и списать все на глупость студента, но это сложно. У меня получалось плохо и я обижался.


Таким образом, неблагодарность студентов способна очень часто отравить настроение именно чему-то научившему их преподавателю. Схожих отравляющих настроение вещей может быть очень много. Они особенно больны, если все, что преподаватель надеялся получить от обучения этих студентов — удовольствие. Меня такая ситуация лишний раз укрепила в уверенности, что хорошо читать целый курс на одном удовольствии нельзя, нужно рассчитывать получить что-то еще, хотя бы мечту.


В чем я точно уверен — курс очень удался в смысле продвижения и систематизации моих знаний. Конечно, большинство из того, что я рассказывал, я в целом и так представлял, но многие вещи прочувствовал глубже. Были алгоритмы, про существование которых я знал и даже использовал, но не до конца понимал, как они работают, не знал многих альтернатив или знал только названия. При подготовке курса я был вынужден в этом разобраться. Также был ряд новых вещей, на которые я обратил внимание под явным влиянием студентов, например, на автоэнкодеры. Я получил много, может быть, не очень часто используемых, но однозначно необходимых для хорошей ориентации в предметной области знаний. Думаю, что случившееся совершенствование знаний уже даже повлияло на некоторые решения, которые я принимал в работе при продумывании алгоритмов, надеюсь, что в лучшую сторону. Удовольствие, конечно, чтение курса мне тоже приносило, но вместе с тем приносило и огорчения с разочарованиями.


image

Продолжение


Может статься, что мне выпадет читать данный курс ещё раз, например, в следующем году. Далеко не для всех проблем у меня есть идеи по решению, но для некоторых есть, и я постараюсь их описать.


  1. Основную проблему: отсутствие своевременных продвижений по сложной задаче я думаю решать с помощью обсуждения аналогичных фрагментов других задач на семинарах и четких домашних заданий с небольшими дедлайнами. Каждое из домашних заданий будет требовать выполнения небольшого фрагмента большой лабораторной, как, например, составление постановки задачи, первый подбор данных, продумывание критерия качества,… За каждый выполненный вовремя фрагмент будут начисляться баллы. Если студент отстает, ему придётся догонять, чтоб начать их получать.
  2. Также я планирую чётче и чаще проговаривать основную мысль курса в различных контекстах. Хотя и не уверен, что это поможет: часто, когда говоришь одно и тоже, оно начинает наоборот вызывать отторжение. Основная мысль, если что, была, в том, что навык решения задачи это не бездумный перебор различных моделей ML в различных конфигурациях, а ручное построение индивидуальной модели для задачи с использованием подходящих к задаче кусочков существующих моделей с разумными модификациями. Почему-то очень многие люди этого либо не понимают, либо старательно делают такой вид. Может, некоторые эту мысль вообще могут осознать только через практику, через набитые шишки.
  3. Еще я планирую перестать ставить 1 балл всем, кто пришёл на лекцию; а ставить, по умолчанию, существенно меньше, например 0,1. Для того, чтобы получить больше баллов, надо будет в день лекции прислать или показать мне записи основных тезисов лекции или их фото. Написано может быть почти все, что угодно, формат и объём меня не интересуют. Но за хорошие конспекты я готов ставить существенно больше 1 балла.

    Добавить это хочется, чтобы дополнительно стимулировать студентов слушать лекцию, а не спать и заниматься своими делами. Ещё многие существенно лучше запоминают то, что запишут. Интеллектуальная нагрузка для создания таких заметок не очень нужна. Также кажется, что это не будет слишком сильно нагружать студентов, которые не ведут конспект, те, которые его ведут — смогут просто его предоставлять.
    Правда, критиками этой идеи выступают все опрошенные студенты. Они, в частности, указывают на то, что не так трудно списать эти заметки у соседа в конце лекции или просто записать что-то со слайдов, не особо обращая при этом внимание на лекцию. Вдобавок, необходимость писать некоторых может отвлекать от понимания.
    Так что, возможно, хорошо бы как-нибудь поменять форму. Но в целом такая форма отчётности мне нравится, она применялась, например, на курсе мат статистики в csc: надо в день лаб прислать небольшую доделанную лабу — и, как мне кажется, многих студентов это стимулировало сесть за неё сразу и доделать. Хотя находились конечно и те, которые говорили, что в этот вечер они никак не могут и оказываются в невыгодном положении. Тут, мне кажется, может помочь другая идея: давать каждому студенту возможность сдвинуть дедлайны на несколько дней за семестр.


  4. Была мысль заменить плоскую структуру ответов на вопросы древесной. Чтобы ответы на все вопросы не шли сплошным списком, а были хотя бы двухуровневыми: тогда ответы на один вопрос будут рядом, а не были вперемешку с ответами на другие вопросы. Двухуровневую структуру комментариев к постам поддерживает, например, facebook. Но в него существенно реже заходят и делать его основным средством коммуникации не хочется. Одновременно вести две группы: вконтакте и facebook странно. Буду рад, если кто-нибудь посоветует еще какое-нибудь решение.

Много проблем, которые я пока не знаю, как решать и не знаю, можно ли вообще. Основное, что волнует:


  • слишком простые ответы студентов на мои вопросы
  • плохое оценивание ответов: моя оценка далеко не всегда коррелирует с реальностью
  • ранжирование, которое почти не помогает: до проверки студенческих ответов силами самих студентов пока очень далеко

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


На этом все, кажется, и так получилось слишком перегружено.


image


Хочу поблагодарить:


  • за рецензирование: мою маму, Магу Меликян (одноклассница, сейчас аспирант МГУ), Андрея Серебро (одногруппник, сейчас сотрудник Яндекса)
  • всех студентов, которые в этом участвовали и прошли опрос / написали отзывы
  • да и всех, кто меня когда-либо чему-либо хорошему научил

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (14):

  1. akryukov
    /#18783939

    Спасибо вам за работу, за написание статьи, за стремление к лучшему.


    Субъективное ощущение — статью тяжело читать. С первой попытки осилил только до раздела "мотивация преподавателя". Думаю это из за того, что вы любите писать сложноподчиненные предложения на 4 строки каждое.


    Сколько часов было отведено на дисциплину в учебном плане?
    В тексте я нашел, что лекции были по вторникам в 8 утра в течение 10-11 недель. Вспомните свой студенческий опыт. Раз в неделю с раннего утра обычно ставят второстепенные дисциплины. Они либо нужны "по стандарту", например какое-нибудь обществознание, философия и т.п. либо курс нужен просто для расширения кругозора.
    На лекции в 8 утра на 4 курсе, как правило, ходят вечные отличники ради оценки. Способные ребята уже работают где-нибудь, а лентяи просто спят.


    Какая форма контроля была у дисциплины?
    У вас в тексте как-то противоречиво получается. Сначала вы пишете о курсовой работе, а потом говорите про "зачет". Если по учебному плану у дисциплины нет курсовика, то вам ее никто делать не будет.


    Учитывая ваши слова:


    курс по решению задач с семантическим разрывом мне кажется применимым везде и полезным всем.

    Предполагаю, что вы переоценили важность курса и для студентов выглядели как "очередной преподаватель, который считает что других предметов у студентов нет".


    сюда идут баллы за советы и работу, помогающую организовать курс, например за объективное замечание о том, что чего-то не хватает, что-то делается плохо или за попытку переписать описание отчетности так, чтобы оно стало более читаемым.

    Чтобы понять, чего не хватает, нужно знать что вообще должно быть.
    Чтобы понять, что что-то делается плохо, нужно знать как это делается хорошо (или хотя бы иначе).
    Студенты не знают что должно быть и не видели как это делается хорошо. Они пришли изучать новое.


    Перекладывать нагрузку по проверке ответов на студентов — тоже сомнительная идея. Это у вас есть всякие преподавательские мотивации. У студентов мотив в лучшем случае — получить какие-нибудь знания, а в худшем — получить какую-нибудь проходную оценку наименьшими усилиями. К тому же, студенты вряд ли будут плохо оценивать друг друга чисто по психологическим причинам.


    Если не начислять баллы за "организационную" и "преподавательскую" работу, то систему оценки можно сделать весьма тривиальной. Чем больше лабораторных сделал, тем больше оценка.


    По поводу качества усвоения материала


    Общий посыл теоретической части был примерно таким: я стараюсь дать безумно много материала, надеясь что все студенты найдут в нем много нового и полезного. При этом я не требую от них вникать во все, они могут либо выбрать интересные/полезные для себя моменты и глубоко углубиться в них, либо делать понемногу все

    Естественно, что вы получили вот такой результат:


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

    Студенты просто утонули. Думаю стоит уменьшить объем материала, но при этом сделать упор на качество базового уровня. Вы уверены, что по итогам вашего курса студенты должны знать про нейронные сети?


    Описание практической части напомнило мем про рисование совы. Переход от "запускаем готовый код" до "добиваемся идеального качества" лучше размазать на несколько более простых задач.

    • k12l
      /#18784795

      Полностью согласен с предыдущим комментарием. Целевая аудитория определена не верно. Общее ощущение, что вы готовили аспирантов, как минимум.
      От себя добавлю свой опыт…
      Меня тоже не устраивала существующая система образования. И я тоже свои первые семестры "грузил" студентов почем зря. Подозреваю, что это самая распространенная ошибка начинающих преподавателей. Последний семестр, который я преподавал, прошел под лозунгом "проще, еще проще".
      Во-первых мною была проигнорирована посещаемость студентов, вопреки всем негодованиям завкафа. Это были его проблемы, оставил их решать ему же. Предлагаю Вам самостоятельно подумать зачем нужна высокая посещаемость/активность лично вам. Моя практика говорит, что каждая лекция должна давать шанс каждому человеку (даже каждой бабушке) с улицы понять о чем речь и узнать что-то новое. Сходил студент на одну лекцию в семестре — молодец.
      Второе: сформулировать требования к "пятерке". Четкие и понятные требования в рамках имеющихся у студентов знаний. Например: "хочу программу в которую я внесу 100 значений и увижу их отсортированными по возрастанию".
      В третьих: на зачете/экзамене/защите студент должен выполнить условия "пятерки" лично в моем присутсвии за ограниченное время. В моем случае было 15 минут.
      В четвертых: сформулированы требования к отчетности. "Без курсовой нет допуска к защите" и тому подобное.
      В итоге. Весь семестр "на расслабоне". Перед сессией отличники засуетились. К концу сессии — отличники сдали. Месяц после сессии — сдали все, кроме двух работяг (решили вопрос через зафкафа). Ну и на следующий семестр ненависть всех своих пошлых и будущих студентов. Но я был доволен, как во время семестра (ходили только заинтересованные), так и на сессии (максимум продуктивности меня и студентов).
      А теперь самое вкусное. Это я уже узнал существенно позже, после того как прекратил научную работу. Все студенты со следующего семестра стали отличниками по всем предметам (ректор приходил к ним на занятия, не понимая что происходит). Надо понимать, что описанное происходило в провинции на не самом популярном факультете (со всеми вытекающими).
      Пожалуйста, будьте добры к своим студентам. У них есть чем заняться помимо вашего предмета (я серьезно).

      • vikto9494
        /#18785641

        Спасибо за комментарий.

        Про уровень: считаю, что уровень студентов 4 курса по знаниям должен уже не сильно отличаться от уровня аспирантов (основное отличие в опыте). Да и многие продвинутые студенты настроены узнать «как можно больше как можно раньше» и ждут этого от сильного ВУЗа. У тех, кто этого по каким-то причинам не хочет, была возможность пропустить львинную долю рассказанного.

        • k12l
          /#18785721

          Про уровень: считаю, что уровень студентов 4 курса по знаниям должен уже не сильно отличаться от уровня аспирантов (основное отличие в опыте).

          Да уровень студентов 2 курса не сильно отличается. :) Дело совершенно в другом. В университет люди идут по одним причинам, в аспирантуру совсем по другим. Разная мотивация, разное отношение к жизни. Студенты это всего лишь «высшее неоконченное образование» — люди подневольные, а аспиранты это «специалисты с дипломом» — фактически ваши коллеги.
          Да и многие продвинутые студенты настроены узнать «как можно больше как можно раньше» и ждут этого от сильного ВУЗа.

          Из вашего рассказа я этого не увидел. Из своей практики я этого не увидел. Подозреваю, что это ваше личное заблуждение. Более того, считая себя продвинутым студентом, я предпочел устроится на работу «получать как можно больше» и, к тому же, реальный опыт «как можно раньше». Сегодня я считаю, что это было одним из лучших моих решений в университете.
          У тех, кто этого по каким-то причинам не хочет, была возможность пропустить львинную долю рассказанного.

          К сожалению вы не услышали мой посыл. Видно, что вы заинтересованы в лучшей системе образования. Более того, вы вынесли на общее открытое обсуждение свои методы. А дальше-то что? Я вам дал свой опыт преподавания, у вас есть свой. Разберитесь, почему у меня вышло одно, у вас вышло другое. Используйте мой опыт тоже!
          Анекдот на последок:
          — Мужчина, я вижу вам нравиться танцевать?
          — Да!
          — А почему не научитесь?

    • vikto9494
      /#18785631

      Спасибо за комментарий.

      Сложные предложения подсознательно люблю и читать из-за этого может быть тяжело — это правда. Но все равно хочется чтобы текст был не научной статьей, а чем-то легко читаемым (и это далеко не первая версия). Поэтому буду благодарен, если Вы укажете на самые тяжелопонимаемые места — постараюсь их исправить.

      В учебном плане в неделю 1,5ч — лекция + 1,5ч — лабы. В 8 утра они стояли в том числе потому, что мне было удобнее после них успевать на работу, а в другое удобное мне время студентов пришлось бы лишний раз выдергивать в универ только ради этих пар. И курс действительно важен, так считают и сами студенты (по крайней сознательная часть): в анонимном опросе после окончания курса с утверждением «Я согласен с тем, что этот курс самый полезный в этом семестре» медиана попадает между «скорее согласен» и «не знаю».

      Да, многие студенты утонули, но это были «посредственные студенты». Эффективность обычного курса для них тоже не очень высока. Зато так продвинутым студентам сильно лучше.

      Я не уверен, что студентам на этот необходимо знать, что такое нейронные сети и прочие базовые модели ML: я в их возрасте не знал. Но кажется, что это уж очень простые вещи (я имею в виду лишь схему вычисления, не обучения). И если не удалось сделать так, чтобы они усвоили это — что же они вообще усвоили?

      • akryukov
        /#18786085

        Я согласен с тем, что этот курс (по обработке сигналов) самый полезный в этом семестре

        В опросе это утверждение было сформулировано именно так? Если да, то он мало что показывает. Можно по каждому предмету сказать что он был "самый полезный".
        Другое дело, если бы этот вопрос был сформулирован как "какой из предметов был наиболее полезный?" и обработка сигналов набрала бы наибольшее количество голосов.


        Да, многие студенты утонули, но это были «посредственные студенты». Эффективность обычного курса для них тоже не очень высока. Зато так продвинутым студентам сильно лучше.

        Я считаю, что продвинутым студентам достаточно подкидывать задачи для решения, не мешать и периодически проверять результаты. Основная работа преподавателя на занятиях — донести знания до прилежных посредственностей.


        И если не удалось сделать так, чтобы они усвоили это [нейронные сети] — что же они вообще усвоили?

        Я сам с дисциплиной не знаком, но, судя по википедии, в ЦОС речь идет совсем не о методах ML. Странно требовать от студентов знание одного конкретного метода.

  2. San_tit
    /#18784191

    Поддерживаю ваше стремление к увеличению качества образования.


    Лично по моему опыту (и как студента и как преподавателя) такой подход к лабораторным работам:
    "трех мини-лабораторных, в которых студентам надо было запускать готовый код,"
    Совершенно не эффективен. Из преподавательского опыта (ТАУ, нелинейные системы, профильный курс, лабораторные). 2(2*2 на самом деле) группы с разрывом год. В первый год я "сочинял" новые лабораторные и потому все писалось на паре и готового кода (да и методички) не было. На следующий была методичка и в некоторых случаях готовый код. Так вот в случае, где был готовый код, понимание студентов о происходящем в лабораторной стремилось к нулю.


    Так что куда эффективнее делать более простые лабораторные, но с самостоятельной реализацией. В вашем случае, например, самостоятельная реализация алгоритма БПФ и/или корреляции. А куски курса, где необходим (в силу отсутствия необходимых знаний у студентов) готовый код, стоит пересмотреть. (Это не только вам совет, но и мне, по результатам этого семестра :-))


    Удачи в начинаниях.

    • vikto9494
      /#18785513

      Спасибо за коментарий!

      Согласен с тем, что готовый код — далеко не идеальное решение.

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

      • Когда я разбираюсь с новой библиотекой, это удобнее делать по готовым примерам кода. (аргумент для сильных студентов)
      • Самостоятельно разобраться с таким объемом библиотек (openCV, catboost, tensorflow) — слишком трудоемкая задача для семестра
      • Простые лабораторные с самостоятельной реализацией студентами часто скатываются (как из других мест, так и друг с друга). Понимания в этом случае, зачастую, не больше


      Самостоятельная реализация БПФ / корреляции / подобных базовых алгоритмов, на мой взгляд, должна быть в другом курсе. Здесь задача научиться собирать решение большой задачи из этих кирпичиков.

  3. sergeypid
    /#18784947

    Не очень понятно, почему курс называется «Обработка сигналов», ведь он об обработке изображений. Мне кажется, термин ЦОС — цифровая обработка сигналов — очень давно устоявшийся и относится к обработке одномерных сигналов типа временных рядов.

    • vikto9494
      /#18785499

      Курс шире, чем только про обработку изображений. Схожие методы также подходят для обработки звука, видео, рукописного текста… И все это действительно сигналы (не обязательно одномерные)

      Вообще вопрос именования курса выходит за рамки моей компетенции.

  4. vikto9494
    /#18785453

     

  5. Yaroslav_05
    /#18785467

    Интересно было почитать про учебный процесс с точки зрения преподавателя, спасибо. Я, как студент, считаю не совсем правильным подход с баллами за посещение лекции, особенно на первых парах. Во время учёбы всегда самым тяжёлым было вставать и ехать утром, гораздо проще почитать презентацию и разобраться самому. Вообще идеально когда преподаватель загружает на первой лекции на какой-нибудь гуглдиск все свои задания/учебные материалы и их можно спокойно в любое время сделать, сдать и получить автомат вообще не посещая пары. Это очень экономит время тем, кто хоть что-то понимает и в состоянии сам разобраться в остальном. В качестве способа прикрутить древовидные комментарии к ВК, могу посоветовать клиент Kate mobile, он такое умеет и это действительно очень удобно.

    • vikto9494
      /#18785487

      Спасибо за комментарий.

      Согласен, что делать обязательными для посещения лекции неправильно. Но этого и не было: вожно было и не приходя на лекции узнать их содержание по презентациям и ответить на вопросы. Этот балл далеко не необходим. Но поощрять приходы на лекции над: устный рассказ часто получается более подробным. И многих присутствие на лекциях стимулирует хоть часть полутора часов заниматься предметом.

      Kate mobile вроде только для Android. Есть ли клиенты под windows / unix / mac? (заставлять студентов пользоваться именно Android жестоко)

      • Yaroslav_05
        /#18785591

        К сожалению, я таких клиентов не встречал, только Кейт под Андроид. Может быть кто-нибудь что-то ещё подскажет.