Danh sách sách giới thiệu TCS cho những người không biết nhiều về TCS [đã đóng]


10

Nếu bạn phải giới thiệu sách cho ai đó muốn tìm hiểu thêm về TCS ở cấp độ giới thiệu, chẳng hạn như lý thuyết automata, thuật toán, lý thuyết phức tạp, v.v., bạn sẽ giới thiệu cuốn sách nào cho những ai quan tâm và muốn tìm hiểu thêm về TCS, nhưng không có bất kỳ tiếp xúc với nó?


2
Tôi nghĩ rằng đây nên là một câu hỏi CW.
Gigili

1
Xem thảo luận meta này về cách quản lý câu hỏi này.
Raphael

3
cstheory.SE có một danh sách tiên tiến quá
uli


2
@Gigili Không. Danh sách các sách đã từng là CW, nhưng điều đó không còn được thực hiện nữa. Xin vui lòng đọc bài viết blog tôi liên kết.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


9

Nếu bạn muốn có một giới thiệu chung mà không đi sâu vào các chi tiết kỹ thuật, tôi đề nghị Thuật toán của David Harel : Tinh thần tính toán . Sau đó, đây là danh sách yêu thích của tôi:

  • Michael Sipser Giới thiệu về Lý thuyết tính toán : giới thiệu tốt nhất về lý thuyết tự động, tính toán và độ phức tạp.
  • Các thuật toán của S. Dasgupta, CH Papadimitriou và UV Vazirani: giới thiệu trực quan nhất về các thuật toán tập trung mạnh vào trực giác hơn bằng chứng kỹ thuật.
  • Ngọc trai lập trình của Jon Bentley : đây không phải là sách giáo khoa về thuật toán, nhưng nó thể hiện rất hay cách sử dụng các kỹ thuật thiết kế thuật toán để giải quyết các vấn đề thực sự gây khó chịu cho các lập trình viên thực sự. :-) Đây có thể là một khởi đầu tốt nếu bạn có kiến ​​thức về lập trình.

DPV chưa được in; nó thường được biết đến?
Raphael

Do điểm số của câu trả lời này, tôi đã bao gồm các câu trả lời trong một câu trả lời tổng hợp . Vui lòng xem xét loại bỏ câu trả lời của bạn cho rõ ràng.
Raphael

@Raphael DPV đã được in trong vài năm, nhưng nó vẫn có sẵn trực tuyến. Tôi đã cố gắng không liên kết đến trang web thương mại như amazon.
Đại

@Dai: Tôi hiểu rồi. Trang bạn liên kết để nói "Đây là một bản thảo áp chót về sách giáo khoa sắp xuất hiện của chúng tôi.", Vì vậy tôi rất bối rối.
Raphael

7

Tôi thấy cuốn sách của Clarke hơi quá nặng đối với người không có nền tảng TCS. Tôi biết (trực tiếp) nghiên cứu sinh tìm thấy cuốn sách khó hiểu.
Đại

@Dai, bạn có thể đúng, tôi đã thay đổi nó thành Nguyên tắc kiểm tra mô hình của Baier
Daniil

Người ta có thể hiểu kiểm tra mô hình mà không có kiến ​​thức cơ bản về logic và / hoặc automata không?
Raphael

1
Sách Rồng chắc chắn là một tài liệu tham khảo tốt; nó có đủ lý thuyết không? (Thành thật tôi không biết)
Raphael

@Raphael "Nguyên tắc" phần nào đưa ra giới thiệu về logic (ít nhất là một số kiến ​​thức cần thiết) và automata. Đó cũng là một cuốn sách khá lớn, ~ 980 trang. Đối với Sách Rồng, tôi nghĩ rằng trình biên dịch là một lĩnh vực khá lý thuyết, phải không?
Daniil

6

Đối với toán học cần thiết trong phân tích thuật toán, tôi đề xuất một và chỉ GKP:

