Чи повинні інженерія програмного забезпечення та інформатики бути окремими спеціальностями? [зачинено]


19

Протягом десятиліть прийнятим ступенем, щоб стати розробником програмного забезпечення, був "Compter Science".
У нас було кілька запитань щодо того, чи справді ця ступінь готує студентів до розробки програмного забезпечення.

Деякі школи протягом останніх 8 років або близько того почали пропонувати кілька різних спеціальностей з програмування. Використовуючи навчальну програму моєї школи:

  • Інформатика , яка починається з декількох курсів програмування введення в перший рік, а потім зосереджується на теоретичній інформатиці, алгоритмах і трохи ОС. Більшість класів передбачає кілька менших проектів та домашніх робіт, виконаних сольно або в парах.
  • Інженерія програмного забезпечення , яка починається з тих самих курсів програмування введення, виконує кілька класів теорії, а потім переходить до практики розробки програмного забезпечення (тестування, методології процесів, метрики програмного забезпечення, збирання вимог) та розробки програмного забезпечення (розподілена система, дизайн інформаційної системи , дизайн в реальному часі / вбудований дизайн, дизайн підсистеми тощо)

Різні школи роблять це по-різному, тому вищезгадане - лише приклад, який я знайомий у реальному світі. Що я запитую: чи є необхідність у різних програмах?


1
Не зовсім. Спосіб засвоїти ці навички - це не навчити їх курсу, а надати їм фактичну роботу над проектом
Casebash

Що змушує вас думати, що їх немає? RIT пропонує обидва градуси.
Енді

Енді: Я знаю - я пішов на RIT і отримав ступінь SE. Я запитав, чи варто їм бути окремими, а не чи є вони зараз. :)
Fishtoaster

Відповіді:


28

Так, вони повинні бути.

Зв'язок між інформатикою та інженерією програмного забезпечення такий же, як взаємозв'язок фізики та машинобудування. Один забезпечує теоретичну основу, а інший бере ці теорії разом з хорошими інженерними принципами та застосовує їх до розробки та впровадження програмного забезпечення.

Вам потрібно як для виробництва нового, так і кращого програмного забезпечення. Гарна освіта з інформатики навчає людей виробляти нові та кращі алгоритми, структури даних, мови програмування та парадигми, компілятори та ряд інших речей, які можна використовувати для вдосконалення програмних систем. З іншого боку, хороша освіта інженерії програмного забезпечення навчає вас використовувати ці інструменти та знання, отримані в результаті наукового вивчення обчислень, а також знання життєвого циклу розробки програмного забезпечення та моделей процесів, щоб фактично побудувати систему, яку хоче і потребує клієнт. .


2
Фізична / інженерна аналогія - це я дуже багато використовую. Ми не наймаємо фізиків для проектування та будівництва мостів, чому ми наймаємо комп'ютерних спеціалістів для проектування та побудови програм?
HerbN

1
Оскільки комп'ютерні науки програми навчання трохи більше про те , як будувати програми , ніж ваш типовий програми по фізиці;)
Уейн Вернер

2
@WayneWerner: Ні, вони насправді, насправді ні.
DeadMG

3

Добре відомо, що типова навчальна програма CS не готує для галузі, не стільки, скільки хоче, щоб ви були готові. Так, так, існує потреба у спеціальній інженерній програмі, і обидві повинні бути чіткими, хоча точно на одному факультеті.


1

Вони повинні бути різних дисциплін, але не на рівні бакалаврату. Я просто не бачу, як вони можуть базувати все, що потрібно для інженерії програмного забезпечення на бакалавраті. Так само, як ми не бачимо бакалавратів системної інженерії (де люди отримують ступінь MS після здобуття наукового ступеня EE, CE, Mechanical Eng або CS), це аналогічний випадок із Software Engineering.

Це мультидисциплінарний підхід, що базується на інформатиці та / або ІМС. Люди справді стають інженерами програмного забезпечення на практиці (а не лише в назві) після того, як продовжують передові курсові роботи та / або досвід роботи в цій галузі, за умови, що пізніше це робиться в середовищах, що ведуть інженерію програмного забезпечення.

Більшість людей мають назви програмної інженерії, але насправді не просунулися поза кодування. Це не проти них, а спостереження - вони не були достатньо схильні до того типу роботи, яка допомогла б їм накопичити досвід роботи поза кодування. Що ще гірше, більшість робочих місць та організацій жорстоко працюють і не ведуть належної інженерії програмного забезпечення.

Крім того, без певної роботи чи зрілості зріст, інженерно-технічний матеріал просто пролетить над головою більшості студентів з нижчих класів.


Якщо ви хочете дізнатись, як вони "стискають усе, що потрібно для інженерії програмного забезпечення на бакалавраті", погляньте на першу програму бакалаврату в США: se.rit.edu
Томас Оуенс

Якщо я чогось не пропускаю, вони цього не спалахнули. Вони просто створили розширену навчальну програму на 192 кредити. Це виходить за рамки типової навчальної програми з 60 -80 кредитних курсів, яку ви знайдете в CS та MIS - тут відбувається набагато більше курсів, достатньо, щоб зробити її порівнянною з подвійними спеціальностями (або здобуттям ступеня бакалавра та бакалавра). Мені подобається потік та інтеграція інших інженерних дисциплін на старшому курсі. Це ідеальна навчальна програма, яку можна слідувати. Але це просто доводить мою думку, що ти не можеш отримати SE лише типовим навантаженням курсу.
luis.espinal

І я зауважу тут, що ви витрачаєте стільки зусиль, і ви просто отримуєте ступінь низького ступеня (на відміну від виконання аналогічних курсових робіт, щоб отримати подвійні спеціальності або ступінь нижчого рівня та ступінь.) Дублянка має значення, на жаль. Можливо, це занепокоєння матиме менше значення, коли такі ступені СЕ стануть більш поширеними.
luis.espinal

Це чверть системи, це означає, що це точно таке ж навантаження, як і ступінь CS (або будь-яка інша ступінь бакалавра) того ж університету. Зрештою, це 4 роки занять (10 тижнів занять, 1 тиждень іспитів на квартал, 3 чверті на рік), 1 рік кооперативу.
Томас Оуенс

Не зовсім. Це не рівнозначно, коли мова йде про робоче навантаження. В даний час я переслідую другого магістра (CE + EE) в WPI, який дотримується аналогічного формату (3 чверті, 10 тижневих занять + 1 тиждень для іспитів). З досвіду подібні програми є більш жорсткими і охоплюють більше, ніж типова нижча 60-80 градусів. Зауважте, це не критика програми . Я вважаю, що потрібно реально висвітлити інженерію програмного забезпечення на рівні низького рівня. І подібний підхід повинен бути необхідний і для КС (оскільки типовий КС вже не охоплює достатньо практичного, багатодисциплінарного практикуму в наші дні)
luis.espinal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.