Announcement

Collapse
No announcement yet.

Tư duy máy tính (Computational Thinking)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tư duy máy tính (Computational Thinking)

    Thân gửi các bạn một bài viết về Tư duy máy tính (Computational Thinking) do mốt Thầy trong trường mình chia sẻ lại.
    Bài viết gốc:


    Bản dịch Tiếng Việt:

    Tư duy máy tính là thái độ và kỹ năng cần thiết cho tất cả mọi người. Không chỉ những người hoạt động trong lĩnh vực máy tính tính mới có mong muốn tìm hiểu và sử dụng.
    Tư duy máy tính xây dựng dựa trên sức mạnh và sự hạn chế của quá trình tính toán, cho dù chúng được thực hiện bởi con người hoặc máy tính. Phương pháp và mô hình tính toán cho chúng ta can đảm để giải quyết vấn đề và thiết kế những hệ thống mà không ai trong chúng ta có khả năng giải quyết một mình.
    Tư duy máy tính đối mặt với câu hỏi bí ẩn của các cỗ máy thông minh: Những gì con người có thể làm tốt hơn so với máy tính? và những gì các máy tính có thể làm tốt hơn so với con người? Cơ bản nhất nó giải quyết câu hỏi: Tính toán là gì? Hôm nay, chúng ta biết chỉ một phần của câu trả lời cho câu hỏi như vậy.
    Tư duy máy tính là một kỹ năng cơ bản cho tất cả mọi người, không chỉ cho các nhà khoa học máy tính. Ngoài biết đọc, biết viết, và làm tính, chúng ta nên thêm Tư duy máy tính vào năng lực phân tích của mỗi đứa trẻ. Giống như máy in đã hỗ trợ sự phát triển nhanh của ba Rs ( đọc, viết và làm tính), tầm nhìn về Tư duy máy tính cũng sẽ được phát triển rất nhanh chóng dựa trên sự phát triển của tính toán và máy tính.
    Tư duy máy tính liên quan đến giải quyết vấn đề, thiết kế hệ thống, và hiểu hành vi con người, bằng cách sử dụng các khái niệm cơ bản về khoa học máy tính. Tư duy máy tính bao gồm một loạt các công cụ tư duy được tổng hợp từ bề rộng của các lĩnh vực khoa học máy tính.
    Phải giải quyết một vấn đề cụ thể, chúng ta có thể hỏi: Việc này khó đến cỡ nào? và cách tốt nhất để giải quyết nó là gì? Khoa học máy tính dựa trên một nền tảng lý thuyết vững chắc để trả lời câu hỏi như vậy một cách chính xác. Làm rõ những khó khăn của một vấn đề định nghĩa quyền lực cơ bản của một cỗ máy – là thiết bị máy tính dùng để chạy các giải pháp. Và để máy tính giải được bài toán, chúng ta phải xem xét thiết lập của ngôn ngữ điều khiển của máy, cân nhắc sức mạnh và tài nguyên của máy, và hệ điều hành của nó.
    Để việc giải quyết một vấn đề có hiệu quả, chúng ta có thể tiếp tục đặt câu hỏi liệu một giải pháp gần đúng có đủ tốt, liệu chúng ta có thể sử dụng tính ngẫu nhiên để tăng hiệu quả của cách giải, và liệu lỗi dương tính hoặc lỗi âm tính có được phép. Tư duy máy tính biến đổi một vấn đề mới và khó về thành một vấn đề chúng ta đã biết làm thế nào để giải quyết, thường là bằng cách giảm, nhúng, chuyển đổi, hoặc mô phỏng.
    Tư duy máy tính là suy nghĩ đệ quy. Là xử lý song song. Nó được diễn giải mã như dữ liệu và dữ liệu như mã. Nó kiểm tra các kiểu biến như là một cách để tổng quát các phân tích đa chiều. Nó chấp nhận cả các lợi ích và nguy hiểm của việc gán tên, hoặc cho gán đối tượng gì đó nhiều hơn một tên. Nó chấp nhận cả việc tiêu tốn tài nguyên và việc gia tăng sức mạnh thông qua việc sử dụng các địa chỉ gián tiếp và gọi thủ tục trung gian. Nó đánh giá một chương trình không chỉ vì tính đúng đắn và hiệu quả mà còn cả về tính thẩm mỹ - vẻ đẹp cụ thể là việc hệ thống được thiết kế đơn giản và thanh lịch.
    Tư duy máy tính sử dụng cách trừu tượng hóa và chia nhỏ khi cần giải quyết một nhiệm vụ lớn và phức tạp hoặc thiết kế một hệ thống lớn và phức tạp. Tư duy máy tính bóc tách các mối quan tâm. Nó lựa chọn một bộ đại diện thích hợp cho một vấn đề hoặc mô hình hóa các khía cạnh liên quan của một vấn đề để làm cho vấn đề có thể xử lý được. Nó sử dụng các đại lượng bất biến để mô tả hành vi của hệ thống một cách ngắn gọn và dễ dàng khai báo. Tư duy máy tính là sự tự tin để chúng ta có thể sử dụng một cách an toàn, sửa đổi, và ảnh hưởng đến một hệ thống lớn và phức tạp mà không cần phải hiểu đến từng chi tiết. Nó cũng dự đoán trước được nhu cầu sử dụng để cấu phần hóa và tạo ra các bộ nhớ đệm của một hệ thống để nhiều người dùng có thể nhanh chóng sử dụng trong tương lai.
    Tư duy máy tính cũng là tư duy về phòng chống, bảo vệ và phục hồi để đề phòng trường hợp xấu nhất thông qua dự phòng dư thừa, ngăn chặn thiệt hại, và sửa lỗi. Nó đặt tên các bế tắc là chết tắc và sử dụng khái niệm các hợp đồng giao diện. Nó được luyện tập để phòng tránh điều kiện chạy đua vô tận khi các cơ chế đồng bộ hóa trùng hợp nhau.
    Tư duy máy tính là sử dụng lý luận tự khám phá (heuristic) để phát hiện ra một giải pháp. Nó vét cạn bằng việc lên kế hoạch, tự học tập, và lập thời gian biểu khi chưa chắc chắn được lời giải. Nó là tìm kiếm, tìm kiếm và tìm kiếm nhiều hơn, kết quả là một danh sách các trang web, một chiến lược cho chiến thắng một trò chơi, hoặc một phản ví dụ. Tư duy máy tính được sử dụng lượng lớn dữ liệu để tăng tốc độ tính toán. Nó đánh đổi giữa thời gian và không gian, giữa sức mạnh xử lý và dung lượng lưu trữ.
    Hãy xem xét những ví dụ hằng ngày: Khi con gái của bạn đi học vào buổi sáng, cô bé đặt trong ba lô của mình những điều cô ấy cần trong ngày; đó chính là “lưu truớc” (prefetching) và “bộ nhớ đệm”(caching). Khi con trai của bạn đánh mất găng tay, bạn yêu cầu cậu ta đi lại các bước của mình; đó là “dò lùi” (backtracing).
    Tại thời điểm nào bạn sẽ ngừng đi thuê ván trượt và mua cho mình một đôi? đó là các thuật toán trực tuyến (online aglorithm). Bạn chọn đứng vào dòng chờ nào ở siêu thị? đó là mô hình hóa hiệu năng cho các hệ thống đa máy chủ (performance modeling for multi-server systems). Tại sao điện thoại của bạn vẫn làm việc trong thời gian cúp điện? đó là thiết kế độc lập với thảm họa (independence of failure) và phòng bị dư thừa (redundancy). Làm thế nào để sử dụng bài Test Turing để nhận biết máy tính hay con người, hoặc các thuật toán CAPTCHA, hoặc cơ chế xác thực người dùng; đó là khai thác sự khó khăn trong việc giải quyết các vấn trí tuệ nhân tạo (AI) để chống lại chính các chương trình máy tính.
    Tư duy máy tính sẽ trở nên ăn sâu trong cuộc sống của tất cả mọi người khi những từ như thuật toán và điều kiện tiên quyết là một phần của từ vựng của tất cả mọi người; khi các khái niệm không tất định (nondeterminism) và thu gom rác thải (garbage collection) được đưa về ý nghĩa được sử dụng bởi các nhà khoa học máy tính; và khi cây được vẽ theo kiểu lộn ngược ( hình cây trong khoa học máy tính).
    Chúng tôi đã chứng kiến sự ảnh hưởng của Tư duy máy tính trên các ngành khác. Ví dụ, máy học đã chuyển đổi phương pháp làm số liệu thống kê. Thống kê đang được sử dụng cho các vấn đề trên một quy mô, cả về kích thước dữ liệu và kích thước, lớn không thể tưởng tượng nổi chỉ một vài năm trước đây. Tất cả các tổ chức thống kê các đều đang tiến hành thuê các nhà khoa học máy tính. Phương pháp của khoa học máy tính đang chi phối các bộ phận thống kê hoặc khởi tạo lên các bộ phận thống kê mới.
    Các nhà khoa học máy tính ngày càng đi sâu vào lĩnh vực sinh học bởi vì họ được thúc đẩy bởi niềm tin rằng các nhà sinh học có thể được hưởng lợi từ Tư duy máy tính. Đóng góp của khoa học máy tính trong sinh học nhiều hơn việc chỉ rà soát lượng lớn các dữ liệu để tìm kiếm mô hình. Đó còn là hy vọng rằng cấu trúc dữ liệu và các thuật toán của chúng ta-các trừu tượng hóa và phương pháp tính toán-có thể đại diện cho cấu trúc của protein trong cách làm sáng tỏ chức năng của chúng. Sinh học tính toán đang thay đổi cách các nhà sinh học nghĩ. Tương tự như vậy, lý thuyết trò chơi tính toán đang thay đổi cách các nhà kinh tế nghĩ; nanocomputing thay đổi cách các nhà hóa học nghĩ và tính toán lượng tử thay đổi cách các nhà vật lí nghĩ.
    Kiểu tư duy này sẽ là một phần của kỹ năng của không chỉ các nhà khoa học, mà là của tất cả mọi người . Sự phổ biến của Tư duy máy tính ngày mai cũng sẽ như sự phổ biến của máy tính ngày hôm nay. Máy tính khắp mọi nơi là giấc mơ của ngày hôm qua đã trở thành hiện thực hôm nay thì cũng như vậy Tư duy máy tính là thực tế của ngày mai.
    NÓ LÀ GÌ VÀ KHÔNG LÀ GÌ?
    Khoa học máy tính là nghiên cứu về tính toán, những gì có thể tính được và làm thế nào để tính toán nó.
    Tư duy máy tính như vậy, có những đặc điểm sau đây:
    Khái niệm hóa không phải lập trình. Khoa học máy tính không phải là lập trình máy tính. Suy nghĩ như một nhà khoa học máy tính có nghĩa nhiều hơn so với việc có thể viết một chương trình máy tính. Nó đòi hỏi tư duy ở nhiều cấp độ trừu tượng;
    Kỹ năng cơ bản, không phải kỹ năng thuộc lòng. Một kỹ năng cơ bản là một cái gì đó mỗi con người cần phải biết để hoạt động trong xã hội hiện đại. Kỹ năng thuộc lòng là một thói quen cơ khí. Trớ trêu thay, phải đến khi khoa học máy tính giải quyết AI Grand Challenge - làm máy tính suy nghĩ như con người thì tư duy mới là học vẹt;
    Là cách con người tư duy chứ không phải máy tính tư duy. Tư duy máy tính là một cách con người giải quyết vấn đề; nó không phải là cố gắng để con người suy nghĩ như máy tính. Máy vi tính là đần độn và nhàm chán; con người thông minh và giàu trí tưởng tượng. Con người chúng ta làm cho máy tính thú vị. Được trang bị các thiết bị máy tính, chúng ta sử dụng trí thông minh của chúng ta để giải quyết những vấn đề mà truớc thời đại của máy tính chúng ta không dám làm hay dám xây dựng các hệ thống với chức năng chỉ bị giới hạn bởi trí tưởng tượng của chúng ta;
    Bổ sung và kết hợp tư duy toán học và tư duy khoa học kỹ thuật. Máy tính vốn dựa trên tư duy toán học, cho rằng, giống như tất cả các ngành khoa học đều dựa trên toán học. Khoa học máy tính vốn dựa trên tư duy kỹ thuật, cho rằng chúng ta cần xây dựng hệ thống tương tác với thế giới thực. Những hạn chế của thiết bị máy tính bắt buộc các nhà khoa học tính toán phải dùng đến Tư duy máy tính, không phải chỉ là 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ế hệ thống vượt ra ngoài thế giới vật chất;
    Ý tưởng, không chỉ là tạo tác. Không phải chỉ là các sản phẩm phần mềm và phần cứng mà chúng ta sản xuất sẽ được hiện diện ở khắp mọi nơi và chạm vào mọi khía cạnh của cuộc sống của chúng ta mọi nơi mọi lúc, mà còn là các khái niệm tính toán chúng ta sử dụng để tiếp cận và giải quyết vấn đề, quản lý cuộc sống hàng ngày của chúng ta, và giao tiếp và tương tác với những người khác; và
    Cho tất cả mọi người, ở khắp mọi nơi. Tư duy máy tính sẽ trở thành hiện thực và trở thành một phần không thể thiếu trong cuộc sống của con người và lúc đó nó sẽ biến mất như một thứ triết lý tách rời.
    Nhiều người đánh đồng khoa học máy tính với các chương trình máy tính. Một số cha mẹ thấy chỉ có một phạm vi hẹp các cơ hội việc làm cho con em mình khi học về 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 đã hoàn thiện và chỉ còn các vấn đề kỹ thuật vẫn còn. Tư duy máy tính là một tầm nhìn lớn để hướng dẫn giáo dục khoa học máy tính, các nhà nghiên cứu, và các học viên như chúng ta hành động để thay đổi hình ảnh của xã hội trong lĩnh vực này. Đặc biệt, chúng ta cần phải tiếp cận đối tượng dự bị đại học, các giáo viên, phụ huynh và sinh viên, để gửi cho mọi người hai thông điệp chính:
    Vẫn còn nhiều các vấn đề khoa học trí tuệ đầy thách thức và hấp dẫn cần được tìm hiểu và giải quyết. Phạm vi của các 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; và
    Một người có thể học về khoa học máy tính và làm bất cứ điều gì. Nhiều người học tiếng Anh hoặc toán học và đi làm vô số nghề nghiệp khác nhau. Khoa học máy tính cũng như vậy. Một người có thể học về khoa học máy tính và có một sự nghiệp trong y học, pháp luật, kinh doanh, chính trị, hay bất kỳ loại khoa học kỹ thuật, và thậm chí cả nghệ thuật.
    Các giáo sư khoa học máy tính nên dạy một khóa học gọi là "cách để suy nghĩ như một nhà khoa học máy tính" cho các tân sinh viên đại học, kể cả những nguời không chuyên ngành công nghệ hay khoa học máy tính.
    Chúng ta nên nên dạy cho học sinh phổ thông các phương pháp tính toán và mô hình hóa. Thay vì than vãn sự suy giảm quan tâm trong khoa học máy tính hoặc sự suy giảm tài trợ cho nghiên cứu khoa học máy tính, chúng ta nên xem xét để truyền cảm hứng cho sự quan tâm của công chúng trong các cuộc phiêu lưu trí tuệ của lĩnh vực này. Qua đó chúng ta sẽ trải nghiệm niềm vui, sợ hãi, và sức mạnh của khoa học máy tính, nhằm làm cho Tư duy máy tính trở nên phổ biến.
    2006, Jeannette M. Wing (wing@cs.cmu.edu) là Giáo sư khoa học máy tính và người đứng đầu của Bộ phận Khoa học Máy tính tại Đại học Carnegie Mellon, Pittsburgh, PA.

LHQC

Collapse
Working...
X