Nền tảng AI
Tư duy tính toán là gì?
Tư duy tính toán là một cách tiếp cận để xây dựng các vấn đề và giải pháp sao cho các bước xử lý thông tin có thể được thực hiện một cách có hệ thống bởi con người, máy tính hoặc mạng lưới các hệ thống. Nó bao gồm việc trừu tượng hoá và thiết kế thuật toán, nhưng cũng bao gồm việc quyết định những gì cần được biểu diễn và cách kiểm thử giải pháp đề xuất.
Tư duy tính toán rộng hơn lập trình. Mã nguồn có thể thực hiện một giải pháp, nhưng công việc khó khăn thường xuất hiện ở giai đoạn sớm hơn: xác định mục tiêu, phân tích vấn đề, chọn chi tiết liên quan và nhận biết nơi tự động hoá không phù hợp.
Những điểm chính
- Xây dựng vấn đề trước khi tối ưu hoá một quy trình.
- Phân tách tách một hệ thống phức tạp thành các phần tương tác; trừu tượng hoá ẩn đi chi tiết không liên quan ở mức độ đã chọn.
- Thuật toán cần có đầu vào, đầu ra, giả định, điều kiện dừng và các bài kiểm tra.
- Tư duy tính toán không loại bỏ phán đoán xã hội, các giá trị mơ hồ hay trách nhiệm.

