Bilgisayar Bilimi hangi disipline aittir? [kapalı]


15

Bilgisayar Bilimi bilimi, uygulamalı matematik, mühendislik, sanat, felsefe midir? "Diğer"?

Arka plan sağlamak için, Steven Wartik'in Scientific American için " Ben gerçek bir bilim adamı değilim ve sorun değil " başlıklı blog yazısı . Makale bu soru için bazı iyi konuları içeriyor, ancak cevapladığından daha fazla açık bırakıyor.

Eğer disiplini düşünebilirseniz, bilgisayar bilimi tanımına nasıl uyum sağlar? Bilgisayar Bilimi disiplini hangi programcıların veya akademisyenlerin yaptıkları üzerine mi dayanmalıdır ? Bu konuda derin düşünmüş görünen insanlardan ne tür cevaplar alıyorsunuz? Hangi nedenleri var?


1
Bilgisayar Bilimi'nin bir bilim olduğunu söyleyen akademisyenlerin nedenini açıklamak için tamamen farklı bir nedeni var.
Macneil

5
Bilgisayar Bilimi, biraz daha az politikaya sahip olan Siyaset Bilimidir.
İş

1
bilgisayar bilimi uygulamalı matematiğin bir dalıdır ... "bilim", bilgisayar biliminde bulunmayan bilimsel yöntemi kullanmayı ima eder; ancak her yeni disiplinin bilim kelimesini adının sonuna koymak istediği zaman adlandırılmıştır.
red-dirt

2
@ red-dirt Bu doğru değil. CompSci'de bilimsel bir yöntem var; Deneyler, resmi kanıtlar vb. var. Hardcore bilgisayar bilimcilerinin çoğu Matematik ve resmi mantığa girer (bkz: lambda hesabı, durma problemi, vb.) ve hakemli dergilerde makaleler yayınlar. Onları, kelimenin herhangi bir tanımıyla bilim adamı olmayan "metodolojileri" icat eden insanlarla karıştırmayın.
Andres F.

1
@ red-dirt AndresF'ye benzer şekilde, daha pratik uygulama tarafında, hata ayıklama sırasında temel bilimsel yöntem (varsayım, test, kontrol, tekrar) devreye girer - bu genellikle programlama için harcanan zamanın çoğunu alır.
Aralık'ta Izkata

Yanıtlar:


30

İki farklı BT disiplini vardır:

  • Bilgisayar Bilimi - Bilgisayar ve disiplin çalışmalarının bilimsel yöntem kullanılarak yapılmasıdır.

  • Yazılım Mühendisliği - Uygun mühendislik prensiplerine göre yazılım tasarlama ve uygulama disiplini.

İkisi bir şekilde örtüşüyor, ancak ayrım gerçekten bilimin mühendislikten istenen sonuçlarıyla ilgili. Bilimsel bir disiplinin istenen sonucu bilgidir. Mühendislik disiplininin istenen sonucu işe yarayan şeylerdir.

Sorunuzu cevaplamak için:

Bilgisayar Bilimi bilimi, uygulamalı matematik, mühendislik, sanat, felsefe midir? "Diğer"?

Bilgisayar Bilimi Bilimdir ... düzgün yapıldığında. Ancak, diğer disiplinlerde olduğu gibi CS Matematik, Mühendislik, Fizik Bilimleri, Sosyal Bilimler, Felsefe vb. İle örtüşmektedir.

Programcıların çoğunun ne Bilgisayar Bilimi ne de Yazılım Mühendisliği olmadığını da ekleyeceğim. Daha çok bir zanaatkarın yaptığı gibi.

Ne yazık ki, ne akademik Bilgisayar Bilimi ne de Yazılım Mühendisliği mesleği eski bilim ve mühendislik disiplinleri kadar titiz değildir. (Geleneksel olarak titiz olan Bilgisayar Bilimi alanları vardır; örneğin, güçlü bir matematiksel temeli olanlar. Ancak birçok alan için, gerçekten önemli olan sorular üzerinde uygun bilimsel çalışmalar yapmak çok zor / pahalıdır.)


