JEANNETTE M. WING: DẪN NHẬP VỀ TƯ DUY TÍNH TOÁN

Thời gian đọc khoảng: 9 phút.

Nói đến kỹ năng công nghệ sẽ khó bỏ qua một khái niệm được thường được đề cập rất nhiều, đó là Computational Thinking.

Chúng ta cùng xem bản dịch từ bài báo gốc của GS. Jeannette M. Wing nhé:

Nó là thái độ và kỹ năng, phù hợp cho tất cả mọi người tìm hiểu và áp dụng, không chỉ riêng các nhà khoa học máy tính.

Tư duy tính toán được xây dựng dựa trên các nguồn lực và giới hạn của các quy trình tính toán, cho dù chúng được thực thi bởi con người hay bởi một cỗ máy. Các phương pháp và mô hình tính toán gợi ý cho chúng ta hướng giải quyết các vấn đề và thiết kế các hệ thống, mà chúng ta khó có thể giải quyết được một mình. Tư duy tính toán đối mặt với câu hỏi về trí thông minh của máy tính: Con người có thể làm gì để giỏi hơn máy tính? và Máy tính có thể làm gì để giỏi hơn con người? Về cơ bản nhất, nó giải quyết câu hỏi: Thế nào là tính toán? Cho đến ngày nay, chúng ta cũng chỉ biết một phần câu trả lời với những câu hỏi như vậy.

Tư duy tính toán là một kỹ năng cơ bản cho tất cả mọi người, chứ không chỉ riêng các nhà khoa học máy tính. Ngoài biết đọc, viết và làm tính, chúng ta nên thêm Tư duy tính toán vào năng lực phân tích của một đứa trẻ. Giống như máy in tạo điều kiện cho sự phát triển của kỹ năng đọc-viết-làm tính, thì máy tính và sự tính toán sẽ tạo điều kiện phát triển Tư duy tính toán.

Tư duy tính toán liên quan đến việc giải quyết các vấn đề, thiết kế các hệ thống và thấu hiểu hành vi của con người, bằng cách dựa trên các khái niệm cơ bản của khoa học máy tính. Tư duy tính toán bao gồm một loạt các công cụ tư duy phản ánh góc nhìn bao quát về lĩnh vực khoa học máy tính.

Khi giải quyết một vấn đề cụ thể, chúng ta có thể hỏi: Vấn đề này khó đến mức nào? Và đâu là cách tốt nhất để giải quyết nó? Khoa học máy tính dựa trên nền tảng lý thuyết vững chắc để trả lời chính xác những câu hỏi như vậy. Máy tính có đủ khả năng để xác định mức độ khó khăn của vấn đề, thiết bị điện toán sẽ chạy ra các giải pháp. Để máy tính ra được giải pháp, chúng ta phải lập trình các tập lệnh, cân đối các nguồn lực cũng như khả năng, và hệ điều hành của máy.

Để giải quyết vấn đề một cách hiệu quả, chúng ta có thể hỏi thêm: Liệu một giải pháp gần đúng có được coi là tốt hay không? Liệu chúng ta có thể sử dụng quy luật ngẫu nhiên để tăng hiệu quả cho cách giải hay không? Và liệu kết quả dương tính giả hay âm tính giả có được chấp nhận hay không? Tư duy tính toán đang chuyển đổi một vấn đề có vẻ khó khăn thành một vấn đề mà chúng ta sẽ biết làm thế nào để có giải pháp, có thế bằng cách giảm, nhúng, biến đổi hoặc mô phỏng.

Tư duy tính toán là tư duy một cách đệ quy: đó là quá trình xử lý hai chiều. Nó diễn đạt mã lệnh dưới dạng dữ liệu, và thể hiện dữ liệu dưới dạng mã hóa. Đây là dạng kiểm tra một cách tổng quát của phân tích đa chiều. Nó chấp nhận cả lợi ích lẫn rủi ro của việc gán giá trị, hoặc gán cho một đối tượng nào đó nhiều hơn một cái tên. Nó chấp nhận cả việc tiêu tốn tài nguyên lẫn gia tăng sức mạnh, thông qua việc sử dụng các địa chỉ gián tiếp và xử lý trung gian. Nó đánh giá một chương trình không chỉ về tính chính xác và hiệu quả, mà còn là tính thẩm mỹ và thiết kế hệ thống đơn giản, gọn nhẹ.

