Khoa hoc may tinh (tieng Anh: computer science) la nganh nghien cuu cac co so ly thuyet ve thong tin va tinh toan cung su thuc hien va ung dung cua chung trong cac he thong may tinh. Khoa hoc may tinh la cach tiep can khoa hoc va thuc tien đe tinh toan va cac ung dung cua no va nghien cuu co he thong ve tinh kha thi, cau truc, bieu hien va co gioi hoa cac thu tuc (hoac cac thuat toan) co ban lam co so cho viec thu thap, đai dien, xu ly, luu tru, truyen thong va truy cap thong tin. Mot đinh nghia thay the, gon gang hon ve khoa hoc may tinh la nghien cuu ve cac quy trinh thuat toan tu đong hoa ma co the nhan rong tren quy mo lon. Mot nha khoa hoc may tinh la chuyen gia ve ly thuyet tinh toan va thiet ke cac he thong tinh toan.
Khoa hoc may tinh gom nhieu nganh hep; mot so nganh tap trung vao cac ung dung thuc tien cu the chang han nhu đo hoa may tinh, trong khi mot so nganh khac lai tap trung nghien cuu đen tinh chat co ban cua cac bai toan tinh toan nhu ly thuyet đo phuc tap tinh toan). Ngoai ra con co nhung nganh khac nghien cuu cac van đe trong viec thuc thi cac phuong phap tinh toan. Vi du, nganh ly thuyet ngon ngu lap trinh nghien cuu nhung phuong thuc mo ta cach tinh toan khac nhau, trong khi nganh lap trinh nghien cuu cach su dung cac ngon ngu lap trinh va cac he thong phuc tap, va nganh tuong tac nguoi-may tap trung vao nhung thach thuc trong viec lam cho may tinh va cong viec tinh toan huu ich, va de su dung đoi voi moi nguoi dung.


Lich su Lich su cua khoa hoc may tinh đa bat đau tu nhieu nam truoc phat minh ra may tinh hien đai. Cac may moc danh cho viec tinh toan cac bai toan so hoc đa ton tai tu thoi co đai, chang han nhu ban tinh. Hon nua, cac thuat toan đe thuc hien tinh toan đa co ke tu thoi co đai, ngay ca truoc khi phat trien cac thiet bi tinh toan phuc tap.
Wilhelm Schickard đa thiet ke va hoan thanh chiec may tinh co hoc đau tien nam 1623. Nam 1673, Gottfried Leibniz trinh dien mot may tinh co hoc so, đuoc goi la Stepped Reckoner. Ong co the đuoc coi la nha khoa hoc may tinh đau tien va nha ly thuyet thong tin ma đa ghi lai he thong so nhi phan.
Blaise Pascal thiet ke va xay dung may tinh co hoc hoat đong đuoc mang ten Pascaline, nam 1642. Charles Babbage đa thiet ke mot may tinh theo hieu (difference engine) vao thoi Victoria, va Ada Lovelace đa viet ban huong dan su dung may. Nho cong trinh nay, ngay nay, ba đuoc coi la lap trinh vien đau tien tren the gioi. Vao khoang nam 1900, tap đoan IBM đa ban nhung chiec may tinh dung the đuc lo. Tuy nhien, tat ca nhung chiec may nay đeu chi thuc hien mot nhiem vu đon, hoac cung lam la mot tap hop nho cac nhiem vu.
Truoc nam 1920, cong viec tinh toan đuoc thuc hien chu yeu boi nhung nhan vien chuyen nghiep. Nhung nha nghien cuu đau tien ve nganh ma sau nay đuoc goi la khoa hoc may tinh, chang han Kurt Godel, Alonzo Church va Alan Turing, đa quan tam đen cau hoi ve kha nang tinh toan: nhung gi co the đuoc tinh toan boi mot nguoi thu quy - nguoi chi đon gian dung giay va but chi đe lam mot danh sach cac buoc tinh toan, cho đen khi nao xong viec ma khong can đen tri thong minh hay hieu biet? Mot phan cua đong co nay la uoc muon phat trien cac may tinh co kha nang tu đong hoa cac cong viec tinh toan thuong la buon te va de sai cua mot nguoi tinh toan. Van đe then chot la xay dung cac he thong tinh toan pho dung co kha nang (ve ly thuyet) thuc hien moi nhiem vu tinh toan co the can đen, va nho đo tong quat hoa tat ca cac may tinh chuyen biet truoc kia thanh mot khai niem đon nhat ve chiec may tinh pho dung.
Trong nhung nam 1940, khi cac may tinh moi hon va manh hon đuoc phat trien, nguoi ta thay ro rang hon rang may tinh co the đuoc su dung cho nhieu muc đich khac ngoai cac tinh toan toan hoc, linh vuc khoa hoc may tinh đuoc mo rong thanh nganh nghien cuu tinh toan noi chung. Tu thap ky 1960, khoa hoc may tinh bat đau đuoc thiet lap nhu la mot nganh hoc rieng biet, voi su ra đoi cua cac khoa Khoa hoc may tinh đau tien va cac chuong trinh đao tao đai hoc chuyen nganh Khoa hoc may tinh. Tu khi cac may tinh đuoc su dung trong thuc tien, nhieu ung dung cua tinh toan đa tro thanh cac linh vuc nghien cuu rieng biet.


