Đường dẫn đến phương thức chính thức


20

Không có gì lạ khi thấy sinh viên bắt đầu bằng tiến sĩ chỉ với một nền tảng hạn chế về toán học và các khía cạnh chính thức của khoa học máy tính. Rõ ràng sẽ rất khó để những sinh viên như vậy trở thành nhà khoa học máy tính lý thuyết, nhưng sẽ tốt nếu họ có thể trở nên hiểu biết bằng cách sử dụng các phương pháp chính thức và đọc các bài báo có chứa các phương pháp chính thức.

Một con đường ngắn hạn tốt mà sinh viên tiến sĩ có thể đi theo để đạt được mức độ cần thiết để khiến họ đọc các bài báo liên quan đến các phương pháp chính thức và cuối cùng viết các bài báo sử dụng các phương pháp chính thức như vậy là gì?

Về ngữ cảnh, tôi suy nghĩ nhiều hơn về Lý thuyết B và xác minh chính thức là những thứ mà họ nên học, nhưng cũng là những chủ đề TCS cổ điển như lý thuyết automata.


9
Chàng trai trẻ, trong toán học, bạn không hiểu gì cả. Bạn chỉ quen với chúng thôi. - John von Neumann Thật không may làm quen với nó phải mất nhiều năm, ít nhất là trong trường hợp của tôi :)
uli

1
Tôi tự hỏi tại sao một số người (không nhất thiết là bạn, Dave) nghĩ rằng giáo dục Cử nhân / Thạc sĩ toàn diện về CS (khoảng năm năm) có thể được thay thế bằng một vài tín chỉ khóa học.
Raphael

Theo "Lý thuyết B", bạn có đang đề cập đến "Phương pháp B" không? vi.wikipedia.org/wiki/B-Method
Steven Shaw

@StevenShaw: Không. Lý thuyết B bao gồm ngữ nghĩa và vv, trái ngược với automata / độ phức tạp.
Dave Clarke

Tôi chưa từng nghe về "Lý thuyết B" trước đây. Tôi đã có thể tìm thấy câu trả lời hữu ích này trên cstheory cstheory.stackexchange.com/a/1523/9552
Steven Shaw

Câu trả lời:


14

Trong phần mở đầu của cuốn sách Khám phá toán học của mình, Tìm hiểu, học hỏi và giảng dạy các vấn đề Giải quyết vấn đề của George George Pólya:

Giải quyết các vấn đề là một nghệ thuật thực tế, như bơi lội, hoặc trượt tuyết, hoặc chơi piano: bạn có thể học nó chỉ là bắt chước và thực hành. Cuốn sách này không thể cung cấp cho bạn một chìa khóa ma thuật mở tất cả các cánh cửa và giải quyết tất cả các vấn đề, nhưng nó cung cấp cho bạn những ví dụ tốt để bắt chước và nhiều cơ hội thực hành: nếu bạn muốn học bơi, bạn phải xuống nước, và nếu bạn muốn trở thành một người giải quyết vấn đề bạn phải giải quyết vấn đề.

Tôi nghĩ rằng không có con đường ngắn, đặc biệt là để đạt đến trạng thái viết bài. Nó đòi hỏi phải thực hành, rất nhiều trong số đó.

Một số gợi ý:

Nếu nền tảng toán học bị giới hạn trong lĩnh vực toán học và các khía cạnh chính thức thì có nghĩa là giáo sư đã không bao giờ nghĩ ra được một bằng chứng nào và viết nó ra thành công, thì một cái gì đó như thế này có thể là một sự khởi đầu.

Nếu một cái gì đó trên Bảng Cheat Khoa học Máy tính Lý thuyết làm cho học sinh cảm thấy không thoải mái, thì một khóa bồi dưỡng của ngành toán học sẽ được khuyến khích.

Có nhiều nguồn để viết toán học: Có lẽ các ghi chú bài giảng của khóa học CS209 của Đại học Stanford 1978. Hoặc này bài viết của Paul Halmos.


3
Tôi không yêu cầu một lối tắt; thay vì một con đường (đó là ngắn).
Dave Clarke

@JD Câu hỏi của OP nói rằng, một nền tảng hạn chế trong toán học và các khía cạnh chính thức của khoa học máy tính, và trở nên hiểu biết với việc sử dụng các phương pháp chính thức và đọc các bài báo. Nếu một học sinh chỉ tiếp xúc hạn chế với các hình thức được sử dụng trong toán học và tcs thì sẽ không tốt khi làm việc trong một chủ đề lý thuyết. Anh ấy phải làm việc cơ bản trước khi thực hiện bước tiếp theo. Tôi chỉ chỉ vào điểm bắt đầu của con đường.
uli

