Apa definisi Ilmu Komputer, dan apa Ilmu dalam Ilmu Komputer?

39

Saya mengejar gelar BS dalam Ilmu Komputer, tetapi saya berada di titik awal, dan saya cukup yakin saya akan senang dengan pilihan saya mengingat bahwa itu sepertinya pendidikan yang fleksibel secara akademis dan karir untuk mengejar.

Karena itu, tampaknya ada berbagai definisi tentang apa sebenarnya Ilmu Komputer dalam hal akademia, sektor swasta, dan "Sains" yang sebenarnya dalam "Ilmu Komputer". tentang luasnya hal-hal pendidikan dalam Ilmu Komputer dapat diterapkan, dan akhirnya berbagai jalur dalam Ilmu Komputer telah dikejar.

Raphael
sumber
1
Di mana Ilmu dalam Ilmu Komputer? : cacm.acm.org/magazine/2012/10/…
avi
lihat juga cs meta apa itu ilmu komputer
vzn

Jawaban:

38

Ilmu komputer adalah keliru - sebenarnya tidak ada "ilmu" dalam ilmu komputer, karena ilmu komputer bukan tentang mengamati alam. Sebaliknya, bagian dari ilmu komputer adalah teknik , dan sebagian lagi adalah matematika .

Bagian yang lebih teoretis dari ilmu komputer murni matematika. Misalnya, apa algoritma yang baik untuk menyortir? Bagaimana kita mendefinisikan semantik bahasa pemrograman? Bagaimana kita bisa yakin bahwa sistem kriptografi aman?

Ketika ilmu komputer diterapkan, itu menjadi lebih seperti teknik. Sebagai contoh, apa cara terbaik untuk mengimplementasikan algoritma perkalian matriks? Bagaimana seharusnya kita merancang bahasa komputer untuk memfasilitasi penulisan program besar? Bagaimana kita dapat merancang sistem kriptografi untuk melindungi perbankan online?

Sebaliknya, ilmu pengetahuan adalah tentang hukum alam , dan lebih umum tentang fenomena alam . Fenomena yang terlibat dalam ilmu komputer adalah buatan manusia. Beberapa aspek ilmu komputer dapat dipandang sebagai percobaan dalam hal ini, misalnya studi empiris jaringan sosial, studi empiris jaringan komputer, studi empiris virus dan penyebarannya, dan pendidikan komputer (baik mengajar ilmu komputer dan menggunakan komputer untuk mengajar mata pelajaran lain). Sebagian besar contoh ini adalah ilmu komputer garis-batas, dan lebih multidisiplin. Yang paling dekat dengan metode ilmiah dalam ilmu komputer mungkin adalah studi jaringan dan perangkat perangkat keras lainnya, yang merupakan arus utama di subarea yang secara tidak resmi dikenal sebagai "sistem".

Meskipun contoh-contoh ini, sebagian besar inti dari ilmu komputer bukanlah ilmu sama sekali. Ilmu komputer hanyalah sebuah nama - tidak perlu masuk akal.

Adapun ruang lingkup ilmu komputer, definisi terbaik mungkin: apa yang para ilmuwan komputer lakukan. Ilmu komputer, seperti setiap disiplin akademis lainnya, adalah bidang yang luas, dan sulit untuk dipetakan sepenuhnya. Jika Anda ingin sampel dari apa yang orang anggap ilmu komputer, Anda dapat melihat bidang penelitian fakultas Anda.