Nhung thanh tuu đang ke Tuy đuoc tro thanh mot bo mon giao duc chinh thuc voi mot quang thoi gian lich su ngan ngui, khoa hoc may tinh đa co mot so cong hien quan trong đoi voi khoa hoc va xa hoi. Nhung cong hien nay bao gom:

Ung dung trong nganh khoa hoc may tinh
Đa đinh nghia đuoc mot cach chinh thuc ve tinh toan (computation) va kha nang tinh toan (computability), đong thoi đua ra bang chung rang co nhung van đe bat kha tinh toan (computationally unsolvable) va nhung van đe rat kho tinh toan (intractable).
Đa đua ra khai niem ve ngon ngu lap trinh, mot dung cu dung đe bieu đat thong tin đa đuoc trat tu hoa mot cach chinh xac trong nhieu tang lop truu tuong khac nhau.
Ung dung ben ngoai
Lam tien đe cho cuoc cach mang ky thuat so (Digital Revolution) la cai dan đen thoi đai thong tin (Information Age) va internet hien nay.
Trong mat ma hoc (cryptography), su pha ma cua may Enigma la mot đong gop quan trong trong chien thang cua quan Đong minh trong Đai Chien The gioi lan thu II.
Tinh toan khoa hoc (Scientific computing) cho phep viec nghien cuu bo nao con nguoi, đo thi hoa cau hinh cua GEN (mapping the human genome) nhu Du an ban đo gen nguoi (Human Genome Project) o muc đo uyen tham. Nhung đe an tinh toan phan tan nhu Folding@home kham pha qua trinh gap cuon cua chat đam (protein folding).
Giao dich bang thuat toan lam tang hieu qua va tinh thanh khoan cua thi truong tai chinh bang cach su dung tri tue nhan tao, hoc may va cac ki thuat thong ke/giai tich so khac tren quy mo lon.


Cac linh vuc cua khoa hoc may tinh = Co so toan hoc =
Logic toan (Mathematical logic)
Logic Bool va cac phuong phap tuong ung dung đe mo hinh hoa cac truy van logic; Su su dung cac phuong phap chung minh hinh thuc (formal proof) cung nhung han che cua chung.
Ly thuyet so (Number theory)
Ly thuyet ve chung minh va cac khao nghiem trong viec lung tim nhung chung minh trong gioi han cac so nguyen. Ly thuyet so đuoc su dung trong mat ma hoc va đong thoi đuoc dung nhu mot phuong thuc kiem thu trong tri tue nhan tao.
Ly thuyet đo thi (Graph theory)
Co so cho cau truc du lieu va cac thuat toan tim kiem.
Ly thuyet kieu (Type Theory)
Phan tich quy chinh cac kieu du lieu, cung su su dung cac kieu du lieu nham giang giai tinh chat cua cac chuong trinh phan mem - đac biet la tinh an toan cua chuong trinh.
Ly thuyet pham tru (Category theory)
Ly thuyet phan loai cho phep tong quat cac phuong phap toan hoc va cac phuong thuc tinh toan thanh mot uoc the.
Hinh hoc tinh toan (Computational geometry)
Chuyen tam vao viec nghien cuu cac thuat toan nham giai quyet nhung van đe đuoc đe bat tren phuong dien hinh hoc.
Giai tich so (Numerical analysis)
Nen tang cua cac thuat toan trong toan hoc roi rac, đong thoi cung dung đe nghien cuu nhung gioi han trong cac tinh toan dung so thap phan (1.0E-3), bao gom nhung sai so xay ra trong phuong phap lam tron so (round-off errors).


