Câu hỏi chưa có lời giải

Khoa học máy tính có thật sự nói về máy tính không?

Thứ năm, 3/9/2026, 17:30 (GMT+7)

Dạy Con Yêu

Khoa học máy tính có thật sự nói về máy tính không?

Khoa học máy tính là nghiên cứu cái máy hay nghiên cứu cách nghĩ? Câu hỏi gần 60 năm chưa ngã ngũ, và vì sao nó quyết định con bạn học gì.

Một trong những người mở đường của ngành máy tính, Edsger Dijkstra, từng để lại một câu khiến ai đọc cũng phải dừng lại: khoa học máy tính không nói về máy tính, cũng như thiên văn học không nói về kính viễn vọng.

Nghe qua thì vô lý. Môn ấy có chữ "máy tính" ngay trong tên. Nhưng Dijkstra là người rất khó tính với chính cái máy: ông đoạt giải A.M. Turing năm 1972, phát minh ra một trong những thuật toán biểu tượng nhất của ngành, vậy mà lại từ chối dùng máy tính trong công việc của mình. Lý do ông đưa ra: các nhà nghiên cứu y khoa đâu bị buộc phải mắc chính căn bệnh họ nghiên cứu. Ông cũng gọi ngôn ngữ lập trình Fortran là "the infantile disorder", tức chứng rối loạn trẻ con, và nói rằng dùng COBOL làm què quặt trí óc nên việc dạy nó phải bị coi là một tội hình sự.

Vậy nếu môn đó không nói về cái máy đang đặt trên bàn, thì nó nói về cái gì?

Câu hỏi, nói bằng lời thường

Hãy thử tưởng tượng bạn đang giải thích cho em mình cách xếp một cỗ bài từ nhỏ tới lớn. Bạn nói: lấy quân đầu tiên, so với quân kế bên, nếu nhỏ hơn thì đổi chỗ, rồi làm lại từ đầu cho tới khi không còn chỗ nào phải đổi. Bạn vừa mô tả một thuật toán (algorithm): một dãy bước thật rõ ràng, không được phép hiểu theo hai nghĩa.

Điểm đáng chú ý là cỗ bài đó không cần máy tính. Bạn tự làm được bằng tay. Và cách xếp ấy vẫn đúng dù bạn viết nó ra bằng tiếng Việt, tiếng Anh hay tiếng Ả Rập. Cũng giống hệt vậy, cùng một thuật toán có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau mà lõi bên trong không đổi.

Nếu cái lõi nằm ở ý tưởng chứ không ở cái máy, thì cái máy đóng vai gì? Đó chính là câu hỏi còn treo: khoa học máy tính là ngành nghiên cứu máy tính, hay nghiên cứu việc tính toán, một thứ đã tồn tại trước khi có máy?

Vì sao câu này khó ngã ngũ

Cách trả lời hiển nhiên là tra từ điển hoặc hỏi các giáo sư đầu ngành. Nhưng chính ở đó cách làm hiển nhiên vỡ ra: người trong ngành không đồng ý với nhau, và đã không đồng ý suốt nhiều chục năm.

William Rapaport, giáo sư danh dự ngành khoa học máy tính và triết học tại University at Buffalo, đã dành nhiều công ghi chép lại đủ các định nghĩa từng được đề xuất. Ông giải thích rằng bất đồng ấy bắt nguồn từ gốc gác khác thường của ngành: "Khoa học máy tính có hai cha mẹ. Nó có một người cha mẹ toán học, và một người cha mẹ kỹ thuật, và nó thực sự là lai giữa hai thứ đó."

Đây là lý do câu hỏi khó theo một kiểu rất riêng. Nó không giống bài toán chờ ai đó tìm ra đáp số. Nó giống chuyện hai bên đều nói đúng về nửa của mình. Bên toán học chỉ ra rằng lý thuyết về tính toán đã được dựng lên từ thập niên 1930, tức là trước khi có máy tính điện tử đa dụng đầu tiên, do các kỹ sư chế tạo trong thập niên 1940. Bên kỹ thuật chỉ ra rằng có những nhánh mà phần cứng và phần mềm là thiết yếu, không thể bỏ đi: thiết kế hệ điều hành (operating system), hay nghiên cứu việc quản lý bộ nhớ (memory management). Bỏ máy tính ra khỏi những nhánh đó thì chẳng còn gì để nghiên cứu.