Yuval Filmus
sumber
4
Ini adalah salah satu komentar paling jujur ​​dari para ilmuwan komputer yang pernah saya lihat. Terima kasih.
scaaahu
21
Ini sebenarnya tentang filsafat lebih dari tentang ilmu komputer - tetapi saya tidak setuju dengan jawaban ini. Ilmu komputer adalah keliru untuk ilmu komputasi , dan ilmu komputasi adalah ilmu dengan cara yang sama seperti, katakanlah, mekanik. Ada dasar matematika yang kuat, tetapi dasar ini tunduk pada validasi empiris - kami fokus pada Turing komputabilitas karena itulah cara dunia tampaknya bekerja, dan kami mempelajari gagasan lain karena komputabilitas Turing tidak memodelkan semua fenomena komputasi dunia nyata.
Gilles 'SANGAT berhenti menjadi jahat'
3
Saya pikir ide bahwa hanya yang mengamati fenomena alam adalah sains aktual adalah emanasi pemikiran materialis, sesuatu yang banyak orang akan tidak setuju. Secara etimologis, sains adalah kumpulan pengetahuan, dan meskipun beberapa mengatakan bahwa semua matematika adalah tautologi, saya ragu ada di antara mereka yang akan mengklasifikasikan matematika sebagai "bukan pengetahuan".
G. Bach
2
@Gilles Kamu tidak bisa serius. Selain orang-orang yang melakukan hiperkomputasi, tidak ada yang membantah gagasan Turing tentang komputabilitas. Poin yang lebih baik dapat dibuat mengenai gagasan kemampuan komputasi yang efisien (seperti dalam polytime berarti efisien), tetapi tidak ada yang mencoba lagi untuk menangkap efisiensi dalam model komputasi yang masuk akal - teori orang mengabaikan masalah dengan model, dan praktik orang mengabaikan model .
Yuval Filmus
2
@YuvalFilmus Untuk memberikan hanya dua contoh, mesin Turing tidak cukup untuk memodelkan sistem terdistribusi atau sinkron.
Gilles 'SANGAT berhenti menjadi jahat'
11

Mari kita mulai dengan kutipan dari salah satu bapak Ilmu Komputer modern: "Ilmu Komputer tidak lebih tentang komputer daripada astronomi adalah tentang teleskop" - Edsger Wybe DIJKSTRA

Jadi pada kenyataannya jika yang Anda minati adalah komputer dan pemrograman maka Anda tidak benar-benar tertarik pada ilmu komputer :-)

Saya pikir Wikipedia memiliki salah satu deskripsi terbaik: "Ilmu Komputer (disingkat CS atau CompSci) adalah pendekatan ilmiah dan praktis untuk komputasi dan aplikasinya. Ini adalah studi sistematis tentang kelayakan, struktur, ekspresi, dan mekanisasi proses metodis (atau algoritma) yang mendasari akuisisi, representasi, pemrosesan, penyimpanan, komunikasi, dan akses ke informasi, apakah informasi tersebut dikodekan dalam bit dan byte dalam memori komputer atau mesin yang ditranskripsi dan struktur protein dalam sel manusia. spesialisasi dalam teori komputasi dan desain sistem komputasi "

Namun pada kenyataannya seperti yang dinyatakan Yuval, sebagian besar universitas / perguruan tinggi telah pindah dari teori / ilmu komputer murni dan ilmu komputer sekarang merupakan campuran dari sains, matematika, teknik. Mengajar kami tidak hanya ilmu komputer murni, tetapi juga keterampilan praktis untuk menyelesaikan masalah tersebut dan masalah lainnya menggunakan komputer modern, bahasa pemrograman, sistem operasi, dan aplikasi perangkat lunak.

AquaAlex
sumber
3
Anda mengatakan pindah , tetapi apakah mereka pernah murni teoretis?
Agos
@ Agg Saya setuju dengan Anda tidak pernah ada periode yang benar-benar murni teoretis, tetapi saya akan mengatakan bahwa seiring berjalannya waktu dan bisnis membutuhkan lebih banyak programmer dan lebih sedikit ilmuwan komputer, derajat / diploma lebih banyak bergerak dari teoretis ke praktis. Saya tidak mengatakan yang satu lebih baik dari yang lain, hanya melakukan pengamatan.
AquaAlex
1
@AquaAlex Saya pikir itu mungkin cara terbaik untuk menggambarkan perbedaan nyata antara Ilmu Komputer lama ke Ilmu Komputer seperti yang dipikirkan saat ini: ia telah bergeser tajam menuju aplikasi praktis untuk menyelaraskan dengan tuntutan industri.
Mengapa ilmu komputer "murni" hanya menjadi teori? Sejauh yang saya tahu, itu tidak pernah menjadi deskripsi yang baik tentang apa itu ilmu komputer; masalah praktis selalu memberi informasi di lapangan.
Raphael
@ Raphael Semuanya tergantung pada apa yang Anda anggap "praktis". Menulis program komputer bukanlah aplikasi praktis dari CS. Sebagian besar ilmu menggunakan teori untuk memecahkan masalah dunia nyata / praktis dan banyak ilmu menggunakan komputer dan pemrograman untuk melakukan ini.
AquaAlex
11