1
Ayrıca donanım mühendisliği de var - birisi yazılımın çalışması için fiziksel bilgisayarları tasarlamalı - ve bu gerçekten Elektronik Mühendisliği'nin (büyük) bir alt disiplini.
Donal Fellows

Zanaatkar benzetmesi için +1, bunun Yazılım Mühendisinin bir CS'nin ne yaptığını açıklamak için en kesin kavram olduğunu fark ettim. İşte O'Reilly'den ücretsiz kitap için bir bağlantı. apprenticeship-patterns.labs.oreilly.com/ch01.html
romeroqj

"Ve ne yazık ki, ne akademik Bilgisayar Bilimi ne de Yazılım Mühendisliği mesleği eski bilim ve mühendislik disiplinleri kadar titiz değildir": Bu ifadeye katılmıyorum. Diğer şeylerin yanı sıra, Bilgisayar Bilimi titiz olmasaydı, programlama dillerinde, derleyicilerde (ve arkasındaki tüm resmi dil teorisinde), şifrelemede vb. Tüm bu uygulamalar çoğunlukla akademide geliştirilmiş sağlam bir temele sahiptir.
Giorgio

@Giorgio - Alıntıladığınız cümlenin hemen ardından yazdıklarımı okumamanız üzücü ...
Stephen C

@Stephen C: Okudum ve hala Bilgisayar Bilimi'nin diğer bilimlerden daha az titiz olduğuna ikna olmadım (ama tabii ki yanlış olabilirim). Ya da belki de ilk önce kişinin “bilimsel” ve “titiz” olarak gördüğü şeyleri tanımlaması gerekir, ama bu uzun bir tartışma gerektirebilir, sanırım.
Giorgio

12

Programcılar nadiren "bilgisayar bilimi yaparlar". Çoğunlukla kullanmak açıkçası, bir mühendislik dalıdır "yazılım mühendisliği", sonuçlarını.

Bunun dışında Bilgisayar Bilimi Uygulamalı Matematiktir. CS'yi uygulamalı matematiğe şüphesiz ait bir şeyle karşılaştırırsanız, çok benzerlik göreceksiniz.

Bilgisayar bilimcileri, teorinin çoğunu Matematik'ten (mantık, grafik teorisi, kombinatorik, vb.) Alarak ve aynı zamanda ona katkıda bulunan hesaplama yollarını (algoritmalar) tasarlar ve araştırırlar. Tıpkı uygulamalı matematik gibi.

Bu modellerin ve algoritmaların özelliklerini teorik olarak değerlendirir ve modelleme deneyleri yapar (test programları yaz). Uygulamalı matematikçiler gibi, kümelerdeki tüplerdeki sıvı akışını simüle ettiği gibi, bilgisayar bilimcileri de algoritmalarının uygulamalarını denemek için bilgisayar kullanırlar. Bu deneylerin sonuçları doğrudan üretime geçer: bir petrol rafinerisine veya stok analiz yazılımı.

Bitirdiğim üniversitede bilgisayar bilimi için özel bir bölüm bile yok: bilgisayar dışındaki alanların yanı sıra bilgisayar bilimi koltuğu Uygulamalı Matematik Bölümü'nün bir parçasıdır.


ancak diğer üniversitelerde Bilgisayar Bilimi Matematik Fakültesi içinde ayrı bir bölüm, Mühendislik Fakültesi, Fen Fakültesi veya yukarıda belirtilenlerin hiçbiri değildir. Bunlar idari / örgütsel meselelerdir ve asıl konu materyali ile pek ilgisi yoktur.
Stephen C

@Stephen, bu yüzden "çoğu üniversitede" veya "birçok üniversitede" demek yerine üniversiteyi belirledim :-) Bu, cevabın özü değil, sadece küçük bir örnek.
P

1
bunun "küçük bir örnek" olduğuna eminim, ama benim amacım bunun temsili bir örnek olmadığı ve tartışmanızla özellikle ilgili olmadığıdır. Açıklamak gerekirse, çalıştığım Üniversite Fakülteleri yeniden yapılandırma sürecindedir ... neyle ilgili olduğu konusunda derin bir düşünce yüzünden değil ... ama idari maliyetleri düşürmek için . Birkaç yıl önce CS ve Elec Eng okulları aynı nedenden ötürü birleştirildi .
Stephen C

İlk cevabımda belirttiğim gibi, bilgisayar bilimi, hesaplamalı otomatların tasarımı ve uygulamasıyla ilgilenen uygulamalı bir matematik disiplinidir. Programlama bilgisayar bilimi değildir. Yazılım, bir havya kırmadan hesaplama otomata uygulamak için bir araçtır (herhangi bir program yeterli gayrimenkul verilen sıralı ve kombinatoryal mantık kullanılarak uygulanabilir). Von Neumann mimarisi, “yumuşak” özel amaçlı otomataların oluşturulması için bir temel görevi gören genel amaçlı bir otomat olması bakımından ondan önceki mimarilerden farklıydı.
bit-twiddler

1
@ bit-twiddler - Tanımınız çok dar. Geleneksel olarak "bilgisayar bilimi" olarak sınıflandırılan birçok akademik alanı içermez.
Stephen C

5

Bilgisayar Bilimi, günümüzde birçok şeyi kapsayan bir terimdir:

  • Usta zanaatkârlar, araçları ile deneyimlerine (ve çıraklara sahip olma) dayalı olarak başkaları için çalışırlar.
  • Araç ustaları için yeni araçlar icat edip yaratıyor
  • Araştırmacılar, takım demircileri için yeni alaşımlar ve plastik gibi diğer malzemeler geliştiriyorlar.
  • Teorik bilim adamları alloymakers biliyorum böylece şeyler nasıl çalıştığını ortaya çıkarıyor onların araçları çalışmalarını.

Yukarıdakilerin hepsinin sadece "bilgisayar bilimcileri" yerine nasıl farklı adlandırmalara sahip olduğuna dikkat edin. Aradaki fark, Bilgisayar Bilimi'nin isimlendirmek için çok yeni olmasıdır.


Nokta 2 bir araç ustası kırkayak daha , ama bu cevap doğru :)
ZJR

1

Her şeyden önce, bilimi hesaplamak . Bu, hesaplamanın ardındaki matematikle ilgilenir.
Mühendisliğe daha odaklı diğer disiplinler de vardır.

Fark, ilgili bilim ve mühendislik disiplinleri ile aynıdır. Biri doğrulukla, diğeri hassasiyetle ilgilidir. Bilimi hesaplamak teorik, diğerleri problemlere uygulanan bilimdir: mühendislik dalları.


1
MIT seninle aynı fikirde değil eecs.mit.edu
Armand

@Alison, lütfen wiki girişini de düzeltin ( en.wikipedia.org/wiki/Computer_science ).
CMR


0

Bilgisayar bilimi, hesaplamalı otomatların tasarımı ve uygulamasıyla ilgilenen uygulamalı matematiğin bir dalıdır. Yazılım mühendisliği, von Neumann mimarisi için kodun biçimsel tasarımını ve yapımını ele alan bilgisayar biliminin uygun alt kümesidir. Von Neumann mimarisi bir bilgi işlem makinesini uygulamanın tek yoludur. Örneğin, Enigma kodlu mesajları kırmak için kullanılan makine von Neumann makinesi değildi.