Toán học cụ thể của Graham, Knuth, Patashnik
Một cách xử lý toàn diện, chất lượng cao về thực tế tất cả các toán học bạn sẽ cần trong thuật toán (cơ bản). Đây là một bài đọc giải trí và bao gồm rất nhiều bài tập (và giải pháp).


Tôi đã thử đọc cuốn sách này, nhưng tôi không thích nó, bởi vì tất cả đều cảm thấy rất ... vụng về và co cụm. Tôi chỉ không cảm thấy vẻ đẹp của toán học ở đó. So sánh điều đó với phác thảo của Sipsers về lý thuyết automata hoặc sách của Smullyan về logic hoặc thậm chí Đại số trừu tượng của Dummit & Foote. Có lẽ đó chỉ là tôi, tho.
Daniil

Tôi thứ hai là Daniil. Đây là một bộ sưu tập các công cụ tuyệt vời cho các nhà lý thuyết. Nhưng nó quá khô và kỹ thuật để thú vị cho người mới bắt đầu. Tôi thực sự thích những cuốn sách tôi đã đề cập ở trên vì chúng dường như có linh hồn của riêng họ. Họ đọc như thể ai đó đang kể cho bạn nghe những câu chuyện, những điều thú vị.
Đại

Thật không may, nó không bao gồm cảm ứng cấu trúc, cưỡng chế, lý thuyết miền và tất cả những thứ cần thiết cho TCS kiểu B lý thuyết.
Dave Clarke

@DaveClarke: Đúng. Tôi không chắc chắn tôi sẽ mong đợi bất kỳ cuốn sách toán học toán nào có chứa bất kỳ cuốn sách nào. Nhưng sau đó, GKP được coi là một cuốn sách toán học cs. Nó cũng không chứa logic, vì vậy tôi nên viết lại một chút.
Raphael

2
@DaveClarke bạn có thể vui lòng giới thiệu cho chúng tôi một số cuốn sách về toán học lý thuyết B không?
Daniil

5

Thuật toán 4. Phiên bản R. Sedgewick

Giới thiệu về Phân tích Thuật toán P. Flajolet, R. Sedgewick

Giới thiệu về Lý thuyết, Ngôn ngữ và Tính toán của Automata JE Hopcroft, JD Ullman, (R. Motwani)
Phiên bản đầu tiên năm 1979 có nhiều kết quả lý thuyết bị thiếu trong Phiên bản thứ hai 2001. Chưa nhìn vào Ed thứ ba.

Giới thiệu về lý thuyết ngôn ngữ chính thức MA Harrison
Đó là từ năm 1978 nhưng tôi vẫn muốn thấy nó trong danh sách.

Logicomix: Một cuộc tìm kiếm sử thi về sự thật A. Doxiadis, CH Papadimitriou
Bởi vì nó hoàn toàn tuyệt vời!

Một lần nữa năm 1979 Máy tính và tính hấp dẫn
của Garey và Johnson : Hướng dẫn về lý thuyết hoàn thiện NP

Tôi rất muốn có TAoCP trong danh sách nhưng tôi sợ, rằng cách tiếp cận tỉ mỉ của Don Knuth là không có gì có thể được coi là giới thiệu về Hồi giáo. Thật đáng buồn...


Logicomix chắc chắn là một viên ngọc quý, không nói rằng những cái khác không.
Dave Clarke

Tôi thực sự không thích cách Logicomix miêu tả Logologists là loại người "điên rồ". Các ý tưởng trong logic khi được giải thích theo cách đúng đắn rất đơn giản và đơn giản, và không thực sự "điên rồ".
Đại

1
@Dai Hãy nhìn vào cuộc sống của những người phi thường như, ví dụ như Gdel, Wittgenstein, Nash, v.v. họ thật ... phi thường.
uli

Những người trong số đó là thực sự mới bắt đầu?
Raphael

@Raphael IMHO tất cả trong số họ, nếu không tôi sẽ không đăng chúng ở đây. Một số có thể có một đường cong học tập dốc nhưng tôi nghĩ rằng điều đó là ổn.
uli

4

Nếu bạn hoàn toàn mới đối với lĩnh vực TCS thì Giới thiệu về Lý thuyết tính toán của Sipser chắc chắn là cuốn sách tốt nhất để bạn bắt đầu. Tôi đã đọc những cuốn sách giới thiệu khác, và theo tôi, không ai trong số chúng, đến gần với cách đưa vấn đề của Sipser.

Khác, cụ thể hơn, sách lý thuyết tốt là:


Đã được đề cập ở trên.
Dave Clarke

@DaveClarke Tôi đã dự định thêm nhiều tài nguyên vào danh sách như tôi đã làm với bản chỉnh sửa của mình bây giờ, nhưng tôi cũng muốn nhấn mạnh rằng cuốn sách của Sipser tuyệt vời như thế nào bằng cách nhắc lại lần nữa! :-)
codd 17/03 '

1
Cuốn sách của Pierce là một viên ngọc quý. Tôi ước nó đã xuất hiện khi tôi học tiến sĩ (bằng các loại).
Dave Clarke

@DaveClarke Tôi hiện đang sử dụng nó cho luận án cử nhân theo đề nghị của cố vấn của tôi và tôi cũng rất ấn tượng về nó!
codd 17/03 '

1
Cảm ơn đã tham khảo, tôi sẽ xem xét nó sau ngày hôm nay. Tôi thấy rằng bạn là giáo sư tại KUL, tôi sẽ đến đó vào năm tới để học Phần mềm bảo mật (phần mềm Veilige). Thế giới này thật nhỏ bé.
codd 17/03 '

3

Một số cuốn sách hay bao gồm phần Lý thuyết B của TCS:

  • Logic trong CS : Logic trong khoa học máy tính: Mô hình hóa và lý luận về các hệ thống của Michael Huth và Mark Ryan.
    Phạm vi bảo hiểm rộng rãi của việc sử dụng logic trong khoa học máy tính. Khoảng năm thứ 3 đại học.

  • Công cụ tính toán Lambda : Công cụ tính toán và kết hợp Lambda. Giới thiệu của J. Roger Hindley và Jonathan P. Seldin.
    Giới thiệu tính toán lambda, một thành phần thiết yếu trong nền tảng của các ngôn ngữ lập trình. Khoảng năm thứ 3 đại học.

  • Dẫn vào lý thuyết miền : Giới thiệu về Lưới và Trật tự (tái bản lần 2) của Davey, BA và Priestley, Nhà xuất bản Đại học HA Cambridge. (2002).
    Bao gồm một chủ đề rất hữu ích, đặc biệt nếu bạn có kế hoạch làm việc với ngữ nghĩa. Nó là một toán học nhiều hơn một chút so với các chủ đề khác, nhưng các chương đầu chắc chắn ở cấp đại học nâng cao.

  • Ngữ nghĩa : Ngữ nghĩa với các ứng dụng: Một món khai vị của Hanne Riis Nielson và Flemming Nielson.
    Một giới thiệu thực sự tốt đẹp về ngữ nghĩa ngôn ngữ lập trình. Thay vì đi sâu vào bất kỳ chủ nghĩa hình thức cụ thể nào, nó đưa ra một bài thuyết trình rộng rãi và bao gồm các ứng dụng thường không được xem xét trong các cuốn sách khác về ngữ nghĩa. Có thể có thể hữu ích cho sinh viên năm thứ hai.


Tôi không biết bất kỳ ai trong số những người thậm chí bằng danh tiếng, vì vậy tôi không thể nói rằng họ là người tốt (mặc dù tôi có khuynh hướng nhận lời của bạn cho điều đó). : /
Raphael

1
Tôi đã thêm một mô tả của mỗi cuốn sách. Tất cả đều tốt.
Dave Clarke