Tư duy tính toán còn áp dụng tính trừu tượng và chia nhỏ khi giải quyết một vấn đề hoặc thiết kế một hệ thống lớn và phức tạp. Đó là việc phân tách các góc nhìn khác nhau. Nó mô tả khái quát về vấn đề hoặc mô hình hóa các khía cạnh liên quan của vấn đề đó, để làm cho nó dễ xử lý hơn. Nó sử dụng các thông số để mô tả hoạt động của hệ thống một cách ngắn gọn và rõ ràng. Chúng ta có thể tự tin khi sử dụng, sửa đổi và điều chỉnh hệ thống phức tạp lớn mà không cần phải hiểu quá chi tiết về nó. Khái quát hóa các thói quen của người dùng và đưa ra các dự đoán trong tương lai.

Tư duy tính toán là cũng là tư duy về việc phòng ngừa, bảo vệ và phục hồi từ các tình huống xấu nhất, thông qua việc dự phòng, ngăn chặn thiệt hại và sửa lỗi. Nó nhận diện các điểm tắc nghẽn và áp dụng khái niệm về sự tương phản. Nó chống lại các điều kiện đặc thù trong quá trình đồng bộ.

Tư duy tính toán vận dụng lý luận “heuristic” (thử và sai) để tìm ra các giải pháp. Đó là việc hoạch định, học hỏi và lên kế hoạch để tìm ra những ẩn số. Đó là việc tìm kiếm, tìm kiếm và tìm kiếm nhiều hơn nữa, nó lấy kết quả ở một loạt các trang Web, lên chiến lược để chiến thắng một trò chơi, hoặc đưa ra một ví dụ phản biện. Tư duy tính toán sử dụng lượng dữ liệu khổng lồ để tăng tốc độ tính toán. Nó cân nhắc sự đánh đổi giữa thời gian với không gian, giữa sức mạnh xử lý với khả năng lưu trữ.

Hãy xem xét những ví dụ hàng ngày sau đây: Khi con gái bạn đi học vào buổi sáng, cô ấy cho vào ba lô những thứ cô ấy cần cho cả ngày; đó là chương trình lưu trước và bộ nhớ đệm. Khi con trai của bạn đánh mất găng tay, bạn đề nghị con trở lại các bước đi của mình; đó là truy ngược. Tại thời điểm nào bạn ngừng thuê ván trượt và mua cho mình một đôi?; đó là giải thuật. Bạn nên đứng ở dãy nào để chờ tính tiền trong siêu thị?; đó là mô hình hóa hiệu năng cho các hệ thống nhiều máy chủ. Tại sao điện thoại bàn của bạn vẫn hoạt động trong thời gian cúp điện?; đó thiết kế độc lập khi xảy ra sự cố và dự trù dư thừa. Làm thế nào để CAPTCHA, xác thực đó là con người?; đó là việc xử lý những vấn đề của trí tuệ nhân tạo.

Tư duy tính toán sẽ ngày càng lấn sâu vào cuộc sống của mọi người khi các từ như “thuật toán” và “điều kiện tiên quyết” trở thành một phần trong cuộc nói chuyện của mọi người; khi “chủ nghĩa vô định” và “thu gom rác thải” lại có ý nghĩa đối với các nhà khoa học máy tính; và khi cây được vẽ lộn ngược (sơ đồ cây).