Yazılım mühendisliği bir uygulayıcı disiplindir. Bilgisayar bilimi, araştırma odaklı bir disiplindir. Çoğu bilgisayar bilimcisi lisans öğrencisi yazılım geliştirme ile sonuçlanır, çünkü araştırma en az bir yüksek lisans derecesine sahip olmayı gerektirir, bu da bilgisayar biliminin yüceltilmiş bir programlama sertifikası olduğu inancını güçlendirir.


3
Birçok akademik bilgisayar bilimcisinin CS tanımını bu kadar dar kabul edeceğini sanmıyorum.
Stephen C

0

En doğru şekilde "Bilgisayar Bilimi" olarak adlandırılan disiplin, kontrol ettiğim çoğu üniversitede mühendislik disiplinlerine benzer bir uygulamalı bilimdir; eğer büyükse, bir "BS" veya "MS" alırsınız. Texas Tech'in CS derecesi Mühendislik koleji tarafından verildi. Öğretildiği gibi disiplin çoğunlukla teoriktir; Turing makineleri, DAs / NDA'lar ve "günlük" programcının kafataslarında tıkırtı tutmak zorunda olmadığı diğer temel kavramları öğrenirsiniz. Ayrıca yüksek matematik bir pantload olsun; Texas Tech CS derecesi, ve ben de birçoğu bahis oynayacağım, hemen hemen size Matematik bir küçük onunla gitmek için eller. Buna göre, üniversitenin derece pistleri, pratik düşük seviyeli uygulamaların ağır bir çizgisine katkıda bulunur; bir montaj dili, 3. nesil bir dil,

Ancak, geçimini kodlayan insanların çoğu "bilgisayar bilimcisi" değildir; açıkçası, "yazılım geliştiriciler" veya (analiz / tasarım eklediğinizde) "yazılım mühendisleri" dir; bu iş çok daha az donanım düzeyindedir (bunun temellerini bilmeniz gerekmesine rağmen), çok daha fazla sistem analizi, tasarım ve düz kodlamadır. Birçok üniversitenin bunun için farklı bir yolu vardır; Texas Tech'te buna "Bilgi Sistemlerinin Yönetimi" adı verildi ve İşletme derecesi (BBA / MBA) oldu. Bu parça yüksek matematikte daha hafifti (cebir ve diferansiyel / integral kireç hakkında bilmeniz gerekenler "iş matematiğinin" iki yarısına sıkıştırılmış ve vektör / tensör kalk, lineer cebir, vb.) finansal matematik (her bir istatistik ve finans dönemi, her biri iki muhasebe ve ekonomi ile). İşletim sistemlerinde daha hafif, veritabanları, web sunucuları, ağ ve genel sistem yönetimi gibi "yığın" teknolojilerde daha ağır. Düşük seviyeli dillerde daha hafif, devre tasarımı ve yapay zeka, 3. ve 4. nesil dillerde daha ağır, sistem analizi ve proje yönetimi. Bu dereceyi Texas Tech'ten aldım ve bıraktığım zaman en az bir dönem Java, VB, C # ve web dilleri (HTML / CSS / PHP), bir yıl OOA & D ve çeşitli derslerim vardı. BT proje yönetiminde.

Hangisi gerçek dünyada daha iyidir? MIS BBA'yı aldım, kardeşim CS BS aldı ve ikimiz de kabaca yazılım mühendisleriyle aynı maaş düzeyinde (yaşam maliyetine göre ayarlandı) çalışıyoruz. İş için gerekli OOA & D'nin birçoğunu öğrenmek zorunda olduğu gibi, temel C ++ bilgisinden C # / Java'da oldukça hızlı bir şekilde döndü. Kendi açımdan, işletme yönetimi derslerine takılı kalırken elde ettiği kavramsal algoritma çalışmasının iki yarıyılında olsaydım (evet, MIS bir "Yönetim" derecesidir, ancak bunun% 99'unun yönetmek ve değil örnekle öğrenmiş oldu başkalarını) yönetmek.

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.