Khoa học máy tính và toán học

Một người lập trình viết cho tôi: “Tại sao sinh viên khoa học máy tính phải dành nhiều năm học toán và ngôn ngữ lập trình? Tôi chỉ mất vài tháng ở trường lập trình máy tính, chả cần toán học nhưng tôi vẫn có thể lập trình và có khả năng làm việc như người lập trình.”

Đáp: Xin hiểu cho rằng Khoa học máy tính không phải là lập trình máy tính mặc dầu lập trình là một phần của nó. Tất nhiên, quyết định vào đại học hay trường hướng nghề là chọn lựa cá nhân. Mọi người có thể học cách lập trình trong vài tuần và tìm việc như người lập trình hoặc vào đại học để được giáp dục về những kĩ năng tính toán nào đó.

Có khác biệt giữa đào tạo hướng nghề vài tháng và đào tạo bốn năm đại học. Có khác biệt giữa chứng chỉ lập trình và bằng cấp máy tính. Khoa học máy tính là bộ môn kĩ nghệ nơi sinh viên học tri thức và kĩ năng để xây dựng phần mềm ứng dụng và hệ thống với chủ định được xác định rõ. Khoa học máy tính là toán học nơi sinh viên học về các năng lực và giới hạn của máy tính và cách mọi người có thể dùng chúng một cách hiệu quả.

Cả đại học và trường hướng nghề máy tính đều dạy ngôn ngữ lập trình. Phần lớn các chương trình chỉ có vài trăm dòng mã điều là dễ cho một người xây dựng với đào tạo nào đó. Tuy nhiên, trong công nghiệp phần lớn phần mềm là lớn hơn rất nhiều, một số có tới vài triệu dòng mã. Mọi người không làm việc một mình mà trong tổ, vài tổ có mười tới hai mươi người, vài tổ có hàng trăm và có thể lên tới hàng nghìn người. Phát triển và hiểu phần mềm phức tạp như vậy yêu cầu tri thức đặc biệt và bộ môn toán học. Đó là lí do tại sao sinh viên dành nhiều năm phát triển tri thức này để cho khi họ đi làm, họ có thể xây dựng các phần mềm lớn hơn và phức tạp hơn.

Hệ thống phần mềm thế giới thực cũng phải có chất lượng cao và tin cậy vì một số trong chúng kiểm soát hoạt động hàng ngày của chúng ta. Phần mềm doanh nghiệp kiểm soát tài khoản của bạn, thị trường chứng khoán, giao dịch kinh doanh v.v. Phần mềm kĩ nghệ kiểm soát giao thông, sân bay, máy bay, lưới điện, xưởng máy v.v. Bất kì hỏng hóc nào trong các hệ thống này đều có thể gây ra thiệt hại nghiêm trọng và rất tốn kém để sửa chữa. Đó là lí do tại sao những sản phẩm phần mềm này yêu cầu kỉ luật nghiêm ngặt và qui trình được xác định rõ để tránh lỗi.

Toán học cung cấp logic cho các hệ thống phần mềm này. Sinh viên cần học toán học để học về logic cũng như các kĩ thuật giải quyết vấn đề để cho họ có thể phát triển phần mềm theo cách hệ thống. Lập trình máy tính lớn hơn và phức tạp hơn yêu cầu rằng người phát triển phải tuân theo trình tự chính xác các bước để thực hiện một nhiệm vụ để cho nó có thể được đo và được kiểm một cách đầy đủ và chính xác. Toán học là nền tảng của phần mềm, nó là viên gạch để xây ngôi nhà phần mềm và không có logic, không có phần mềm. Vì khái niệm này là phức tạp, không dễ hiểu, sinh viên đại học phải học về suy luận dùng các thực thể và phép toán trừu tượng.

Toán học cung cấp ngôn ngữ mạnh cho mô tả chính xác các ý tưởng trừu tượng (logic, lí thuyết tập hợp, dãy, hàm, quan hệ), và phương pháp lập luận mạnh để dùng với các ý tưởng trừu tượng (kĩ thuật chứng minh, qui nạp, giải quyết vấn đề). Chẳng hạn: Tập hợp là tuyển tập các đối tượng, như tập tất cả các sinh viên trong phòng này, hay tập các số nguyên tố nhỏ hơn 100,000. Dãy là các tuyển tập có thứ tự các đối tượng, như bảng chữ cái (từ A tới Z) và dãy con các số nguyên (0,1,4,9.16 …). Khi bạn học khoa học máy tính, bạn học việc dùng các khái niệm và phương pháp toán học để tổ chức ý nghĩ của bạn và truyền chúng vào thiết kế và mã.

Sinh viên đại học học năng lực giải quyết vấn đề, nhận ra các mức trừu tượng trong phần mềm, phần cứng. Họ cũng học kĩ năng như xây dựng và dùng hệ quản trị cơ sở dữ liệu và công cụ phần mềm phức tạp để thực hiện đa dạng nhiệm vụ tính toán. Bên cạnh kĩ năng kĩ thuật, họ cũng học kĩ năng mềm như trao đổi, viết, trình bày hay trình diễn, là thành viên tổ và tham gia vào làm việc tổ v.v..

Ngày nay và trong tương lai, phần lớn việc làm tốt đều yêu cầu giáo dục đại học. Tuy nhiên, liệu bạn vào đại học hay đào tạo hướng nghề còn tuỳ thuộc vào nhiều yếu tố như tài chính, thời gian, nhu cầu, nghề nghiệp và việc làm v.v. Đó là chọn lựa mà mọi người phải làm. Nhân tiện, khi bạn chọn lựa, bạn phải làm một số tính toán trong đầu về nó cũng là toán học nữa.

English version

Full article: Computer science and math

Tác phẩm, tác giả, nguồn

  • Tác phẩm: Khoa học máy tính
  • Biên tập: Kipkis.com
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.