Mungkin perlu disebutkan bahwa istilah Jerman untuk "Ilmu Komputer" adalah Informatik , yang melelehkan Infomation dan Mathematik . Saya pikir itu deskripsi yang bagus dan singkat tentang apa itu Ilmu Komputer. (Istilah Italia adalah informatica , dan saya yakin ada beberapa bahasa yang mengikuti garis yang sama).

john_leo
sumber
Artikel Wikipedia tentang ilmu komputer memiliki bagian tentang nama-nama yang berbeda en.wikipedia.org/wiki/Computer_science#Name_of_the_field - Saya sendiri tidak menyukai bagian "komputer" lebih daripada "sains". Saya belum menemukan bidang ilmiah yang menggunakan komputer jauh lebih sedikit saat ini daripada saya.
linac
2
@linac: Bidang lain menggunakan komputer untuk mempelajari hal lain. Ilmu komputer akhirnya menggunakan komputer untuk mempelajari komputasi. Dalam kedua kasus kita dapat menghapus komputer dan masih melakukan pekerjaan, hanya lebih lambat. Ingatlah bahwa itu adalah ide yang cukup modern bahwa "komputer" merujuk semata-mata ke kotak aktual yang mengimplementasikan beberapa perangkat keras yang mampu melakukan komputasi, dan "Komputer" dalam ilmu komputer benar-benar merujuk pada ide komputasi itu sendiri.
Phoshi
Mungkin derivasi dari nama "Informatik" ini salah. Wiki Jerman menyebutkan "Informasi dan Automatik" tapi mungkin itu hanya "Informasi + -tik"
miracle173
@ miracle173 Memang, ada banyak tentang "Informasi dan Automatik", juga di Wiki Perancis dan Italia yang mereka sebutkan. Saya tidak ingat di mana saya membaca derivasi "Informasi dan Mathematik" pertama kali, tetapi saya cukup yakin saya tidak menciptakannya sendiri ...
john_leo
6

Anda mungkin tertarik dengan diskusi yang kami lakukan tentang meta. Secara khusus, saya mendukung jawaban saya, direproduksi di sini:

Ilmu Komputer adalah ilmu komputasi; itu tampak jelas. Yang kurang jelas adalah bagaimana mendefinisikan sains dan komputasi dengan cara yang bermanfaat dan bermakna.

Secara umum, kita dapat membagi ilmu menurut dua klasifikasi: formal versus empiris, dan murni versus terapan. Sedangkan ilmu formal (seperti matematika dan banyak ilmu komputer) bergantung pada penalaran deduktif dari kebenaran yang diasumsikan, ilmu pengetahuan empiris (seperti fisika dan kimia) bergantung pada penalaran induktif dari fenomena yang diamati. Sedangkan tujuan ilmu murni adalah untuk memajukan keadaan pemahaman ilmiah, tujuan ilmu terapan adalah untuk menggunakan pemahaman tersebut untuk memanfaatkan kekuatan Alam (dalam arti seluas mungkin dari kata) untuk mencapai tujuan lain.

Kami mungkin mendefinisikan komputasi sebagai transformasi yang diterapkan pada sepotong informasi. Dalam pengertian seluas mungkin, komputasi adalah proses yang menyebabkan perubahan terjadi di alam semesta. Tidak perlu memberikan definisi yang lebih rinci dari ini.

Ilmu Komputer, kemudian, terdiri dari bagian dari usaha manusia yang memenuhi kriteria berikut:

  • Ini adalah sains, yaitu:

    • Ini dapat berupa (1) formal atau (2) empiris:

      1. mempekerjakan penalaran deduktif dari kebenaran yang diasumsikan
      2. menggunakan penalaran induktif dari fenomena yang diamati
    • Itu bisa (1) murni atau (2) diterapkan

      1. berusaha untuk memajukan keadaan pemahaman ilmiah
      2. berusaha menerapkan pemahaman ilmiah untuk memanfaatkan kekuatan alami
  • Ini mempelajari perhitungan, yaitu:

    • Ini mempelajari (1) transformasi atau (2) informasi
      1. proses yang memetakan informasi dari satu formulir ke yang lain
      2. entitas yang dapat berubah
Patrick87
sumber
terima kasih telah menampilkan sisi empiris yang juga berperan dalam penelitian TCS canggih! misalnya hasil empiris dalam makalah CS
vzn
5

Saya ingin menambahkan perspektif tentang kata "sains" yang terlalu panjang untuk dikomentari.

