Nghiên cứu trong khoa học máy tính lý thuyết liên quan gì?


11

Tôi đang cố gắng để hiểu những gì liên quan đến nghiên cứu khoa học máy tính lý thuyết. Các nhà khoa học máy tính lý thuyết làm gì?

Tôi biết một thời gian đáng kể được dành cho việc giảng dạy, giám sát sinh viên tốt nghiệp, xin tài trợ và các nhiệm vụ của bộ phận. Đặt chúng sang một bên làm thế nào để bạn dành thời gian nghiên cứu của bạn? Các hoạt động chính bạn thường làm là gì? Tôi đoán rằng bạn đọc các bài báo, suy nghĩ, có các cuộc họp và viết tài liệu. Có ai khác không?


4
"làm thế nào để bạn dành thời gian nghiên cứu của bạn?" ... Đối mặt với những vấn đề mà có lẽ tôi sẽ không bao giờ có thể giải quyết :-) :-)
Marzio De Biasi

7
Điều đó giống như mô tả bức tranh là "trộn sơn, gắn vải, vẽ và làm sạch dụng cụ của bạn". Nói cách khác, nó mô tả những gì nó có thể trông giống như ai đó đang xem, nhưng không liên quan đến lĩnh vực này là gì :)
Suresh Venkat

1
Các hoạt động khác: thể thao, đi bộ đường dài, các hoạt động văn hóa và nói chung là có một cuộc sống. Làm những việc khác giúp suy nghĩ của bạn (và sức khỏe của bạn).
babou

7
Tôi nghĩ rằng câu hỏi không phải là về triết lý của nghiên cứu TCS hay điều gì làm cho bạn trở thành một nhà nghiên cứu tốt hơn, mà thực sự là những hoạt động cụ thể mà một nhà nghiên cứu TCS thực hiện trong giờ làm việc. Bên cạnh những gì đã xuất hiện trong câu hỏi, tôi sẽ thêm việc chuẩn bị các cuộc nói chuyện, nói chuyện, tham dự các hội nghị, đọc lại giấy tờ của chính họ, xem xét giấy tờ của người khác.
Daniel Marx

2
Cảm ơn bạn. Tôi có một số ý tưởng về loại câu hỏi nghiên cứu mà bạn nghiên cứu. Tôi muốn biết thêm về các hoạt động hàng ngày của bạn. Nghiên cứu về công nghệ phần mềm bao gồm phát triển các chương trình máy tính, chạy thử nghiệm, thu thập và phân tích dữ liệu, ... Tôi muốn biết những gì liên quan đến nghiên cứu về lý thuyết. Ngày làm việc điển hình của bạn như thế nào?
sinh viên đại học cs

Câu trả lời:


12

Về chủ đề

Có nhiều loại vấn đề khác nhau có thể được coi là khoa học máy tính lý thuyết . Từ quan trọng ở đây là " lý thuyết " (vì tất cả chúng ta đều có một số ý tưởng về những gì khoa học máy tính giải quyết). Hiểu từ lý thuyết là không quá rõ ràng. Trong một thời gian dài, tôi đã hiểu nó có nghĩa là toán học, trái ngược với "hack". Tôi học tốt hơn từ những người trong ngôn ngữ học: lý thuyếtđối với họ rõ ràng không có nghĩa là toán học, nhưng dựa trên một lý thuyết có thể hơi không chính thức (mặc dù nó cũng có thể là toán học), và là một tổ chức kiến ​​thức và khái niệm cấu trúc sự hiểu biết về các hiện tượng quan sát được và hy vọng cho phép sử dụng suy đoán và dự đoán của kiến ​​thức có được. Nó cũng làm giảm số lượng để học và dạy bằng cách giảm số lượng các khái niệm nguyên thủy mà từ đó phần còn lại có thể được suy luận.

Lý thuyết có thể trái ngược với thực tiễn , đó là cách mà kiến ​​thức này được sử dụng để thực sự chạy các công cụ điện toán, để xây dựng các hệ thống, v.v. Tôi cũng có thể phản đối việc áp dụng kiến thức này để giải quyết các vấn đề trong các lĩnh vực khoa học và con người khác các hoạt động.

Nhưng tôi nghi ngờ có ranh giới rõ ràng.

