Pull to refresh

JetBrains открывает базовую кафедру на факультете компьютерных наук НИУ ВШЭ

Reading time3 min
Views5.6K

Базовая кафедра JetBrains будет поддерживать новую специализацию “Средства анализа и разработки программного обеспечения” для студентов 3-4 курса бакалаврской программы “Программная инженерия”. Планируется, что первый набор на специализацию состоится уже в 2021-2022 учебном году. Также преподаватели кафедры будут вести несколько факультативов: “Язык Kotlin”, “Неклассические логики” — и практические занятия по программированию для первокурсников.

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments8

Конец программной инженерии и последний методист

Reading time5 min
Views17K
Это перевод статьи профессора Бертрана Мейера из блога Communications of the ACM.
Статья относительно недавняя (по сравнению с предыдущим переводом).

Кроме того, что Бертран Мейер известен большинству специалистов как создатель языка программирования Eiffel и идей контрактного программирования (design by contract), он является почетным доктором и заведующим кафедрой ИТМО, преподает в университете Иннополис. И прекрасно владеет русским языком. ;)

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

Но так было в давние времена. За некоторыми исключениями, одно из которых будет упомянуто ниже, если кто и продолжает изучать методологии программирования, занимается он этим уже в мире agile, там, где решающие доводы часто начинаются с фразы «Я всегда говорю…» (Пример со страницы консультанта: «я всегда говорю команде: ‘Мне хотелось бы, чтобы [пользовательские] истории были небольшими, умещались в одну итерацию, однако такой путь не всегда приемлем»). Дейкстра, бывало, апеллировал к интуиции, однако подтверждал ее строгими концептуальными доказательствами.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments141

Делу время, потехе час! Тезисы «мифического человеко-месяца» Фредерика Брукса, в пословицах и поговорках

Reading time27 min
Views14K

Время — судья


Книга “мифический человеко-месяц”, заслуживает того, чтобы её читали и перечитывали, издавали и переиздавали. В 2025 году, а он не за горами, будет 50 лет первому изданию. Т.е. проверка временем пройдена. В 1995 году вышло юбилейное издание (ждём юбилейного издания 2К25), в предисловии к которому, автор, помимо прочего, сообщает:
Работая над обзором и обновлением книги «Мифический человеко-месяц», я поразился, как мало тезисы, заявленные в ней, были подвергнуты критике, доказаны или опровергнуты текущими исследованиями и опытом в инженерии ПО. Теперь для меня оказалось полезным каталогизировать эти тезисы в сырой форме, лишённой подтверждающих аргументов и данных. В надежде, что эти голые утверждения привлекут аргументы и факты для доказательства, опровержения, обновления или уточнения, я включил этот план в главу 18.

Кто празднику рад, тот накануне пьян


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

В споре рождается истина


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

А заодно расслабиться, и повеселиться. Не воспринимайте написанное слишком буквально — без смешного нельзя понять серьёзное.
Читать от доски до доски...
Total votes 60: ↑59 and ↓1+58
Comments17

Почему чтобы переместить кнопку, нужно две недели

Reading time5 min
Views18K
Многие сталкивались с нерелятивистскими искажениями времени разработки крупных проектов. Кажется, что выполнение задачи должно занять один-два дня, а на самом деле требуется две-три недели. Это вызывает вопросы, однако существует красивая метафора для иллюстрации происходящего. Разумеется, как любая метафора, она упрощает ситуацию, поэтому на самом деле ничего не объясняет, но всё же демонстрирует некоторые любопытные механики.


Допустим, мы строим пирамиду из кирпичиков Lego размером 2x2 блока. Сколько потребуется времени на создание MVP (minimum viable product) пирамиды? Столько, сколько требуется для установки одного кирпичика! Допустим, это 1 секунда. То есть мы создали MVP пирамиды за 1 с. Сколько потребуется времени на реализацию v1? Нам нужно установить ещё три детали на уровне 0 и одну на уровне 1. Ещё 4 детали, то есть ещё 4 секунды. А для версии v2? Ещё пять деталей на уровне 0, три детали на уровне 1 и одна на уровне 2 — суммарно девять деталей и ещё девять секунд.
Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments23

