Các chiến lược để trở nên không ổn định trong việc hiểu TCS


19

Tôi là một sinh viên tốt nghiệp tham gia một khóa học về lý thuyết tính toán và tôi gặp khó khăn nghiêm trọng trong việc sản xuất nội dung một khi tôi được yêu cầu. Tôi có thể theo sách giáo khoa (Giới thiệu về Lý thuyết tính toán của Michael Sipser) và các bài giảng; tuy nhiên khi được yêu cầu chứng minh điều gì đó hoặc đưa ra một mô tả chính thức về một TM cụ thể, tôi chỉ bị nghẹn.

Tôi có thể làm gì trong những tình huống như vậy? Tôi đoán vấn đề của tôi là với việc hiểu đầy đủ các khái niệm trừu tượng đến mức tôi thực sự có thể sử dụng chúng. Có một cách có cấu trúc để tiếp cận một khái niệm mới, trừu tượng và cuối cùng xây dựng trực giác?


5
đánh bại tôi Đây có vẻ là một câu hỏi hợp lý cho trang web này.
Suresh

4
Tôi đã bỏ phiếu để đóng. Vấn đề chính tôi thấy là câu hỏi không thực sự về khoa học máy tính; đó là về cách học khoa học máy tính. Người sau không có câu trả lời khách quan, vì mỗi người sẽ có cách tốt nhất của riêng mình. Cả ba phiếu để đóng đều được gán cho lý do "quá cục bộ", nhưng tôi nghĩ câu hỏi này cũng không có chủ đề, vì nó không phải là về khoa học máy tính.
Carl Mummert

1
Tôi nghĩ rằng câu hỏi này có giá trị và là loại câu hỏi mà tôi đấu tranh mạnh mẽ. Tôi nghĩ rằng việc được hướng dẫn về các loại vấn đề này từ một cộng đồng đáng tin cậy là điều mà nhiều sinh viên CS phải vật lộn với. Tôi hiểu sự phản đối cho câu hỏi mặc dù. Dường như với tôi rằng câu hỏi khá mơ hồ đối với phần meta của trang web này.
BrotherJack

6
@CarlMummert: Mỗi câu hỏi về khoa học máy tính là một câu hỏi về cách học khoa học máy tính.
JeffE

2
Câu hỏi quá rộng ở dạng hiện tại. Tập trung câu hỏi của bạn, ví dụ: yêu cầu tài nguyên (ví dụ: sách vấn đề) để giúp cải thiện khả năng giải quyết câu hỏi trong khóa học hoặc nếu bạn có một ví dụ cụ thể tập trung vào vấn đề đó và hỏi về trực giác hoặc phương pháp để tiếp cận các vấn đề tương tự.
Kaveh

Câu trả lời:


15

Trừu tượng là khá nhiều bánh mì và bơ trong khoa học máy tính nhưng thật không may, thật khó để dạy một cách rõ ràng.

Theo tôi, hiểu các khái niệm quan trọng hơn khả năng tính toán hoặc chứng minh công cụ. Chắc chắn, bạn cần biết cách của bạn xung quanh một số phương pháp cơ bản, nhưng thịt nằm ở nơi khác.

Trước hết, bạn phải nắm bắt nội dung ở một mức độ nào đó. Cuối cùng, tôi thấy thật hữu ích khi hỏi câu hỏi sau đây mỗi khi có điều gì đó không rõ ràng với bạn:

  • Tại sao chúng ta làm điều này?
  • Có gì chúng ta sẽ sử dụng điều này không?
  • Những điều tương tự không liên quan đến điều này?
  • Làm thế nào để các nguồn khác giải thích nó?
  • Có gì chính xác để tôi không hiểu?