Orang mengatakan bahwa ilmu komputer bukanlah ilmu dengan cara tradisional karena (menyederhanakan sini) kita melakukan matematika atau teknik. Itu tidak sepenuhnya benar. Kita dapat menerapkan metode ilmiah - bisa dibilang yang batu penjuru sains - yang

pengamatan sistematis, pengukuran, dan percobaan, dan perumusan, pengujian, dan modifikasi hipotesis.
(Kamus Bahasa Inggris Oxford via Wikipedia )

Bahkan, beberapa pekerjaan paling awal dalam algoritma menganut prinsip ini. Beberapa metode telah "hilang" karena beberapa alasan tetapi kami masih dapat menggunakannya.

Proses dasar¹ akan terlihat seperti ini:

  • Catat masalah yang ingin kami pecahkan dengan komputer.
  • Munculkan algoritma.
  • Menganalisis (model matematika) algoritma.
  • Berdasarkan analisis Anda, prediksi runtime algoritma (yang diharapkan) (pada set input dan mesin tertentu).
  • Konfirmasikan atau palsukan prediksi Anda dengan eksperimen.

O

Ngomong-ngomong, jangan mengambil kata-kataku untuk itu. Robert Sedgewick dan Philippe Flajolet telah berupaya mengembalikan ilmu pengetahuan ke dalam ilmu komputer , kebanyakan dengan mengembangkan kerangka formal kombinatorik analitik yang memungkinkan hipotesis yang dapat diuji. Anda dapat menemukan video dan MOOC oleh Sedgewick yang akan memberi tahu Anda sebanyak mungkin.

Semua harapan tidak hilang.


  1. Ini, tentu saja, hanya dirumuskan algoritma wrt. Anda juga dapat mempelajari apakah model grafik cocok dengan kenyataan (dilakukan misalnya dalam bekerja di sekitar jaringan sosial, meskipun seringkali lebih empiris daripada ilmiah) atau throughput jaringan ternyata seperti yang diperkirakan, atau sejumlah hal lainnya.
Raphael
sumber
"Semua harapan tidak hilang." - akankah itu menjadi hal yang buruk jika ilmu komputer tidak ada ilmu (kecuali untuk keliru)?
k.stm
@ k.stm Menurut pendapat saya, ya. Mengapa puas dengan sedikit?
Raphael
Matematika bukan ilmu, tetapi tidak pernah menderita karena tidak menjadi satu. Dan tentu saja, baik matematika maupun sains komputer "kurang" dari sains karena tidak menjadi sains. Mungkin Anda berarti "kurang" secara kuantitatif, seperti "sains komputer tidak kurang dari matematika, teknik, dan sains"? Tetapi bahkan saat itu saya tidak melihat adanya keuntungan warisan menjadi ilmu pengetahuan tambahan. Kenapa harus begitu? Apakah ada kebutuhan untuk mendekati penalaran komputasi secara ilmiah?
k.stm
@ k.stm Ya. Tidak semua CS dapat berupa matematika, dan tidak semua dapat (atau ingin) menjadi rekayasa. Bagian-bagian yang tidak ada saat ini tidak selalu (baca: biasanya tidak) ilmiah. Itu masalah besar. Contoh: algoritme eksperimental. Analisis matematis tidak bisa diterapkan, prinsip-prinsip teknik tidak berlaku. Kemudian, kami pada dasarnya melakukan eksperimen ilmiah pada program - tetapi kami biasanya tidak menggunakan prinsip ilmiah. (Berapa banyak CSis yang tahu bahkan statistik dasar?)
Raphael
Oke, jadi Anda mengatakan "kita perlu mendekati penalaran komputasi juga secara ilmiah karena itu bekerja paling baik (atau sama sekali) dalam beberapa situasi", apakah saya memahami Anda dengan benar? Jika begitu, saya bisa mengerti maksud Anda - tetap saja, itu tidak berarti bahwa ada manfaat bawaan bagi ilmu komputer untuk benar-benar menjadi ilmu. Ternyata itu akan lebih baik ...
k.stm
3

ini mungkin pertanyaan lama yang lama diperdebatkan kembali ke asal-usul ilmu komputer. cara alami untuk mempelajari / menjawab ini adalah melalui literatur yang diterbitkan pada subjek. curiga ada banyak referensi bagus tentang ini yang terkubur dalam literatur yang belum dikutip. juga, jawaban / pov tentang hal ini kemungkinan telah berubah seiring waktu alias pergeseran Kuhnian yang agak umum di bidang ini, mungkin lebih dari bidang ilmiah lainnya. sudut lain untuk mempelajari ini adalah bagaimana subjek telah diajarkan di dunia akademis dan bagaimana hal itu telah sesuai dengan struktur departemen yang ada yang juga telah berubah seiring waktu.