Điều này nói rằng, khoa học máy tính lý thuyết bao gồm nhiều lĩnh vực khác nhau và tôi sẽ cố gắng đưa ra một số, trong khi tôi chắc chắn tôi quên những người khác, và những người khác có thể không đồng ý với tổ chức này.

  • một miền là khả năng tính toán , nghiên cứu những gì có thể được tính toán và làm thế nào theo nghĩa khá trừu tượng: phần lớn những gì được mô tả trong câu trả lời của Suresh Venkat.

  • khác là thuật toán , tìm ra phương tiện hiệu quả để tính toán câu trả lời cho các vấn đề cụ thể, với các ràng buộc cụ thể. Khả năng tính toán là một bối cảnh lý thuyết cho thuật toán.

  • ngữ nghĩa (vì muốn có một cái tên tốt hơn), phân tích tổ chức khái niệm về các vấn đề tính toán và thuật toán, thành các khái niệm cấp cao hơn, để nhân tố các kỹ thuật đã được chứng minh là hữu ích và thường được sử dụng lại, chẳng hạn như khái niệm chương trình con, dữ liệu- cấu trúc, mô-đun, ẩn thông tin. Nó bao gồm sự phát triển của các công cụ toán học chính thức hóa đầy đủ các khái niệm này để cho phép lý luận cấp cao (ví dụ về ngữ nghĩa Scott). Nó cũng chạm vào cách thể hiện điều này, do đó về sự tách biệt và mối quan hệ giữa cú pháp và ngữ nghĩa. Các khái niệm ngôn ngữ lập trình là một phần của nó (mặc dù thiết kế ngôn ngữ có lẽ là ứng dụng cơ bản của kiến ​​thức đó). Nó cũng có thể bao gồm mối quan hệ giữa lý thuyết bằng chứng và lý thuyết tính toán, và vai trò hiện đại của các hệ thống loại.

  • một chủ đề khác, có thể phát triển hơn nó cho đến nay, là mối quan hệ giữa tính toán và vật lý cơ bản. Ví dụ. có một mối quan hệ giữa các giới hạn về tính toán và các tính chất của thế giới vật lý, chẳng hạn như mật độ thông tin vật lý hoặc các định luật nhiệt động lực học. Điện toán lượng tử có thể cải thiện một chút năng lực tính toán của chúng ta; chúng ta có thể hy vọng nhiều hơn không? Một số người có thể tranh luận rằng đây vẫn là TCS, mặc dù có những nghiên cứu về TCS về siêu tính toán .

Về hoạt động cụ thể

Tôi đang bỏ qua các hoạt động rõ ràng theo yêu cầu của cuộc sống học tập. hoặc đời sống khoa học trong công nghiệp: giảng dạy, xuất bản, xem xét các bài báo, viết đơn xin tài trợ, nhận trách nhiệm học tập, quản lý con người, tư vấn cho sinh viên hoặc các nhà hoạch định chính sách. Nhưng ngay cả khi đó, không có câu trả lời đơn giản cho câu hỏi của bạn. Ở đây tôi chỉ phác thảo một vài khía cạnh mà tôi nghĩ đến, nhưng tôi chắc chắn có rất nhiều điều để nói. Và tôi không chắc chắn tôi đang trả lời bạn. Một số nhà khoa học giỏi nhất đã viết sách về công việc của họ và điều đó có thể cho bạn gợi ý về các hoạt động khoa học.

Nghiên cứu về lý thuyết có thể liên quan đến nhiều thứ khác nhau, tùy thuộc vào kỹ năng và sở thích của bạn khác nhau rất nhiều từ nhà khoa học đến nhà khoa học. Thật khó để nói về điều đó, vì mỗi người nhận thấy nhiều hoạt động và sở thích của riêng mình hơn so với những người khác. Hầu hết các nghiên cứu đều yêu cầu kiến ​​thức rộng, vì các kết quả thú vị và thực sự ban đầu thường xuất phát từ việc đặt mọi thứ vào mối quan hệ hoặc chuyển một kỹ thuật từ trường này sang trường khác hoặc nhận được các quan điểm kỹ thuật khác nhau về cùng một vấn đề. Vì vậy, học càng nhiều càng tốt theo chiều rộng là quan trọng. Hãy nhớ rằng trong khi bạn có thời gian và khả năng cho nó khi còn là sinh viên, hoặc là giảng viên / nhà khoa học cơ sở, cả hai sẽ bị giảm sau đó, vì trách nhiệm và cuộc sống nói chung. Dạy những gì bạn không chuyên có thể là một cách để tiếp tục học.

Loại công việc mọi người làm có thể thay đổi rất nhiều, bởi vì mọi người may mắn rất khác nhau, với rất nhiều sở thích và khả năng kỹ thuật, do đó bổ sung cho nhau. Một số người là người giải quyết vấn đề. Họ nhìn vào những câu hỏi lý thuyết hoặc thực tế được đưa ra bởi những người khác, hoặc của chính họ, và cố gắng giải quyết chúng, hoặc tiến gần hơn đến một giải pháp hoàn chỉnh hoặc một phần. Những người khác sẽ giỏi hơn trong việc cấu trúc kiến ​​thức hiện có, và đặt mọi thứ vào mối quan hệ, và sau đó tìm câu hỏi mới để hỏi. Cả hai đều cần thiết.

Tìm kiếm bằng chứng đơn giản hơn về kết quả kỹ thuật, hoặc trình bày lý thuyết đơn giản hơn, hoặc hợp nhất các khái niệm là rất quan trọng. Nó khái quát hóa kết quả, giảm số lượng những điều cần học, nhấn mạnh những ý tưởng thiết yếu và có thể mang lại sự hiểu biết mới. Vì thời gian học tập của chúng ta có hạn, nên chỉ có thể tiến bộ khi chúng ta cô đọng kiến ​​thức.

Một ví dụ đơn giản là nghiên cứu về các họ trừu tượng của các ngôn ngữ chính thức. Khi lý thuyết ngôn ngữ lần đầu tiên được phát triển, các thuộc tính đóng trong các hoạt động khác nhau đã được chứng minh lặp đi lặp lại cho từng họ ngôn ngữ (thông thường, không ngữ cảnh, RE, ...), với các kỹ thuật ad hoc tùy thuộc vào gia đình. Sau đó, các tài sản đóng cửa này có quan hệ nội tại độc lập với các gia đình liên quan và chúng được nghiên cứu như vậy. Ngày nay, chúng ta chỉ phải kiểm tra một vài thuộc tính đóng đơn giản hơn cho một gia đình nhất định và chúng ta nhận được "miễn phí" toàn bộ các thuộc tính khác.

Một điểm quan trọng khác là không có sự phân biệt rõ ràng như vậy giữa công việc lý thuyết, thực tế hoặc thực nghiệm. Một lý thuyết tốt có thể dẫn đến việc thực hiện các hệ thống có thể cơ giới hóa việc giải quyết các vấn đề. Và sẽ cần một nhà lý thuyết giỏi để thực hiện một hệ thống như vậy, với sự kết hợp giữa công việc lý thuyết và thực tiễn, bao gồm thực hiện hệ thống, hoặc thiết kế ngôn ngữ. Nhiều ví dụ xuất hiện, chẳng hạn như các hệ thống tổng hợp bằng chứng và / hoặc chương trình, ngôn ngữ chuyên biệt cho các hệ thống song song đồng bộ, một ngôn ngữ thuật toán hạn chế mà độ phức tạp tính toán có thể được suy ra một cách có hệ thống. Điều quan trọng không chỉ là có thể tạo ra các hệ thống pratical như vậy, điều này làm cho kết quả lý thuyết trở nên phổ biến và có thể sử dụng rộng rãi hơn, nhưng nó thường rất quan trọng đối với nhà lý thuyết hoặc sử dụng thành thạo các hệ thống này, nếu chỉ dỡ bỏ các phần kém sáng tạo của mình làm việc, hoặc để đóng góp cho sự phát triển và mở rộng của các hệ thống này.

Một khía cạnh khác là có thể so sánh các phương pháp lý thuyết bằng thí nghiệm pratical. Ở đây, vấn đề là so sánh các kỹ thuật khác nhau để hoàn thành cùng một mục tiêu. So sánh việc triển khai thường là vô nghĩa vì hiệu quả của chúng thường phụ thuộc vào ngôn ngữ lập trình hoặc kỹ năng lập trình của người thực hiện. Nhưng nếu chúng có thể được thể hiện tất cả trong một khung lý thuyết chung, thì đôi khi có thể so sánh chúng với thực nghiệm trong khung đó. Ở đây, lý thuyết và thực hành hỗ trợ lẫn nhau, như họ thường làm trong khoa học. Phân tích lý thuyết thuần túy không phải lúc nào cũng dễ dàng đạt được. Hơn nữa, phân tích thử nghiệm, khi được tiến hành tốt, có thể thể hiện hành vi bất ngờ có thể thúc đẩy phân tích lý thuyết tốt hơn.

