Câu hỏi cơ bản cho các bạn đọc blog KHMT
Một bạn email cho tôi với câu hỏi sau:
ban oi! minh hien nay dang dinh thi vao nghanh khoa hoc may tinh! Vay ban co the cho minh biet doi net ve no, tuc la se hoc ve cai gi va sau nay hoc ra thi se lam ve cai gi duoc khong? Cam on !
Tôi đã viết rất nhiều thứ trên blog này có liên quan đến câu hỏi này, nhưng thật sự chưa có một câu trả lời ngắn gọn và dễ hiểu cho một học sinh trung học.
Thay vì tự ba hoa một mình như thường lệ, xin đặt câu hỏi này cho các bạn đọc blog. Câu trả lời phải tránh tối đa các thuật ngữ chuyên môn. Các bạn đọc blog đa phần là dân chuyên ngành. Bạn giải thích về ngành nghề của mình cho một học sinh trung học như thế nào?

Tôi xin phép được đưa ra vài định nghĩa non-technical “KHMT according to Ka hơ mơ tơ bloggers and commenters”.
Hoàng Long: KHMT là ngành khoa học rộng lớn giúp cho bạn thoát khỏi đảo Đào Hoa vào casino trộn bài nhuyễn và nhanh nhất.
Bình Minh: KHMT giúp cho bạn bận bịu tìm kiếm và hạnh phúc kế hoạch hóa gia đình.
Xuân Long: Là môn mà Lê Nin đã nhắn nhủ chúng ta, cả người và máy là: Học, học nữa, học mãi. Bạn có thể không đồng ý nhưng tôi xin nhắc là chính An Tiêm cũng từng nói: Người học được thì chắc là máy cũng học được. Tất nhiên An Tiêm ngày xưa mông muội lắm, vì An Tiêm không học statistics…
Tvhvt cắt: Bác Long, có ba kiểu nói cuội: lies, damn lies and stattistics!
Hưng Ngô: Nói một cách cực kỳ đơn giản, KHMT bắt nguồn từ Cantor. Cantor là tác giả của phương pháp đường chéo mà tôi rất yêu thích. Phương pháp đường chéo được sử dụng rộng rãi trong rất nhiều lĩnh vực của cuộc sống hiện đại. Một ví dụ trong số đó chính là vấn đề mà các bạn trẻ chúng ta vẫn hay dằng co: “Nên tiếp hay nên thôi”. Vấn đề này (halting problem) thực ra Turing đã trả lời rất mực cặn kẽ cách đây 80 năm. Câu trả lời là không trả lời được. À, không được technical hỉ… tôi muốn nói là nhờ Turing mà chúng ta có blog KHMT hôm nay để cho bạn đọc. KHMT chính là một ngành khoa học giúp cho tôi tự do tí toáy và có nhiều giấc mơ viển vông về một thư viện mở. Nếu bạn vẫn chưa rõ lắm xin mời thử sức một số câu hỏi phỏng vấn sau…
:-), tôi không biết là bác Long cũng tếu phết
Em cũng mới tham gia môn phái “KHMT” của các bác nên chưa biết nhiều, hy vọng sau một thời gian nữa sẽ giác ngộ được.
Tôi xin mượn tạm phần comment này để nhắn (sẽ xóa sau đó): Vừa rồi có bạn nào (Linh?) email cho tôi hỏi về pdf file của survey paper về sequential analysis, tôi lỡ tay xóa mất email (vì không hiểu sao thư của bạn lại bị filter vào junk folder). Xin bạn vui lòng email lại (xuanlong -at- cs.berkeley.edu) tôi sẽ gửi file đó cho. Long
Thiết nghĩ topic này phải xôm tụ lắm. Hóa ra lại chẳng có mấy người seriously reply nhỉ!? Em mạnh dạn góp ý của mình vậy. Mong các anh chị chỉ giáo thêm.
Theo em, sv ngành khoa học máy tính là sẽ học về những gì liên quan đến … máy tính
Cụ thể là máy tính có thể làm được những gì, và những gì có thể làm được bằng máy tính. Thật ra máy tính chỉ là 1 loại công cụ, phương tiện để hiện thực sức mạnh của cái gọi là “lý thuyết tính toán”. Do đó, nói chính xác hơn thì bạn sẽ học khả năng và sức mạnh của “lý thuyết tính toán” (hiện thực bằng máy tính) đến đâu. Cho đến thời điểm hiện nay, cái này vẫn còn là câu hỏi mở.
Học xong, trên lý thuyết, nếu đi làm bạn sẽ có thể làm về tất tần tật những gì liên quan đến máy tính, và lý thuyết tính toán. Bạn cũng có thể học lên cao nữa để mở rộng “khả năng” của cái lý thuyết đó, tìm cách dùng nó để làm những chuyện mà hiện nay chưa ai làm được bằng lý thuyết tính toán. Hoặc chứng minh được việc đó ko làm được bằng lý thuyết tính toán. Hoặc giỏi nữa thì bạn nghĩ ra lý thuyết mới để làm những chuyện đó…
Trong quá trình học, bạn sẽ tự build up cho mình những gì bạn có thể làm được với máy tính. Đương nhiên, tùy vào bạn có thể làm được những gì với máy tính mà bạn có dễ kiếm việc hay ko. Vd nếu học xong mà bạn chỉ biết dùng máy tính để chơi Võ lâm truyền kỳ, thì bạn cũng có thể kiếm tiền bằng cách bán “bửu bối” trên mạng
Theo tôi thấy thì định nghĩa Computer Science vẫn chưa thật sự rõ ràng. Như khá nhiều người định nghĩa rằng Computational Science là khoa học dùng computers để thực hiện các computations còn Computer Science là học về các vấn đề nội tại của Computers. Nếu như vậy thì AI, Machine Learning, Computational Bio,… đều thuộc phạm vi Computational Science còn 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 đề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.
@Đông Tà: Computer Science nghiên cứu computer cũng như Thiên Văn Học nghiên cứu kính viễn vọng (Dijkstra). Dijkstra hơi phóng đại, nhưng lý luận của ông không xa sự thật là mấy. Không phải là hầu hết các giải Turing đề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. Trong Vật Lý người ta có thể có giải thưởng lớn cho ai chế ra máy tăng tốc hạt, nhưng máy tăng tốc hạt không là đối tượng nghiên cứu chính của Vật Lý.
Đối tượng chính của Computer Science là computation: cái gì tính được, cái gì không tính được, độ phức tạp của những thứ tính được là như thế nào. Ở đây, chữ “tính toán” có thể hiểu theo nghĩa của Church-Turing thesis, bao gồm những thứ thông thường nhất như một User Interaction, hay một thuật toán machine learning hiện đại. Còn “độ phức tạp” có nhiều tham số: không gian, thời gian, energy, error rates (như trong machine learning hay coding theory), vân vân.
Computer Science là một misnomer (đặt tên sai rồi chết tên luôn).
Sao bác Hưng lại so sánh với vật lý nhỉ? Em nghĩ philosophy của Vật Lý khá rõ ràng đấy chứ. Em chưa nghe ai được giải lớn bên Vật Lý chỉ vì chế ra accelerator.
Em thì luôn classify Computational Theory (decidability, computability, etc.) là một phần (quan trọng) của CS và xem đấy là một vấn đề nội tại của CS. Bên Machine Learning, for example, em nghĩ là họ dành nhiều thời gian để construct fast algorithms (based on Statistics or Analysis in general) cho một bài toán thực tế nào đó chứ không ngồi chứng mình cái nào tính được/cái nào không như các Computational Theorists thuần túy.
Em đồng ý rằng CS là một misnomer. Nó mang bản chất của một nền văn hóa Discrete Math hơn là … Computer Science.
La’szlo’ Lova’sz “Computer science, also called informatics, is often defined as the theory of storing, processing, and communicating information.”
Tri’ch cau dau tien trong bai viet “Information and Complexity (How to measure them?)”, 1996:
http://www.cs.elte.hu/~lovasz/roma.pdf
Tôi cũng liều mượn phần comment này để cảm ơn bác Long phát nữa về chỉ dẫn survey paper của Tze Leung Lai. Tôi không tìm lại được “comment” đó của bác.
Đề nghị bác thêm ref về bài survey đó vào blog entry về “Sequential Analysis Theory” (bác đã viết gần 2 năm trước):
http://www.procul.org/blog/2005/06/29/cac-bai-bao-kinh-oi%e1%bb%83n-c%e1%bb%a7a-khmt-2-walds-sequential-analysis-theory/
Hello Đông Tà: COLT - hay computational learning theory - nghiên cứu về cái nào learn được, cái nào không. Learn được nghĩa là compute được. Tôi thấy philosophy của CS cũng rõ ràng không kém Vật Lý.
năm nay em thi dzô …….. ngành khmt … nhưng mà chưa hiểu kĩ kàng về nó . ai có thể cho em biết cụ thể là khmt đào tạo về cái gì ko ? em xin đa tạ
Chào các anh chị. Em đang là sinh viên năm cuối ngành Ka hờ mờ tờ, câu hỏi mà bạn đặt ra em cũng đã có lần suy nghĩ.
Ở việt nam, KHMT được coi như là một chuyên ngành hẹp của CNTT (các chuyên ngành khác là CN phần mềm, mạng và truyền thông, hệ thống thông tin). Tuy em đang học KHMT thật nhưng môn Computable và Complexity không được dạy (không biết cao học về Khmt có dạy không ?!!) thay vào đó là Machine learning, Data mining, Natural language processing … Chắc người ta cho rằng học Computable, Complexity thì không giúp gì được cho Việt nam trong khi vấn đề xử lí tiếng Việt thì đang rất cần người nghiên cứu; hoặc cũng có thể (chắc 90% rằng) Computable và Complexity quá khó ít có ai chịu nghiên cứu để mà đi dạy cho sinh viên. Em nghĩ ở Mỹ chắc cũng rất ít sinh viên chọn Computable, Complexity … làm nghề nghiệp anh Hưng nhỉ.
Nghĩ đến đây em có câu hỏi:
Nếu Computable và Complexity là đối tượng quan trọng nhất của KHMT thì đối tượng quan trọng thứ nhì của Computer science là gì ?
Liệu có phải là những thuật toán cụ thể cho các vấn đề sau:
1. Machine learning, data mining, … những thứ dính nhiều đến thống kê.
2. Lưu trữ, tìm kiếm sắp xếp dữ liệu
Liệu có thể giản đơn hóa Computer science = MetaAlgorithms (computable, complexity) + Algorithms cho một vấn đề cụ thể nào đó.
??
@super Ngố: mình nghĩ ở VN không có cái gọi là KHMT thực sự đâu, chủ yếu vẫn là CNTT thôi. Nếu bạn đang chọn trường chú ý phân biệt các ngành Toán tin, KHMT, CNTT.