Должны ли программирование и информатика быть отдельными специальностями? [закрыто]

19

В течение многих десятилетий, чтобы стать разработчиком программного обеспечения, была принята степень «Compter Science».
У нас уже было несколько вопросов о том, действительно ли эта степень готовит студентов к разработке программного обеспечения.

В последние 8 лет некоторые школы начали предлагать несколько различных направлений в программировании. Используя программу из моей школы:

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

Разные школы делают это по-разному, так что вышеизложенное - просто пример из реальной жизни, с которым я знаком. Я спрашиваю: есть ли необходимость в разных направлениях программирования?

Fishtoaster
источник
1
На самом деле, нет. Способ овладеть этими навыками состоит не в том, чтобы преподавать им курс, а в том, чтобы дать им реальную работу
над
Что заставляет вас думать, что это не так? RIT предлагает оба в градусах.
Энди
Энди: Я знаю, я пошел в RIT и получил степень SE. Я спрашивал, должны ли они быть отдельными, а не являются ли они в настоящее время. :)
Fishtoaster

Ответы:

28

Да, они должны быть.

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

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

Томас Оуэнс
источник
2
Я часто использую аналогию с физикой / техникой. Мы не нанимаем физиков для проектирования и строительства мостов, почему мы нанимаем компьютерных специалистов для проектирования и создания программ?
HerbN
1
Потому что компьютерные программы учат немного больше о том, как создавать программы, чем ваша обычная физическая программа;)
Уэйн Вернер
2
@WayneWerner: Нет, они действительно, действительно нет.
DeadMG
3

Общеизвестно, что типичная учебная программа по КС не готовит ее для отрасли, не так сильно, как она того требует. Так что да, есть необходимость в специализации по разработке программного обеспечения, и они должны быть разными, хотя определенно на одном и том же факультете.

EpsilonVector
источник
1

Это должны быть разные дисциплины, но не на уровне бакалавриата. Я просто не понимаю, как они могут собрать все, что нужно для разработки программного обеспечения на уровне бакалавриата. Точно так же, как мы не видим степени бакалавра в области системной инженерии (где люди получают MS после получения степени в EE, CE, Mechanical Eng или CS), это аналогично случаю разработки программного обеспечения.

Это междисциплинарный подход, в значительной степени основанный на компьютерных науках и / или MIS. Люди действительно становятся инженерами программного обеспечения на практике (а не только в названии) после прохождения продвинутой курсовой работы и / или опыта работы в этой области, при условии, что последующее делается в средах, проводящих разработку программного обеспечения.

У большинства людей есть названия разработки программного обеспечения, но они не продвинулись дальше кодирования. Это не их оскорбление, а наблюдение - они не были достаточно подвержены тому типу работы, который помог бы им накопить опыт работы за пределами кодирования. Хуже того, большинство рабочих мест и организаций ужасно работают и не способствуют правильной разработке программного обеспечения.

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

luis.espinal
источник
Если вы хотите узнать, как они « сводят воедино
Томас Оуэнс
Если я что-то не упустил, они не ограничивали это. Они просто создали расширенную учебную программу с 192 кредитами. Это выходит за рамки типичной учебной программы для студентов с 60-80 кредитами, которую вы можете найти в CS и MIS - здесь проводится гораздо больше курсов, достаточных для того, чтобы их можно было сравнить с прохождением двойных специальностей (или с получением степени бакалавра и диплома). Мне очень нравится поток и интеграция других инженерных дисциплин в старшем году. Это идеальный учебный план, которому можно следовать. Но это просто подтверждает мою точку зрения, что вы не можете получить SE только с типичной учебной нагрузкой старшекурсника.
luis.espinal
И одно замечание, которое я вижу здесь, это то, что вы тратите так много усилий, и вы просто получаете одну степень неграмотности (в отличие от завершения аналогичной курсовой работы, чтобы получить двойную специализацию или степень бакалавра и магистра). К сожалению, овчина имеет значение. Возможно, эта проблема будет иметь меньшее значение, когда такие степени SE станут более распространенными.
luis.espinal
Это четверть системы, что означает, что это такая же рабочая нагрузка, что и степень CS (или любая другая степень бакалавра) того же университета. В итоге это 4 года занятий (10 недель занятий, 1 неделя экзаменов в квартал, 3 квартала в год), 1 год совместной работы.
Томас Оуэнс
На самом деле, нет. Это не эквивалентно, когда дело доходит до рабочей нагрузки. В настоящее время я ищу второго мастера (CE + EE) в WPI, который работает в аналогичном формате (3 квартала, 10 недель занятий + 1 неделя для экзаменов). Исходя из опыта, подобные программы являются более строгими и охватывают больше, чем обычные студенты 60-80 градусов. Заметьте, это не критика программы . Я думаю, что необходимо действительно охватить разработку программного обеспечения на уровне старшекурсников. И аналогичный подход также должен быть необходим для CS (так как типичный CS больше не охватывает достаточно практического, многопрофильного практического
обучения в