Sau khi bạn đã trả lời những câu hỏi này (hoặc phát hiện ra các câu hỏi tiếp theo và đối xử với chúng theo cùng một cách) và vẫn có vấn đề, hãy đến gặp giáo viên của bạn (hoặc tại đây). Bây giờ bạn sẽ có thể đặt ra một câu hỏi tập trung, được xây dựng chính xác; trả lời những câu hỏi như vậy là công việc của giáo viên của bạn (và triết lý của StackExchange).

Ngoài ra, đó là tập thể dục và kinh nghiệm. Cố gắng tái tạo bằng chứng sau khi đã đọc chúng; Cẩn thận để không học chúng bằng trái tim mà chắt lọc những ý tưởng quan trọng từ chúng. Sau một thời gian, bạn sẽ có thể sao chép tất cả các bằng chứng cơ bản bằng cách điền vào các khoảng trống giữa các bước chính. Thậm chí sau này, bạn sẽ bắt đầu thấy các mẫu trong các tuyên bố và bằng chứng. Đây là cách mọi người nhìn vào một tuyên bố và nói "Ồ vâng, chắc chắn, sử dụng phương thức X với định lý Y và sau đó chỉ cần sử dụng Z để có được những gì bạn muốn.". Đó là nhận dạng mẫu được thúc đẩy bởi nhiều năm đào tạo. Kiên nhẫn.

Đối với các bài tập cơ bản, đi và tìm sách giáo khoa với một số. Ngoài đỉnh đầu tôi có thể tham khảo Toán học cụ thể của Graham, Knuth và Patashnik. Cuốn sách này không chỉ là một hộp công cụ quý giá cho các nhà khoa học máy tính, nó còn chứa vô số bài tập với các giải pháp (!). Hãy nhớ cố gắng giải quyết chúng trước khi tìm kiếm câu trả lời và tái tạo câu trả lời mà bạn phải tìm kiếm.

Một cuốn sách hữu ích khác là Giới thiệu về Thuật toán của Cormen, Leiserson, Rivest và Stein. Bao gồm là một chương lớn về cơ bản toán học. Nó cũng chứa nhiều bài tập; các giải pháp có sẵn thông qua trang được liên kết (Nội dung bổ sung). Ngoài ra còn có một bài giảng video của một trong những tác giả có thể đi cùng với cuốn sách.

Đối với các bài giảng giới thiệu về bằng chứng, hãy xem Bằng chứng đại số tuyến tính trên Khan Academy . Tôi đã không theo dõi họ, nhưng hy vọng cả hai đều cơ bản và hữu ích. Có nhiều bằng chứng về Học viện Khan; Tôi chỉ hình dung rằng bằng chứng đại số tuyến tính có thể phù hợp nhất với khoa học máy tính. Đừng ngần ngại xem người khác, quá.


7
Tôi đồng ý rằng việc hiểu các khái niệm quan trọng hơn khả năng tính toán hoặc chứng minh công cụ. Nhưng sự hiểu biết là kết quả của thực tiễn với các tính toán và bằng chứng, không phải là sự thay thế cho thực tiễn đó.
JeffE

Cảm ơn sự sáng suốt của bạn. Tôi sẽ lấy lời khuyên của bạn và cố gắng cải thiện dựa trên điều đó.
trigoman

Đối với các nhu cầu cơ bản hơn, Sách Chứng minh có thể là một tài liệu tham khảo có giá trị.
Raphael

8

Đôi khi tôi phát hiện ra rằng những người không làm tốt về lý thuyết, chỉ có những điều cơ bản sai (trong 1-3 bài giảng đầu tiên, họ nghĩ rằng tài liệu này rất dễ dàng, vì vậy họ đã không chú ý quá nhiều, nhưng sau đó, tại bài giảng 5-7 điều tăng tốc và quá muộn để tóm tắt lại).

Như @fbernardo đã nói, có thể nên bắt đầu lại từ đầu. KHÔNG xa như FLA (không có ích gì khi học TC, IMHO), nhưng chắc chắn mở Sipser và bắt đầu giải quyết từng câu hỏi một, theo thứ tự của chúng. Với kinh nghiệm bạn sẽ có được trực giác và các công cụ cơ bản cần thiết cho các khái niệm nâng cao hơn.

