소프트웨어 공학과 컴퓨터 과학은 별도의 전공이어야합니까? [닫은]


19

수십 년 동안 소프트웨어 개발자가되기 위해 받아 들인 학위는 "Compter Science"였습니다.
우리는 그 학위가 학생들이 소프트웨어를 개발할 수 있도록 실제로 준비시키는 지에 대해 이미 몇 가지 질문을했습니다 .

지난 8 년 동안 일부 학교는 프로그래밍 분야에서 여러 가지 전공을 제공하기 시작했습니다. 우리 학교의 커리큘럼 사용 :

  • Computer Science 는 첫 해에 몇 가지 소개 프로그래밍 과정으로 시작한 다음 이론적 인 컴퓨터 과학, 알고리즘 및 약간의 OS에 중점을 둡니다. 대부분의 수업은 몇 가지 작은 프로젝트와 숙제를 포함하며 혼자 또는 쌍으로 이루어집니다.
  • 동일한 인트로 프로그래밍 과정으로 시작하는 소프트웨어 엔지니어링 은 몇 가지 이론을 수행 한 다음 소프트웨어 개발 실습 (테스트, 프로세스 방법론, 소프트웨어 메트릭, 요구 사항 수집) 및 소프트웨어 디자인 (분산 시스템 설계, 정보 시스템 설계)으로 진행됩니다. , 실시간 / 임베디드 디자인, 서브 시스템 디자인 등)

다른 학교에서는 다르게 행동하므로 위의 내용은 내가 익숙한 실제 사례 일뿐입니다. 내가 묻는 것은 : 프로그래밍에서 뚜렷한 전공이 필요한가?


1
실제로는 아닙니다. 이러한 기술을 배우는 방법은 그들에게 과정을 가르치는 것이 아니라 실제 프로젝트 작업을하는 것입니다
Casebash

그들이 왜 그렇지 않다고 생각합니까? RIT는 둘 다 학위로 제공합니다.
Andy

Andy : 알고 있습니다. 저는 RIT에 가서 SE 학위를 받았습니다. 나는 그들이 현재인지 아닌지, 분리 되어야 하는지 물었다 . :)
Fishtoaster

답변:


28

그렇습니다.

컴퓨터 공학과 소프트웨어 공학의 관계는 물리학과 기계 공학의 관계와 동일합니다. 하나는 이론적 배경을 제공하고 다른 하나는 좋은 이론과 함께 이러한 이론을 취하여이를 소프트웨어의 설계 및 구현에 적용합니다.

새롭고 더 나은 소프트웨어를 제작하려면 둘 다 필요합니다. 우수한 컴퓨터 과학 교육은 사람들에게 새롭고 더 나은 알고리즘, 데이터 구조, 프로그래밍 언어 및 패러다임, 컴파일러 및 소프트웨어 시스템을 향상시키는 데 사용할 수있는 기타 여러 가지를 생성하도록 훈련시킵니다. 반면 우수한 소프트웨어 엔지니어링 교육은 고객이 원하는 시스템을 실제로 구축 할 수 있도록 소프트웨어 개발 수명주기 및 프로세스 모델에 대한 지식과 함께 과학 계산 연구를 통해 얻은 이러한 도구와 지식을 익히도록 훈련시킵니다. .


2
물리 / 엔지니어링 비유는 제가 많이 사용하는 것입니다. 우리는 다리를 설계하고 건축하기 위해 물리학자를 고용하지 않습니다. 왜 우리는 프로그램을 설계하고 건축하기 위해 컴퓨터 과학자를 고용합니까?
HerbN

1
컴퓨터 과학 프로그램은 일반적인 물리 프로그램보다 프로그램을 작성하는 방법에 대해 조금 더 가르치기 때문에;)
Wayne Werner

2
@ WayneWerner : 아니, 그들은 정말, 그렇지 않습니다.
DeadMG

3

일반적인 CS 커리큘럼은 업계를 위해 준비하지는 않지만 어쨌든 준비되기를 바라지는 않습니다. 그렇습니다. 소프트웨어 공학 전공이 필요하며, 같은 학부에서도 분명히 두 개를 구별해야합니다.


