Tampere University of Technology main building

Год назад я закончила Bachelor's Programme in Science and Engineering по специализации ICT в Tampere University of Technology. Как это было :)

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

Первый курс

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

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

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

Как-то так выглядела программа первого курса:

Математика
Судя по тому, что я слышала от своих знакомых, достаточно похоже на то, что проходят на первом курсе в России: в основном матан, линал, алгебра и теорвер.

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

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

Остальное
Два прикольных курса: Introduction to Academic Studies и Career Planning. Это интересно: тебе буквально рассказывают "как жить эту жизнь" ? В первом случае, как учиться, во втором — как строить карьеру.

А что если хочется больше специализации?
Несмотря на то, что практики было достаточно много, я хотела больше IT. Какая физика, ну серьезно? ? На самом деле возможностей было много (самое простое: взять больше курсов, но я тогда так не умела). Что я делала?

  • Нашла себе research-практику: было достаточно прикольно, мы моделировали спутниковые системы.

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

  • Вписалась в "open practice": это когда какой-то относительно крупный проект придумывается и делается самостоятельно (не в рамках какого-то курса), но при этом тебя менторят.

Второй курс

А вот с этого момента можно было набирать любые курсы в рамках своей специализации и составлять свое расписание. На радостях я набрала двойную норму курсов ?

Расписание того времени. Чувствовала себя Гермионой, которой нужен маховик времени)) Несколько курсов потом выкинула, но большая часть осталась(это без практик, только лекции)

Математика
Здесь я просто перечислю основные курсы, которые у нас были. Общая специфика всей математики — она сильно более ориентированная на практику, чем в российской традиции.

  • Complex Analysis

  • Differential Equations

  • Scientific Computing (что-то вроде мат.моделирования)

  • Mathematics for Algorithms (дискретка)

  • Matrix Analysis

ICT
Это был мой major (то есть основная специализация), который, в свою очередь, делился на core studies и "фокус".

Core studies.

  • Introduction to Software Engineering. По сути: курс про project / product management. Сбор требований, анализ, проектирование, менеджмент.

  • Introduction to Signal Processing.

  • Principles of Programming Languages. Компиляторы.

  • Курс по архитектуре (с говорящим названием Programming 3).

  • Data Structures and Algorithms (ну вы поняли :)). Классический такой курс по алгоритмам.

Мой фокус - machine learning.

Здесь два семестровых курса по, собственно, ML. Было прикольно: много математики и при этом очень много практики. Мы делали прикольные проекты и участвовали в kaggle соревнованиях ?

Кроме этого, было два более специализированных курса.

  • Introduction to Audio Processing — мой любимый и по совместительству самый сложный и загруженный курс вообще за всю учебу. Про что: про то, как работать с разными типами аудио, голосовых помощников, про синтез музыки и синтез речи. Было огромное количество жесткой теории, куча практики и большой исследовательский проект.

  • Introduction to Image and Video Processing. По сути Computer Vision. Тоже прикольный, но практики было чуть меньше.

Третий курс

Из-за двойной нормы курсов во второй год на третий курс у меня осталось не так много предметов. Что было довольно удачно, потому что я уже работала на фуллтайме.

Математика

  • Algebra (нужно больше алгебры :))

  • Introduction to Probability and Statistical Inference (теорвер и статистика)

ICT

  • Computer Networking

  • Algorithmic Problem Solving. Прикольный курс, где нужно было просто нарешать много олимпиадных задачек и написать контест.

  • Functional Programming. Про хаскель и в целом про функциональные языки.

Диплом

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

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

Общее впечатление

В качестве небольшого итога могу сказать, что мне понравилась система и подход к обучению. Было очень большое количество практики и как следствие "кейсов" и какого-то real-life опыта, что полезно с точки зрения работы. Еще большой плюс был в том, что если знать, чего ты хочешь (!), можно составить программу очень четко под желаемый профиль. А если не знать (что тоже типично), то получаешь достаточно много контекста, чтобы составить представление о сфере в целом.