9

Các phương thức chính thức như Z, B, TLA, CafeObj chủ yếu dựa vào lý thuyết tập hợp, logic, lý thuyết danh mục, tính toán lambda và automata để mô hình hóa các khái niệm về loại, dữ liệu và tính toán.

Bạn có thể nhảy vào một chuyên khảo toàn diện như Logics of Đặc tả ngôn ngữ, bởi Dines Bjørner và Martin C. Henson biên tập., Chuyên khảo về Khoa học máy tính lý thuyết, Springer Verlag, 2008 và tìm hiểu khi bạn cần và sử dụng các tài liệu tham khảo được trích dẫn ở đó. Hoặc tìm hiểu một chủ đề một thời gian:

  1. Đặt lý thuyết
  2. Logic toán học
  3. Logic tạm thời
  4. Đại số phổ quát
  5. Giải tích Lambda
  6. Chuyên mục lý thuyết

Đề nghị tốt, mặc dù tôi lo lắng liệu bắt đầu từ chuyên khảo đó có hơi dày đặc không. Nó chắc chắn nặng.
Dave Clarke

5

Tôi thực sự nghĩ rằng các phương pháp "chính thức" không phải là một ý tưởng tốt cho mục đích giáo dục. Đối với vấn đề đó, lập trình máy tính là một phương pháp "chính thức". Liệu nó có thành công như một công cụ giáo dục?

Điều cần thiết là sự hiểu biết, trực giác và khả năng đối phó với sự trừu tượng. Phương pháp chính thức cản trở tất cả những điều đó. Thay vào đó, họ thúc đẩy thử nghiệm và lỗi, hack, khớp mẫu, bắt chước, tập trung vào cú pháp. Danh sách đi và về.

Bất kỳ phần toán học nghiêm ngặt nào cũng sẽ dạy mọi người cách suy luận chính xác. Tên miền càng đơn giản thì càng tốt. Tất cả những gì tôi học được về lý luận tôi đã học ở trường trung học khi tôi thực hiện nghiêm túc Hình học Euclide. Giải tích và đại số tuyến tính trong trường đại học đã làm phần còn lại.

Một lựa chọn hấp dẫn khác là logic triết học, nơi họ dạy mọi người cách suy nghĩ về các tuyên bố và hiểu nội dung thông tin là gì và hậu quả của những gì. Họ làm điều đó mà không nhấn chìm các sinh viên trong các biểu tượng.

Nếu bạn nắm giữ tất cả các nhà khoa học máy tính hàng đầu, bạn sẽ ngạc nhiên khi có nhiều người trong số họ được đào tạo chính thức về triết học. Chúng ta đang mất tất cả những điều đó vì các sinh viên triết học bây giờ nghĩ về Khoa học Máy tính như một môn học trần tục. Bắt học sinh của chúng tôi học một số triết lý có thể chống lại điều đó ở một mức độ nào đó. Để họ làm việc thông qua Lịch sử triết học phương Tây của Bertrand Russell . Điều đó sẽ làm nên điều kỳ diệu.

Nếu họ làm việc trong lý thuyết ngôn ngữ lập trình, bạn cũng có thể cho họ đọc Quine, người mà tôi coi là "cha đẻ" của ngữ nghĩa học biểu thị. (Quine về cơ bản là thực hiện ngữ nghĩa học ngôn ngữ tự nhiên trong Word và Object , đó là nguồn cảm hứng lớn cho Christopher Strachey. Nhưng cuốn sách này khá khó đọc.) Bộ sưu tập được chỉnh sửa Quintessence là một nguồn ý tưởng hay của Quine cho người mới bắt đầu.

[Lưu ý thêm: Một lợi thế của triết học so với toán học là các sinh viên được xem tranh luận , tức là họ được xem lập luận "đúng" và lập luận "sai" và xem các chuyên gia phá hủy những sai. Trong toán học, người ta không bao giờ thấy một lập luận sai, làm hạn chế giá trị giáo dục của nó.]


Tôi đã có một số câu trả lời khéo léo, khéo léo về vấn đề này liên quan đến Tính toán Thời lượng và chơi chữ với tên của Quine ... nhưng tiếc là tôi quên nó ....
Dave Clarke
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.