1. Một số khái niệm
1.1 Khoa học là gì?
Khoa học (science) là một hệ thống tri thức có cấu trúc, được xây dựng dựa trên phương pháp luận chặt chẽ nhằm khám phá, giải thích và dự báo các hiện tượng trong thế giới tự nhiên, xã hội, cũng như trong cấu trúc của các hệ thống trừu tượng và nhân tạo.
Dựa trên đối tượng nghiên cứu, khoa học được chia thành các nhóm ngành khác nhau, ví dụ:
- Khoa học tự nhiên
- Khoa học xã hội và nhân văn
- Khoa học hình thức
- Khoa học kỹ thuật và công nghệ
Trong một nhóm ngành sẽ có nhiều ngành khoa học khác nhau. Ví dụ:
1.2 Khoa học máy tính là gì?
Khoa học máy tính (computer science) là ngành khoa học nghiên cứu có hệ thống về bản chất của thông tin, tính toán và hệ thống thuật toán, kết hợp giữa nền tảng lý thuyết của các hệ thống trừu tượng (toán học và logic) với phương pháp luận kỹ thuật nhằm thiết kế, xây dựng các hệ thống tính toán (phần cứng và phần mềm) trong thế giới nhân tạo.
Khoa học máy tính là ngành khoa học giao thoa giữa hai nhóm ngành là Khoa học hình thức (vì dùng toán học, logic, lý thuyết tính toán) và nhóm ngành Khoa học kỹ thuật và công nghệ (vì liên quan đến Thiết kế phần cứng, phần mềm, hệ thống nhân tạo).
Các nhánh nghiên cứu (phổ biến) của ngành Khoa học máy tính:
- Khoa học máy tính lý thuyết (Theoretical Computer Science)
- Trí tuệ nhân tạo và Học máy (Artificial Intelligence & Machine Learning - AI/ML)
- Hệ thống máy tính và Mạng (Computer Systems & Networks)
- Cơ sở dữ liệu và Khoa học dữ liệu (Databases & Data science)
- Kỹ thuật phần mềm (Software Engineering)
- An toàn thông tin và An ninh mạng (Cybersecurity)
- Tương tác người - máy (Human-Computer Interaction)
- Đồ họa máy tính và Trực quan hóa (Computer Graphics & Visualization)
1.3 Công nghệ thông tin là gì?
Nếu như Khoa học máy tính tập trung sâu vào lý thuyết, toán học, thuật toán và bản chất của tính toán, thì Công nghệ thông tin (CNTT) lại mang tính ứng dụng thực tiễn cao hơn.
CNTT nghiên cứu việc sử dụng, triển khai, quản trị và vận hành các hệ thống máy tính, phần mềm, mạng và dữ liệu, để giải quyết các bài toán kinh doanh, quản lý và đời sống của các tổ chức, doanh nghiệp.
Các nhánh nghiên cứu (phổ biến) của ngành CNTT:
- Kỹ thuật mạng và Quản trị hệ thống (Networking & System Administration)
- Điện toán đám mây và Hệ thống phân tán (Cloud Computing & Distributed Systems)
- An toàn thông tin và An ninh mạng (Information Security & Cybersecurity)
- Quản trị cơ sở dữ liệu và Dữ liệu doanh nghiệp (Database Management & Enterprise Data)
- Phát triển ứng dụng và Hệ thống thông tin doanh nghiệp (Application Development & Enterprise Information Systems)
- Công nghệ Web và Thương mại điện tử (Web Technologies & E-Commerce)
- Quản lý dự án CNTT và Dịch vụ công nghệ (IT Project Management & IT Service Management)
Tóm lại: Khoa học máy tính tập trung vào sáng tạo (ví dụ: viết thuật toán mới, thiết kế kiến trúc hệ thống, nghiên cứu AI cốt lõi); CNTT tập trung vào ứng dụng và quản trị (ví dụ: đưa các công nghệ có sẵn vào vận hành, thiết kế mạng lưới, bảo mật hệ thống, đảm bảo hạ tầng chạy ổn định)
1.4 Tin học là gì?
Tin học là ngành khoa học nghiên cứu các quá trình: thu thập, lưu trữ, xử lý, truyền tải và biến đổi thông tin một cách tự động bằng phương tiện điện tử, chủ yếu là máy tính điện tử.
Nếu Khoa học máy tính thiên về nghiên cứu về bản chất lý thuyết và CNTT thiên về vận hành hệ thống thực tế, thì Tin học là một khái niệm rộng hơn, mang tính chất nền tảng và phổ cập, bao trùm cả việc nghiên cứu lý thuyết lẫn ứng dụng công nghệ máy tính vào mọi mặt của đời sống xã hội.
Phạm vi của Tin học rất rộng, được chia từ cấp độ phổ thông đến học thuật chuyên sâu, cụ thể:
- Lý thuyết thông tin và xử lý dữ liệu
- Phần cứng và phần mềm
- Thuật toán và lập trình
- Ứng dụng tin học
Tóm lại, nếu lấy Tin học làm vòng trong đại diện cho toàn bộ lĩnh vực tính toán (computing), thì Khoa học máy tính là lõi lý thuyết, còn CNTT là vỏ ứng dụng. Xem hình minh họa:
Bảng sau, so sánh giữa Tin học, Khoa học máy tính và CNTT:
1.5 Xem và đọc thêm
Sử dụng các từ khóa sau, tìm kiếm trên Google, Youtube, Chatbot để xem và đọc thêm: Khoa học, Khoa học máy tính, Công nghệ thông tin, Tin học.
1.6 Bài tập và câu hỏi
Bài tập
Bài tập 1.1: Nếu bạn là một người đang giảng dạy trong khoa Công nghệ thông tin ở một đại học Việt Nam, bạn hãy nhìn lại chương trình đào tạo xem đang được thiết kế theo hướng Công nghệ thông tin hay hướng Khoa học máy tính? Hay là pha trộn giữa 2 hướng này? Và nếu thiết kế theo hướng pha trộn giữa hai hướng thì có gì hay và có gì dở? Giải pháp nên là gì, có nên tách bạch 2 hướng này không?
Bài tập 1.2: Giả thiết là: do việc định hướng và phân ngành không rõ ràng từ đầu, nên có hiện tượng có 3 đối tượng sinh viên trong một lớp ([1] học để qua môn - và không theo ngành CNTT sau khi tốt nghiệp; [2] Học để theo nghề như một kỹ sư CNTT; [3] Học để theo nghề như một chuyên gia về Khoa học máy tính). Vậy việc thiết kế chương trình nên như thế nào?
Câu hỏi
Câu 1a: Giả sử bạn là một sinh viên theo học CNTT, sau 1 năm đào tạo nền tảng, sinh viên nên chọn theo hướng nào? Phát biểu nào không hợp ý?
A. Kỹ năng số và Ứng dụng phổ thông
B. Kỹ sư CNTT
C. Chuyên gia Khoa học máy tính
D. Học để có cái bằng, rồi tính tiếp
Câu 1b: Lĩnh vực Khai thác dữ liệu (Data Mining) thuộc Ngành nghiên cứu nào?
A. Khoa học máy tính (Computer Science)
B. Kỹ thuật cơ khí (Mechanical Engineering)
C. Xã hội học (Sociology)
D. Ngôn ngữ học (Linguistics)
Câu 1c: Lĩnh vực Khai thác dữ liệu (Data Mining) thuộc nhánh nghiên cứu nào?
A. Cơ sở dữ liệu và Khoa học dữ liệu (Databases & Data science)
B. Kỹ thuật phần mềm (Software Engineering)
C. An toàn thông tin và An ninh mạng (Cybersecurity)
D. Tương tác người - máy (Human-Computer Interaction)