= Ly thuyet tinh toan =

Ly thuyet Otomat (Automata theory)
Cac cau truc logic khac nhau co the su dung đe giai quyet cac bai toan.
Ly thuyet kha nang tinh toan (Computability theory)
Nhung gi co the tinh toan đuoc bang cac mo hinh may tinh hien tai. Cac chung minh cua Alan Turing va nhung nguoi khac bay to cho chung ta biet đuoc kha nang nhung gi co the tinh toan đuoc va nhung gi khong the.
Ly thuyet đo phuc tap tinh toan (Computational complexity theory)
Cac gioi han can ban (cu the la thoi gian va dung luong bo nho đoi hoi) đoi voi cac hang loai bai toan khac nhau.
Ly thuyet tinh toan luong tu (Quantum computing)
Phuong thuc bieu hien va chuyen hoa du lieu su dung nhung đac tinh cua vat chat cung co che luong tu.


= Cau truc du lieu va giai thuat =
Phan tich thuat toan (Analysis of algorithms)
Đo phuc tap ve thoi gian va khong gian cua cac thuat toan.
Thuat toan (Algorithms)
Cac qua trinh logic tren nguyen tac đuoc su dung cho viec tinh toan va tinh hieu qua cua cac qua trinh nay.
Cau truc du lieu (Data structures)
To chuc cua du lieu va cac quy tac thao tac du lieu.


= Ngon ngu lap trinh va trinh bien dich =
Trinh bien dich (Compilers)
Dich toan bo ma nguon cua ngon ngu lap trinh thanh chuong trinh đich roi sau đo moi thuc hien, thuong la tu cac ngon ngu lap trinh bac cao sang cac ngon ngu lap trinh bac thap, hay dich sang ma may. Cac ngon ngu su dung trinh bien dich nhu Pascal, C,...
Trinh thong dich (Interpreter)
La cach dich tung lenh mot, dich toi đau thuc hien toi đo. Chang han ngon ngu LISP su dung trinh thong dich.
Ngon ngu lap trinh (Programming languages)
Ngon ngu lap trinh la mot ngon ngu đuoc thiet ke va tao ra đe viet chuong trinh cho may tinh. Nhung ngon ngu nay con đong thoi bieu hien nhung đac tinh khong giong nhau giua cac ngon ngu khac nhau (vi du, chung thich hop cho viec giai cac bai toan thuoc dang nao).


= He thong phan tan, song song, tuong tranh =
Tuong tranh (Concurrency)
Ly thuyet va thuc tien cua tinh toan đong thoi; an toan du lieu trong moi truong đa nhiem hay đa luong bat ky.
Tinh toan phan tan (Distributed computing)
Tinh toan su dung nhieu thiet bi tinh toan tren mot mang đe thuc hien mot nhiem vu hoac mot muc tieu chung.
Tinh toan song song (Parallel computing)
Tinh toan su dung nhieu luong thuc thi đong thoi.


= Ky nghe phan mem =
Thiet ke thuat toan (Algorithm design)
Lay y tuong tu ly thuyet thuat toan đe nang đong kien tao cac giai phap đoi voi nhung nhiem vu tren thuc te.
Lap trinh may tinh (Computer programming)
Dung ngon ngu lap trinh đe thuc thi cac thuat toan.
Cac phuong phap hinh thuc (Formal methods)
Su dung toan hoc đe mieu ta va lap luan đoi voi cac thiet ke phan mem.
Ky nghe đao nguoc (Reverse engineering)
Ung dung phuong phap khoa hoc vao viec phan tich va ly giai mot phan mem tuy thich von co.
Ky nghe phan mem (Software development)
Nhung nguyen ly va thuc hanh trong viec thiet ke, phat trien va kiem thu cac chuong trinh, cung nhung phuong phap thuc hanh ky nghe đung đan.


