Pull to refresh

Программная инженерия в НИУ-ВШЭ, абитуриентам

Reading time 11 min
Views 73K

Приветствую молодую часть Хабрахабра.

Как вы можете догадаться из названия топика, речь пойдёт об абитуриентах, кто в эти выходные делает выбор — МГУ или ВШЭ, а может между чем-то ещё.

Я успешно отучился 2 (UPD: 4) курса на факультете программной инженерии ВШЭ, давно хотел написать небольшой рекламный пост.
Рекламщик из меня плохой, да и вопросов для обзора придумать самостоятельно не смог.

Зато в эти дни меня часто стали спрашивать примерно так
Привет! Ты с ПИ ВШЭ? Если да, то можешь ответить на несколько вопросов по поводу ПИ (я абитуриент, надо определиться окончательно в ближайшие дни).


И я подумал, почему бы не ответить подробно и не выложить на хабр. Вопросы довольно специфичные и относятся к первым двум курсам.
Предполагается, что вы уже знакомы с НИУ-ВШЭ и, в частности, с факультетом ПИ.
Данная статья была актуальна пару лет назад, сейчас многое изменилось в лучшую сторону, а ещё Яндекс и Высшая школа экономики открывают факультет Computer Science.



Правда ли, что примерно половина студентов ПИ на конец сессии имеет 1 или более долгов? Если да, то в чём причина такого положения вещей?


Под конец года будет ещё больше.

Причина проста — народ не знает, куда идёт. Кто-то подумал, что ВШЭ это илитный™ ВУЗ для богатеньких и тут не надо ботать.

Кто-то подумал, что ПИ это то же самое, что Менеджмент или Логистика, только ближе к компам (а значит, ближе к Dota2).

Кто-то банально не умеет программировать. Зубрят, конспектируют, списывают… ПРОГРАММЫ НА C#!

Кстати, некоторые девочки конспектировали код на C#, а потом удивлялись, почему у них ничего не работает.

Class MainClass
{
    Public Static Void Main (string[] args)
    {
        console.writeline("hello");
    }
}


На каком уровне даются языки программирования? Дают ли углублённое понимание паттернов и антипаттернов, ООП, стандартных библиотек?


На первом курсе только C#, обучают с нуля и до очень хорошего уровня, включая GUI.

Поверхностно не проскочить никак, тесты будут сверлить глубоко.

На втором курсе у нас первое полугодие голландец из TU/e по Skype (телеприсутствие) вёл лекции по Java.
Software Construction for Higher School of Economics (версия 2012-2013).

Обучил Jave’е и Swing’у очень грамотно и мы на протяжении нескольких недель пилили Большой Проект, в принципе довольно годная прога получилась, уж можешь поверить.

Стимулируют ли писать серьёзные проекты (особенно – в команде) либо такое будет только по собственной инициативе?


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

В этом году (2011-2012, на 2 курсе) мы делали командный проект — создание Android приложения в рамах курса по UI/UX от TU/e.

Какия ЯП проходятся?


  • C# — весь 1 курс, основа основ и главный фильтр против не-туда-поступивших;
  • Java — половина 2 курса;
  • С++ — весь второй курс. В основном базовые алгоритмы и контейнеры STL, ничего продуктивного;
    Домашние задания и экзамен в рамках курса SSD5 (iCarnegie) от Carnegie Mellon;
    После C# и Java это скучнее, хотя теперь я знаю, чем отличается умножение матриц по Винограду от Штрассена.
  • F# — по желанию, вторая половина второго курса;
  • Python — по желанию, летняя практика на первом курсе;
  • LaTeX — дискретную математику лучше в техе сдавать, да и летняя практика легче пойдёт;


Я видел пример командного проекта студентов ПИ — программа «чтение для слепых» или что-то вроде того.


Был ли этот проект чистой инициативой студентов, либо же это делалось как курсовик или ещё что? Как часто у вас на факультете делают такие вещи (т.е. реально полезные, которые можно даже продать)?

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

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

Кто преподаёт всё, что связано с программированием? Работали ли эти люди в серьёзных компаниях когда-либо?


По-разному. Всё меняется, как повезёт. Лекции по C# читает сам Подбельский В. В., я его уважаю например.