3

Đây là một câu trả lời tổng hợp có chứa sách từ các câu trả lời với số điểm ít nhất là năm. Hãy thảo luận về nội dung của nó trong cuộc trò chuyện .

Thuật toán & cấu trúc dữ liệu

  • Giới thiệu về Thuật toán của Cormen, Leiserson, Rivest, Stein (tái bản lần 3 năm 2009)
    Một cách xử lý toàn diện các thuật toán cơ bản và cấu trúc dữ liệu và phân tích của chúng mà không cần đào quá sâu.
  • Các thuật toán của Dasgupta, Papadimitriou, Vazirani (2006)
    Giới thiệu trực quan nhất về các thuật toán tập trung mạnh vào trực giác hơn bằng chứng kỹ thuật.

Tính toán và độ phức tạp

Ngôn ngữ chính thức & Automata

Lý thuyết ứng dụng

  • Nguyên tắc kiểm tra mô hình của Baier, Katoen (2008)
    Cuốn sách khổng lồ được sử dụng như một giới thiệu toàn diện về kiểm tra mô hình.
  • Ngọc trai lập trình của Jon Bentley (tái bản lần 2 năm 1999)
    Không phải là sách giáo khoa về thuật toán nhưng thể hiện rất hay cách sử dụng các kỹ thuật thiết kế thuật toán để giải quyết các vấn đề thực sự. Có thể là một khởi đầu tốt nếu bạn có một số kiến ​​thức về lập trình.

Điều này không trả lời câu hỏi, hoặc nếu nó có nghĩa, nó không phải là một câu trả lời tốt. Bạn có nghĩa là ai đó bắt đầu TCS cần đọc tất cả những cuốn sách này? Nếu không, họ sẽ chọn như thế nào? Hãy nhớ rằng theo quy tắc của bạn, câu trả lời này có khả năng phát triển để chứa hàng trăm cuốn sách
Gilles 'SO- ngừng trở nên xấu xa'

@Raphael Bạn có lịch sự khi yêu cầu người khác xóa câu trả lời của anh ấy / cô ấy không? Thông thường, bản thân người hỏi có thể thực hiện công việc tổng hợp các câu trả lời yêu thích của mình bằng cách sửa đổi văn bản câu hỏi của chính họ, nhưng tôi chưa bao giờ thấy ai buộc người khác xóa bài đăng của mình để tạo câu trả lời cho riêng mình. Cuộc trao đổi cs này đang trở nên kỳ lạ với những hành vi tự ái này.
Đại

@Raphael: Làm cho nó trở thành một CW không làm cho nó đúng khi yêu cầu ai đó xóa câu trả lời của riêng mình. Nó giống như nói rằng tôi sẽ viết một cuốn sách / bài khảo sát (mà tôi sẽ xuất bản trực tuyến miễn phí), vì vậy tôi đi khắp nơi và hỏi tất cả các tác giả có bài báo mà tôi trích dẫn để gỡ bài báo của họ xuống để tránh nhầm lẫn.
Đại

@Raphael Tôi không thấy bất kỳ nơi nào trong giấy phép CC nói rằng công việc của tôi cuối cùng sẽ được yêu cầu gỡ xuống bởi người khác. Tôi không biết bạn có loại tưởng tượng nào với SE, nhưng chắc chắn không phải Wikipedia. Tôi biết bạn làm việc chăm chỉ để "kiểm duyệt" trang web này, nhưng xin vui lòng tôn trọng quyền tự do ngôn luận và quyền riêng tư của người khác, và chỉ cần để các phiếu bầu lên / xuống chăm sóc phần còn lại. Tôi nghĩ mục tiêu của cs SE là cung cấp một diễn đàn thân thiện hơn so với SE mới bắt đầu, nhưng trình độ quản lý vi mô mà bạn đề xuất ở đây khiến nó trở nên tồi tệ hơn nhiều.
Đại

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.