Ai đã thử trả lời, và tới đâu rồi

Năm 1967, ba nhà khoa học máy tính có tiếng là Allen Newell, Alan Perlis và Herbert Simon gửi một lá thư đầy khí thế lên ban biên tập tạp chí Science. Lập luận của họ gọn tới mức khiêu khích: ở đâu có hiện tượng, ở đó có thể có một khoa học mô tả và giải thích hiện tượng đó; có máy tính; vậy nên khoa học máy tính là ngành nghiên cứu máy tính.

Lá thư ấy nhắm vào những người phê bình cho rằng khoa học đúng nghĩa thì phải nghiên cứu hiện tượng tự nhiên. Ba tác giả phản bác bằng cách chỉ sang các ngành đã ổn định như hoá học, nơi người ta vẫn nghiên cứu cả những thứ do con người tạo ra. Năm 1969, Simon đi xa hơn trong cuốn "The Sciences of the Artificial": theo ông, chính việc tập trung vào các hệ thống nhân tạo được thiết kế có chủ đích mới làm nên nét đặc biệt của ngành.

Năm 1974, Donald Knuth đưa ra một câu trả lời khác hẳn. Ông nhấn mạnh quá trình tính toán thay vì bản thân cái máy, và định nghĩa khoa học máy tính là ngành nghiên cứu thuật toán. Ở góc nhìn này, con người cũng chạy thuật toán, không chỉ khi giải toán mà cả khi sắp xếp đồ vật. Máy tính quan trọng vì một lý do rất thực tế: nó mở ra những bài toán mà con người không đủ thời gian và không đủ kiên nhẫn để tự làm hết.

Rapaport gói cả cuộc tranh luận lại thành hai câu hỏi mà mỗi phân ngành trả lời theo cách riêng: cái gì có thể tính được, và tính nó bằng cách nào. Muốn trả lời câu thứ nhất một cách nghiêm túc, người ta phải bắt đầu từ một cách viết bài toán ra bằng ngôn ngữ toán học, thứ giới nghiên cứu gọi là mô hình tính toán (model of computation).

Tới hôm nay, không định nghĩa nào trong số đó được cả giới nghiên cứu chấp nhận.

Nếu ngã ngũ thì đổi được gì

Đây không phải chuyện cãi nhau cho vui. Định nghĩa quyết định người ta dạy gì trong trường. Nếu ngành này là nghiên cứu máy tính, học sinh sẽ học nhiều về mạch điện, bộ nhớ, hệ điều hành. Nếu nó là nghiên cứu thuật toán, phần lớn thời gian sẽ dành cho cách nghĩ, cách chứng minh một cách làm là đúng, và điều đó học được bằng giấy bút. Nó cũng quyết định thứ hạng ưu tiên khi cấp tiền nghiên cứu, và quyết định cả việc bạn có được gọi là "làm khoa học" hay không khi cả ngày bạn không chạm vào một cái máy nào.

Thử ở nhà

Lấy một tờ giấy, viết ra từng bước để pha một ly nước chanh, hoặc để buộc dây giày. Rồi đưa cho người khác và yêu cầu họ làm đúng từng chữ, cấm đoán ý bạn. Chỗ họ làm sai chính là chỗ thuật toán của bạn còn thiếu một bước.

Câu hỏi này đang đứng đúng ở đó: gần sáu mươi năm sau lá thư gửi Science, một ngành đã làm thay đổi cả thế giới vẫn chưa thống nhất được nó nghiên cứu cái gì. Và một câu hỏi bạn có thể mang theo: liệu có việc nào máy tính mãi mãi không tính nổi, dù máy có nhanh tới đâu?

Lưu ý

Bài viết dựa trên tin khoa học đã công bố, viết lại cho bạn đọc nhỏ tuổi. Có chỗ nào con muốn tìm hiểu thêm thì rủ bố mẹ đọc cùng nhé.

Đọc tiếp

Đọc thêm cùng con

Mở Dạy Con Yêu để nghe radio, chơi trò học và làm đề kiểm tra theo lớp.

Học cùng con ngay