Chúng ta đã chứng kiến sự ảnh hưởng của tư duy tính toán đối với các ngành khác. Ví dụ, machine learning (máy có khả năng học) đã có thể chuyển đổi số liệu thống kê. Lĩnh vực thống kê đang được áp dụng cho các vấn đề trên quy mô lớn, về cả kích thước và lượng dữ liệu, đến mức khó tin, chỉ một vài năm trước đây thôi. Các bộ phận thống kê trong tất cả các tổ chức đang tuyển dụng các nhà khoa học máy tính. Các trường khoa học máy tính đang đẩy mạnh bộ môn thống kê có sẵn, hoặc thành lập mới.

Gần đây, các nhà khoa học máy tính ngày càng tìm hiểu sâu về lĩnh vực sinh học, vì họ tin rằng, các nhà sinh học có thể hưởng lợi từ Tư duy tính toán. Sự đóng góp của khoa học máy tính vào sinh học vượt xa, thông qua khả năng tìm kiếm số lượng lớn dữ liệu chuỗi, đưa ra các mô thức. Hy vọng là với các cấu trúc dữ liệu và thuật toán – sự trừu tượng hóa và phương pháp tính toán – có thể biểu đạt cấu trúc của các protein sao cho chúng ta thấy rõ chức năng của chúng. Sinh học tính toán đang thay đổi cách suy nghĩ của các nhà sinh học. Tương tự, lý thuyết trò chơi tính toán đang thay đổi cách suy nghĩ của các nhà kinh tế; tính toán nano, thay đổi suy nghĩ các nhà hóa học; và điện toán lượng tử, thay đổi suy nghĩ các nhà vật lý.

Kiểu suy nghĩ này sẽ là một phần trong bộ kỹ năng cần thiết cho tất cả mọi người, chứ không riêng gì các nhà khoa học. Trong tương lai, tư duy tính toán sẽ phổ biến giống như điện toán phổ biến trong thời đại ngày nay. Sở dĩ điện toán phổ biến ngày nay là bởi giấc mơ của ngày hôm qua đã trở thành hiện thực; tư duy tính toán cũng sẽ trở nên thực tế trong tương lai.

NÓ GỒM CÓ NHỮNG GÌ? VÀ KHÔNG PHẢI NHỮNG GÌ?

Khoa học máy tính là ngành nghiên cứu về tính toán, những gì có thể tính toán được và phương pháp tính toán. Do đó, tư duy tính toán có các đặc điểm sau:

Khái niệm, chứ không phải là lập trình. Khoa học máy tính không phải là lập trình máy tính. Tư duy như một nhà khoa học máy tính có nghĩa suy nghĩ trên cả việc lập trình máy tính. Nó đòi hỏi tư duy ở nhiều cấp độ trừu tượng;

Tư duy từ nền tảng, chứ không phải kỹ năng bắt chước. Tư duy từ nền tảng là điều mà mỗi con người phải biết, để thực thi vai trò của mình trong xã hội hiện đại. Trước đây, người ta cứ cho rằng máy tính hoạt động theo kiểu bắt chước, cho đến khi khoa học máy tính giải quyết được thử thách lớn về AI (trí tuệ nhân tạo), điều này chứng tỏ máy tính có thể tư duy;

Tư duy theo cách con người, chứ không phải máy tính. Tư duy tính toán là cách con người giải quyết vấn đề; chứ không phải khiến con người suy nghĩ như những người khác. Máy tính thì buồn tẻ và nhàm chán; con người thì thông minh và giàu trí tưởng tượng. Con người chúng ta sẽ làm cho máy tính trở nên thú vị. Được trang bị các thiết bị điện toán, chúng ta sử dụng trí thông minh của mình để giải quyết các vấn đề mà chúng ta chưa thực hiện trước khi có máy tính, và xây dựng các hệ thống hoàn chỉnh với trí tưởng tượng của mình;

Bổ sung và kết hợp với tư duy toán học và kỹ thuật. Khoa học máy tính vốn đã dựa trên tư duy toán học, giống như tất cả các ngành khoa học khác, nền tảng chính thức của nó dựa trên toán học. Khoa học máy tính cũng dựa trên tư duy kỹ thuật, chúng ta xây dựng các hệ thống tương tác với thế giới thực. Các hạn chế của thiết bị máy tính cơ bản buộc các nhà khoa học máy tính phải vận dụng Tư duy tính toán, không chỉ tư duy toán học. Được tự do xây dựng thế giới ảo, cho phép chúng ta thiết kế các hệ thống vượt ra ngoài thế giới vật chất hữu hình;