berikut adalah beberapa makalah / esai yang bagus dari Denning, otoritas di lapangan, yang menjawab pertanyaan ini secara langsung dan merupakan tempat yang baik untuk memulai lebih banyak referensi. keduanya diterbitkan dalam jurnal masyarakat akademik utama bidang tersebut, CACM .

Proses informasi dan komputasi terus ditemukan dalam struktur yang dalam di banyak bidang. Komputasi bukanlah — pada kenyataannya, tidak pernah ada — hanya ilmu buatan.

Ilmu komputer memenuhi setiap kriteria untuk menjadi ilmu, tetapi ia memiliki masalah kredibilitas yang ditimbulkan sendiri.

vzn
sumber
Denning mendefinisikan 'komputasi' sebagai, secara efektif, 'studi komputasi'. Jelas, studi tentang sesuatu tidak sama dengan sesuatu itu. Saya selalu kagum pada sejauh mana kesalahan kategori dasar diterima tanpa berkedip di bidang ini.
reinierpost
jangan benar-benar setuju dengan semua yang ada di koran, namun
anggaplah
2

bekerja dari definisi sains

  1. cabang pengetahuan atau studi yang berurusan dengan kumpulan fakta atau kebenaran yang disusun secara sistematis dan menunjukkan operasi hukum umum: ilmu matematika.
  2. pengetahuan sistematis tentang dunia fisik atau material yang diperoleh melalui observasi dan eksperimen.
  3. salah satu cabang ilmu alam atau fisik.
  4. pengetahuan sistematis pada umumnya.
  5. pengetahuan, seperti fakta atau prinsip; pengetahuan yang diperoleh dengan studi sistematis.
  1. ilmu komputer terhubung erat dengan matematika dan melibatkan penelitian yang signifikan (misalnya studi).

  2. ilmu komputer luas & terkait erat dengan fisika dalam banyak hal. misalnya fisika / termodinamika komputasi, komputasi kuantum , P =? NP sebagai hukum fisika , transisi fase , dll.

  3. itu adalah pengetahuan yang sistematis.

  4. itu menjalani penelitian sistematis yaitu penelitian.

terminologi "ilmu komputer" menekankan bidang ini bukan hanya tentang penerapan prinsip-prinsip yang dikenal misalnya dalam rekayasa. ada sedikit terra incognita di sekitar ilmu komputer, banyak pertanyaan dasar di bidang ini terbuka / tidak terjawab . jumlah peneliti di seluruh dunia sulit diperkirakan tetapi jumlahnya di luar ribuan atau puluhan ribu.

Namun, perhatikan bahwa aspek yang lebih ilmiah dari ilmu komputer tidak benar-benar diajarkan / diekspos begitu banyak di tingkat sarjana, mungkin mengarah pada beberapa kebingungan. tampaknya juga tidak terlalu banyak perwujudan / perayaan / pendukung / pendukungnya yang terkenal sebagai sains misalnya, berbeda dengan bidang lain seperti LHC & penemuan bos Higgs, dll [meskipun demikian, CS memiliki peran besar dalam penemuan!], atau tokoh populator terkenal Carl Sagan atau seperti Hawking. namun mis. lihat buku-buku sains populer yang menginspirasi CS

vzn
sumber
1
Atau tergantung pada subbidang ilmu komputer, apa bedanya dengan matematika sebenarnya? :-)
Juho
Faktor lain adalah bahwa ilmu komputer memiliki aspek interdisiplin yang sangat kuat. contoh / daerah yang semakin terkenal yang memang memiliki cita rasa ilmiah yang kuat, data besar
vzn
aspek lain untuk direnungkan. objek studi CS utama, mesin Turing disebut sebagai mesin & merupakan persilangan seperti chimeric antara perangkat teoretis dan fisik.
vzn
Mesin Turing adalah perangkat yang ideal. Mereka tidak ada dalam kenyataan. Bahkan sebagai model, itu tidak terlalu dekat dengan cara komputasi yang "sebenarnya" dilakukan.
Yuval Filmus