Computational Science vs. Computer Science

Nhân tiện vừa comment về “định nghĩa Computer Science” trên blog Khoa Học Máy Tính, tôi post luôn một bài luyên thuyên về “Computational Science vs. Computer Science” (tất nhiên không phải là viết về Toán).

Khoa Học Tính Toán (Computational Science) và Khoa Học Máy Tính (Computer Science) khác nhau như thế nào?

Nếu bạn đặt câu hỏi “Computational Science là gì?” đối với Computer Science majors (undergrad students) thì có lẽ một nửa sẽ trả lời “I don’t know what the hell it’s about” và nửa còn lại sẽ cho rằng “chẳng qua chỉ là cách gọi khác của Computer Science mà thôi”. Còn nếu bạn đặt câu hỏi “Computer Science là gì?” thì một nửa sẽ gãi đầu lí nhí rằng “hmm, hồi trước giờ mình học ngành Computer Science nhưng chưa bao giờ định nghĩa CS là gì”; còn nửa còn lại thì sẽ ba hoa từ “thiết kế phần mềm” đến “trí tuệ nhân tạo” rồi đưa ra một định nghĩa dài dòng … nhưng sai toét.

Cũng dễ hiểu thôi, vì thực ra chưa có một định nghĩa thật sữ rõ ràng về Computer Science. Như khá nhiều người định nghĩa rằng Computational Science là khoa học dùng computers để thực hiện một số lượng rất lớn các computations còn Computer Science là khoa học nghiên cứu các vấn đề nội tại của Computers. Nếu như vậy thì Artificial Intelligence (AI), Machine Learning, Computational Biology, Cryptography… đều thuộc phạm vi Computational Science và Computer Science chỉ bao gồm Architecture, System, Networking, Programming Languages, Software Design… Mà có lẽ cũng đúng: hầu hết các giải Turing (được ví như giải Nobel dành cho dân Computer Science) đều trao cho những người nghiên cứu về các vấn đề nội tại của máy tính.

Tuy nhiên, những người học về AI, Machine Learning,… lại luôn cho rằng họ thuộc giáo phái Computer Science. Và tương tự, đa số các tông đồ chính thống của Computational Science không cho rằng họ thuộc giáo phái của mình.

Tại sao lại như vậy? Rõ ràng có gì đó không phải với định nghĩa ở trên mặc dù nghe rất hợp lý. Thực ra Computational Science và Computer Science đều có gốc từ Toán (cụ thể là Toán ứng dụng) nhưng lại xuất phát ở 2 nền văn hóa Toán Học khác nhau: văn hóa liên tục (nghiên cứu những bài Toán mang tính liên tục như động học chất lỏng, dự báo thời tiết, giải phương trình sóng…) và văn hóa rời rạc (tìm đường đi ngắn nhất giữa các thành phố, thiết kế ngôn ngữ lập trình…). Hai nền văn hóa này đã đẻ ra 2 giáo phái mà cái tên không phản ánh được chính xác bản chất của 2 giáo phái này.

6 Responses to “Computational Science vs. Computer Science”

  1. Lê Hoàng Long Says:

    Chào Khoa, những nhận định như trên của Khoa, đặc biệt là ở đoạn cuối, có phải là nhận định chung của dân trong ngành không, hay chỉ là nhận định của riêng Khoa? Tôi không nghi ngờ gì cả, chỉ muốn học hỏi.
    Một nhận xét nữa mà tôi có là Computational Science là ngành toán nhưng lại sử dụng máy tính rất nhiều, trong khi Computer Science lại có nhiều vấn đề rất thuần túy toán. Trước đây, tôi nghĩ học ngành Máy tính là phải rành rẽ về lập trình, sửa chữa máy tính… nhưng sau này mới thấy không phải vậy. Có rất nhiều, nếu không muốn nói là đại đa số, các vấn đề trong ngành Computer Science được giải quyết bằng công cụ toán thuần túy. Do đó, bậc đại cao thủ ngành Computer Science không nhất thiết phải biết lập trình.

  2. Khoa Tran Says:

    Anh Long,

    Những nhận định trên là từ personal experience và từ các grassroots talks của dân trong ngành.

    Computational Science include từ “computation” nên tất nhiên là phải sử dụng máy tính tương đối intensively. Các supercomputers lớn trên thế giới (http://en.wikipedia.org/wiki/TOP500#Highlights_from_the_Top_10) đều dùng để giải PDEs chứ không phải để nghiên cứu CS itself. Nhưng so với computer scientists hay computer engineers thì computational scientists khá “illiterate” về computers🙂.

    Theoretical Computer Science thì cũng dùng Toán rất nhiều (bên Logic, Discrete Math). Một hướng khác cũng dùng Toán (cụ thể là Statistics) khá nhiều là Machine Learning. Một hướng khác nữa là Cryptography. Một hướng mới là Quantum Computing thì có cả Topology (như Michael Freedman, Fields Medalist). Tóm lại, có nhiều người bên CS master về Toán (có thể anh Long ấn tượng từ anh NQHưng) nhưng nhìn chung, đa số không.

    p/s: cả computational scientists lẫn computer scientists, có rất nhiều người không lập trình nhưng tất thảy đều biết lập trình (at a certain level)🙂

  3. vinhspiderman Says:

    Computer Science la gi thi spiderman khong dam lan san, nhung Computational Science ma bao la:
    “khoa học dùng computers để thực hiện một số lượng rất lớn các computations” thi that la … khiem khuyet!

    Dung theo ten goi cua no, Computational Science nghia la KHOA HOC TINH TOAN. Ma tinh toan (computations) thi co rat nhieu phuong phap (methods) va cong cu (tools), ke ca trong va ngoai Toan. Khong chi co moi mot cach la lap trinh roi nho may tinh chay! Tat nhien khong the phu nhan duoc la vai tro cua may tinh cang ngay cang tro nen VITAL trong linh vuc computations, den noi, doi voi mot Scientist ve Computational Science se la dat minh vao mot cai long chat hep neu phu nhan vai tro cua may tinh. Tuy nhien, neu vi vay ma nghi rang KHOA HOC TINH TOAN tat ca chi la dung COMPUTERS thi … dung la nhin nhan phien dien.

  4. vinhspiderman Says:

    Sau day la dinh nghia tren Wikipedia ve Computational Science:

    Scientific computing (or computational science) is the field of study concerned with constructing mathematical models and numerical solution techniques and using computers to analyze and solve scientific, social scientific and engineering problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines.

  5. minhto Says:

    to muon hoi la muon tim sach ve computer science co the tim o dau, vi thuc su to k tim duoc sach ve cai do

  6. Khoa Tran Says:

    Sách về CS, minhto có thể tìm hiểu tại đây: http://www.procul.org/blog/2007/10/01/sach-khmt/


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: