Должны ли программная инженерия и компьютерные науки быть отдельными специальностями?

Должны ли программная инженерия и компьютерные науки быть отдельными специальностями?
Должны ли программная инженерия и компьютерные науки быть отдельными специальностями? - alejandroescamilla @ Unsplash

На протяжении десятилетий общепринятой степенью, которую нужно было получить, чтобы стать разработчиком программного обеспечения, была "компьютерная наука".

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

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

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

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

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

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

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


LetsCodeIt, 18 мая 2023 г., 09:19