Ilmu komputer adalah studi tentang komputasi, informasi, dan otomatisasi, beserta fenomena yang berkaitan dengannya.[1][2][3][4] Sebagai bagian dari ilmu pengetahuan secara luas, ilmu komputer mencakup disiplin teoretis (seperti algoritme, teori komputasi, dan teori informasi) hingga disiplin terapan (termasuk desain dan implementasi perangkat keras dan perangkat lunak).[5][6][7] Seorang ahli dalam bidang ini disebut ilmuwan komputer.
Algoritme dan struktur data merupakan bagian penting dari ilmu komputer.[8] Teori komputasi berkaitan dengan model komputasi abstrak dan kelas umum permasalahan yang dapat diselesaikan menggunakan model tersebut. Bidang kriptografi dan keamanan komputer mencakup kajian tentang sarana komunikasi yang aman dan pencegahan kerentanan keamanan. Grafika komputer dan geometri komputasional membahas pembuatan gambar. Teori bahasa pemrograman mempertimbangkan berbagai cara untuk mendeskripsikan proses komputasi, sedangkan teori basis data berkaitan dengan pengelolaan repositori data. Interaksi manusia–komputer menyelidiki antarmuka yang digunakan manusia dan komputer untuk berinteraksi, sedangkan rekayasa perangkat lunak berfokus pada desain dan prinsip-prinsip di balik pengembangan perangkat lunak. Bidang seperti sistem operasi, jaringan, dan sistem tertanam menyelidiki prinsip dan desain di balik sistem kompleks. Arsitektur komputer menjelaskan konstruksi komponen komputer dan peralatan yang dioperasikan komputer. Kecerdasan buatan dan pembelajaran mesin bertujuan menyintesis proses berorientasi tujuan seperti pemecahan masalah, pengambilan keputusan, adaptasi terhadap lingkungan, perencanaan, dan pembelajaran yang ditemukan pada manusia dan hewan. Dalam kecerdasan buatan, visi komputer bertujuan memahami dan memproses data gambar dan video, sedangkan pemrosesan bahasa alami bertujuan memahami dan memproses data tekstual dan linguistik.
Perhatian fundamental ilmu komputer adalah menentukan apa yang dapat dan tidak dapat diotomatisasi.[2][9][3][10][11] Penghargaan Turing secara umum diakui sebagai penghargaan tertinggi dalam ilmu komputer.[12][13]
Sejarah



