- PVSM.RU - https://www.pvsm.ru -

Чем Software Engineering отличается от Computer Science

Привет!
Программа, по которой я сейчас обучаюсь, называется MSIT-SE (Master of Science in Information Technology – Software Engineering)*. Основная идея всей программы выражается в принципе “Learn by doing” (“Учись, делая”).
Хочу рассказать, в чем разница между SE и CS и чем программа, которую я прохожу, отличается от всего остального. Без всякого сомнения этот вопрос обсуждаем, но ниже представлено мое личное мнение

Знаете, это какая-то слабая программа для Computer Science

До того, как я приехал на программу SE, во всех комментариях читал именно такое утверждение.

Человек переходит по [вот этой] [1]ссылке и читает:
• 17-651 Models of Software Systems
• 17-652 Methods: Deciding What to Design
• 17-653 Managing Software Development
• 17-602 Introduction to Personal Software Process
• 17-654 Analysis of Software Artifacts
• 17-655 Architectures for Software Systems
• 17-677 MSIT Project I
• 17-678 MSIT Project II
И начинаются разговоры: хм, простите, но где здесь хотя бы один классический курс по алгоритмам и структурам данных? Ну или хотя бы один годный курс по ООП, или по C++, или по основам распределенных систем или может быть базы данных, где всё это?
Ну, что я могу сказать, всего этого нет. Точнее, этого нет среди указанных выше основных курсов, зато каждый семестр можно брать 1-2 электива, я вот, например, брал Distributed systems и Data structures for application programmers. Подробнее про элективы [читать тут] [2] и [здесь] [3]. Причина подобного отношения – изначально неверная реклама этой программы в России, а также невнятное определение того, что такое software engineering (оно у всех очень разное).
Чем Software Engineering отличается от Computer Science
Выше короткая вырезка с официального сайта. Можно увидеть, что пересечения есть, но фокус принципиально другой. Есть некоторые вещи, которым не учат на Computer Science программах. Я не знаю как иначе объяснить разницу между SE и CS, кроме как сравнить создание IT системы с чем-нибудь из реальной жизни. Например, с постройкой моста. Вот список вещей, которым не учат на CS:
• как выбрать форму моста
• как решить, где именно этот мост должен стоять
• как скоординировать это с финансовыми или правовыми вопросами
• как именно должен выглядеть мост с точки зрения заказчика
• как скоординировать 100500 рабочих, которые будут строить этот мост
• как ответить руководству (спонсорам, инвесторам, etc), на каком этапе строительства сейчас мост и когда он будет завершен
• как ДО того, как мост построен, оценить его качества: грузоподъемность, производительность
• как задокументировать построенный мост так, чтобы в будущем его можно было починить
• какие действия должны быть выполнены, кем и когда, чтобы мост не упал через 2 года
… ну, в общем, идея понятна, продолжать можно долго. С одной стороны, это менеджмент (17-653 Managing Software Development). От него никуда не денешься, потому что с людьми надо общаться, и это почти самое сложное, а еще является причиной провала большинства проектов. После чего – умение собирать требования (17-652 Methods: Deciding What to Design). Как только требования собраны, мост нужно нарисовать на бумаге (17-655 Architectures for Software Systems), по возможности используя формальные методы расчета моста (17-651 Models of Software Systems). На протяжении всего процесса желательно проверять качество собранных требований, процесса постройки, итогового результата и т.д. (17-654 Analysis of Software Artifacts)

Я считаю, что все вышеописанные курсы должны предваряться мощным бакалавриатом по Computer Science, а затем 3-5 годами работы в индустрии. Лишь после этого имеет смысл говорить о менеджменте или архитектуре.

И вот мы плавно переходим к вишенке на торте. Практикум, он же MSIT Project, это то, что склеивает всю программу воедино. Я уже писал краткий обзор нашего проекта [тут] [4]. Следующим постом расскажу о практикуме более подробно.

По материалам студента магистратуры первого потока (2013/2014) совместной программы Университета Иннополис

*MSIT-SE (Master of Science in Information Technology) – программа магистратуры Университета Иннополис, разрабатываемая на базе одноименной программы одного из лучших ИТ-вузов мира Carnegie Mellon University [5] (№3,QS World University Rankings by Subject 2014 — Computer Science & Information Systems [6]), с учетом лучших практик МФТИ [7], ИТМО [8], National University of Singapoor [9] и других партнеров в области образования. Университет Иннополис планирует осуществить набор группы [10] магистров на своей базе для обучения в 2014/15 годах.

Автор: ilena

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/upravlenie-proektami/64494

Ссылки в тексте:

[1] [вот этой] : http://mse.isri.cmu.edu/software-engineering/web4-distance/MSIT-SE/Plan%20of%20Study.html

[2] [читать тут] : http://chepanov.com/?p=301

[3] [здесь]: http://chepanov.com/?p=702

[4] [тут]: http://chepanov.com/chepanov.com/?p=661#MSIT-Practicum

[5] Carnegie Mellon University: http://www.cmu.edu/

[6] №3,QS World University Rankings by Subject 2014 — Computer Science & Information Systems: http://www.topuniversities.com/university-rankings/university-subject-rankings/2014/computer-science-information-systems#sorting=rank+region=+country=+faculty=+stars=false+search=

[7] МФТИ: http://mipt.ru/

[8] ИТМО: http://www.ifmo.ru/

[9] National University of Singapoor: http://www.nus.edu.sg/

[10] набор группы: http://innopolis.edu.ru/msit-se2014-kazan.php

[11] Источник: http://habrahabr.ru/post/229085/