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


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.