Saturday, 19 July 2014

Как я преподавала С++

Когда-то я уже писала про ТА - Teaching Assistance. Каждый аспирант должен заниматься преподаванием - как правило, помогать профессорам вести семинар. Перед каждым следующим семестром мы заполняем табличку, что мы можем, когда мы можем, и какие три конкретных курса нам предпочтительны. Через пару недель нам выдают результат - кому что приписали. Иногда выбирает профессор курса, в общем случае выбор делается автоматически системой.
Весь этот год я вела один курс - Программирование на С++ для физиков и математиков, бакалавров 1 года. Поток был огромен, где-то 250 студентов. Профессор читал лекции, на практике они сидели за компами (в пяти больших аудиториях), делали задачки. Я и другие ассистенты (не аспиранты, а просто студенты, для них это неплохая возможность подработать) помогаем и отвечаем на вопросы. В первом семестре ассистентов было 11, во втором - 16. Первый семестр - основы программирования, второй - ООП.
Оцениваются студенты по среднесеместровому тесту и по экзамену. Домашних заданий нет, разве что доделать то, что они делали в классе, но это никто не проверяет. О, ещё необходимое (вроде бы) условие сдачи предмета - прохождение соответствующего курса на курсере, который они (преподаватели) впервые сделали в этом году. На французском.
Среднесеместровый тест проводится на компьютерах, в течение 45 минут. Студентам выдаётся одна задача, которую они должны запрограммировать, и затем выдать в виде файла. Всё очень автоматизированно: они регистрируются, и профессор на своём ноуте сначала отслеживает, все ли зарегистрировались, потом - все ли сдали. Проверка, к сожалению не автоматическая - проверяют ассистенты. При проверке задача разбивается на несколько аспектов, каждый оценивается по шкале из 5 (с разным весом): 1 - частично сделано, 2 - сделано, 1 - компилируется, 1 - выполняется, 1 - запрограммировано корректно (2+1+1+1=5).
Экзамен - уже на бумаге. Несколько типов задач: вопросы по теории из курса, ответить, что выполняет данный код со случайными именами переменных и методов, найти ошибки в коде по данному выводу компилятора, и запрограммировать концепт задачи (т.е. не весь код целиком, а только некоторые методы, или даже прототипы методов).
Кстати, условия и тестов, и экзаменов придумывать надо было мне. На французском. И код писать - с французскими именами. Да-да, не комильфо, но что поделать - решает профессор.
На первый тест я придумала задачку про коллекционеров бабочек, покупающих и продающих друг другу экземпляры. На экзамен... уже не помню, что. А хотя не, как раз на экзамен были бабочки (в качестве концепта), а на тест были грузовики, перевозящие грузы. И компьютеры, выполняющие задачи. Это всё структурами. А во втором семестре у нас были инопланетяне, летающие тарелки и множественное наследование.
А ещё во втором семестре был проект... В общем-то, из-за него я и пишу этот пост. Проектом я занималась две недели и под конец я люто ненавидела этих студентов. В течение семестра они по парам должны были запрограммировать коробку с идеальным газом внутри. Текстовое и графическое представление сталкивающихся частиц. Частица, оставляющая след. Для особо продвинутых - куча расширений. Изменение размера коробки. Ещё чего-то.
Мне надо было проверять все проекты. 120 (120!!!) проектов. Всю функциональность. Выполнение и код. Две полные рабочие недели...
Некоторые проекты были очень классные. Со звуком. С титрами как в Звёздных Войнах. А некоторые... Код не компилится, иногда из-за глупых ошибок, которые мне надо бы исправить, чтобы понять, есть ли там что-то работающее. Или старые упражнения не включены в финальный makefile. Мне, ругаясь, надо его дописывать, чтобы понять, всё ли работает - у них было 14 упражнений, начиная с класса вектора и кончая частицей со следом. Некоторые - ооо, единицу им за это, - не писали нормального readme, хотя он тоже был необходим по заданию. И фиг поймёшь, что у них там работает и как.
Эх, хотела написать результаты оценок, да вот нету их уже, убрали с сайта. Помню, что совсем не сдали проект 4 группы. Ещё примерно шести группам я поставила ниже проходного балла. Но в итоге несдавших оказалось меньше - некоторые проекты выполнял один человек, в таком случае и спрос, естественно, был меньше.
Помимо меня, кстати, проекты проверяли студенты-ассистенты. Но каждый проверял только 7-8 штук - счастливые люди. А профессор потом, видимо, брал средний балл между мной и ими, если не было средних разногласий. В начале семестра он мне сказал, что проект - это штука серьёзная, и он хочет быть за него спокоен, поэтом и поручает мне проверять всё.
Ни за что не хочу быть преподавателем в университете! Или в школе. Всё едино.
Кстати, ассистировать на этом курсе я начала практически с отсутствием знаний по С++ - всё, что у меня было, это полугодовой курс Симуни пять лет назад. Вот, хоть не зря ходила - пригодился.
comments powered by HyperComments