Xây dựng vấn đề và mục tiêu
Xác định những người bị ảnh hưởng, quyết định cần hỗ trợ, thông tin sẵn có và hậu quả của lỗi. Chuyển đổi một yêu cầu mơ hồ thành một kết quả có thể quan sát được mà không nhầm lẫn giữa một đại diện dễ đo lường và mục tiêu thực sự.
Trong học máy, dự đoán số lần nhấp có thể tiện lợi về mặt kỹ thuật nhưng không nhất thiết phản ánh sự hài lòng. Tư duy tính toán bắt đầu bằng việc kiểm thử cách xây dựng đó thay vì ngay lập tức chọn một thuật toán.
Phân tách hệ thống và các phụ thuộc
Chia nhỏ vấn đề thành các thành phần có thể được suy xét riêng biệt: thu thập dữ liệu, xác thực, chuyển đổi, logic quyết định, tương tác người dùng và giám sát. Ghi lại các giao diện và phản hồi giữa chúng để các cải tiến cục bộ không gây hại cho hệ thống rộng hơn.
Phân tách không phải là phân mảnh. Nhóm cần kết hợp lại các phần và kiểm thử hành vi đầu cuối, bao gồm thời gian, thiếu dữ liệu đầu vào và các lỗi trong dịch vụ phía trên hoặc phía dưới.
Trừu tượng hoá và biểu diễn
Một phép trừu tượng giữ lại các chi tiết liên quan đến câu hỏi và ẩn đi những chi tiết khác. Đồ thị có thể biểu diễn các kết nối, bảng có thể biểu diễn các bản ghi, và phân phối xác suất có thể biểu diễn sự không chắc chắn. Cùng một tình huống thực tế có thể yêu cầu các biểu diễn khác nhau cho các quyết định khác nhau.
Mọi biểu diễn đều bỏ sót một phần nào đó. Ghi lại các đơn vị, danh mục, khoảng thời gian và các dữ liệu thiếu. Sự khác biệt giữa dữ liệu có cấu trúc và dữ liệu không có cấu trúc ảnh hưởng đến những gì có thể diễn đạt và các phép biến đổi nào có thể mất ngữ cảnh.
Thiết kế thuật toán và tự động hoá một cách cẩn thận
Thuật toán là một quy trình được định nghĩa với đầu vào, các bước và đầu ra. Cần cân nhắc tính đúng đắn, khả năng dừng, độ phức tạp, bộ nhớ, hành vi khi thất bại và liệu kết quả có tính quyết định hay xác suất. Sử dụng các ví dụ và các trường hợp biên trước khi khái quát hoá.
Tự động hoá nên bao gồm việc xác thực và phản hồi an toàn đối với các đầu vào không được hỗ trợ. Một quy trình chạy nhanh nhưng mã hoá mục tiêu sai không phải là cải tiến. Đánh giá của con người có thể là một phần của hệ thống thuật toán thay vì bằng chứng cho thấy nó đã thất bại.
Kiểm thử, lặp lại và khái quát hoá
Kiểm thử đơn vị kiểm tra các thành phần; kiểm thử tích hợp kiểm tra các giao diện; kiểm thử kịch bản kiểm tra hành vi đầu cuối. So sánh kết quả mong đợi và quan sát, truy vết lỗi đến các giả định, và chỉnh sửa cách xây dựng khi bằng chứng mâu thuẫn.
Khái quát hoá đặt câu hỏi liệu phương pháp có thể áp dụng ngoài các ví dụ đã dùng để thiết kế không. Nêu rõ phạm vi hợp lệ. Các vấn đề liên quan đến quyền, giá trị hoặc mục tiêu tranh cãi đòi hỏi phán đoán và quản trị tham gia bên cạnh tính toán.
Các thực hành cốt lõi của tư duy tính toán
Tư duy tính toán định khung một vấn đề sao cho con người hoặc máy móc có thể thực thi giải pháp. Phân tách chia mục tiêu phức tạp thành các phần có thể quản lý; nhận dạng mẫu xác định cấu trúc lặp lại; trừu tượng hoá giữ lại thông tin liên quan đến nhiệm vụ; thiết kế thuật toán chỉ ra các bước và điều kiện. Biểu diễn cũng quan trọng không kém: bảng, đồ thị, trạng thái, tọa độ và kiểu dữ liệu làm cho một số thao tác trở nên dễ dàng và một số khác trở nên khó. Mục đích là giải quyết vấn đề có kỷ luật, không chỉ học cách viết mã.
Một phân tách tốt định nghĩa các giao diện và quyền sở hữu giữa các phần. Trừu tượng hoá nên ẩn chi tiết phụ trợ mà không ẩn các ràng buộc cần thiết cho tính đúng đắn. Thuật toán cần có đầu vào, đầu ra, tiền đề, bất biến, khả năng dừng và hành vi lỗi. Pseudocode, lưu đồ, bảng quyết định và các ví dụ giúp trước khi triển khai. Hiệu suất xét đến thời gian, bộ nhớ, truyền thông, năng lượng và nỗ lực con người, nhưng tối ưu hoá nên dựa trên nền tảng đúng. Một số vấn đề không thể quyết định hoặc tính toán không khả thi ở quy mô lớn, khiến việc xấp xỉ và đánh đổi trở nên thiết yếu.
Kiểm thử, gỡ lỗi và suy luận dữ liệu
Kiểm thử tạo ra các trường hợp từ yêu cầu: bình thường, biên, rỗng, sai định dạng, lặp lại, cực đoan và đối kháng. Gỡ lỗi hình thành giả thuyết, quan sát trạng thái, cô lập nguyên nhân và xác minh sửa chữa mà không gây hồi quy. Tính tái lập ghi lại đầu vào, phiên bản và môi trường. Đối với các vấn đề dữ liệu, hỏi cách quan sát được lấy mẫu, đo lường, gán nhãn, thiếu và biến đổi. Một thuật toán có thể thực thi hoàn hảo nhưng vẫn đưa ra kết luận sai vì biểu diễn hoặc giả định tạo dữ liệu không hợp lệ.
Tự động hoá thay đổi một quy trình và các động cơ của nó. Xác định ai cung cấp đầu vào, ai bị ảnh hưởng bởi đầu ra, những ngoại lệ nào tồn tại, và cách kháng cáo hoặc sửa chữa hoạt động. Quyền riêng tư, khả năng tiếp cận, bảo mật và công bằng phải nằm trong định nghĩa vấn đề, không phải là suy nghĩ sau. Một đặc tả quyết định là ưu tiên cho các quy tắc chính xác; học máy phù hợp khi các mẫu cần được ước lượng từ dữ liệu và lỗi có thể được đánh giá. Việc không tự động hoá có thể là quyết định tính toán đúng đắn.
Giảng dạy và áp dụng kỹ năng
Người học nên giải cùng một vấn đề bằng các bước thực tế, pseudocode, bảng tính và mã để thấy cách biểu diễn thay đổi lập luận. Các dự án nên yêu cầu giải thích và kiểm thử, không chỉ một kết quả hoạt động. Trong các tổ chức, tư duy tính toán cải thiện việc viết yêu cầu, thiết kế quy trình làm việc, phân tích dữ liệu và hợp tác với kỹ sư. Giá trị bền vững của nó là khả năng làm rõ các giả định, xây dựng một quy trình có thể tái lập và nhận ra nơi mà sự không chắc chắn hoặc phán đoán con người ngăn một vấn đề được giảm xuống thành một thuật toán đơn giản.
Ví dụ thực tế: thiết kế thuật toán định tuyến xe buýt trường học
Học sinh phân tách nhiệm vụ thành các điểm dừng, hành khách, công suất, khung thời gian, thời gian di chuyển, khả năng tiếp cận và các ràng buộc an toàn. Họ biểu diễn mạng lưới đường phố dưới dạng đồ thị, tạo một lộ trình tham lam đơn giản, và kiểm thử nó với các trường hợp nhỏ có giải pháp đã biết. Các kiểm thử biên bao gồm không có hành khách, một điểm dừng không thể tới, hỏng xe, và một hành khách cần xe buýt có khả năng tiếp cận. Hiệu suất chỉ được so sánh sau khi tính đúng đắn và các ràng buộc đã rõ.
Lớp sau đó nghiên cứu các đánh đổi: khoảng cách ngắn nhất có thể tạo ra các chuyến đi cá nhân dài hoặc dịch vụ không công bằng. Họ thêm các chỉ số công bằng và khả năng chịu lỗi, ghi lại các giả định, và cho phép người lập kế hoạch ghi đè với lý do. Địa chỉ cá nhân được bảo vệ và dữ liệu mẫu là tổng hợp. Bài tập cho thấy trừu tượng hoá cho phép tính toán nhưng đồng thời quyết định những nhu cầu con người nào xuất hiện trong mô hình. Tư duy tính toán bao gồm nhận ra khi mục tiêu tối ưu sạch sẽ bỏ qua một giá trị hoặc ngoại lệ quan trọng.
Bằng chứng triển khai và sẵn sàng vận hành
Một quyết định triển khai cần nhiều hơn một buổi trình diễn thành công. Xác định người dùng dự kiến, môi trường hoạt động, đầu vào, đầu ra, các phụ thuộc, người sở hữu và hậu quả của mỗi lỗi quan trọng. Thiết lập một nền tảng tái lập và một bộ đánh giá có phiên bản trước khi tinh chỉnh. Kiểm thử các trường hợp thường, các điều kiện biên, đầu vào sai định dạng hoặc thiếu, sự thay đổi phân phối, mất kết nối phụ thuộc, lạm dụng, và các nhóm hoặc môi trường có khả năng bị bỏ lại phía sau. Đo lường chất lượng nhiệm vụ cùng với hiệu chỉnh hoặc độ không chắc, độ trễ, thông lượng, chi phí tài nguyên, khả năng tiếp cận, quyền riêng tư và bảo mật. Ghi lại mọi phép biến đổi và ngưỡng để một người đánh giá độc lập có thể tái tạo kết quả và phân biệt bằng chứng với một nguyên mẫu hấp dẫn.
Trước khi ra mắt, chỉ định quyền cho việc phát hành, ngoại lệ, thay đổi, quay lại và ngừng sử dụng. Sử dụng triển khai theo giai đoạn, duy trì một dự phòng an toàn, và xác minh giám sát bằng các lỗi được chèn cố ý. Dữ liệu đo lường vận hành nên tiết lộ chất lượng đầu vào, hành vi đầu ra, phiên bản mô hình hoặc quy tắc, tình trạng phụ thuộc, can thiệp của con người, và kết quả đã xác nhận mà không thu thập dữ liệu nhạy cảm không cần thiết. Định nghĩa ngưỡng cảnh báo và người chịu trách nhiệm phản hồi, sau đó xem xét bằng chứng thực tế sau khi triển khai thay vì giả định hiệu năng ngoại tuyến sẽ kéo dài. Đánh giá lại bất cứ khi nào nguồn dữ liệu, người dùng, mô hình, nhà cung cấp, chính sách, phần cứng hoặc mục tiêu thay đổi. Một hệ thống được duy trì cũng cần có quy trình khôi phục, học từ sự cố, xóa và lưu trữ, và một điểm rõ ràng khi nó nên bị vô hiệu hoá hoặc thay thế.
Câu hỏi thường gặp
Tư duy tính toán có giống lập trình không?
Không. Lập trình diễn đạt các chỉ thị bằng một ngôn ngữ lập trình; tư duy tính toán bao gồm việc xây dựng vấn đề, biểu diễn, thiết kế thuật toán, kiểm thử và đánh giá.
Mọi vấn đề đều có thể giải quyết bằng tính toán không?
Không. Một số vấn đề không thể quyết định được hoặc không khả thi, và nhiều vấn đề của con người có mục tiêu mơ hồ hoặc xung đột giá trị mà tính toán không thể tự mình giải quyết.












