[Из песочницы] «Главное — сдал»: чему и как учат будущих айтишников в Берлине

Привет, Хабр!

Вот уже два года я осваиваю программу бакалавриата по специальности «Информатика» в Берлинском техническом университете (ТУ Берлин). Сегодня я хочу рассказать, как устроена моя учеба.

p05np5p6bowhw9sfprzvjq7vynu.png


Обложка прошлогоднего Studienführer — подробной брошюры о том, как все устроено

Поступление


До нынешнего года (зимний семестр 2018–2019) при поступлении на информатику не было никакого конкурса. Однако в связи с тем, что каждый год первокурсников набиралось чуть более, чем 800 человек (из которых до бакалаврской работы доходит меньше ста, но это совсем другая история), а число аудиторий университета ограничено, конкурс все же ввели, и теперь мы с интересом ожидаем, какими будут средние баллы поступивших.

Иностранцы поступают в немецкие университеты при помощи организации uni-assist, выступающей посредником между вузами и абитуриентами. После выполнения необходимых предпосылок (например, уровень языка C1) новоиспеченному студенту остается лишь оплатить семестровый взнос размером 306 евро, в который входит безлимитный проездной на все виды берлинского транспорта на семестр, услуги библиотеки, пониженные цены в столовой и другие поборы, и получить свой студенческий. Его полагается носить с гордостью (и практически всегда, так как он одновременно является проездным).

Особенности немецкого берлинского образования


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

Учебное время измеряется в семестрах (а не в курсах) и совершенно не фиксировано. Среднее количество семестров, за которое студенты моей специальности оканчивают учебу — 10, то есть пять лет. Для сравнения: предлагаемый на сайте университета примерный учебный план (см. ниже) утверждает, что это реально сделать за 6 семестров (нет). Семестров в учебном году два: зимний, который начинается в октябре и кончается где-то в марте, и летний, начинающийся в апреле и кончающийся в августе. Понятие каникул в университете размыто — строго говоря, их просто нет. Есть «время, в которое не проводятся занятия». В это время студенты сдают экзамены.

Актуальный прогресс в освоении учебной программы измеряется в LP — Leistungspunkte, баллах успеваемости, их еще называют кредитами. 1 LP соответствует примерно 30 академическим часам. Сейчас я оканчиваю четвертый семестр и набрала уже 75 LP (а после экзаменов в октябре будет 96). Для успешного окончания бакалавриата нужно набрать вместе с бакалаврской работой 180 LP (можно и больше). Сама бакалаврская стоит 12 LP. Ее можно начать писать, когда в целом набрано от 120 LP.

Предметы называются модулями. Стандартный модуль стоит 6 LP. В такой модуль обычно входит одна лекция в неделю и одно практическое занятие в неделю. Маленький (только лекции и экзамен в конце) модуль стоит 3 LP, средний (например, с двумя лекциями в неделю) — 9 LP. Бывают и варианты пострашнее.

За редкими исключениями (например, если на модуль может записаться только ограниченное число студентов) посещаемость необязательна и никак не контролируется. Студенты обязаны приходить только на экзамены, на которые записались, иначе отправятся на пересдачу или на мороз (об этом ниже). Как правило, первые две недели все ходят на всё, и под начало лекции приходится садиться на подоконники и лестницы, но потом места в аудиториях постепенно освобождаются.

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

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

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

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

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

Экзамены (Klausur) обычно бывают письменными и иногда устными, но всегда охватывают весь пройденный в течение семестра материал. Нет не то что билетов, но и даже списка тем. При этом недоученное и неотработанное всегда выйдет боком. Как правило, на экзамен дается две письменные попытки и одна устная, после провала которых, как сказал один мой преподаватель, «Вы поймете свое место в жизни», потому что учиться по данной специальности (как и по другим, в программе которых есть похожий модуль) в Германии будет нельзя. Обычно экзамен можно сдать (или пересдать) в конце актуального семестра, в начале следующего после каникул или когда модуль снова будет предложен (например, через год). Максимум на (пере)сдачу экзамена дается год после первой попытки.

