Sains komputer

**Sains komputer** (*computer science*) secara umumnya adalah pengkajian perhitungan (*computation*) dan pemprosesan maklumat, sama ada dari segi perkakasan mahupun perisian.Seseorang yang pakar dalam bidang perkomputeran dipanggil Saintis Komputer. Ini adalah kerana sains komputer merupakan salah satu cabang daripada aliran sains. Skop sains komputer masih tidak dapat dipisahkan dengan jelas memandangkan bidang ini meliputi aspek yang amat luas dalam kehidupan manusia dan skopnya akan terus berkembang selari dengan perkembangan kemajuan teknologi. Sebagai contoh, pada suatu masa dahulu telefon bimbit lebih dikaitkan dengan bidang kejuruteraan, akan tetapi apabila teknologi telefon bimbit semakin berkembang, terdapat banyak teknologi daripada aliran sains komputer diserapkan ke dalam alatan ini. Kemajuan robotik semakin menyerapkan elemen-elemen sains komputer seperti kepintaran buatan untuk menjadikan sesebuah robot lebih bijak.Bidang ini mendapat penawaran meluas di dalam universiti dalam dan luar negara memandangkan ia merupakan bidang yang menarik perhatian serta tempat yang meluas dalam industri. Antara perkara penting dalam sains komputer adalah  Bahasa Pengaturcaraan. Bahasa pengaturcaraan adalah bahasa yang boleh digunakan untuk menulis perisian komputer. Antara bahasa pengaturcaraan yang popular ialah  C, C++ dan Java.

## Sejarah

* **1833**: Charles Babbage (1792-1871) meninggalkan projek Enjin Pembezaaan pertama, iaitu kalkulator mekanikal. Kerajaan British kerugian, 17,470 pound, cukup untuk membeli dua kapal perang masa tersebut. 

* **1839**: Babbage bersara dari Cambridge untuk berkerja sepenuh masa merekacipta Enjin Analitik Babbage, iaitu sebuah mesin yang berkuasa-stim, kegunaan-umum dan berjenis komputer mekanikal. Ini merupakan komputer pertama sebenar yang berjaya direka tapi tidak pernah dibangunkan.

* **1918**: Jurutera Jerman Arthur Scherbius mempatent mesin chiper Enigma, 30,000 yang mana akhirnya dijual kepada tentera Jerman. 

* **1934**: Ahli matematik Polish, Marian Rejewski membangunkan "bombe", iaitu sebuah mesin mekanikal untuk membantu memecahkan code Enigma. 

* **1937**: Ahli matematik English, Alan Turing (1911-1954) menerbitkan kertas kerja "On Computable Numbers" untuk memperlihatkan, yang tidak semua soalan-soalan matematik boleh diselesaikan. Kertas tersebut memperkenalkan idea yang akhirnya dipanggil Mesin Universal Turing. 

* **1940**: "bombe" yang diperbaiki Turing (kos : 100,000 pound) memulakan kerjanya dipusat kajian kriptografi di Bletchley Park,Britain semasa perang dunia ke-2.

* **1943**: Ahli matematik Max Newman and jurutera Tommy Flowers membangunkan Colossus, sebuah komputer 1500-tiub vakum yang boleh diprogram.Ini dibuat bagi membantu usaha-usaha Bletchley Park dalam tugas pemecahan kod . 

* **1945**: Vannevar Bush menerbitkan artikel "As We May Think" di majalah The Atlantic Monthly, mengenai satu visi untuk menggunakan mesin sebagai alat bantuan untuk penyimpanan dan pemanggilan data bagi menyokong sistem-sistem komputer baru dalam penyebaran hasil-hasil penyelidikan.

* **1949**: EDSAC started up at Cambridge University in England. The first Von Neumann or "stored-program" machine, where the instructions are stored in the same type of memory as data. Earlier machines, such as ENIAC, relied on reconfiguring a patch panel to change the program. 

* **1950**: Turing telah menguji kertas kerja yang berada di jurnal Mind.

* **1952**: Alan Turing, orang yang menyelamatkan lagi ramai nyawa orang-orang British semasa perang dunia ke-2 telah dihukum oleh kerajaan British atas sebab berkelakuan homoseksual. Dia berasa penat, disabitkan dengan jenayah dan berasa kurang selamat.