F# преподаёт Дмитрий Сошников shwars, евангелист из Microsoft.
У него хорошо получается агитировать людей, поэтому все, кто изучали F# в этом году — очень довольны.

Java ведёт опытнейший Гринкруг Е. М.

Построение и анализ алгоритмов — Ульянов М. В.

А заведует факультетом (и ведёт математическую логику) Авдошин С. М., можете оценить его вклад в науку по ссылке.

Вообще, с кадрами в ВШЭ всё отлично, я не знаю ни одного преподавателя, кто бы не фанател от свего же предмета.

Если человек ведёт экономику, то это обязательно доцент с факультета экономики ВШЭ.
Если программирование — то какой-нибудь профи со стороны.

В чём реально заключается «партнёрство» с Эйндховенским университетом?


Реально? О чём пишут на hse.ru, в том и заключается. После первого курса магистратуры людей забирают в TU/e на второй курс, причём оплачивают общежитие и кучу денег а-ля стипендия на еду. По окончанию человек получает два диплома, и очень высоко ценится на рынке. Кстати, заодно можно поработать в R&D отделении Phillips.

Подробности могут поменяться, я в общих чертах описал. Мне до этого ещё два полных года, но человек 10 в этом году (2011-2012) уже успешно улетели «туда».

Уже сейчас преподаватели из TU/e по скайпу ведут у нас лекции. Первое полугодие второго курса, как я уже говорил, голландец вёл Java, давал и проверял домашки, проводил тесты и контрольные через их местную систему типа ejudge.

Software Construction for Higher School of Economics (версия 2012-2013).

Второе полугодие — интерфейсы и создание приложений под Android (делали прототип термостата с базовой функциональностью).

«Партнёрство» с компаниями, перечисленными на сайте se.hse.ru — в чём оно заключается, какая студенту от этого польза?


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

У ВШЭ сотрудничество с Microsoft — например, на все продукты Microsoft кроме Office у нас есть бесплатные полные лицензии — Visual Studio хоть Ultimate, любые Windows, даже Server 2008 R2, и многое другое, около 100 наименований (подписка MSDN AA).

Учебный план с сайта se.hse.ru — соответствует ли действительности?


http://www.hse.ru/standards/rup/archive/?fid=24262 — план.

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

Два года назад всё начиналось с базового плана 231000.62 Программная иженерия ВШЭ. Он немного намекает на суть, но фактический план успешно развился в нечто более крутое.

На ДОД было заявлено, что в ВШЭ стараются «не давать» студентам работать до окончания учёбы. Что ты можешь сказать по этому поводу?


Здесь нужно уточнить. ПИ — это факультет ВШЭ, но я бы не стал обобщать слухи и принципы про ВШЭ в целом на этот факультет. Тут своё руководство, свои планы и даже отдельный кампус.
Извнте, у нс здс свяо атмсфреа...

Так вот, это заявление к ПИ не относится совсем. У нас наоборот, уже со второго курса на летнюю практику засылают студентов в крупные компании на стажировку. Делается всё возможное, чтобы развить у студентов навык командообразования и бизнес-навыки, чтобы мы к третьему курсу уже могли придумать свой стартап и запустить его при поддержке ВШЭ.

У нас тут инкубатор успешных людей, ты видимо не так понял суть фразы. Может имелось ввиду, что ВШЭ не даёт студентам околачиваться в офисах как планктон? :)

Летние практики — где, как долго, была ли польза, что делали?


Первый курс в этом году (2011-2012) проходил практику на факультете — LaTeX, Matlab, их обучали грамотной научной работе.
Когда я был на первом курсе, мы строили UML диаграммы и описывали процессы взаимодействия (для наших же курсовых).

Второй курс в этом году проходил стажировку в компаниях, самой популярной была PingWin Sofware, это компания выйграла тендер на создание Российской ОС на базе СПО. Нам довелось пособирать RPM-пакеты в ABF от ROSA. Исправляли ошибки в .spec файлах, познавали дзен мейнтейнера.

Я думаю, чем дальше, тем больше компаний будет доступно. Тот факультет ПИ, который создан по направлению «231000.62 Программная инженерия» существует всего 3 года (раньше ПИ был под-факультетом БИ и цели были другие).