В рамках каждого модуля можно набрать до ста баллов (в зависимости от конкретной разбалловки, от 86 или 95 баллов будет оценкой «отлично», меньше 50 — модуль провален, ровно 50 — модуль сдан на минимальную оценку). Сами модули отличаются типами экзаменов: просто письменный, так называемый «портфолио» и просто устный. Первый и последний означают, что баллы за модуль приравниваются к баллам за экзамен, который, соответственно, будет стоить максимум 100. При этом в течение семестра, бывает, все равно приходится сдавать обязательные домашние задания, результаты которых становятся допуском к экзамену. «Портфолио» означает, что результаты домашних заданий и/или промежуточных экзаменов в течение семестра (такое тоже бывает) засчитываются в итоговую сотню. Сам итоговый экзамен в таком случае обычно стоит максимум 50 баллов.

Что характерно, для баллов успеваемости LP оценка за модуль не имеет никакого значения. Студент наберет свои LP, приближающие к заветному диплому, получив хоть 50, хоть 100. Благодаря этому, а также высокой сложности экзаменов на факультете пользуется популярностью расхожее выражение «Hauptsache bestanden», то есть «Главное — сдал». Однако баллы за модуль все равно преобразуются в оценку по пятибалльной шкале (1.0 — «отлично», 4.0 — сдано на минимальный балл), из чего рассчитывается средний балл, который может играть роль при приеме на первую работу или в магистратуру. Портить его не хочется никому.

Модули и их наполнение


te1r4t_zvjmbum4rwj_adeucsum.png
Пример учебного плана с сайта университета — нереальные 180 LP всего за 6 семестров (перевод мой)

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

Брать модули можно какие, когда и сколько угодно, если их преподают в данном семестре. Очень редко, бывает, для допуска к экзамену нужно сдать что-то еще (например, «Математический анализ II» нельзя сдавать, если не сдан «Математический анализ I»), но просто посещать пары никто не запрещает.

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

В самом первом семестре большая часть студентов, разумеется, сосредотачивается на программировании. В рамках модуля «Введение в программирование» на примере языка C изучаются разнообразные простые алгоритмы (например, сортировки), собственно, сам язык и другие задачки. Домашние задания — на факультете информатики это краеугольный камень обучения — сдаются еженедельно на специальную онлайн-платформу для проверки посредством автоматических тестов. Модуль «Структура ЭВМ» из группы технической информатики параллельно знакомит с языком ассемблера, чтобы первокурсники не расслаблялись.

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

В следующих семестрах довольно бодро изучают Java вместе с алгоритмами и структурами данных и не только, базы данных в компании с SQL, Haskell в рамках знакомства с новыми парадигмами программирования и Python на мозгодробительных «Вычислительных методах».

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

Иногда преподаватели практических модулей бывают милостивы и включают в экзамены только теоретическую часть материала. Тем не менее, нередко нам приходится «программировать» на листе бумаги.

Обязательные модули по технической информатике, как правило, включают в себя программирование на C и большое количество информации по тому, как устроены ЭВМ, процессы, память, распределенные системы и другие относительно осязаемые штуки.

Теоретической информатике в ТУ Берлин по сравнению с программами других немецких университетов уделяется масса внимания. К сожалению, за исключением «Формальных языков и автоматов» в первом семестре, ведут их преподаватели, весьма оригинально структурирующие и подающие материал. Например, как нам было с апломбом сказано, «Логику» нигде не преподают так, как у нас. Это привело к тому, что относительно тривиальные вещи и задачи практически невозможно было сопоставить с учебниками и выдачей гугла.

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

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

Краткого повторения пройденного в начале нового семестра (предмета) практически нет: например, модуль «Вычислимость и сложность» из группы модулей по теоретической информатике начинается ровно с того момента, на котором заканчивается «Формальные языки и автоматы», а именно на машине Тьюринга.

Другой пример: основы языка С изучают только в рамках курса «Введение в программирование». Если человек приходит без начальных знаний на, например, «Программирование операционных систем», где в первом же домашнем задании в числе прочего необходимо имплементировать priority queue (не забыв про правильное распределение памяти), ему посоветуют посмотреть туториалы в интернете и браться за работу (реальный случай).

Сложность заданий на программирование (и не только) в целом всегда растет в геометрической прогрессии. Если мои знакомые cо специальности Engineering management к концу модуля «Введение в Java» затрудняются с определением конструктора класса (да, это проходят до конца семестра), то для нас уже со второй недели начинается локальный ад. И это прекрасно: learning by doing во всей красе.

© Habrahabr.ru