Yazılım Mühendisliği ve Bilgisayar Bilimleri ayrı ana dallar mı olmalı? [kapalı]


19

Onlarca yıldır yazılım geliştiricisi olmak için kabul edilen derece "Bilgisayar Bilimi" idi.
Bu derecenin öğrencileri gerçekten yazılım geliştirmeye hazırlayıp hazırlamadığı hakkında birkaç sorumuz var .

Bazı okullar, son 8 yıl içinde, programlamada çok sayıda farklı ana dal sunmaya başlamıştır. Okulumdaki müfredatı kullanarak:

  • Bilgisayar Bilimi sonra ilk yıl içinde bazı intro programlama kursları ile başlar ve teorik bilgisayar bilimi, algoritmalar ve OS şeyler biraz odaklanır. Çoğu sınıf, yalnız veya çift olarak yapılan birkaç küçük proje ve ödev içerir.
  • Aynı giriş programlama dersleri ile başlayan Yazılım Mühendisliği birkaç teori dersi yapar ve daha sonra yazılım geliştirme uygulamalarına (test, süreç metodolojileri, yazılım ölçümleri, gereksinim toplama) ve yazılım tasarımına (dağıtılmış sistem tasarımı, bilgi sistemi tasarımı) gider. , gerçek zamanlı / gömülü tasarım, alt sistem tasarımı, vb.)

Farklı okullar farklı şekilde yapar, bu yüzden yukarıdaki sadece aşina olduğum gerçek dünya örneğidir. Ne soruyorum: Programlamada farklı ana dallara ihtiyaç var mı?


1
Pek sayılmaz. Bu becerileri öğrenmenin yolu onlara bir ders vermek değil, onlara gerçek proje çalışması vermektir
Casebash

Sizi olmadığını düşündüren nedir? RIT hem derece olarak sunar.
Andy,

Andy: Biliyorum- RIT'e gittim ve SE derecesi aldım. Onların olmadığını soruyordu gerektiğini onlar şu anda da olmasın, ayrı. :)
Fishtoaster

Yanıtlar:


28

Evet, olmalılar.

Bilgisayar bilimi ve yazılım mühendisliği arasındaki ilişki, fizik ve makine mühendisliği arasındaki ilişki ile aynıdır. Biri teorik altyapıyı sağlarken, diğeri bu teorileri iyi mühendislik ilkeleriyle birlikte alır ve bunları yazılımın tasarımına ve uygulamasına uygular.

Yeni ve daha iyi yazılımlar üretmek için her ikisine de ihtiyacınız var. İyi bir bilgisayar bilimi eğitimi, insanları yeni ve daha iyi algoritmalar, veri yapıları, programlama dilleri ve paradigmaları, derleyiciler ve yazılım sistemlerini geliştirmek için kullanılabilecek bir dizi başka şey üretmeleri için eğitir. Öte yandan, iyi bir yazılım mühendisliği eğitimi, bir müşterinin istediği ve ihtiyaç duyduğu sistemi kurmak için yazılım geliştirme yaşam döngüsü ve süreç modelleri hakkında bilgi ile birlikte, bilimsel bir hesaplama çalışmasıyla elde edilen bu araçları ve bilgileri almanız için sizi eğitir. .


2
Fizik / mühendislik benzetmesi çok kullandığım bir yöntemdir. Köprüler tasarlamak ve inşa etmek için fizikçiler işe almıyoruz, neden program tasarlamak ve inşa etmek için bilgisayar bilimcilerini işe alıyoruz?
HerbN

1
Çünkü bilgisayar bilimleri programları tipik fizik programınızdan daha fazla program oluşturmayı öğretir;)
Wayne Werner

2
@WayneWerner: Hayır, gerçekten, gerçekten bilmiyorlar.
DeadMG

3

Tipik bir CS müfredatının, yine de hazırlanmanızı istediği kadar değil, endüstri için bir tane hazırlamadığı iyi bilinmektedir. Yani evet, bir yazılım mühendisliği ana dalına ihtiyaç var ve ikisi de kesinlikle aynı fakültede olsa da farklı olmalı.