Ý tưởng, chứ không phải thành phẩm. Không dừng lại ở việc là các sản phẩm phần mềm và phần cứng chúng ta sản xuất có mặt ở mọi nơi và đi vào cuộc sống mọi lúc, mà các khái niệm tính toán mà chúng ta sử dụng phải tiếp cận và giải quyết được vấn đề, quản lý cuộc sống hàng ngày, giao tiếp và tương tác người khác;

Dành cho mọi người, ở mọi nơi. Tư duy tính toán sẽ trở thành hiện thực và nó không thể tách rời trong đời sống của con người, và nó sẽ biến mất như một triết lý tách biệt.

Nhiều người đánh đồng khoa học máy tính với lập trình máy tính. Một số cha mẹ thì nhìn thấy cơ hội việc làm bị thu hẹp khi cho con cái họ theo chuyên ngành khoa học máy tính. Nhiều người nghĩ rằng nghiên cứu cơ bản trong khoa học máy tính đã được hoàn thiện và chỉ còn lại các vấn đề kỹ thuật. Tư duy tính toán là một tầm nhìn đủ lớn để định hướng các nhà giáo dục, các nhà nghiên cứu và các nhà thực hành khoa học máy tính khi để thay đổi hình ảnh xã hội về lĩnh vực này. Chúng ta đặc biệt cần tiếp cận đối tượng dưới bậc đại học, bao gồm giáo viên, phụ huynh và học sinh phổ thông, gửi cho họ những thông điệp chính:

  • Những vấn đề khoa học đầy thách thức và hấp dẫn vẫn còn được phát hiện và giải quyết. Vấn đề và giải pháp chỉ bị giới hạn bởi sự tò mò và sáng tạo của chúng ta;
  • Một người có chuyên ngành khoa học máy tính và làm có thể bất cứ việc gì. Một người có chuyên ngành tiếng Anh hoặc toán học ra trường với vô số nghề nghiệp khác nhau. Khoa học máy tính cũng vậy, người ta có thể học chuyên ngành khoa học máy tính và tiếp tục sự nghiệp trong ngành y, luật, kinh doanh, chính trị, bất kỳ loại khoa học hay kỹ thuật nào, và thậm chí cả nghệ thuật.

Các giáo sư về khoa học máy tính nên mở một khóa học có tên là “Tư duy như một nhà khoa học máy tính”, đối với sinh viên năm nhất đại học, không chỉ cho các chuyên ngành khoa học máy tính, mà làm cho nó trở nên phổ biến đối với những người không chuyên. Chúng ta tìm cách cho học sinh phổ thông tiếp cận đến các phương pháp và mô hình tính toán. Thay vì phàn nàn về việc suy giảm hứng thú với khoa học máy tính hoặc việc cắt giảm giảm tài trợ cho nghiên cứu về khoa học máy tính, chúng ta nên tìm cách truyền cảm hứng cho cộng đồng quan tâm hơn về hành trình khám phá trí tuệ của lĩnh vực này. Từ đó, chúng ta sẽ lan truyền niềm vui, sự tuyệt vời và sức mạnh của khoa học máy tính, nhằm mục đích biến Tư duy tính toán trở nên phổ biến.


Nguyễn Long

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

NĂM QUÁ TRÌNH CỦA TƯ DUY TÍNH TOÁN

Tư duy tính toán là tổ hợp 5 quá trình có mối quan hệ với nhau, nhằm giải quyết vấn đề hiệu quả, vận dụng theo cách làm của máy tính.

COMPUTATIONAL THINKING LÀ GÌ?

Bài viết giới thiệu sơ lược về thuât ngữ “Tư duy tính toán” (Computational Thinking), bao gồm nguồn gốc xuất phát và những nội dung của nó.