1

학부 수준이 아닌 다른 학문이어야합니다. 나는 그들이 학사 학위에서 소프트웨어 공학에 필요한 모든 것을 비 좁힐 수있는 방법을 보지 못합니다. 우리가 Systems Engineering에서 학사 학위를 보지 못하는 것과 같은 방식으로 (EE, CE, Mechanical Eng 또는 CS에서 학위를 취득한 후 MS를 취득하는 경우) Software Engineering과 비슷한 경우입니다.

이것은 컴퓨터 과학 및 / 또는 MIS에 크게 기반을 둔 다 분야 접근 방식입니다. 후자는 소프트웨어 엔지니어링의 전도성 환경에서 수행된다면, 사람들은 현장에서 고급 과정 작업 및 / 또는 작업 경험을 추구 한 후 실제로 (제목이 아니라) 실제로 소프트웨어 엔지니어가됩니다.

대부분의 사람들은 소프트웨어 엔지니어링이라는 제목을 가지고 있지만 실제로 코딩을 넘어서는 것은 아닙니다. 이것은 그들에 대한 표시가 아니라 관찰입니다-그들은 코딩 이상의 업무 경험을 축적하는 데 도움이되는 업무 유형에 충분히 노출되지 않았습니다. 더 나쁜 것은, 대부분의 작업과 조직이 엄숙하게 운영되고 있으며 적절한 소프트웨어 엔지니어링을 수행하지 않는 것입니다.

또한 약간의 작업이나 학업 적 성숙 없이는 소프트웨어 공학 자료가 대부분의 저학년 학생들의 머리 위로 날아갑니다.


이들이 "학사 학위에 필요한 소프트웨어 공학을 모두 활용하는 방법"을 알고 싶다면 미국에서 최초의 학사 SE 프로그램을 살펴보십시오. se.rit.edu
Thomas Owens

내가 뭔가를 놓치지 않는 한, 그들은 비틀 거리지 않았습니다. 그들은 단순히 192 학점 확장 커리큘럼을 만들었습니다. 이것은 CS 및 MIS에서 볼 수있는 전형적인 60-80 학점 학점 이상의 교과 과정을 넘어서고 있습니다. 이중 전공을 수강하는 (또는 학부 및 대학원 학위를 취득 할 수있는) 과정에 비해 훨씬 더 많은 과정이 있습니다. 나는 시니어 년에 다른 공학 분야의 흐름과 통합을 좋아합니다. 따라갈 수있는 완벽한 커리큘럼입니다. 그러나 그것은 전형적인 저학년 코스로드만으로는 SE를 얻을 수 없다는 내 요지를 입증합니다.
luis.espinal

그리고 제가 여기서 볼 수있는 한 가지주의 할 점은 많은 노력을 기울이고 단순히 단일 학점을 얻지 못한다는 것입니다. 그러한 SE 학위가 더 널리 퍼지면 그 문제는 덜 중요 할 것입니다.
luis.espinal

쿼터 시스템이므로 동일한 대학의 CS 학위 (또는 다른 학사 학위)와 동일한 작업량을 의미합니다. 결국 4 년의 수업 (10 주 수업, 1 주일에 한 번의 시험, 1 년에 3 번의 수업), 1 년의 협동 수업입니다.
Thomas Owens

실제로는 아닙니다. 작업 부하와 관련하여 동일하지 않습니다. 현재 WPI에서 비슷한 형식 (3/4, 10 주 수업 + 시험 1 주)을 따르는 두 번째 마스터 (CE + EE)를 추구하고 있습니다. 경험상, 이와 같은 프로그램은보다 엄격하며 일반적인 학부생 60-80도 이상을 포함합니다. 프로그램에 대한 비판은 아닙니다 . 저학년 수준의 소프트웨어 엔지니어링을 실제로 다루어야한다고 생각합니다. 그리고 CS에 대해서도 비슷한 접근법이 필요하다 (일반적인 CS는 더 이상 실제적인 여러 학문적 실습을
다루지 않기 때문에
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.