Dasar-dasar awal dari apa yang kelak menjadi ilmu komputer telah ada sebelum penemuan komputer digital modern. Mesin untuk menghitung tugas numerik tetap seperti sempoa telah ada sejak zaman kuno dan membantu perhitungan seperti perkalian dan pembagian. Algoritme untuk melakukan komputasi telah ada sejak zaman kuno, bahkan sebelum berkembangnya peralatan komputasi yang canggih.[17]
Wilhelm Schickard merancang dan membuat kalkulator mekanis pertama yang berfungsi pada tahun 1623.[18] Pada tahun 1673, Gottfried Leibniz mendemonstrasikan kalkulator mekanis digital yang disebut Stepped Reckoner.[19][20] Leibniz dapat dianggap sebagai ilmuwan komputer dan teoretikus informasi pertama karena berbagai alasan, termasuk fakta bahwa ia mendokumentasikan sistem bilangan biner, meskipun Thomas Harriot telah melakukannya beberapa dekade sebelumnya.[14] Pada tahun 1820, Thomas de Colmar memulai industri kalkulator mekanis[note 1] ketika ia menciptakan arithmometer yang disederhanakan, mesin hitung pertama yang cukup kuat dan andal untuk digunakan setiap hari dalam lingkungan perkantoran. Charles Babbage mulai merancang kalkulator mekanis otomatis pertamanya, Difference Engine, pada tahun 1822, yang kemudian memberinya gagasan tentang kalkulator mekanis terprogram pertama, Analytical Engine.[21] Ia mulai mengembangkan mesin ini pada tahun 1834, dan "dalam waktu kurang dari dua tahun, ia telah menggambarkan banyak ciri penting komputer modern".[22] "Langkah penting adalah penggunaan sistem kartu berlubang yang berasal dari alat tenun Jacquard",[22] sehingga mesin tersebut dapat diprogram tanpa batas.[note 2] Pada tahun 1843, ketika menerjemahkan artikel berbahasa Prancis tentang Analytical Engine, Ada Lovelace menulis, dalam salah satu dari banyak catatan yang ia sertakan, sebuah algoritme untuk menghitung bilangan Bernoulli, yang dianggap sebagai algoritme terbitan pertama yang secara khusus dirancang untuk diimplementasikan pada komputer.[23] Sekitar tahun 1885, Herman Hollerith menemukan tabulator, yang menggunakan kartu berlubang untuk memproses informasi statistik; perusahaannya kemudian menjadi bagian dari IBM. Mengikuti Babbage, meskipun tidak mengetahui karya sebelumnya, Percy Ludgate pada tahun 1909 menerbitkan[24] rancangan kedua dari hanya dua rancangan mesin analitis mekanis dalam sejarah. Pada tahun 1914, insinyur Spanyol Leonardo Torres Quevedo menerbitkan Essays on Automatics,[25] dan merancang, terinspirasi oleh Babbage, sebuah mesin hitung elektromekanis teoretis yang dikendalikan oleh program hanya-baca. Makalah tersebut juga memperkenalkan gagasan aritmetika titik-mengambang.[26][27] Pada tahun 1920, untuk merayakan peringatan 100 tahun penemuan arithmometer, Torres mempresentasikan di Paris Electromechanical Arithmometer, sebuah prototipe yang menunjukkan kelayakan mesin analitis elektromekanis,[28] yang perintahnya dapat diketik dan hasilnya dicetak secara otomatis.[29] Pada tahun 1937, seratus tahun setelah mimpi Babbage yang mustahil, Howard Aiken meyakinkan IBM, yang saat itu membuat berbagai jenis peralatan kartu berlubang dan juga bergerak dalam bisnis kalkulator[30] untuk mengembangkan kalkulator terprogram raksasanya, ASCC/Harvard Mark I, berdasarkan Analytical Engine milik Babbage, yang sendiri menggunakan kartu berlubang dan unit pemrosesan pusat. Ketika mesin tersebut selesai, beberapa orang menyebutnya sebagai "mimpi Babbage yang menjadi kenyataan".[31]
Selama tahun 1940-an, dengan berkembangnya mesin komputasi baru dan lebih kuat seperti komputer Atanasoff–Berry dan ENIAC, istilah computer mulai merujuk pada mesin, bukan pendahulunya yang berupa manusia.[32] Ketika menjadi jelas bahwa komputer dapat digunakan untuk lebih dari sekadar perhitungan matematika, bidang ilmu komputer berkembang untuk mempelajari komputasi secara umum. Pada tahun 1945, IBM mendirikan Watson Scientific Computing Laboratory di Universitas Columbia di New York City. Rumah persaudaraan yang direnovasi di West Side Manhattan tersebut merupakan laboratorium pertama IBM yang didedikasikan untuk ilmu murni. Laboratorium tersebut menjadi cikal bakal Divisi Riset IBM, yang kini mengoperasikan fasilitas penelitian di seluruh dunia.[33] Pada akhirnya, hubungan erat antara IBM dan Universitas Columbia berperan penting dalam munculnya disiplin ilmiah baru, dengan Columbia menawarkan salah satu mata kuliah pertama ilmu komputer yang memberikan kredit akademik pada tahun 1946.[34] Ilmu komputer mulai terbentuk sebagai disiplin akademik tersendiri pada tahun 1950-an dan awal 1960-an.[35][36] Program gelar ilmu komputer pertama di dunia, Cambridge Diploma in Computer Science, dimulai di University of Cambridge Computer Laboratory pada tahun 1953. Departemen ilmu komputer pertama di Amerika Serikat dibentuk di Purdue University pada tahun 1962.[37] Sejak komputer praktis tersedia, banyak penerapan komputasi telah menjadi bidang kajian tersendiri.
Etimologi dan cakupan
Meskipun pertama kali diusulkan pada tahun 1956,[38] istilah "computer science" muncul dalam sebuah artikel tahun 1959 di Communications of the ACM,[39] yang di dalamnya Louis Fein berpendapat untuk pembentukan Graduate School in Computer Sciences, yang dianalogikan dengan pembentukan Harvard Business School pada tahun 1921.[40] Louis membenarkan nama tersebut dengan berpendapat bahwa, seperti ilmu manajemen, bidang ini bersifat terapan dan interdisipliner, sekaligus memiliki karakteristik yang khas dari suatu disiplin akademik.[39] Upaya ini, serta upaya orang lain seperti analis numerik George Forsythe, berhasil, dan universitas-universitas kemudian mendirikan departemen semacam itu, dimulai oleh Purdue pada tahun 1962.[41] Meskipun namanya demikian, sebagian besar ilmu komputer tidak melibatkan studi tentang komputer itu sendiri. Oleh karena itu, beberapa nama alternatif telah diusulkan.[42] Beberapa departemen di universitas besar lebih memilih istilah computing science, untuk menekankan perbedaan tersebut secara tepat. Ilmuwan Denmark Peter Naur mengusulkan istilah datalogy,[43] untuk mencerminkan kenyataan bahwa disiplin ilmiah tersebut berpusat pada data dan pengolahan data, tanpa selalu melibatkan komputer. Institusi ilmiah pertama yang menggunakan istilah tersebut adalah Department of Datalogy di Universitas Kopenhagen, yang didirikan pada tahun 1969, dengan Peter Naur sebagai profesor datalogy pertama. Istilah tersebut terutama digunakan di negara-negara Skandinavia. Istilah alternatif lain, yang juga diusulkan oleh Naur, adalah ilmu data; istilah ini sekarang digunakan untuk bidang analisis data multidisipliner, termasuk statistika dan basis data.
Pada masa awal komputasi, sejumlah istilah untuk para praktisi bidang komputasi diusulkan (meskipun secara jenaka) dalam Communications of the ACM—turingineer, turologist, flow-charts-man, applied meta-mathematician, dan applied epistemologist.[44] Tiga bulan kemudian dalam jurnal yang sama, comptologist diusulkan, diikuti pada tahun berikutnya oleh hypologist.[45] Istilah computics juga pernah diusulkan.[46] Di Eropa, istilah yang berasal dari terjemahan kontraksi ungkapan "informasi otomatis" (misalnya "informazione automatica" dalam bahasa Italia) atau "informasi dan matematika" sering digunakan, misalnya informatique (Prancis), Informatik (Jerman), informatica (Italia, Belanda), informática (Spanyol, Portugis), informatika (bahasa Slavia dan bahasa Hungaria) atau pliroforiki (πληροφορική, yang berarti informatika) dalam bahasa Yunani. Istilah serupa juga diadopsi di Britania Raya (seperti pada School of Informatics, University of Edinburgh).[47] "Di Amerika Serikat, bagaimanapun, informatika dikaitkan dengan komputasi terapan, atau komputasi dalam konteks bidang lain."[48]
Sebuah kutipan folkloris yang sering dikaitkan dengan—tetapi hampir pasti bukan pertama kali dirumuskan oleh—Edsger Dijkstra, menyatakan bahwa "ilmu komputer tidak lebih membahas komputer daripada astronomi membahas teleskop."[note 3] Desain dan penerapan komputer serta sistem komputer secara umum dianggap sebagai ranah disiplin lain selain ilmu komputer. Misalnya, studi tentang perangkat keras komputer biasanya dianggap sebagai bagian dari teknik komputer, sedangkan studi tentang sistem komputer komersial dan penerapannya sering disebut teknologi informasi atau sistem informasi. Namun, telah terjadi pertukaran gagasan di antara berbagai disiplin yang berkaitan dengan komputer. Penelitian ilmu komputer juga sering bersinggungan dengan disiplin lain, seperti ilmu kognitif, linguistik, matematika, fisika, biologi, ilmu kebumian, statistika, filsafat, dan logika.
Ilmu komputer dianggap oleh sebagian pihak memiliki hubungan yang jauh lebih erat dengan matematika dibandingkan banyak disiplin ilmiah lainnya, dengan beberapa pengamat menyatakan bahwa komputasi merupakan ilmu matematika.[35] Ilmu komputer awal sangat dipengaruhi oleh karya matematikawan seperti Kurt Gödel, Alan Turing, John von Neumann, Rózsa Péter, Stephen Kleene, dan Alonzo Church, dan pertukaran gagasan yang bermanfaat antara kedua bidang tersebut terus berlangsung dalam bidang seperti logika matematika, teori kategori, teori domain, dan aljabar.[38]
Hubungan antara ilmu komputer dan rekayasa perangkat lunak merupakan persoalan yang kontroversial, yang semakin diperumit oleh perdebatan mengenai arti istilah "rekayasa perangkat lunak" dan bagaimana ilmu komputer didefinisikan.[49] David Parnas, dengan mengambil petunjuk dari hubungan antara disiplin teknik dan sains lainnya, menyatakan bahwa fokus utama ilmu komputer adalah mempelajari sifat-sifat komputasi secara umum, sedangkan fokus utama rekayasa perangkat lunak adalah desain komputasi tertentu untuk mencapai tujuan praktis, sehingga keduanya merupakan disiplin yang terpisah tetapi saling melengkapi.[50]
Aspek akademik, politik, dan pendanaan ilmu komputer cenderung bergantung pada apakah suatu departemen dibentuk dengan penekanan matematika atau teknik. Departemen ilmu komputer dengan penekanan matematika dan orientasi numerik menganggap dirinya selaras dengan ilmu komputasi. Kedua jenis departemen tersebut cenderung berupaya menjembatani bidang ini secara pendidikan, jika tidak di seluruh bidang penelitian.
Filsafat
Epistemologi ilmu komputer
Meskipun kata science terdapat dalam namanya, terdapat perdebatan mengenai apakah ilmu komputer merupakan disiplin ilmu pengetahuan,[51] matematika,[52] atau teknik.[53] Allen Newell dan Herbert A. Simon berpendapat pada tahun 1975,
Ilmu komputer adalah disiplin empiris. Kami akan menyebutnya ilmu eksperimental, tetapi seperti astronomi, ekonomi, dan geologi, beberapa bentuk observasi dan pengalamannya yang unik tidak sesuai dengan stereotip sempit metode eksperimental. Namun demikian, semuanya merupakan eksperimen. Setiap mesin baru yang dibuat merupakan sebuah eksperimen. Sebenarnya membangun mesin mengajukan pertanyaan kepada alam; dan kita mendengarkan jawabannya dengan mengamati mesin tersebut beroperasi dan menganalisisnya dengan semua sarana analitis dan pengukuran yang tersedia.[53]
Kemudian dikemukakan bahwa ilmu komputer dapat diklasifikasikan sebagai ilmu empiris karena menggunakan pengujian empiris untuk mengevaluasi kebenaran program, tetapi masih terdapat persoalan dalam mendefinisikan hukum dan teorema ilmu komputer (jika memang ada) serta mendefinisikan sifat eksperimen dalam ilmu komputer.[53] Pendukung klasifikasi ilmu komputer sebagai disiplin teknik berpendapat bahwa keandalan sistem komputasi diteliti dengan cara yang sama seperti jembatan dalam teknik sipil dan pesawat dalam teknik kedirgantaraan.[53] Mereka juga berpendapat bahwa sementara ilmu empiris mengamati apa yang saat ini ada, ilmu komputer mengamati apa yang mungkin ada, dan sementara ilmuwan menemukan hukum melalui pengamatan, tidak ada hukum yang tepat yang ditemukan dalam ilmu komputer dan ilmu komputer justru berkaitan dengan penciptaan fenomena.[53]
Pendukung klasifikasi ilmu komputer sebagai disiplin matematika berpendapat bahwa program komputer merupakan realisasi fisik dari entitas matematika dan program dapat dipikirkan secara deduktif melalui metode matematika.[53] Ilmuwan komputer Edsger W. Dijkstra dan Tony Hoare menganggap instruksi untuk program komputer sebagai kalimat matematika dan menafsirkan semantik formal bahasa pemrograman sebagai sistem aksiomatik matematika.[53]
Paradigma ilmu komputer
Sejumlah ilmuwan komputer berpendapat mengenai pembedaan tiga paradigma terpisah dalam ilmu komputer. Peter Wegner berpendapat bahwa paradigma tersebut adalah sains, teknologi, dan matematika.[54] Kelompok kerja Peter Denning berpendapat bahwa paradigma tersebut adalah teori, abstraksi (pemodelan), dan desain.[35] Amnon H. Eden mendeskripsikannya sebagai "paradigma rasionalis" (yang memperlakukan ilmu komputer sebagai cabang matematika, yang lazim dalam ilmu komputer teoretis dan terutama menggunakan penalaran deduktif), "paradigma teknokratis" (yang dapat ditemukan dalam pendekatan teknik, terutama dalam rekayasa perangkat lunak), dan "paradigma ilmiah" (yang mendekati artefak terkait komputer dari perspektif empiris ilmu alam,[55] yang dapat dikenali dalam beberapa cabang kecerdasan buatan).[56] Ilmu komputer berfokus pada metode yang terlibat dalam desain, spesifikasi, pemrograman, verifikasi, implementasi, dan pengujian sistem komputasi buatan manusia.[57]
Bidang
Sebagai suatu disiplin, ilmu komputer mencakup berbagai topik mulai dari studi teoretis tentang algoritme dan batas-batas komputasi hingga persoalan praktis dalam menerapkan sistem komputasi pada perangkat keras dan perangkat lunak.[58][59] CSAB, sebelumnya disebut Computing Sciences Accreditation Board—yang terdiri dari perwakilan Association for Computing Machinery (ACM) dan IEEE Computer Society (IEEE CS)[60]—mengidentifikasi empat bidang yang dianggap penting bagi disiplin ilmu komputer: teori komputasi, algoritme dan struktur data, metodologi dan bahasa pemrograman, serta elemen dan arsitektur komputer. Selain keempat bidang tersebut, CSAB juga mengidentifikasi bidang seperti rekayasa perangkat lunak, kecerdasan buatan, jaringan dan komunikasi komputer, sistem basis data, komputasi paralel, komputasi terdistribusi, interaksi manusia–komputer, grafika komputer, sistem operasi, serta komputasi numerik dan komputasi simbolik sebagai bidang penting ilmu komputer.[58]
Ilmu komputer teoretis
Ilmu komputer teoretis bersifat matematis dan abstrak, tetapi motivasinya berasal dari komputasi praktis dan sehari-hari. Ilmu ini bertujuan memahami hakikat komputasi dan, sebagai konsekuensi dari pemahaman tersebut, menyediakan metodologi yang lebih efisien.
Teori komputasi
Menurut Peter Denning, pertanyaan fundamental yang mendasari ilmu komputer adalah, "Apa yang dapat diotomatisasi?"[3] Teori komputasi berfokus pada menjawab pertanyaan mendasar tentang apa yang dapat dihitung dan berapa banyak sumber daya yang diperlukan untuk melakukan komputasi tersebut. Dalam upaya menjawab pertanyaan pertama, teori komputabilitas mengkaji masalah komputasi mana yang dapat diselesaikan pada berbagai model komputasi teoretis. Pertanyaan kedua dijawab oleh teori kompleksitas komputasi, yang mempelajari biaya waktu dan ruang yang terkait dengan berbagai pendekatan untuk menyelesaikan banyak masalah komputasi.
Masalah P = NP? yang terkenal, salah satu Masalah Hadiah Milenium,[61] merupakan masalah terbuka dalam teori komputasi.
|
M
=
{
X
:
X
∉
X
}
{\displaystyle M=\{X:X\not \in X\}}
|
|||
| Teori automata | Bahasa formal | Teori komputabilitas | Teori kompleksitas komputasi |
| Model komputasi | Teori komputasi kuantum | Teori sirkuit logika | Automata sel |
Teori informasi dan pengodean
Teori informasi, yang berkaitan erat dengan probabilitas dan statistika, berhubungan dengan kuantifikasi informasi. Teori ini dikembangkan oleh Claude Shannon untuk menemukan batas fundamental operasi pemrosesan sinyal seperti kompresi data serta penyimpanan dan komunikasi data yang andal.[62] Teori pengodean adalah studi tentang sifat-sifat kode (sistem untuk mengubah informasi dari satu bentuk ke bentuk lain) dan kesesuaiannya untuk aplikasi tertentu. Kode digunakan untuk kompresi data, kriptografi, deteksi dan koreksi kesalahan, dan belakangan juga untuk pengodean jaringan. Kode dipelajari dengan tujuan merancang metode transmisi data yang efisien dan andal.[63]
| Teori pengodean | Kapasitas kanal | Teori informasi algoritmik | Teori deteksi sinyal | Kompleksitas Kolmogorov |
Struktur data dan algoritme
Struktur data dan algoritme merupakan studi tentang metode komputasi yang umum digunakan dan efisiensi komputasinya.
| O(n2) | |||||
| Analisis algoritme | Desain algoritme | Struktur data | Optimisasi kombinatorial | Geometri komputasional | Algoritme acak |
Teori bahasa pemrograman dan metode formal
Teori bahasa pemrograman adalah cabang ilmu komputer yang membahas desain, implementasi, analisis, karakterisasi, dan klasifikasi bahasa pemrograman serta fitur-fiturnya masing-masing. Teori ini berada dalam disiplin ilmu komputer, sekaligus bergantung pada dan memengaruhi matematika, rekayasa perangkat lunak, dan linguistik. Bidang ini merupakan area penelitian aktif, dengan banyak jurnal akademik khusus.
Metode formal adalah jenis teknik berbasis matematika tertentu untuk spesifikasi, pengembangan, dan verifikasi sistem perangkat lunak dan perangkat keras.[64] Penggunaan metode formal untuk desain perangkat lunak dan perangkat keras didorong oleh harapan bahwa, sebagaimana dalam disiplin teknik lainnya, analisis matematika yang tepat dapat berkontribusi terhadap keandalan dan ketahanan suatu desain. Metode formal merupakan landasan teoretis penting bagi rekayasa perangkat lunak, khususnya ketika keselamatan atau keamanan terlibat. Metode formal merupakan pelengkap yang berguna bagi pengujian perangkat lunak karena membantu menghindari kesalahan dan juga dapat menyediakan kerangka kerja untuk pengujian. Untuk penggunaan industri, diperlukan dukungan perangkat bantu. Namun, tingginya biaya penggunaan metode formal menyebabkan metode ini biasanya hanya digunakan dalam pengembangan sistem integritas tinggi dan sistem kritis keselamatan, ketika keselamatan atau keamanan menjadi hal yang paling penting. Metode formal paling baik dideskripsikan sebagai penerapan berbagai dasar ilmu komputer teoretis yang cukup luas, khususnya kalkulus logika, bahasa formal, teori automata, dan semantik program, serta sistem tipe dan tipe data aljabar pada persoalan spesifikasi dan verifikasi perangkat lunak dan perangkat keras.
|
Γ
⊢
x
:
Int
{\displaystyle \Gamma \vdash x:{\text{Int}}}
|
|||||
| Semantik formal | Teori tipe | Desain kompiler | Bahasa pemrograman | Verifikasi formal | Pembuktian teorema otomatis |
Ilmu komputer terapan
Grafika komputer dan visualisasi
Grafika komputer adalah studi tentang konten visual digital dan mencakup sintesis serta manipulasi data gambar. Studi ini berkaitan dengan banyak bidang lain dalam ilmu komputer, termasuk visi komputer, pemrosesan citra, dan geometri komputasional, serta banyak diterapkan dalam bidang efek khusus dan permainan video.
| Grafika komputer 2D | Animasi komputer | Rendering | Realitas campuran | Realitas virtual | Pemodelan solid |
Pemrosesan citra dan suara
Informasi dapat berbentuk gambar, suara, video, atau multimedia lainnya. Bit informasi dapat dialirkan melalui sinyal. Pemrosesannya merupakan gagasan sentral informatika, pandangan Eropa terhadap komputasi, yang mempelajari algoritme pemrosesan informasi secara independen dari jenis media pembawa informasi—baik listrik, mekanis, maupun biologis. Bidang ini memainkan peran penting dalam teori informasi, telekomunikasi, teknik informasi, dan memiliki penerapan antara lain dalam komputasi citra medis dan sintesis suara. Berapa batas bawah kompleksitas algoritme transformasi Fourier cepat? merupakan salah satu masalah yang belum terpecahkan dalam ilmu komputer teoretis.
| Algoritme FFT | Pemrosesan citra | Pengenalan suara | Kompresi data | Komputasi citra medis | Sintesis suara |
Ilmu komputasi, keuangan, dan teknik
Komputasi ilmiah (atau ilmu komputasi) adalah bidang studi yang berkaitan dengan konstruksi model matematika dan teknik analisis kuantitatif, serta penggunaan komputer untuk menganalisis dan menyelesaikan masalah ilmiah. Salah satu penggunaan utama komputasi ilmiah adalah simulasi berbagai proses, termasuk dinamika fluida komputasional, sistem dan sirkuit fisik, listrik, dan elektronik, masyarakat dan situasi sosial (khususnya permainan perang) beserta habitatnya, serta interaksi antar-sel biologis. Komputer modern memungkinkan optimalisasi desain seperti pesawat terbang secara keseluruhan. Yang penting dalam desain sirkuit listrik dan elektronik adalah SPICE,[65] serta perangkat lunak untuk realisasi fisik desain baru (atau yang dimodifikasi). Yang terakhir mencakup perangkat lunak desain penting untuk sirkuit terpadu.[66]
| Analisis numerik | Fisika komputasi | Kimia komputasi | Bioinformatika | Neuroinformatika | Psikoinformatika | Informatika medis | Teknik komputasional | Musikologi komputasional |
Interaksi manusia–komputer
Interaksi manusia–komputer (HCI) adalah bidang studi dan penelitian yang berkaitan dengan desain dan penggunaan sistem komputer, terutama berdasarkan analisis interaksi antara manusia dan antarmuka komputer. HCI memiliki beberapa subbidang yang berfokus pada hubungan antara emosi, perilaku sosial, dan aktivitas otak dengan komputer.
| Komputasi afektif | Antarmuka otak–komputer | Desain berpusat pada manusia | Komputasi fisik | Komputasi sosial |
Rekayasa perangkat lunak
Rekayasa perangkat lunak adalah studi tentang desain, implementasi, dan modifikasi perangkat lunak untuk memastikan perangkat lunak tersebut berkualitas tinggi, terjangkau, mudah dipelihara, dan cepat dibuat. Rekayasa perangkat lunak merupakan pendekatan sistematis terhadap desain perangkat lunak yang melibatkan penerapan praktik-praktik teknik pada perangkat lunak. Rekayasa perangkat lunak berkaitan dengan pengorganisasian dan analisis perangkat lunak—bukan hanya penciptaan atau pembuatan perangkat lunak baru, tetapi juga susunan internal dan pemeliharaannya. Contohnya meliputi pengujian perangkat lunak, rekayasa sistem, utang teknis, dan proses pengembangan perangkat lunak.
Kecerdasan buatan
Kecerdasan buatan (AI) bertujuan atau diperlukan untuk menyintesis proses berorientasi tujuan seperti pemecahan masalah, pengambilan keputusan, adaptasi lingkungan, pembelajaran, dan komunikasi yang ditemukan pada manusia dan hewan. Sejak awalnya dalam sibernetika dan Konferensi Dartmouth (1956), penelitian kecerdasan buatan secara inheren bersifat lintas disiplin, dengan mengambil keahlian dari bidang seperti matematika terapan, logika simbolik, semiotika, teknik elektro, filsafat pikiran, neurofisiologi, dan kecerdasan sosial. AI sering diasosiasikan dalam pemikiran populer dengan pengembangan robot, tetapi bidang penerapan praktis utamanya adalah sebagai komponen tertanam dalam bidang pengembangan perangkat lunak yang membutuhkan pemahaman komputasional terhadap data dunia nyata yang kompleks. Titik awalnya pada akhir 1940-an adalah pertanyaan Alan Turing "Dapatkah komputer berpikir?", dan pertanyaan tersebut secara efektif masih belum terjawab, meskipun uji Turing masih digunakan untuk menilai keluaran komputer berdasarkan skala kecerdasan manusia. Namun, otomatisasi tugas evaluatif dan prediktif semakin berhasil menggantikan pemantauan dan intervensi manusia dalam bidang penerapan komputer yang melibatkan data dunia nyata yang kompleks.
Sistem komputer
Arsitektur komputer dan mikroarsitektur
Arsitektur komputer, atau organisasi komputer digital, adalah desain konseptual dan struktur operasional fundamental suatu sistem komputer. Bidang ini terutama berfokus pada cara unit pemrosesan pusat bekerja secara internal dan mengakses alamat dalam memori.[67] Insinyur komputer mempelajari logika komputasi dan desain perangkat keras komputer, mulai dari komponen prosesor individual, mikrokontroler, komputer pribadi hingga superkomputer dan sistem tertanam. Istilah "arsitektur" dalam literatur komputer dapat ditelusuri ke karya Lyle R. Johnson dan Frederick P. Brooks Jr., anggota departemen Machine Organization di pusat penelitian utama IBM pada tahun 1959.
| Unit pemrosesan | Mikroarsitektur | Multipemrosesan | Desain prosesor |
| Komputasi ubiquitous | Arsitektur sistem | Sistem operasi | Masukan/keluaran |
| Sistem tertanam | Komputasi waktu nyata | Dependabilitas | Interpreter |
Komputasi konkuren, paralel, dan terdistribusi
Konkurensi adalah sifat sistem ketika beberapa komputasi dieksekusi secara bersamaan dan berpotensi saling berinteraksi.[68] Sejumlah model matematika telah dikembangkan untuk komputasi konkuren umum, termasuk jaring Petri, kalkulus proses, dan model mesin akses acak paralel.[69] Ketika beberapa komputer terhubung dalam suatu jaringan sambil menggunakan konkurensi, hal ini dikenal sebagai sistem terdistribusi. Komputer dalam sistem terdistribusi tersebut memiliki memori pribadi masing-masing, dan informasi dapat dipertukarkan untuk mencapai tujuan bersama.[70]
Jaringan komputer
Cabang ilmu komputer ini bertujuan mempelajari konstruksi dan perilaku jaringan komputer. Bidang ini membahas kinerja, ketahanan, keamanan, skalabilitas, dan efektivitas biaya jaringan, serta berbagai layanan yang dapat disediakannya.[71]
Keamanan komputer dan kriptografi
Keamanan komputer adalah cabang teknologi komputer dengan tujuan melindungi informasi dari akses, gangguan, atau modifikasi yang tidak sah sekaligus mempertahankan aksesibilitas dan kegunaan sistem bagi pengguna yang dimaksudkan.
Kriptografi historis adalah seni menulis dan menguraikan pesan rahasia. Kriptografi modern adalah studi ilmiah tentang persoalan yang berkaitan dengan komputasi terdistribusi yang dapat diserang.[72] Teknologi yang dipelajari dalam kriptografi modern mencakup enkripsi simetris dan asimetris, tanda tangan digital, fungsi hash kriptografis, protokol kesepakatan kunci, rantai blok, bukti tanpa pengetahuan, dan sirkuit teracak.
Basis data dan penambangan data
Basis data dimaksudkan untuk mengatur, menyimpan, dan mengambil sejumlah besar data dengan mudah. Basis data digital dikelola menggunakan sistem manajemen basis data untuk menyimpan, membuat, memelihara, dan mencari data, melalui model basis data dan bahasa kueri. Penambangan data adalah proses menemukan pola dalam kumpulan data berukuran besar.
Penemuan
Filsuf komputasi Bill Rapaport mencatat tiga Wawasan Besar Ilmu Komputer:[73]
- Wawasan Gottfried Wilhelm Leibniz, George Boole, Alan Turing, Claude Shannon, dan Samuel Morse: hanya ada dua objek yang harus ditangani komputer untuk merepresentasikan "apa pun".[note 4]
- Semua informasi mengenai masalah yang dapat dikomputasikan dapat direpresentasikan hanya menggunakan 0 dan 1 (atau pasangan bistabil lainnya yang dapat berpindah antara dua keadaan yang mudah dibedakan, seperti "menyala/mati", "termagnetisasi/tidak termagnetisasi", "tegangan tinggi/tegangan rendah", dan sebagainya).
- Wawasan Alan Turing: hanya ada lima tindakan yang harus dilakukan komputer untuk melakukan "apa pun".
- Setiap algoritme dapat diekspresikan dalam bahasa untuk komputer yang hanya terdiri atas lima instruksi dasar:[74]
- berpindah satu lokasi ke kiri;
- berpindah satu lokasi ke kanan;
- membaca simbol pada lokasi saat ini;
- mencetak 0 pada lokasi saat ini;
- mencetak 1 pada lokasi saat ini.
- Setiap algoritme dapat diekspresikan dalam bahasa untuk komputer yang hanya terdiri atas lima instruksi dasar:[74]
- Wawasan Corrado Böhm dan Giuseppe Jacopini: hanya ada tiga cara menggabungkan tindakan-tindakan tersebut (menjadi tindakan yang lebih kompleks) yang diperlukan agar komputer dapat melakukan "apa pun".[75]
- Hanya tiga aturan yang diperlukan untuk menggabungkan sekumpulan instruksi dasar menjadi instruksi yang lebih kompleks:
- urutan: pertama lakukan ini, kemudian lakukan itu;
- seleksi: JIKA kondisi ini dan itu terpenuhi, MAKA lakukan ini, JIKA TIDAK lakukan itu;
- pengulangan: SELAMA kondisi ini dan itu terpenuhi, LAKUKAN ini.
- Tiga aturan dari wawasan Boehm dan Jacopini dapat lebih disederhanakan dengan penggunaan goto (yang berarti lebih elementer daripada pemrograman terstruktur).
- Hanya tiga aturan yang diperlukan untuk menggabungkan sekumpulan instruksi dasar menjadi instruksi yang lebih kompleks:
Paradigma pemrograman
Bahasa pemrograman dapat digunakan untuk menyelesaikan tugas yang berbeda dengan cara yang berbeda. Paradigma pemrograman yang umum meliputi:
- Pemrograman fungsional, gaya membangun struktur dan elemen program komputer yang memperlakukan komputasi sebagai evaluasi fungsi matematika dan menghindari keadaan serta data yang dapat diubah. Paradigma ini merupakan paradigma pemrograman deklaratif, yang berarti pemrograman dilakukan dengan ekspresi atau deklarasi, bukan pernyataan.[76]
- Pemrograman imperatif, paradigma pemrograman yang menggunakan pernyataan yang mengubah keadaan suatu program.[77] Sebagaimana modus imperatif dalam bahasa alami menyatakan perintah, program imperatif terdiri atas perintah yang harus dilakukan komputer. Pemrograman imperatif berfokus pada pendeskripsian bagaimana suatu program beroperasi.
- Pemrograman berorientasi objek, paradigma pemrograman yang didasarkan pada konsep "objek", yang dapat berisi data dalam bentuk bidang, sering disebut atribut; dan kode dalam bentuk prosedur, sering disebut metode. Salah satu ciri objek adalah bahwa prosedur suatu objek dapat mengakses dan sering kali mengubah bidang data objek yang terkait dengannya. Dengan demikian, program komputer berorientasi objek tersusun dari objek-objek yang saling berinteraksi.[78]
- Pemrograman berorientasi layanan, paradigma pemrograman yang menggunakan "layanan" sebagai unit kerja komputer untuk merancang dan mengimplementasikan aplikasi bisnis terintegrasi dan program perangkat lunak misi kritis.
Banyak bahasa mendukung beberapa paradigma, sehingga perbedaannya lebih merupakan persoalan gaya daripada kemampuan teknis.[79]
Penelitian
Konferensi merupakan acara penting bagi penelitian ilmu komputer. Dalam konferensi ini, peneliti dari sektor publik dan swasta mempresentasikan karya terbaru mereka dan bertemu satu sama lain. Berbeda dengan sebagian besar bidang akademik lainnya, dalam ilmu komputer, prestise makalah konferensi lebih tinggi daripada publikasi jurnal.[80][81] Salah satu penjelasan yang diajukan untuk hal ini adalah perkembangan yang cepat dari bidang yang relatif baru ini membutuhkan peninjauan dan penyebaran hasil secara cepat, suatu tugas yang lebih baik ditangani oleh konferensi daripada jurnal.[82]
Lihat pula
Catatan
- ↑ Pada tahun 1851
- ↑ "Pengenalan kartu berlubang ke dalam mesin baru penting bukan hanya sebagai bentuk pengendalian yang lebih nyaman daripada drum, atau karena program kini dapat memiliki panjang tak terbatas dan dapat disimpan serta diulang tanpa bahaya kesalahan saat mengatur mesin secara manual; hal itu juga penting karena membantu memperjelas perasaan Babbage bahwa ia telah menemukan sesuatu yang benar-benar baru, sesuatu yang jauh lebih dari sekadar mesin penghitung yang canggih." Bruce Collier, 1970
- ↑ Lihat entri "Computer science" di Wikiquote untuk sejarah kutipan ini.
- ↑ Kata "apa pun" ditulis dalam tanda kutip karena terdapat hal-hal yang tidak dapat dilakukan komputer. Salah satu contohnya adalah menjawab pertanyaan apakah program komputer sembarang yang diberikan pada akhirnya akan berhenti atau berjalan selamanya (masalah penghentian).
Referensi
- ↑ "What is Computer Science?". Department of Computer Science, University of York (dalam bahasa American English). Diarsipkan dari versi aslinya tanggal Juni 11, 2020. Diakses tanggal Juni 11, 2020.
- 1 2 What Can Be Automated? Computer Science and Engineering Research Study. Computer Science Series (dalam bahasa Inggris). MIT Press. 1980. ISBN 978-0262010603. Diarsipkan dari versi aslinya tanggal Januari 9, 2021.
- 1 2 3 Denning, P.J.; Comer, D.E.; Gries, D.; Mulder, M.C.; Tucker, A.; Turner, A.J.; Young, P.R. (Februari 1989). "Computing as a discipline". Computer. 22 (2): 63–70. Bibcode:1989Compr..22b..63D. doi:10.1109/2.19833. ISSN 1558-0814. The discipline of computing is the systematic study of algorithmic processes that describe and transform information, their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is, 'What can be (efficiently) automated?'
- ↑ Dasgupta, Subrata (2016). Computer Science: A Very Short Introduction. Oxford University Press. hlm. 1. ISBN 978-0-19-873346-1. What is computer science?A, now classic, answer was offered in 1967 by three eminent early contributors to the discipline, Alan Perils, Allen Newel, and Herbert Simon, who stated, quite simply, that computer science is the study of computers and their associated phenomena.
- ↑ "WordNet Search—3.1". WordNet Search. Wordnetweb.princeton.edu. Diarsipkan dari versi aslinya tanggal Oktober 18, 2017. Diakses tanggal Mei 14, 2012.
- ↑ "Definition of computer science | Dictionary.com". www.dictionary.com (dalam bahasa Inggris). Diarsipkan dari versi aslinya tanggal Juni 11, 2020. Diakses tanggal Juni 11, 2020.
- ↑ "What is Computer Science? | Undergraduate Computer Science at UMD". undergrad.cs.umd.edu. Diarsipkan dari versi aslinya tanggal November 27, 2020. Diakses tanggal Juli 15, 2022.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Harel, David (2014). Algorithmics The Spirit of Computing. Springer Berlin. ISBN 978-3-642-44135-6. OCLC 876384882.
- ↑ Patton, Richard D.; Patton, Peter C. (2009), "What Can be Automated? What Cannot be Automated?", dalam Nof, Shimon Y. (ed.), Springer Handbook of Automation, Springer Handbooks (dalam bahasa Inggris), Berlin, Heidelberg: Springer, hlm. 305–313, doi:10.1007/978-3-540-78831-7_18, ISBN 978-3-540-78831-7, diarsipkan dari versi aslinya tanggal Januari 11, 2023, diakses tanggal Maret 3, 2022
- ↑ Forsythe, George (Agustus 5–10, 1969). "Computer Science and Education". Proceedings of IFIP Congress 1968. The question 'What can be automated?' is one of the most inspiring philosophical and practical questions of contemporary civilization.
- ↑ Knuth, Donald E. (Agustus 1, 1972). "George Forsythe and the development of computer science". Communications of the ACM. 15 (8): 721–726. doi:10.1145/361532.361538. ISSN 0001-0782. S2CID 12512057.
- ↑ Hanson, Vicki L. (Januari 23, 2017). "Celebrating 50 years of the Turing award". Communications of the ACM. 60 (2): 5. doi:10.1145/3033604. ISSN 0001-0782. S2CID 29984960.
- ↑ Scott, Eric; Martins, Marcella Scoczynski Ribeiro; Yafrani, Mohamed El; Volz, Vanessa; Wilson, Dennis G (Juni 5, 2018). "ACM marks 50 years of the ACM A.M. turing award and computing's greatest achievements". ACM SIGEVOlution. 10 (3): 9–11. doi:10.1145/3231560.3231563. ISSN 1931-8499. S2CID 47021559.
- 1 2 Strickland, Lloyd (2023). "Why Did Thomas Harriot Invent Binary?". The Mathematical Intelligencer. 46: 57–62. doi:10.1007/s00283-023-10271-9.
- ↑ "Charles Babbage Institute: Who Was Charles Babbage?". cbi.umn.edu. Diarsipkan dari versi aslinya tanggal Januari 9, 2007. Diakses tanggal Desember 28, 2016.
- ↑ "Ada Lovelace | Babbage Engine | Computer History Museum". www.computerhistory.org. Diarsipkan dari versi aslinya tanggal Desember 25, 2018. Diakses tanggal Desember 28, 2016.
- ↑ "History of Computer Science". cs.uwaterloo.ca. Diarsipkan dari versi aslinya tanggal Juli 29, 2017. Diakses tanggal Juli 15, 2022.
- ↑ "Wilhelm Schickard – Ein Computerpionier" (PDF) (dalam bahasa Jerman). Diarsipkan dari asli (PDF) tanggal September 19, 2020. Diakses tanggal Desember 4, 2016.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ "Pre-History of Computing". www.i-programmer.info. Diakses tanggal Maret 16, 2026.
- ↑ "The Leibniz Step Reckoner and Curta Calculators". Computer History Museum. Diakses tanggal Maret 16, 2026.
- ↑ "Science Museum, Babbage's Analytical Engine, 1834–1871 (Trial model)". Diarsipkan dari versi aslinya tanggal Agustus 30, 2019. Diakses tanggal Mei 11, 2020.
- 1 2 Hyman, Anthony (1982). Charles Babbage: Pioneer of the Computer. Oxford University Press. ISBN 978-0691083032.
- ↑ "A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA". Diarsipkan dari asli tanggal Februari 10, 2006. Diakses tanggal Mei 4, 2006.
- ↑ "The John Gabriel Byrne Computer Science Collection" (PDF). Diarsipkan dari asli tanggal April 16, 2019. Diakses tanggal Agustus 8, 2019.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Torres Quevedo, L. (1914). "Ensayos sobre Automática – Su definicion. Extension teórica de sus aplicaciones". Revista de la Academia de Ciencias Exacta, 12, hlm. 391–418.
- ↑ Torres Quevedo, Leonardo. Automática: Complemento de la Teoría de las Máquinas, (pdf), hlm. 575–583, Revista de Obras Públicas, November 19, 1914.
- ↑ Ronald T. Kneusel. Numbers and Computers, Springer, hlm. 84–85, 2017. ISBN978-3319505084
- ↑ Randell, Brian. Digital Computers, History of Origins, (pdf), hlm. 545, Digital Computers: Origins, Encyclopedia of Computer Science, January 2003.
- ↑ Randell 1982, hlm. 6, 11–13.
- ↑ "Dalam pengertian ini Aiken membutuhkan IBM, yang teknologinya mencakup penggunaan kartu berlubang, akumulasi data numerik, dan pemindahan data numerik dari satu register ke register lainnya", Bernard Cohen, hlm.44 (2000)
- ↑ Brian Randell, hlm. 187, 1975
- ↑ Association for Computing Machinery (ACM) didirikan pada tahun 1947.
- ↑ "IBM Archives: 1945". Ibm.com. Januari 23, 2003. Diarsipkan dari versi aslinya tanggal Januari 5, 2019. Diakses tanggal Maret 19, 2019.
- ↑ "IBM100 – The Origins of Computer Science". Ibm.com. September 15, 1995. Diarsipkan dari versi aslinya tanggal Januari 5, 2019. Diakses tanggal Maret 19, 2019.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - 1 2 3 Denning, P.J.; Comer, D.E.; Gries, D.; Mulder, M.C.; Tucker, A.; Turner, A.J.; Young, P.R. (Februari 1989). "Computing as a discipline". Computer. 22 (2): 63–70. Bibcode:1989Compr..22b..63D. doi:10.1109/2.19833. ISSN 1558-0814.
- ↑ "Some EDSAC statistics". University of Cambridge. Diarsipkan dari versi aslinya tanggal September 3, 2007. Diakses tanggal November 19, 2011.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ "Computer science pioneer Samuel D. Conte dies at 85". Purdue Computer Science. Juli 1, 2002. Diarsipkan dari versi aslinya tanggal Oktober 6, 2014. Diakses tanggal Desember 12, 2014.
- 1 2 Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
- 1 2 Louis Fine (1960). "The Role of the University in Computers, Data Processing, and Related Fields". Communications of the ACM. 2 (9): 7–14. doi:10.1145/368424.368427. S2CID 6740821.
- ↑ "Stanford University Oral History". Stanford Libraries. Stanford University. Diarsipkan dari versi aslinya tanggal April 4, 2017. Diakses tanggal Mei 30, 2013.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Donald Knuth (1972). "George Forsythe and the Development of Computer Science". Comms. ACM. Diarsipkan Oktober 20, 2013, di Wayback Machine
- ↑ Matti Tedre (2006). "The Development of Computer Science: A Sociocultural Perspective" (PDF). hlm. 260. Diarsipkan (PDF) dari versi aslinya tanggal Oktober 9, 2022. Diakses tanggal Desember 12, 2014.
- ↑ Peter Naur (1966). "The science of datalogy". Communications of the ACM. 9 (7): 485. doi:10.1145/365719.366510. S2CID 47558402.
- ↑ Weiss, E.A.; Corley, Henry P.T. "Letters to the editor". Communications of the ACM. 1 (4): 6. doi:10.1145/368796.368802. S2CID 5379449.
- ↑ Communications of the ACM 2(1): hlm.4
- ↑ IEEE Computer 28(12): hlm.136
- ↑ P. Mounier-Kuhn, L'Informatique en France, de la seconde guerre mondiale au Plan Calcul. L'émergence d'une science, Paris, PUPS, 2010, bab. 3 & 4.
- ↑ Groth, Dennis P. (Februari 2010). "Why an Informatics Degree?". Communications of the ACM. Cacm.acm.org. Diarsipkan dari versi aslinya tanggal Januari 11, 2023. Diakses tanggal Juni 14, 2016.
- ↑ Tedre, M. (2011). "Computing as a Science: A Survey of Competing Viewpoints". Minds and Machines. 21 (3): 361–387. doi:10.1007/s11023-011-9240-4. S2CID 14263916.
- ↑ Parnas, D.L. (1998). "Software engineering programmes are not computer science programmes". Annals of Software Engineering. 6 (1–4): 19–37. doi:10.1023/A:1018949113292. S2CID 35786237., hlm. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, [...]"
- ↑ Luk, R.W.P. (2020). "Insight in how computer science can be a science". Science & Philosophy. 8 (2): 17–47. doi:10.23756/sp.v8i2.531.
- ↑ Knuth, D.E. (1974). "Computer science and its relation to mathematics". The American Mathematical Monthly. 81 (4): 323–343. doi:10.2307/2318994. JSTOR 2318994.
- 1 2 3 4 5 6 7 "The Philosophy of Computer Science". The Philosophy of Computer Science (Stanford Encyclopedia of Philosophy). Metaphysics Research Lab, Stanford University. 2021. Diarsipkan dari versi aslinya tanggal September 16, 2021. Diakses tanggal September 16, 2021.
{{cite book}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Wegner, P. (Oktober 13–15, 1976). Research paradigms in computer science—Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA.
- ↑ Denning, Peter J. (2007). "Computing is a natural science". Communications of the ACM. 50 (7): 13–18. doi:10.1145/1272516.1272529. S2CID 20045303.
- ↑ Eden, A.H. (2007). "Three Paradigms of Computer Science" (PDF). Minds and Machines. 17 (2): 135–167. CiteSeerX 10.1.1.304.7763. doi:10.1007/s11023-007-9060-8. S2CID 3023076. Diarsipkan dari asli (PDF) tanggal Februari 15, 2016.
{{cite journal}}: Kutipan menggunakan parameter usang|citeseerx= - ↑ Turner, Raymond; Angius, Nicola (2019). "The Philosophy of Computer Science". Dalam Zalta, Edward N. (ed.). The Stanford Encyclopedia of Philosophy. Diarsipkan dari versi aslinya tanggal Oktober 14, 2019. Diakses tanggal Oktober 14, 2019.
- 1 2 "Computer Science as a Profession". Computing Sciences Accreditation Board. Mei 28, 1997. Diarsipkan dari asli tanggal Juni 17, 2008. Diakses tanggal Mei 23, 2010.
- ↑ Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. ISBN 978-0-309-09301-9. Diarsipkan dari versi aslinya tanggal Februari 18, 2011. Diakses tanggal Agustus 31, 2008.
- ↑ "CSAB Leading Computer Education". CSAB. Agustus 3, 2011. Diarsipkan dari versi aslinya tanggal Januari 20, 2019. Diakses tanggal November 19, 2011.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Clay Mathematics Institute P = NP Diarsipkan Oktober 14, 2013, di Wayback Machine
- ↑ P. Collins, Graham (Oktober 14, 2002). "Claude E. Shannon: Founder of Information Theory". Scientific American. Diarsipkan dari versi aslinya tanggal Januari 16, 2014. Diakses tanggal Desember 12, 2014.
- ↑ Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012. Uncertainty Analysis in Econometrics with Applications. Springer Science & Business Media. hlm. 63. ISBN978-3-642-35443-4.
- ↑ Phillip A. Laplante, (2010). Encyclopedia of Software Engineering Three-Volume Set (Print). CRC Press. hlm. 309. ISBN978-1-351-24926-3.
- ↑ Muhammad H. Rashid, (2016). SPICE for Power Electronics and Electric Power. CRC Press. hlm. 6. ISBN978-1-4398-6047-2.
- ↑ "What is an integrated circuit (IC)? A vital component of modern electronics". WhatIs.com (dalam bahasa Inggris). Diarsipkan dari versi aslinya tanggal November 15, 2021. Diakses tanggal November 15, 2021.
{{cite news}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). The University of Chicago. Diarsipkan (PDF) dari versi aslinya tanggal Oktober 9, 2022.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Jiacun Wang, (2017). Real-Time Embedded Systems. Wiley. hlm. 12. ISBN978-1-119-42070-5.
- ↑ Gordana Dodig-Crnkovic; Raffaela Giovagnoli, (2013). Computing Nature: Turing Centenary Perspective. Springer Science & Business Media. hlm. 247. ISBN978-3-642-37225-4.
- ↑ Simon Elias Bibri (2018). Smart Sustainable Cities of the Future: The Untapped Potential of Big Data Analytics and Context-Aware Computing for Advancing Sustainability. Springer. hlm. 74. ISBN978-3-319-73981-6.
- ↑ Peterson, Larry; Davie, Bruce (2000). Computer Networks: A Systems Approach. Singapore: Harcourt Asia. ISBN 9789814066433. Diakses tanggal Mei 24, 2025.
- ↑ Katz, Jonathan (2008). Introduction to modern cryptography. Yehuda Lindell. Boca Raton: Chapman & Hall/CRC. ISBN 978-1-58488-551-1. OCLC 137325053.
- ↑ Rapaport, William J. (September 20, 2013). "What Is Computation?". State University of New York at Buffalo. Diarsipkan dari versi aslinya tanggal Februari 14, 2001. Diakses tanggal Agustus 31, 2013.
{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ B. Jack Copeland, (2012). Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer. OUP Oxford. hlm. 107. ISBN978-0-19-960915-4.
- ↑ Charles W. Herbert, (2010). An Introduction to Programming Using Alice 2.2. Cengage Learning. hlm. 122. ISBN0-538-47866-7.
- ↑ Md. Rezaul Karim; Sridhar Alla, (2017). Scala and Spark for Big Data Analytics: Explore the concepts of functional programming, data streaming, and machine learning. Packt Publishing Ltd. hlm. 87. ISBN978-1-78355-050-0.
- ↑ Lex Sheehan, (2017). Learning Functional Programming in Go: Change the way you approach your applications using functional programming in Go. Packt Publishing Ltd. hlm. 16. ISBN978-1-78728-604-7.
- ↑ Evelio Padilla, (2015). Substation Automation Systems: Design and Implementation. Wiley. hlm. 245. ISBN978-1-118-98730-8.
- ↑ "Multi-Paradigm Programming Language". MDN Web Docs. Mozilla Foundation. Diarsipkan dari asli tanggal Agustus 21, 2013.
- ↑ Meyer, Bertrand (April 2009). "Viewpoint: Research evaluation for computer science". Communications of the ACM. 25 (4): 31–34. doi:10.1145/1498765.1498780. S2CID 8625066.
{{cite journal}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - ↑ Patterson, David (Agustus 1999). "Evaluating Computer Scientists and Engineers For Promotion and Tenure". Computing Research Association. Diarsipkan dari versi aslinya tanggal Juli 22, 2015. Diakses tanggal Juli 19, 2015.
- ↑ Fortnow, Lance (Agustus 2009). "Viewpoint: Time for Computer Science to Grow Up". Communications of the ACM. 52 (8): 33–35. doi:10.1145/1536616.1536631.
Bacaan lebih lanjut
- Tucker, Allen B. (2004). Computer Science Handbook (Edisi 2nd). Chapman and Hall/CRC. ISBN 978-1-58488-360-9.
- Ralston, Anthony; Reilly, Edwin D.; Hemmendinger, David (2000). Encyclopedia of Computer Science (Edisi 4th). Grove's Dictionaries. ISBN 978-1-56159-248-7. Diarsipkan dari versi aslinya tanggal Juni 8, 2020. Diakses tanggal Februari 6, 2011.
- Edwin D. Reilly (2003). Milestones in Computer Science and Information Technology. Greenwood Publishing Group. ISBN 978-1-57356-521-9.
- Knuth, Donald E. (1996). Selected Papers on Computer Science. CSLI Publications, Cambridge University Press.
- Collier, Bruce (1990). The little engine that could've: The calculating machines of Charles Babbage. Garland Publishing Inc. ISBN 978-0-8240-0043-1. Diarsipkan dari versi aslinya tanggal Januari 20, 2007. Diakses tanggal Mei 4, 2013.
- Cohen, Bernard (2000). Howard Aiken, Portrait of a computer pioneer. The MIT press. ISBN 978-0-262-53179-5.
- Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. CRC Press, Taylor & Francis.
- Randell, Brian (1973). The origins of Digital computers, Selected Papers. Springer-Verlag. ISBN 978-3-540-06169-4.
- Randell, Brian (Oktober–Desember 1982). "From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torres, and Bush" (PDF). IEEE Annals of the History of Computing. 4 (4): 327–341. Bibcode:1982IAHC....4d.327R. doi:10.1109/mahc.1982.10042. S2CID 1737953. Diarsipkan dari asli (PDF) tanggal September 21, 2013.
{{cite journal}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link) - Peter J. Denning. Is computer science science?, Communications of the ACM, April 2005.
- Peter J. Denning, Great principles in computing curricula, Technical Symposium on Computer Science Education, 2004.
Pranala luar
| Cari tahu mengenai Ilmu komputer pada proyek-proyek Wikimedia lainnya: | |
| Definisi dan terjemahan dari Wiktionary | |
| Gambar dan media dari Commons | |
| Kutipan dari Wikiquote | |
| Buku dari Wikibuku | |
Ilmu komputer
- Bibliografi Ilmu Komputer DBLP
- Association for Computing Machinery
- Institute of Electrical and Electronics Engineers
Templat:Computer science Templat:Glossaries of science and engineering Templat:Software engineering