Thế giới không đơn giản hay rõ ràng. Đó là lý do tại sao nó có thể vui vẻ, có chỗ cho tất cả các loại kỹ năng. Đặt câu hỏi về kiến ​​thức của riêng bạn, và trả lời câu hỏi của người khác, bằng mọi cách.

Hai điều thường bị lãng quên: đạo đức của khoa học, và giải thích nó cho mọi người. Cả hai đều cần thiết, và khó khăn.


giống như tham chiếu lý thuyết so với thử nghiệm nhưng thực tế dường như có một sự tách biệt khá nghiêm ngặt giữa công việc lý thuyết / thực nghiệm trong TCS ủng hộ / nhấn mạnh trước đây ít nhất trên trang web này .... công việc thực nghiệm không lớn so với & dần dần được chấp nhận ....
vzn

8

Theo một nghĩa nào đó, duyệt trang web này sẽ cho bạn biết các loại câu hỏi mà các nhà khoa học máy tính lý thuyết nghĩ về (ở mức độ thấp). Ở cấp độ rất cao, nhà khoa học máy tính lý thuyết đặt câu hỏi về nền tảng toán học của tính toán:

  • những gì chúng ta có thể tính toán?
  • Làm thế nào chúng ta có thể tính toán nó?
  • Nhanh như thế nào ?
  • Điều gì xảy ra khi chúng ta có nguồn lực hạn chế để tính toán?
  • giới hạn về những gì chúng ta có thể tính toán là gì?

Bắt đầu từ những câu hỏi này, một loạt các chủ đề khác xuất hiện, chạm vào các lĩnh vực ứng dụng, toán học, các phần khác của khoa học máy tính, v.v.


Đây dường như là những câu hỏi chính trong "Lý thuyết A" (tính toán, độ phức tạp, thuật toán), chứ không phải "Lý thuyết B" (logic, ngữ nghĩa học, lý thuyết ngôn ngữ lập trình). (Xem cstheory.stackexchange.com/q/1521/989 về thuật ngữ).
Blaisorblade

4

Tôi nhận thấy rằng các tài khoản 1sthand có thể hữu ích, nhưng những tài khoản này dường như hơi hiếm trong CS (trái ngược với toán học, viết tiểu sử / hồi ký, v.v.). đây là hai giới thiệu trực tuyến giải quyết câu hỏi & có thể hữu ích. chúng nhắm nhiều hơn vào cuộc sống sinh viên tiến sĩ & định hướng CS nhưng hầu hết sẽ mang đến nghiên cứu ở cấp độ giáo sư (ngoài việc giảng dạy, nhưng cũng có nhiều Phds làm). [& trong một số cách, các giáo sư có thể được xem là viết liên tục / liên tục viết nhiều luận án tiến sĩ "mini-" (tài liệu nghiên cứu) hoặc trong một số trường hợp "siêu" luận án (sách) về sự nghiệp của họ.] cũng có một số cuốn sách hay về chủ đề, sẽ thêm một số nếu bạn cho biết họ sẽ là một câu trả lời chấp nhận được cho câu hỏi của bạn.

  • Cách thực hiện nghiên cứu tại MIT AI Lab "bởi toàn bộ sinh viên tốt nghiệp MIT AI Lab hiện tại, trước đây và danh dự" / David Chapman, Biên tập viên

    Tài liệu này được cho là có mục đích rõ ràng để giải thích cách thực hiện nghiên cứu. Chúng tôi cung cấp cho heuristic có thể hữu ích trong việc chọn các kỹ năng cụ thể cần thiết cho nghiên cứu (đọc, viết, lập trình) và để hiểu và tận hưởng quá trình (phương pháp, lựa chọn chủ đề và cố vấn, và các yếu tố cảm xúc).

  • Làm thế nào để trở thành một sinh viên tiến sĩ thành công (về Khoa học máy tính) Mark Dredze (Đại học Johns Hopkins), Hanna M. Wallach (Đại học Massachusetts Amherst)


cũng có khá nhiều cuộc sống hàng ngày của nhà nghiên cứu có thể được lượm lặt từ một số blog khoa học máy tính được viết với "vẻ bên trong"
vzn
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.