Nếu bạn không thể đối phó với các câu hỏi cơ bản của Sipser của chương đầu tiên (không phải chương chương automata, nếu bạn nghiên cứu về TM), thì bạn có thể thiếu các khái niệm cơ bản hơn, chẳng hạn như phương pháp chứng minh cơ bản (cảm ứng, v.v.) hoặc tập cơ bản- lý thuyết và toán học rời rạc.

Chúc may mắn, dù sao đi nữa!


3

Lời khuyên duy nhất của tôi sẽ là bạn bắt đầu lại từ đầu. Trong khóa học của tôi, chúng tôi cũng sử dụng cuốn sách của Sipser, đó là một cuốn sách hay theo quan điểm của tôi. Nhưng chúng tôi có một khóa học trước TC, được đặt tên là FLA (Ngôn ngữ chính thức là Máy tự động) đã tạo ra một trực giác và nền tảng tốt hơn về TC. Vì vậy, một lần nữa, mọi người học ở các mức độ khác nhau, và bạn có một cuốn sách rất hay. Bất kỳ câu hỏi cụ thể khác, bạn luôn có thể tìm thấy sự giúp đỡ ở đây. :)


2

Bạn hỏi một câu hỏi chung trong tiêu đề của bạn và sau đó ít nhất hai điểm cơ bản / cụ thể trong câu hỏi và tôi nghĩ rằng có những câu trả lời tốt (riêng biệt) cho mỗi câu hỏi:

  • làm thế nào để chứng minh công cụ
  • tạo ra mô tả chính thức về hành vi của TM

Ở đây chỉ đề cập đến mục thứ nhất (vốn đã rộng và xứng đáng với nó) - đó là một con voi trong phòng giáo dục STEM (khoa học, công nghệ, kỹ thuật, toán học) bị cắt ngắn & thường bị che khuất ở mức độ đáng kinh ngạc . Có vẻ như không ai thực sự biết cách dạy cách xây dựng bằng chứng. Subj này bắt đầu trong các lớp hình học, lượng giác và tính toán, nhưng hiếm khi là một yếu tố nghiêm ngặt của nó. hầu hết các giáo viên coi nó là tùy chọn. Dường như toàn bộ lớp học dành riêng cho "cách chứng minh công cụ" sẽ là một sự bổ sung hoặc thay đổi quan trọng hoặc thậm chí quan trọng đối với giáo dục STEM.

Dưới đây là một số giới thiệu mà tôi đã bật lên để tìm kiếm nhanh cách chứng minh công cụ, và tôi nghĩ có nhiều tài nguyên tốt khác. Ngày nay cũng có thể có nhiều video về chủ đề có thể được bật lên thông qua các tìm kiếm, nhưng tôi chưa thấy một tổ chức toàn diện tốt đẹp về các loại video "làm thế nào để chứng minh công cụ".

Một phần quan trọng của việc chứng minh là nắm vững các kiến ​​thức cơ bản của toán học và sử dụng tất cả làm công cụ hoặc các bộ phận xây dựng. Ví dụ, biết một tập hợp là gì, bộ dữ liệu là gì, sự khác biệt / tương đồng là gì, khi bạn sẽ sử dụng một bộ chứ không phải bộ khác, v.v.

Một cách tiếp cận khác là coi nó như một mũi khoan. Tự làm nhiều bằng chứng thực hành, bắt đầu từ dễ đến khó (ước gì tôi biết nhiều sách như thế này, dường như không có nhiều).


1
Thêm "Cách giải quyết" kinh điển của Pólya. Nó cũng hữu ích (đặc biệt cho sinh viên tốt nghiệp) để tìm kiếm các bài viết toán học, ví dụ Knuth et al "Viết toán học". Đây là một kỹ năng quá thường được coi là đương nhiên.
vonbrand
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.