Дисциплины по выбору. Действительно ли твой выбор – закон?


Закон. Если на дисциплину никто не записался — её отменяют (ха-ха-ха).

У нас в этом году не было диффуров по выбору, ибо минимум 15 человек.
В прошлые года ограничивали по рейтингу, отобрав тех, кто выше. Но после кучи жалоб в учебку с этого года кто первый успел выбрать — того и тапки.

Курсовые?


Что ты делал в качестве курсовой работы (все курсы по порядку)?
Какие полезные программы ты написал за каждый год обучения и на каких ЯП?

Каждая курсовая это законченный продукт. Есть постановка задачи (волен выбрать сам или даже предложить), затем в рамках Введения в программную инженерию ты составляешь с научным руководителем ТЗ по ГОСТу, а затем комплект документов по ГОСТу — руководство оператора, пояснительная записка и другие.

Когда я был на первом курсе, нам рассказали про Microsoft Project и научили строить диаграммы Ганта, мы даже ресурсы распределяли. Всё в рамках курсовой.

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

На первом курсе писать можно только на C# (не важно, под что), на остальных — на чём хочешь.

Для справки мои курсовые:

1 год — Эмулятор Машины Тьюринга, задача была поставлена в связи с тем, что в интернете не было программ, которые бы удовлетворяли потребностям факультета. Сейчас этот эмулятор перваки гоняют. Помимо этого эмулятора, другие ребята делали курсовые, которые в последствии стали использоваться на факультете.

2 год — Попросил научного руководителя выдать мне тему по-хардкору. Получил, как просил. Мы даже название придумали не сразу, да и то что получилось, оказалось далеко от терминологии, которая используется на западе для описания таких вещей.
  • Computing operations in idempotent semiring on cone-constrained sets program;
  • Что можно отнести к Algebraic Tools for the Performance Evaluation of Discrete Event Systems;
  • Материалы: Документация (на первой странице заглушка) и Презентация с защиты;
  • Программа на Java, из двух частей, практического применения пока не имеет.


Список литературы для курсовой за второй год (примерно 20% от прочитанного и осмысленного)
  • F. Baccelli, G. Cohen, G.J. Olsder, and J.P. Quadrat. «Synchronization and Linearity». Wiley, 1992.
  • E. Le Corronc «Développement d’outils de calcul garantis et efficaces pour les systémes (max, +) linéaires», LISA Angers, 2008
  • Stéphane Gaubert «Symbolic computation of periodic throughputs of timed event graphs», INRIA, 1992
  • Jörg Raisch «DES in a Dioid Framework – Modelling and Analysis», TU Berlin, 2008
  • B. Cottenceau, L. Hardouin, M. Lhommeau «MinMaxgd, une librairie de calculs dans MinMax[g, d]», LISA Angers 2006
  • B. Cottenceau, L. Hardouin, M. Lhommeau «Data Processing Tool for Calculation in Dioid», Workshop On Discrete Event Systems, 2000


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

Кстати, в обоих случаях я использовал лишь знания, полученные во время обучения C# и Java в университете. Вернее, я зачёты сдавал и обязан был иметь эти знания, контроль 100%.

На каком уровне даются не связанные с программированием вещи (гуманитарщина)?


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

Другое дело — психология. Вообще, многие гуманитарные вещи нам пытаются рассказать применительно к IT. В случае с психологией, это был крайне полезный опыт, поскольку у нас вела IT-подкованный профессионал Мандрикова Е.Ю. с полным пониманием наших интересов.

Кстати, гуманитарщины на первом курсе мало, что не может не радовать.

Можно ли сдавать дисциплины заранее?


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

Вообще, у нас тут учатся, а не корочки получают. Это я про ПИ конкретно.

Следят ли за посещаемостью занятий? Если да, то в каком виде?


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

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

У нас тут такой принцип, что на экзамене нет никакого «wtf?! O_o», все задачи разбираются вдоль и поперёк, главное не терять интерес.

Кстати, на гуманитарных предметах (психология, типа) оценивают именно посещаемость и работу на семинарах.

Какие предметы можно спокойно пропускать?