* **Jun 7, 1954**: Tertekan dengan disabit melakukan jenayah, dipermalukan dikhalayak umum dan dipaksa untuk melakukan rawatan hormon yang membuatkan dia berasa teruk, akhirnya Alan Turing memakan buah epal yang dibubuh dengan cynide. Dia mati pada usia 42 tahun.

* **1957**: Fortran komersal suda boleh diperolehi, iaitu sebuah bahasa pengaturcaraan high-level pertama, dibangunkan oleh John Backus di IBM. 

* **1959**: Penyempurnaan bahasa interprestasi Lisp yang praktikal, iaitu sebuah bahasa pengaturcaraan komputer pertama. Ia dibangunkan di MIT oleh John McCarthy. AT&T menolak cadangan Paul Baran mengenai rangkaian packet-switched. Idea ini mencadangkan message-message dipecahkan kepada paket-paket terasing dan bercampur dengan messege lain semasa transaksi. 

* **1961**: Leonard Kleinrock menerbitkan "Information Flow in Large Communication Nets" iaitu satu laporan dari hasil kajian sebuah makmal MIT, Electronics Progress Report. Ini mencadangkan sebuah rangkaian packet-switched. 

* **1962**: J.C.R. Licklider mencadangkan pembangunan "Jaringan gergasi", idea mengenai sebuah jaringan sistem-sistem komputer yang saling berhubung antara satu sama lain. Ini menyebabkan MIT mengambil alih tugas dalam "Advanced Research Projects Agency (ARPA)", salah satu bahagian dalam jabatan pertahanan Amerika Syarikat.

* **1963**: Sistem operasi praktikal pertama telah dibangunkan di MIT. Sistem masa-sebenar yang memperbolehkan terminal-terminal interaksi menyokong sehingga 32 pengguna sistem serentak. Ini merupakan satu pencapaian besar, sebab sebelum ini kebanyakan sistem komputer cuma bole dikawal oleh satu pengguna dalam satu-satu masa.

* **1964**: Pemproeses perkataan diperkenalkan oleh IBM. 

* **1965**: rangkaian wide-area pertama . Lawrence Roberts and Thomas Marill mensambungkan TX-2 di MIT ke SDC Q-32 di Santa Monica, California. 

* **1966**: Ivan Sutherland dan Bob Sproull membangun sistem realiti vritual yang praktikal dengan mesin pengimbas vritual tersebut dipasang pada kepada. Sistem ini dapat menjejak posisi masa-sebenar pengguna dan orentasi pengguna di dalam bilik. 

* **1968**: Douglas Engelbart mendemonstrasikan sebuah sistem yang dibina di SRI yang memperbolehkan kerja-kerja secara berkumpulan diantara orang-orang berlainan di kota-kota yang berlainan dilakukan . Setiap orang menaip pada kekunci komputer, melukis menggunakan tetikus, bercakap dan mendengar dan melihat pada gambar video di skrin. Sistem tersebut juga memperlihatkan pembangunan hypertext.Link akan dimasuk bila ditekan tetikus. Engelbart menyatakan yang dia berancang untuk meletakkan sistem ini dirangkaian ARPAnet, supaya fail-fail dapat diperolehi dengan menggunakan tetikus. 

* **1969**: Tahun yang baik bagi sains komputer.
** ARPAnet telah menghubungkan komputer-komputer UCLA,SRI,Santa Barbara dan Utah (MIT sertai pada 1970). Telnet, iaitu protokol untuk log-in dari tempat jauh, ialah satu-satunya perkhidmatan yang ada.
** Proses-proses pembangunan standard telah dilancarkan.
** Ahli kriptografi English, James Ellis membuktikan kemungkinan untuk melakukan pertukaran kunci secara selamat didalam terowong laluan kurang selamat dan juga mengutarakan konsep kunci kriptografi public/private. Namun dia tidak mampu untuk menyatakan cara pelaksanaan yang praktikal untuk idea tersebut, sebab dia tidak menemui fungsi matematik satu-arah untuk menyokong sistem ini. Penemuan-penemuan Ellis dirahsiakan dalam organisasi kriptografi kerajaan British. Kriptografi akan menjadi keperluan utama dalam rangkaian internet.

* **1972**: Pusat penyelidikan Xerox Palo Alto membangunkan Alto, komputer pertama dengan antaramuka mouse-windows-icons. Pertukaran email pertama diantara komputer-komputer berasingan berjaya dilakukan dan simbol @ untuk alamat email diperkenalkan.
 
