Apakah ilmu IPA, matematika terapan, teknik, seni, filsafat? "Lain"?
Untuk memberikan latar belakang, berikut adalah posting blog Steven Wartik untuk Scientific American berjudul " Saya bukan ilmuwan sejati, dan tidak apa-apa ." Artikel ini membahas beberapa topik bagus untuk pertanyaan ini, tetapi terbuka lebih banyak daripada jawaban.
Jika Anda bisa memikirkan disiplin, bagaimana ilmu komputer sesuai dengan definisinya? Haruskah disiplin untuk Ilmu Komputer didasarkan pada apa yang programmer lakukan, atau apa yang dilakukan akademisi ? Apa jenis jawaban yang Anda dapatkan dari orang-orang yang tampaknya berpikir mendalam tentang ini? Alasan apa yang mereka berikan?
computer-science
philosophy
Macneil
sumber
sumber
Jawaban:
Ada dua disiplin ilmu TI yang berbeda:
Ilmu Komputer - adalah studi disiplin komputer dan perhitungan menggunakan metode ilmiah.
Rekayasa Perangkat Lunak - adalah disiplin dalam merancang dan mengimplementasikan perangkat lunak mengikuti prinsip-prinsip teknik yang tepat.
Keduanya agak tumpang tindih, tetapi perbedaannya adalah tentang hasil yang diinginkan dari sains versus teknik. Hasil yang diinginkan dari suatu disiplin ilmu adalah pengetahuan. Hasil yang diinginkan dari disiplin teknik adalah hal-hal yang berhasil.
Jadi, untuk menjawab pertanyaanmu:
Ilmu Komputer adalah Ilmu ... bila dilakukan dengan benar. Namun, seperti disiplin ilmu lainnya, CS memiliki tumpang tindih dengan Matematika, Teknik, Ilmu Fisika, Ilmu Sosial, Filsafat, dan sebagainya.
Saya juga akan menambahkan bahwa apa yang kebanyakan programmer lakukan bukanlah Ilmu Komputer atau Rekayasa Perangkat Lunak. Ini lebih seperti apa yang dilakukan pengrajin.
Dan menyedihkan untuk mengatakan, baik Ilmu Komputer akademik atau profesi Rekayasa Perangkat Lunak tidak seketat disiplin ilmu dan teknik yang lebih tua. (Ada bidang-bidang Ilmu Komputer yang secara tradisional keras; misalnya, yang dengan dasar matematika yang kuat. Tetapi bagi banyak bidang, terlalu sulit / mahal untuk melakukan studi ilmiah yang tepat tentang pertanyaan-pertanyaan yang benar-benar penting.)
sumber
Pemrogram jarang "melakukan ilmu komputer". Mereka kebanyakan menggunakan hasil "rekayasa perangkat lunak", yang merupakan disiplin teknik, jelas.
Selain itu, Ilmu Komputer adalah Matematika Terapan. Jika Anda membandingkan CS dengan sesuatu yang pasti milik matematika terapan, Anda akan melihat banyak kemiripan.
Ilmuwan komputer merancang dan mempelajari cara-cara komputasi (algoritma), mengambil sebagian besar teori dari Matematika (logika, teori grafik, kombinatorik, dll) —dan berkontribusi padanya secara bersamaan. Sama seperti matematika terapan lainnya.
Mereka mengevaluasi sifat-sifat model dan algoritma ini secara teoritis, dan melakukan percobaan pemodelan (menulis program uji). Seperti ahli matematika terapan yang mensimulasikan aliran cairan dalam tabung pada kelompok, ilmuwan komputer menggunakan komputer untuk bereksperimen dengan implementasi algoritma mereka. Hasil percobaan ini langsung masuk ke produksi: baik ke kilang minyak atau ke perangkat lunak untuk analisis stok.
Di universitas saya selesai bahkan tidak ada departemen khusus untuk ilmu komputer: antara lain, domain non-komputer, kursi ilmu komputer adalah bagian dari Departemen Matematika Terapan.
sumber
Ilmu Komputer adalah istilah yang saat ini mencakup banyak, banyak hal:
Perhatikan bagaimana semua di atas memiliki penamaan yang berbeda, bukan hanya "ilmuwan komputer". Perbedaannya hanya bahwa Ilmu Komputer terlalu baru untuk penamaan untuk diselesaikan.
sumber
Pertama-tama, itu adalah ilmu komputasi . Ini berkaitan dengan matematika di balik perhitungan.
Ada disiplin ilmu lain yang lebih berorientasi pada teknik.
Perbedaannya sama dengan disiplin ilmu dan teknik terkait. Salah satunya tentang akurasi, lainnya tentang presisi. Ilmu komputer adalah teori, yang lain adalah ilmu yang diterapkan pada masalah: cabang teknik.
sumber
Ilmu komputer diterapkan dan matematika eksperimental .
sumber
Ilmu komputer adalah cabang matematika terapan yang berkaitan dengan desain dan aplikasi automata komputasi. Rekayasa perangkat lunak adalah subset yang tepat dari ilmu komputer yang membahas desain dan konstruksi kode formal untuk arsitektur von Neumann. Arsitektur von Neumann hanya satu cara untuk mengimplementasikan mesin komputasi. Sebagai contoh, mesin yang digunakan untuk memecahkan pesan yang disandikan Enigma bukanlah mesin von Neumann.
Rekayasa perangkat lunak adalah disiplin praktisi. Ilmu komputer adalah disiplin yang berorientasi pada penelitian. Sebagian besar sarjana ilmu komputer berakhir dalam pengembangan perangkat lunak karena penelitian mengharuskan seseorang untuk memegang setidaknya gelar master, yang menegakkan keyakinan bahwa ilmu komputer adalah sertifikat pemrograman yang dimuliakan.
sumber
Disiplin yang paling akurat disebut "Ilmu Komputer" adalah, di sebagian besar universitas yang saya periksa, ilmu terapan, mirip dengan disiplin teknik; jika Anda mengambil jurusan, Anda menerima "BS" atau "MS". Gelar CS Texas Tech ditawarkan oleh perguruan tinggi Teknik. Disiplin, seperti yang diajarkan, sebagian besar bersifat teoritis; Anda mempelajari konsep mesin Turing, DA / NDA, dan konsep dasar lainnya bahwa programmer "sehari-hari" tidak benar-benar harus terus berputar-putar di tengkorak mereka. Anda juga mendapatkan banyak matematika yang lebih tinggi; gelar Texas Tech CS, dan saya akan bertaruh banyak orang lain juga, cukup banyak Anda anak Matematika untuk pergi bersamanya. Untuk itu, sebagian besar jalur gelar universitas menambah sedikit aplikasi praktis tingkat rendah yang praktis; Anda belajar bahasa assembly, bahasa gen ke-3,
Namun, kebanyakan orang yang mencari nafkah bukanlah "ilmuwan komputer"; mereka, secara tegas, "pengembang perangkat lunak" atau (ketika Anda menambahkan dalam analisis / desain) "insinyur perangkat lunak"; pekerjaan itu jauh lebih sedikit tingkat perangkat kerasnya (meskipun Anda harus mengetahui dasar-dasarnya), lebih banyak analisis sistem, desain, dan pengkodean langsung. Banyak universitas memiliki jalur yang berbeda hanya untuk itu; di Texas Tech itu disebut "Manajemen Sistem Informasi" dan itu adalah gelar Bisnis (BBA / MBA). Lagu itu lebih ringan pada matematika yang lebih tinggi (apa yang harus Anda ketahui tentang aljabar dan perhitungan diferensial / integral dimasukkan ke dalam dua semester "matematika bisnis", dan tidak termasuk vektor / tensor kal, aljabar linier, dll.), Jauh lebih berat pada matematika keuangan (setiap semester statistik dan keuangan, dengan masing-masing dua akuntansi dan ekonomi). Lebih ringan pada sistem operasi, lebih berat pada teknologi "tumpukan" seperti database, server web, jaringan dan administrasi sistem umum. Lebih ringan pada bahasa tingkat rendah, desain sirkuit dan AI, lebih berat pada bahasa gen 3 dan 4, analisis sistem dan manajemen proyek. Saya mendapatkan gelar ini dari Texas Tech dan pada saat saya pergi saya sudah memiliki setidaknya satu semester masing-masing bahasa Jawa, VB, C # dan web (HTML / CSS / PHP), ditambah satu tahun OOA & D dan berbagai kursus lain dalam manajemen proyek TI.
Mana yang lebih baik di dunia nyata? Saya mendapatkan MIS BBA, kakak saya mendapatkan CS BS, dan kami berdua bekerja pada tingkat gaji yang kira-kira sama (menyesuaikan biaya hidup) sebagai insinyur perangkat lunak senior. Dia harus belajar banyak dari OOA & D yang dibutuhkan di tempat kerja, serta berputar dengan cepat di C # / Java dari pengetahuan dasar C ++. Untuk bagian saya, saya berharap saya memiliki dua semester studi algoritma konseptual yang dia dapatkan ketika saya terjebak dalam kursus manajemen bisnis (ya, SIM adalah gelar "Manajemen", tetapi saya telah menemukan bahwa 99% dari pengetahuan saya tentang bagaimana untuk mengelola dan tidak mengelola orang lain telah dipelajari melalui contoh).
sumber