Программирование — это материализация идей

Reading time14 min
Views9.9K


Основной тезис этой статьи: Разработку программного обеспечения следует рассматривать как материализацию идей посредством трансформации ментальных моделей в программный код.
В статье описывается парадигма материализации идей в программной инженерии (engl.: RPSE: Reification as Paradigm of Software Engineering).
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments30

Образование программисту – Что? Где? Когда?

Reading time33 min
Views132K


Привет, Хабр! Уже много сказано об образовании, в частности для программистов, о программах, что лучше подходят или не подходят, но каждый год ситуация меняется и как бы грустно не было, в этом надо разбираться (будь ты абитуриент или работодатель). Очень важно начать свой путь именно с выбора alma mater… Прошу под кат всех, кого не испугает длинная статья по теме.

Читать дальше →
Total votes 18: ↑11 and ↓7+4
Comments53

Почему вы должны думать о функциональном программировании

Reading time7 min
Views19K
Привет, Хабр! Представляю вашему вниманию перевод своей статьи «Why you should think about functional programming», посвященной функциональному программированию.

image

Почему вы должны думать о функциональном программировании? Давайте ответим на следующие вопросы:

  • всегда ли ваши проекты выполняются в определенные сроки?
  • Были ли у пользователей какие-либо жалобы?
  • Поддержка проекта никогда не занимала много времени?
  • Новый функционал всегда удачно вписывается в существующую архитектуру?

Если ответы на все вышеупомянутые вопросы положительные, вам не нужно ничего менять, ваша команда — редкий пример гармоничного персонала, методологии и инструментов. В противном случае вы должны быть открыты для новых подходов к решению ваших проблем, включая критический взгляд на используемые технические средства и языки программирования.
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments59

Изменение требований к проекту — ключевая проблема разработки ПО

Reading time6 min
Views12K

Шаги по разработке большой компьютерной программы для доставки заказчику

Иллюстрация выше — из статьи д-ра Уинстона Ройса «Управление разработкой больших программных систем» 1970 года. Считается, что это первое в программной инженерии описание модели водопада. Диаграммы д-ра Ройса разошлись по сотням учебников и статей. Но часто забывают тот факт, что изобретатель водопада сразу написал: «Эта конкретная реализация рискованна и влечёт за собой неудачу».

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

Прошло уже более 50-ти лет с момента проведения первой конференции IFIP по программной инженерии, и за это время предложено немало различных методик, процессов и моделей, призванных помочь разработчикам достичь этого предсказуемого и экономически эффективного процесса. Но и через полвека у нас те же проблемы, что и всегда: опоздания, неудовлетворительные результаты и полные провалы проектов.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments26

Современные технологии проектирования ПО в контексте теории коммуникации и метода декомпозиции

Reading time8 min
Views9.6K
Использование родного языка для начинающих изучать программирование является традиционной практикой в процессе обучения информатики. Ей оппонирует профессиональная и научная разработка ПО, в которой Английский язык является «лингво франка». Где формальный английский — это тщательным образом выбранные имена ключевых слов и переменных, обращённые к ассоциативному и творческому мышлению на языке оригинала.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments9

Неплохая статья о преподавании программной инженерии

Reading time1 min
Views1.8K
www.interface.ru/home.asp?artId=1064

Есть информация, полезная любому разработчику. Некоторые цитаты:

"Заблуждение 3: Планирование в программной инженерии осуществляется хуже, чем в других областях

[...]
Флайвберг, Брузелиус и Розенгаттер приводят примеры нескольких известных проектов с крупными перерасходами бюджетов:

Суэцкий канал (1869 год) — перерасход на 1900%;
Сиднейский оперный театр (1973 год) — перерасход на 1400%;
«Конкорд» (первый полет в 1969 году) — перерасход на 1100%;
Панамский канал (1913 год) — перерасход на 200%;
Бруклинский мост (1883 год) — перерасход на 100%."


Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments11

Говорит ли ваш код по-русски?

Reading time15 min
Views8K

Да, это пока не широко распространено. Обработка естественного языка еще недостаточно развита и не интегрирована с разработкой. Также, как нет и удобных способов интегрировать код с поиском или виртуальным помощником (таким как Siri). Голосовые команды имитируют GUI пути (щелчок-открыть-щелчок). Семантический Веб пытается познакомить приложения со смыслом, но все еще не может достигнуть широкой аудитории. Behavior-driven development (BDD) полагается на DSL (предметно-ориентированный язык), который близок к естественному, но этого все еще недостаточно, чтобы научить ваш код говорить.


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


  • который будет адаптирован к естественному языку
  • которому будет легко обучить широкий круг людей
  • который может выступать связующим звеном между естественным языком и компьютерными сущностями
  • который сможет создавать окружение в как можно большем количестве областей программной инженерии
Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments12

Может ли рассуждать ваш код?

Reading time9 min
Views7.9K

Когда мы думаем о рассуждениях (reasoning) в программировании, первое, что приходит в голову — это логическое программирование и подход базируемый на правилах (rule-based), экспертные системы и системы управления бизнес-правилами (business rule management systems, BRMS).


Общераспространенные мультипарадигмальные языки практически не включают эти подходы, хотя и работают с ними посредством библиотек и интерфейсов. Почему? Потому что эти языки не могут включать себя формы, которые в некотором смысле противоречат их сути. Популярные языки программирования обычно работают с детерминизмом (ожидаемые данные, сценарии использования, и т.п.), в то время как подходы, использующие рассуждения, обычно работают с неопределенностью (непредсказуемые данные, сценарии использования, и т.п.). Рассуждения (reasoning) будет различным в обеих случаях тоже. В первом, рассуждает архитектор или разработчик, во втором же рассуждает машина вывода/правил (reasoning/rule engine).


Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments7

Разыменование нулевых указателей больше не проблема

Reading time6 min
Views8.5K
image

Дефект, который справедливо считается «чумой» современного программирования преодолим. Предлагаем ознакомиться с переводом статьи Бертрана Мейера, французского учёного, создателя языка программирования Eiffel, приглашенного профессора и руководителя Лаборатории программной инженерии Университета Иннополис. Оригинал статьи опубликован в журнале Сommunications of the ACM.
Читать дальше →
Total votes 34: ↑20 and ↓14+6
Comments21

Вонючие дипломы или стальное колечко?

Reading time2 min
Views998

Первый вариант висячего моста в США, в штате Вашингтон через пролив Такома-Нэрроуз, который разрушился 7 ноября 1940 года из-за недоучёта ветровой нагрузки и явления механического резонанса. Восстановленный мост был открыт в 1950 году.

«Вонючие дипломы или стальное колечко?» — так называется завершающий параграф одной из глав книги «Профессиональная разработка программного обеспечения». Рекомендую тем, кто занимается разработкой программного обеспечения и тем, кто пользуется программным обеспечением и является заказчиком — всему ИТ сообществу и не только.
Давно хотел выложить этот небольшой параграф (как-нибудь еще пару отрывков из книги выложу), но не было повода. И вот произошло событие, которое заставило меня это сделать. А произошло вот, что: «В Волгограде сильнейший ветер и волны раскачали один из самых больших мостов через Волгу».

Вонючие дипломы или стальное колечко?
В Канаде инженеры, получающие диплом по окончании обучения по аттестованным инженерным программам, при выпуске получают стальное кольцо. С 1923 года это кольцо вручается на закрытой церемонии, которую разработал Редьярд Киплинг. Традиция гласит…
Читать дальше →
Total votes 34: ↑23 and ↓11+12
Comments22

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

Reading time11 min
Views73K

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

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

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

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


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

Мне интересно, хочу увидеть вопросы и ответы
Total votes 52: ↑35 and ↓17+18
Comments77

Вебинар «Работа в компании или магистратура: раскрываем плюсы и минусы для разработчика»

Reading time1 min
Views5.9K
Карьерный рост в IT — какой путь выбрать? 26 мая на этот вопрос подробно ответит руководитель группы разработки в прошлом, а сейчас ведущий преподаватель и научный сотрудник Университета Иннополис Василий Артемьев.

image
Читать дальше →
Total votes 19: ↑10 and ↓9+1
Comments2