1

Farklı disiplinler olmalı, ancak lisans düzeyinde olmamalıdır. Yazılım Mühendisliği için gereken her şeyi bir lisans düzeyinde nasıl sıkıştırabileceklerini görmüyorum. Tıpkı Sistem Mühendisliği'nde lisans derecelerini görmediğimiz gibi (insanların EE, CE, Mekanik Müh veya CS'de bir derece aldıktan sonra MS aldıkları), Yazılım Mühendisliği ile benzer bir durumdur.

Bilgisayar bilimi ve / veya YBS'ye dayanan multidisipliner bir yaklaşımdır. İnsanlar, daha sonra yazılım mühendisliğini ileten ortamlarda yapılması şartıyla, alanda ileri düzey kurs çalışması ve / veya iş tecrübesi peşinde koştuktan sonra pratikte (sadece başlığında değil) yazılım mühendisleri olurlar.

Çoğu insan yazılım mühendisliği unvanlarına sahiptir ancak kodlamanın ötesinde gerçekten ilerlememiştir. Bu onlar için bir dis değil, bir gözlem - kodlamanın ötesinde iş deneyimini biriktirmelerine yardımcı olacak iş türüne yeterince maruz kalmadılar. Daha da kötüsü, çoğu iş ve organizasyon acımasızca yürütülmektedir ve uygun yazılım mühendisliğini yapmaya elverişli değildir.

Ayrıca, herhangi bir çalışma veya skolastik olgunluk olmadan, yazılım mühendisliği materyali çoğu lisans öğrencisinin başlarının üzerinden uçacaktır.


"Lisans derecesinde Yazılım Mühendisliği için gereken her şeyi nasıl sıkıştırdıklarını" bilmek istiyorsanız, ABD'deki ilk lisans SE programına bakınız
Thomas Owens

Bir şey eksik olmadıkça, onu sıkmadılar. 192 kredili genişletilmiş bir müfredat oluşturdular. Bu, CS ve MIS'de bulduğunuz tipik 60-80 kredi lisans müfredatının ötesinde - burada devam eden çok daha fazla ders var, çift anadal (veya bir lisans ve lisans derecesi almak) ile karşılaştırılabilir hale getirmek için yeterli. Son sınıftaki diğer mühendislik disiplinlerinin akışını ve entegrasyonunu seviyorum. Bu takip edebileceğiniz mükemmel bir müfredattır. Ama sadece tipik bir lisans ders yükü ile SE elde edemeyeceğinizi kanıtlıyoruz.
luis.espinal

Burada gördüğüm bir uyarı, çok fazla çaba harcamanız ve sadece tek bir undegrad derecesi almanızdır (çift anadal veya lisans ve lisans derecesi almak için benzer kurs çalışmasını tamamlamanın aksine) Koyun derisi meselesi maalesef. Belki bu tür SE dereceleri daha yaygın hale geldiğinde endişe daha az önemli olacaktır.
luis.espinal

Bu bir çeyrek sistemdir, yani aynı üniversitenin CS derecesi (veya başka bir lisans derecesi) ile aynı iş yüküdür. Sonunda, 4 yıllık dersler (10 haftalık dersler, çeyrek başına 1 haftalık sınavlar, yılda 3 çeyrek), 1 yıllık kooperatif.
Thomas Owens

Pek sayılmaz. İş yükü söz konusu olduğunda eşdeğer değildir. Şu anda WPI'da benzer bir formatta (3 çeyrek, 10 hafta sınıf + sınavlar için 1 hafta) ikinci bir yüksek lisans (CE + EE) araştırıyorum. Deneyimlerden, bunlar gibi programlar daha titiz ve 60-80 derece tipik lisans daha fazla kapsamaktadır. Programın bir eleştirisi değil, dikkat edin . Yazılım mühendisliğini lisans düzeyinde gerçekten kapsamak gerektiğini düşünüyorum. Ve benzer bir yaklaşım CS için de gerekli olmalıdır (tipik CS artık günümüzde yeterli uygulamalı, çok disiplinli uygulamayı
kapsamamaktadır
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.