Чим Software Engineering відрізняється від Computer Science

    Привіт!
Програма, за якою я зараз навчаюсь, називається MSIT-SE (Master of Science in Information Technology — Software Engineering) *. Основна ідея всієї програми виражається в принципі "Learn by doing" ("Вчися, роблячи").
Хочу розповісти, в чому різниця між SE і CS і чим програма, яку я проходжу, відрізняється від всього іншого. Без всякого сумніву це питання обговорюємо, але нижче представлено моя особиста думка
 
Знаєте, це якась слабка програма для Computer Science
До того, як я приїхав на програму SE, у всіх коментарях читав саме таке твердження.
 
Людина переходить по [ось цієї] посиланням і читає:
• 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. Докладніше про електіви [читати тут] і [тут] . Причина подібного ставлення — спочатку невірна реклама цієї програми в Росії, а також невиразне визначення того, що таке software engineering (воно у всіх дуже різне).
 
Вище коротка вирізка з офіційного сайту. Можна побачити, що перетину є, але фокус принципово інший. Є деякі речі, яким не вчать на 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, це те, що склеює всю програму воєдино. Я вже писав короткий огляд нашого проекту [тут] . Наступним постом розповім про практикумі більш докладно.
 
 За матеріалами студента магістратури першого потоку (2013/2014) спільної програми Університету іннополісів
 
* MSIT-SE (Master of Science in Information Technology) — програма магістратури Університету іннополісів, що розробляється на базі однойменної програми одного з кращих ІТ-вузів світу Carnegie Mellon University (<a href="http://www.topuniversities.com/university-rankings/university-subject-rankings/2014/computer-science-information-systems#sorting=rank+region=+country=+faculty=+stars=false+search=">№3,QS World University Rankings by Subject 2014 — Computer Science & Information Systems ), з урахуванням кращих практик МФТІ , ІТМО , National University of Singapoor та інших партнерів у галузі освіти. Університет іннополісів планує здійснити набір групи магістрів на своїй базі для навчання в 2014/15 роках.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.