* **1973**: Sistem jaringan Ethernet local-area dibangunkan di Xerox PARC (lihat "Ethernet: Distributed Packet Switching for Local Computer Networks" (Metcalfe and Boggs 1976). Ahli matematik Clifford Cocks ditugaskan untuk mencari penyelesaian masalah mencari fungsi satu-arah kunci untuk memperbolehkan skim kriptografi public James Ellis dilaksanakan. Dalam masa sehari sahaja, dia menyampaikan penyelesaian masalah pemfaktoran satu nombor perdana yang besar. Kerajaan British merahsiakan hal ini.

* **1974**: IBM membangunakan sistem pengurusan pangkalan data hubungan pertama, System R, yang berasaskan idea E.F. Codd dalam "A Relational Model of Data for Large Shared Data Banks" (1970). Ia kemudiannya menjadi kunci teknologi dalam pembinaan perkhidmatan web modern. Ahli matematik English,Malcolm Williamson kemudiannya datang dengan idea praktikal pertukaran key dalam terowong yang kurang selamat yang akhirnya dipanggil sebagai pertukaran "Diffie-Hellman-Merkle". Kerajaan British merahsiakan hal ini. 

* **1975**: Whitfield Diffie , Martin Hellman, dan Ralph Merkle iaitu pengkaji dari Stanford secara berasingan menemui idea Ellis dan idea Williamson mengenai kaedah pertukaran kunci lalu menerbitkan penemuan tersebut.

* **1977**: Pengkaji dari makmal sains komputer MIT Ronald Rivest, Adi Shamir dan Leonard Adleman secara berasingan menemui kaedah Clifford Cocks,1973, mengenai kaedah kunci kriptografi public, lalu memberikan ia nama "RSA" dan mempatenkannya. Enkripsi RSA akan menjadi blok binaan paling umum dalam perkhidmatan-perkhidmatan urusniaga internet.

* **1979**: Program spreadsheet pertama telah dibangunkan (Visicalc) oleh Dan Bricklin (MIT EECS '73) dan Bob Frankston (MIT EECS '70). Pengunaan secara meluas bahasa pengaturcaraan pengistiharan untuk pertama kali dan menyebabkan pengaturcaraan tersebar.

* **1980**: Bermulanya USENET (Netnews), sistem perbincangan teragih pertama.

* **1984**: Apple Macintosh memperkenalkan penciptaan antaramuka yang stabil melalui cara menu pull-down. Ia juga mesin berharga mampu-pengguna pertama yang berkonsepkan antaramuka tetikus-window.

* **1990**: Tim Berners-Lee dan kumpulan di CERN demonstrasi pengimbas pertama World Wide Web dan juga demonstrasi editor.

* **1991**: Phil Zimmermann melancarkan sistem enskrapsi "The Pretty Good Privacy (PGP)" , hasil dari gabungan teknik-teknik kriptografi modern yang paling effisyen. Ini memperbolehkan keselamatan maklumat pengguna-pengguna internet semasa bertukar-tukar email-sulit menjadi praktikal. 

* **February 1993**: web browser NCSA Mosaic Web dilancarkan. Ini merupakan pengimbas web bergrafik pertama yang bole berfungsi dipelbagi jenis sistem operasi . Pada Oktober, bilangan pelayan web (HTTP) yang dirangkaian bertambah ke 200.

## Bidang-bidang dalam sains komputer
* Algoritma
* Antara muka pengguna
* Bioinformasi
* Geoinformasi
* Kernel (cth Linux, BSD, Windows)
* Kaedah formal
* Kecerdasan buatan
* Kejuruteraan keperluan perisian
* Kejuruteraan perisian
* Kejuruteraan undur
* Keselamatan maklumat
* Kriptografi
* Lojik komputer
* Mampatan data
* Pangkalan data
* Pembangunan web
* Pembelajaran mesin
* Pemperosesan bahasa sejadi
* Pengaturcaraan berorentasi objek
* Pengaturcaraan dinamik
* Pengaturcaraan komputer
* Pengkomputeran masa-sebenar
* Pengujian perisian
* Pengurusan komputer pelayan
* Pengurusan projek perisian
* Pengurusan proses perniagaan
* Perisian bebas
* Perisian industri dan pengautomasi
* Perkhidmatan web
* Perkomputeran geometri
* Perkomputeran kuantum
* Perkomputeran linguistik
* Perkomputeran saintifik
* Perkomputeran selari
* Permodelan
* Produk perisian
* Rangkaian komputer
* Reka bentuk terbantu komputer (CAD)
* Seni bina komputer
* Seni reka web
* Sistem maklumat
* Sistem pengendalian
* Sistem tanpa-wayar
* Struktur data
* Teori automata
* Teori bahasa pengaturcaraan dan penghimpun
* Teori graf
* Teori kompleksiti
* Teori komputasi
* Ujian kepastian kualiti perisian

## Kerjaya Dalam Bidang Sains Komputer

5 Kerjaya Pilihan Dalam Bidang Sains Komputer :

1. **Pengaturcara**

Jawatan pengaturcara terdiri dari beberapa istilah contohnya Software Developer, Java Developer, .Net Expertise, Web Developer, Multimedia Programmer, Software Engineer (Electronic) dan sebagainya. Bakal pemohon jawatan tersebut perlulah mempunyai kemahiran satu atau dua bahasa aturcara. Anda tidak perlu mahir semua bahasa aturcara dan pemikiran logik serta algoritma perlu tinggi untuk melepasi kelayakan dalam temuduga terutamanya syarikat swasta dan multinasional.

2. **IT Eksekutif**

Jawatan ini sesuai kepada lepasan graduan yang mahir dalam merekabentuk dan menganalisis sesebuah pembangunan sistem. Kemahiran berkomunikasi dan membuat keputusan amat penting kepada seorang bakal IT Eksekutif. Penampilan yang menarik dan mahir bahasa asing (bahasa Inggeris, Mandarin atau Jepun) merupakan bonus dan mempunyai peluang cerah dalam bidang kerjaya tersebut.

3. **Jurutera Rangkaian**

Lepasan graduan pengkhususan rangkaian adalah digalakkan memohon jawatan ini. Sijil kemahiran dari badan profesional seperti CCNA certificate, Linux Red Hat certificate, dan sebagainya amat diperlukan bagi mendapat tempat di syarikat multinasional (Petronas, Shell, PNB, Sime Darby dan Proton Holdings). Memasang rangkaian, router, switch, kabel  dan sebagainya pada sesebuah kawasan serta konfigurasi server di sesebuah syarikat adalah antara kerjaya sebagai jurutera rangkaian.

4. **Perekabentuk Grafik, Multimedia dan Animasi**

Graduan lulusan grafik dan multimedia perlulah mempunyai pemikiran kreatif dan kritis dalam merekabentuk grafik atau animasi. Sejak kebelakagan ini, industri animasi tempatan (Les Copaque – Ipin Upin atau MDC – Saladin.tv) semakin berkembang dan amat memerlukan graduan animasi, grafik dan multimedia. Mahir penggunaan perisian grafik (Adobe CS suite, Flash, MAYA, LightWave 3D dan sebagainya) dan mempunyai imaginasi yang tinggi melayakkan anda mendapat jawatan ini.

5. **Pegawai Teknologi Maklumat**

Jawatan popular dalam kerajaan bagi graduan lepasan sains komputer dan IT . Anda perlu memohon jawatan tersebut dari laman sesawang SPA (Suruhanjaya Perkhidmatan Awam). Memerlukan kemahiran berkomunikasi, menganalisis, bijak membuat keputusan dan bertindak dengan efisyen. Mengetahui asas-asas pengaturcaraan, rangkaian dan sistem maklumat.

## Institusi Pengajian Tinggi Awam / Swasta yang Menawarkan Bidang Sains Komputer

* Faculty of Computer and Mathematical Sciences (FSKM), MARA University of Technology - 1http://fskm.uitm.edu.my/v/
* School of Computer Science (SOCS), University Science Malaysia - www.cs.usm.my/
**
* Fakulti Sains Komputer dan Sistem Maklumat (FSKSM), Universiti Teknologi Malaysia - http://www.fsksm.utm.my
* Fakulti Teknologi Maklumat dan Komunikasi (FTMK), Universiti Teknikal Malaysia Melaka - http://ftmk.utem.edu.my/ftmkweb/
* Fakulti Komputeran (FK), Universiti Malaysia Pahang - http://fskkp.ump.edu.my/index.php/en/

## Lihat Juga

* Tokoh-tokoh dalam sains komputer

## Rujukan

* http://lecture.eingang.org/

## Pautan luar

*  Ensiklokamus Teknologi Maklumat: Sains komputer secara ringkas