На первом курсе не стоит забивать вообще. На этом факультете с первокурсниками особое обращение. Сначала набирают излишек, а затем отчисляют половину.

Отчисление – при каких условиях?


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

Жизненный цикл незача
  1. Собственно экзамен
  2. Пересдача (тому же преподу)
  3. Комиссия (строго другим преподам)


Способы получить незач
  • Запоздать с подачей документов — например, вовремя не заявить тему курсовой или ВКР;
  • Получить незачёт по формуле (см. ниже).


Итоговая оценка может складываться из кучи критериев, обычно она взвешанная.
ОЦЕНКА = 0,2 * 1МОДУЛЬ + 0,7 * КР + 0,1 * ЭКЗ

По такой формуле сразу видно, что экзамен может быть написан на отлично, но это даст всего 1/10 оценки. Да, были и такие неудачи.

Теперь простая арифметика — если в сессию получил 3 незача или больше, это отчисление на автомате. Без исключений. Деньги не берут.

Незачи можно пересдавать. Пересдачи идут зимой после зимней сессии и осенью. То есть весенние незачи нельзя пересдать до осени, поэтому 4 модуль это такой экстрим, ибо если два хвоста уже висит… Не завидую.

Как бороться с незачами, если много денег
  1. Купить справку о болезни
    • Дёшево;
    • Могут спалить, тогда держись;
    • Можно покупать справки постфактум (если уже конвейер и связи :)).

  2. Купить индивидуальный план
    • Сначала нужно перевестись на платное;
    • План можно только в том случае, если незачей 2 или меньше;
    • План отодвигает пересдачу на 1 год, но хвост висит.


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

Сколько человек осталось от первоначального состава к данному моменту?


После первого курса оставалось 49 из 97. Вот так, да.

Математика, не связанная с программированием напрямую (матан, линал, дифуры и пр.)


Линал у нас был первые три модуля. Матан у нас был первый год. Дифуров нет вообще.
Как-то так.

Линал преподавал Чубаров И.А., замечательный мужик. Он из МФТИ, а ещё на МехМате МГУ линал ведёт. Судя по сайту, походу он уже штатный доцент ВШЭ.

Матан вела Чубарова Е. И., они вместе. :)

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

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

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

Короче говоря, у нас учёба с расчётом на самообучение по мере необходимости, насильно не пихают «фундаментальные» штуки.

Математика, связанная с программированием напрямую?


Её было сполна. Дискретная математика, вёл Лазарев А. А. — доктор наук из МФТИ. Математическая логика, теория автоматов и формальных языков, вычислительная геометрия…

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

Вместо заключения


Надеюсь, эти ответы помогут вам с выбором ВУЗа, в котором вам предстоит сидеть 4 или 6 лет.

Что касается обстановки — мы учимся в недавно построенном здании. 6 лифтов и 9 этажей. Все стулья — мягкие (такие, чёрные). Все доски — маркерные белые, Все парты — целые (голодные студенты питаются в столовой, а не древесиной). Все туалеты — чистые. Все работы по уборке помещений, ремонту помещений делаются на аутсурсе, это влечёт хорошее качество таких работ. Вот это здание на карте: goo.gl/maps/h54w3 (Кирпичная, 33/5).

В общем, подумайте, каким должен быть ваш IT ВУЗ мечты и сравните с ВШЭ ;)

UPD. Alex_sik дал очень хорошую ссылку, что же такое программная инженерия — о различиях между ПИ и другими IT специальностями.

UPD 2. Пост обновлён 27 июня 2013 — поправил текст, добавил ссылок и уточнений годов. Перечитывать не стоит, но новеньким будет чуть лучше.

UPD 3. Умельцы смонтировали первый в истории факультета фольклорный видеоролик http://www.youtube.com/watch?v=o-29QTcQ3Lk.

UPD 4. 4 апреля 2014 снова вернул пост из черновиков, так как Яндекс и Высшая школа экономики открывают факультет Computer Science и эта статья будет полезна для ознакомления с ПИ. Опять же, всё описанное было давно. С новыми вопросами лучше к новым второкурсникам. ;)
Tags:
Hubs:
+18
Comments 77
Comments Comments 77

Articles