= Kien truc may tinh =
Kien truc may tinh (Computer architecture)
Viec thiet ke, to chuc, toi uu hoa va kiem đinh mot he thong may tinh, chu yeu ve CPU va tieu he bo nho may tinh (va he thong bus noi giua chung).
To chuc may tinh (Computer organization)
Nghien cuu cac kien truc may tinh tren co so cac mo ta mach đien, bo xu ly trung tam, bo xu ly tin hieu so cua may tinh.
He đieu hanh
Nhung he thong dung đe quan ly cac chuong trinh may tinh va cung cap nen tang co ban cho mot he thong kha dung.


= Truyen thong - Vien thong =
Xu ly am thanh trong may tinh (Computer audio)
Nhung thuat toan va cau truc du lieu dung đe kien tao, thao tac, luu tru, va truyen thanh cac ban ghi am thanh ky thuat so (digital audio). Nganh nay con đong vai tro quan trong đoi voi cac ung dung nhan dang tieng noi (speech recognition) nua.
Mang may tinh (Computer networking)
Cac thuat toan va giao thuc danh cho viec truyen thong du lieu mot cach đang tin cay qua cac moi truong truyen thong chuyen dung hoac chia se khac nhau. Thuong khi bao gom ca viec sua loi(error correction) trong truyen thong.
Mat ma hoc (Cryptography)
Ap dung ket qua cua cac ly thuyet đo phuc tap tinh toan, ly thuyet xac suat, va ly thuyet so đe kien tao va pha mat ma.


= Co so du lieu =
Khai pha du lieu (Data mining)
Nghien cuu cac phuong phap sang loc, rut ra nhung thong tin can thiet tu cac nguon du lieu khac nhau.
Co so du lieu quan he (Relational databases)
Nghien cuu cac thuat toan tim kiem va xu ly thong tin trong cac tai lieu va co so du lieu; co quan he gan gui voi nganh thu thap thong tin (information retrieval).


= Tri tue nhan tao =
Tri tue nhan tao (Artificial intelligence)
Su nghien cuu va thuc thi cac he thong co kha nang tu the hien tri thong minh hoac tu bieu đat nhung hanh vi cua chinh ban than minh.
Su song nhan tao (Artificial life)
Su nghien cuu cac sinh the ky thuat so (digital organisms) đe hieu biet them ve cac he thong sinh hoc (biological systems) va qua trinh tien hoa.
Lap luan tu đong (Automated reasoning)
Nghien cuu cac đong co giai quyet bai toan, chang han nhu đuoc su dung trong Prolog, cac đong co nay tao ra cac buoc dan đen mot ket qua neu cho truoc mot truy van ve mot su kien va mot co so du lieu gom cac luat (rule database).
Thi giac may tinh (Computer vision)
Cac thuat toan nhan dang cac đoi tuong ba chieu tu mot hoac nhieu hinh anh hai chieu.
Hoc may (Machine learning)
Nghien cuu viec tu đong tao nhom cac luat va tien đe dua tren nhung du lieu cho truoc.
Xu ly ngon ngu tu nhien/Ngon ngu hoc Tinh toan (Natural language processing/Computational linguistics)
Tu đong hoa viec tiep thu va kien tao ngon ngu loai nguoi.
Robo hoc (Robotics)
Cac thuat toan đieu khien hanh vi cua robo.


= Tinh toan mem =

Mot thuat ngu tong hop danh cho cac ky thuat đuoc su dung đe giai cac bai toan cu the, xem bai chinh.


= Đo hoa may tinh =
Đo hoa may tinh (Computer graphics)
Nhung thuat toan su dung trong ca hai truong hop, kien tao hinh anh mot cach nhan tao ma nguoi thuong co the xem đuoc bang mat, đong thoi ket hop va thay đoi cac du lieu ve khong gian va thi giac thu đuoc tu moi truong song ben ngoai.
Xu ly anh (Image processing)
Dung tinh toan đe lay thong tin tu mot hinh anh.


= Tuong tac nguoi-may =
Tuong tac nguoi-may (Human computer interaction)
Nghien cuu phuong phap lam cho may tinh va su tinh toan cua chung tro nen huu dung, co the tiep can va su dung boi bat cu ai tren the gioi la nguoi dung, bao gom ca viec nghien cuu va thiet ke giao dien nguoi dung.


= Tinh toan khoa hoc =
Tin sinh hoc (Bioinformatics)
Su dung khoa hoc may tinh đe bao tri, phan tich, luu tru du lieu sinh hoc (biological data) va đe ho tro viec giai cac bai toan sinh hoc chang han nhu qua trinh gap cuon cua chat đam (protein folding), du đoan chuc nang cua cau truc chat đam (function prediction), va phat sinh chung loai (phylogeny).
Khoa hoc nhan thuc (Cognitive Science)
Su dung ky thuat may tinh đe kien tao cac mo hinh cua tri tue con nguoi.
Hoa hoc tinh toan (Computational chemistry)
Mo hinh hoa to chuc cua chat hoa hoc tren ly thuyet bang tinh toan, hong xac đinh cau truc va đac tinh cua chung.
Than kinh hoc tinh toan (Computational neuroscience)
Mo hinh hoa bo nao con nguoi bang tinh toan.
Vat ly tinh toan (Computational physics)
Su dung so hoc đe mo phong nhung he thong lon bat kha phan tich (large non-analytic systems).
Phan tich so (Numerical analysis) hoac (Numerical algorithms)
Dung cac thuat toan đe giai cac đe toan cua toan hoc, chang han nhu thuat toan tim an so cua ham (Root-finding algorithm), integration, the solution of ordinary differential equations and the approximation/evaluation of special functions.
Toan hoc ky hieu
Manipulation and solution of expressions in symbolic form, also known as Đai so may tinh.


Đao tao ve khoa hoc may tinh Mot so truong đai hoc đao tao khoa hoc may tinh nhu la mot nganh nghien cuu ly thuyet ve tinh toan va lap luan thuat toan. Cac chuong trinh đao tao nay thuong bao gom cac mon ly thuyet tinh toan, phan tich thuat toan, cac phuong phap hinh thuc, ly thuyet tuong tranh, co so du lieu, đo hoa may tinh va phan tich he thong cung cac mon khac. Cac chuong trinh nay thuong cung day ca lap trinh, nhung coi đay chi la mot phuong tien đe ho tro cac linh vuc khac cua khoa hoc may tinh chu khong phai la mot trong tam cua nghien cuu o muc đo cao.
Cac truong cao đang va đai hoc khac, cung nhu cac truong trung hoc va nhung chuong trinh day nghe co giang day ve khoa hoc may tinh, lai nhan manh thuc hanh lap trinh cao cap thay vi ly thuyet đoi voi cac thuat toan va tinh toan trong chuong trinh giao duc cua ho. Nhung chuong trinh nay thuong co xu huong tap trung vao nhung ky nang quan trong cho nhung nguoi đi lam trong nganh cong nghiep phan mem. Phuong dien thuc hanh cua viec lap trinh thuong đuoc goi la ky nghe phan mem. Tuy nhien, co rat nhieu bat đong xung quanh y nghia that cua tu "ky nghe phan mem" (software engineering) va ve viec no voi lap trinh (programming) co phai la mot hay khong.

Xem Peter J. Denning, Great principles in computing curricula, Technical Symposium on Computer Science Education, 2004.


Xem them Tinh toan
Tin hoc
Khoa hoc thong tin
Danh sach cac chu đe co ban cua khoa hoc may tinh
Danh sach cac hoi thao khoa hoc may tinh
Danh sach cac bai toan mo trong khoa hoc may tinh
Danh sach cac an ban khoa hoc may tinh
Danh sach cac nha tien phong trong khoa hoc may tinh
Danh sach cac chu đe ky nghe phan mem


Tham khao Lien ket ngoai Open Directory Project: Computer Science
Collection of Computer Science Bibliographies Luu tru ngay 7 thang 6 nam 2011 tai Wayback Machine