Định nghĩa của Khoa học Máy tính và Khoa học trong Khoa học Máy tính là gì?


39

Tôi đang theo đuổi bằng Cử nhân Khoa học Máy tính, nhưng tôi đang ở giai đoạn đầu của nó, và tôi khá chắc chắn rằng tôi sẽ hài lòng với lựa chọn của mình vì nó có vẻ giống như một nền giáo dục linh hoạt trong học tập và nghề nghiệp để theo đuổi.

Phải nói rằng, dường như có rất nhiều định nghĩa về Khoa học Máy tính thực sự liên quan đến giới học thuật, khu vực tư nhân và "Khoa học" thực tế trong "Khoa học Máy tính" tôi rất muốn có câu trả lời (Hoặc suy ngẫm chia sẻ) đối với bề rộng của những điều mà giáo dục về Khoa học Máy tính có thể được áp dụng, và cuối cùng là sự đa dạng của những con đường trong Khoa học Máy tính đã theo đuổi.


1
Khoa học về Khoa học Máy tính ở đâu? : cacm.acm.org/mag Magazine / 2012/10 / từ
avi

xem thêm cs meta khoa học máy tính là gì
vzn

Câu trả lời:


38

Khoa học máy tính là một cách hiểu sai - thực sự không có "khoa học" trong khoa học máy tính, vì khoa học máy tính không phải là quan sát tự nhiên. Thay vào đó, các bộ phận của khoa học máy tính là kỹ thuật , và các bộ phận là toán học .

Các phần lý thuyết hơn của khoa học máy tính hoàn toàn là toán học. Ví dụ, một thuật toán tốt để sắp xếp là gì? Làm thế nào để chúng ta xác định ngữ nghĩa của ngôn ngữ lập trình? Làm thế nào chúng ta có thể chắc chắn rằng một hệ thống mật mã là an toàn?

Khi khoa học máy tính được áp dụng, nó trở nên giống như kỹ thuật hơn. Ví dụ, cách tốt nhất để thực hiện thuật toán nhân ma trận là gì? Làm thế nào chúng ta nên thiết kế một ngôn ngữ máy tính để tạo điều kiện cho việc viết các chương trình lớn? Làm thế nào chúng ta có thể thiết kế một hệ thống mật mã để bảo vệ ngân hàng trực tuyến?

Ngược lại, khoa học là về quy luật tự nhiên , và nói chung hơn là về các hiện tượng tự nhiên . Các hiện tượng liên quan đến khoa học máy tính là do con người tạo ra. Một số khía cạnh của khoa học máy tính có thể được xem là thử nghiệm theo nghĩa này, ví dụ như nghiên cứu thực nghiệm về mạng xã hội, nghiên cứu thực nghiệm về mạng máy tính, nghiên cứu thực nghiệm về virus và sự lây lan của chúng, và giáo dục máy tính (cả dạy khoa học máy tính và sử dụng máy tính để dạy các môn học khác). Hầu hết các ví dụ này là khoa học máy tính biên giới, và đa ngành đúng hơn. Phương pháp gần nhất với phương pháp khoa học trong khoa học máy tính có lẽ là nghiên cứu về mạng và các thiết bị phần cứng khác, vốn là chủ đạo ở vùng ngoại ô được gọi một cách không chính thức là "hệ thống".

Những ví dụ này mặc dù, hầu hết cốt lõi của khoa học máy tính hoàn toàn không phải là khoa học. Khoa học máy tính chỉ là một cái tên - nó không cần phải có ý nghĩa.

Đối với phạm vi của khoa học máy tính, các định nghĩa tốt nhất có lẽ là: điều mà các nhà khoa học máy tính làm. Khoa học máy tính, giống như mọi ngành học khác, là một lĩnh vực rộng lớn, và rất khó để lập biểu đồ hoàn toàn. Nếu bạn muốn lấy mẫu những gì mọi người coi là khoa học máy tính, bạn có thể xem xét các lĩnh vực nghiên cứu của khoa.


4
Đây là một trong những bình luận trung thực nhất từ ​​các nhà khoa học máy tính mà tôi từng thấy. Cảm ơn.
scaaahu

21
Đây thực sự là về triết học nhiều hơn là về khoa học máy tính - nhưng tôi không đồng ý với câu trả lời này. Khoa học máy tính là một cách hiểu sai cho khoa học máy tính và khoa học máy tính là một khoa học giống như cách nói, cơ học. Có một nền tảng toán học mạnh mẽ, nhưng nền tảng này chịu sự xác nhận theo kinh nghiệm - chúng tôi tập trung vào tính toán Turing vì đó là cách thế giới dường như hoạt động, và chúng tôi nghiên cứu các khái niệm khác bởi vì tính toán Turing không mô hình hóa tất cả các hiện tượng tính toán trong thế giới thực.
Gilles 'SO- ngừng trở nên xấu xa'

3
Tôi nghĩ rằng ý tưởng chỉ quan sát các hiện tượng tự nhiên là khoa học thực tế là sự xuất phát của tư tưởng duy vật, một điều mà nhiều người sẽ không đồng ý. Về mặt từ nguyên học, khoa học là tập hợp kiến ​​thức, và mặc dù một số người nói rằng tất cả toán học là tautology, tôi nghi ngờ bất kỳ ai trong số họ sẽ phân loại toán học là "không phải kiến ​​thức".
G. Bạch

2
@Gilles Bạn không thể nghiêm túc. Ngoài những người làm siêu tính toán, không ai tranh cãi về khái niệm Turing về khả năng tính toán. Một điểm tốt hơn có thể được đưa ra liên quan đến khái niệm tính toán hiệu quả (như trong polytime có nghĩa là hiệu quả), nhưng không ai cố gắng nắm bắt hiệu quả trong các mô hình tính toán hợp lý - người lý thuyết bỏ qua các vấn đề với mô hình và mọi người thực hành bỏ qua mô hình .
Yuval Filmus

2
@YuvalFilmus Chỉ đưa ra hai ví dụ, máy Turing không đủ để mô hình hóa các hệ thống phân tán hoặc đồng bộ.
Gilles 'SO- ngừng trở nên xấu xa'

11

Chúng ta hãy bắt đầu với một câu trích dẫn từ một trong những người cha của Khoa học máy tính hiện đại: Khoa học máy tính không nói gì nhiều về máy tính hơn thiên văn học là về kính viễn vọng. - Edsger Wybe DIJKSTRA

Vì vậy, trong thực tế nếu điều bạn quan tâm là máy tính và lập trình thì bạn không thực sự quan tâm đến khoa học máy tính :-)

Tôi nghĩ Wikipedia có một trong những mô tả hay nhất: "Khoa học máy tính (viết tắt CS hoặc CompSci) là cách tiếp cận khoa học và thực tiễn để tính toán và ứng dụng của nó. Đây là nghiên cứu có hệ thống về tính khả thi, cấu trúc, biểu thức và cơ giới hóa của các quy trình phương pháp (hoặc các thuật toán) làm cơ sở cho việc thu nhận, biểu diễn, xử lý, lưu trữ, liên lạc và truy cập thông tin, cho dù thông tin đó được mã hóa theo bit và byte trong bộ nhớ máy tính hay các động cơ được sao chép và cấu trúc protein trong tế bào người. chuyên về lý thuyết tính toán và thiết kế hệ thống tính toán "

Nhưng trong thực tế như Yuval đã tuyên bố, hầu hết các trường đại học / cao đẳng đã tránh xa khoa học máy tính lý thuyết / thuần túy và khoa học máy tính giờ là một hỗn hợp của khoa học, toán học, kỹ thuật. Dạy chúng tôi không chỉ khoa học máy tính thuần túy, mà còn cả các kỹ năng thực tế để giải quyết những vấn đề đó và các vấn đề khác bằng máy tính hiện đại, ngôn ngữ lập trình, hệ điều hành và ứng dụng phần mềm.


3
bạn nói đã chuyển đi , nhưng họ đã bao giờ hoàn toàn là lý thuyết chưa?
Agos

@Agos Tôi đồng ý với bạn, không bao giờ có một giai đoạn thực sự hoàn toàn là lý thuyết, nhưng tôi sẽ nói rằng khi thời gian trôi qua và doanh nghiệp cần nhiều lập trình viên hơn và ít nhà khoa học máy tính hơn, bằng cấp / lý thuyết đã chuyển nhiều hơn từ lý thuyết sang thực tiễn. Tôi không nói cái này tốt hơn cái kia, chỉ là quan sát.
AquaAlex

1
@AquaAlex Tôi nghĩ rằng đó có thể là cách tốt nhất để mô tả sự khác biệt rõ rệt giữa Khoa học Máy tính cũ đối với Khoa học Máy tính như người ta nghĩ ngày nay: nó đã chuyển hướng mạnh mẽ sang ứng dụng thực tế để phù hợp với nhu cầu của ngành công nghiệp.

Tại sao khoa học máy tính "thuần túy" chỉ là lý thuyết? Theo như tôi biết, đó chưa bao giờ là một mô tả hay về khoa học máy tính là gì; mối quan tâm thực tế luôn luôn thông báo cho các lĩnh vực.
Raphael

@Raphael Tất cả phụ thuộc vào những gì bạn cho là "thực tế". Viết chương trình máy tính không phải là ứng dụng thực tế của CS. Hầu hết các ngành khoa học sử dụng lý thuyết để giải quyết các vấn đề thực tế / thực tế và rất nhiều ngành khoa học sử dụng máy tính và lập trình để làm điều này.
AquaAlex

11

Điều đáng nói là thuật ngữ tiếng Đức của "Khoa học máy tính" là Informatik , làm tan chảy InfomationMathematik . Tôi nghĩ đó là một mô tả hay và ngắn gọn về những gì Khoa học Máy tính nói về. (thuật ngữ tiếng Ý là thông tin và tôi chắc chắn có khá nhiều ngôn ngữ khác theo cùng một dòng).


Bài viết của Wikipedia về khoa học máy tính có một phần về các tên khác nhau en.wikipedia.org/wiki/Computer_science#Name_of_the_field - Về phần tôi, tôi không thích phần "máy tính" hơn là "khoa học". Tôi vẫn chưa tìm thấy một lĩnh vực khoa học sử dụng máy tính ngày nay ít hơn nhiều so với tôi.
linac

2
@linac: Các lĩnh vực khác sử dụng máy tính để nghiên cứu một cái gì đó khác. Khoa học máy tính kết thúc bằng việc sử dụng máy tính để nghiên cứu tính toán. Trong cả hai trường hợp, chúng tôi có thể loại bỏ các máy tính và vẫn thực hiện công việc, chỉ cần chậm hơn. Hãy nhớ rằng đó thực sự là một ý tưởng hiện đại rằng "máy tính" chỉ đề cập đến một hộp thực tế thực hiện một số phần cứng có khả năng thực hiện tính toán và "Máy tính" trong khoa học máy tính thực sự đề cập đến ý tưởng tính toán.
Phoshi

Có lẽ dẫn xuất của tên "Informatik" là sai. Wiki tiếng Đức có đề cập đến "Thông tin und Automatik" nhưng có lẽ nó chỉ đơn giản là "Thông tin + -tik"
miracle173

@ miracle173 Thật vậy, có rất nhiều thông tin về "Information und Automatik", cũng như trong Wiki tiếng Pháp và tiếng Ý họ đề cập đến nó. Tôi không thể nhớ lần đầu tiên tôi đọc dẫn xuất "Information und Mathematik", nhưng tôi khá chắc chắn rằng tôi đã không tự mình phát minh ra nó ...
john_leo

6

Bạn có thể quan tâm đến một cuộc thảo luận chúng tôi đã có trên meta. Cụ thể, tôi đứng trước câu trả lời của mình, được sao chép ở đây:

Khoa học máy tính là khoa học tính toán; điều đó dường như rất rõ ràng Ít rõ ràng hơn là làm thế nào để xác định khoa học và tính toán một cách hữu ích và có ý nghĩa.

Nói chung, chúng ta có thể phân chia khoa học theo hai cách phân loại: chính thức so với thực nghiệm và thuần túy so với áp dụng. Trong khi khoa học chính thống (như toán học và phần lớn khoa học máy tính) dựa vào lý luận suy diễn từ các sự thật giả định, khoa học thực nghiệm (như vật lý và hóa học) dựa vào lý luận quy nạp từ các hiện tượng quan sát được. Trong khi mục tiêu của khoa học thuần túy là thúc đẩy trạng thái hiểu biết khoa học, mục tiêu của khoa học ứng dụng là sử dụng sự hiểu biết đó để khai thác các lực lượng của Tự nhiên (theo nghĩa rộng nhất có thể của từ này) để đạt được các mục tiêu khác.

Chúng ta có thể định nghĩa tính toán là một phép biến đổi được áp dụng cho một phần thông tin. Theo nghĩa rộng nhất có thể, tính toán là, sau đó, bất kỳ quá trình nào gây ra sự thay đổi xảy ra trong vũ trụ. Không cần phải cung cấp bất kỳ định nghĩa chi tiết hơn so với điều này.

Khoa học máy tính, sau đó, bao gồm một phần của nỗ lực của con người thỏa mãn các tiêu chí sau:

  • Đó là khoa học, đó là:

    • Nó là (1) chính thức hoặc (2) theo kinh nghiệm:

      1. sử dụng lý luận suy diễn từ những sự thật giả định
      2. sử dụng lý luận quy nạp từ các hiện tượng quan sát
    • Nó là (1) nguyên chất hoặc (2) được áp dụng

      1. tìm cách thúc đẩy trạng thái hiểu biết khoa học
      2. tìm cách áp dụng hiểu biết khoa học để khai thác các lực lượng tự nhiên
  • Nó nghiên cứu tính toán, đó là:

    • Nó nghiên cứu hoặc (1) biến đổi hoặc (2) thông tin
      1. xử lý thông tin ánh xạ từ dạng này sang dạng khác
      2. các thực thể chịu sự biến đổi

cảm ơn vì đã đưa ra khía cạnh thực nghiệm cũng đóng một phần trong nghiên cứu TCS tiên tiến! ví dụ: kết quả thực nghiệm trong các bài báo CS
vzn

5

Tôi muốn thêm một viễn cảnh liên quan đến từ "khoa học" quá dài cho một bình luận.

Mọi người nói rằng khoa học máy tính không phải là một khoa học theo cách truyền thống vì (đơn giản hóa ở đây) chúng ta làm toán học hoặc kỹ thuật. Điều đó không hoàn toàn đúng. Chúng ta có thể áp dụng phương pháp khoa học - được cho là nền tảng của khoa học - đó là

quan sát, đo lường và thử nghiệm có hệ thống, và xây dựng, thử nghiệm và sửa đổi các giả thuyết.
(Từ điển tiếng Anh Oxford qua Wikipedia )

Trong thực tế, một số công việc sớm nhất trong các thuật toán tuân thủ nguyên tắc này. Một số phương pháp đã bị "mất" vì một số lý do nhưng chúng ta vẫn có thể sử dụng nó.

Quá trình cơ bản¹ sẽ như thế này:

  • Lưu ý một vấn đề mà chúng tôi muốn giải quyết với một máy tính.
  • Hãy đến với một thuật toán.
  • Phân tích (một mô hình toán học của) thuật toán.
  • Dựa trên phân tích của bạn, hãy dự đoán thời gian chạy (dự kiến) của thuật toán (trên một bộ đầu vào nhất định và một máy nhất định).
  • Xác nhận hoặc làm sai lệch dự đoán của bạn bằng các thí nghiệm.

O ngay cả trong các trường con định hướng theo kinh nghiệm hơn.

Nhân tiện, đừng tin lời tôi. Robert Sedgewick và Philippe Flajolet đã làm việc để đưa khoa học trở lại khoa học máy tính , chủ yếu bằng cách phát triển khuôn khổ chính thức của tổ hợp phân tích cho phép đưa ra các giả thuyết có thể kiểm chứng. Bạn có thể tìm thấy video và MOOCs của Sedgewick sẽ cho bạn biết nhiều như vậy.

Tất cả hy vọng không bị mất.


  1. Tất nhiên, đây chỉ là công thức thuật toán wrt. Bạn cũng có thể nghiên cứu xem các mô hình đồ thị có phù hợp với thực tế hay không (được thực hiện trong công việc trên các mạng xã hội, mặc dù thường dựa trên kinh nghiệm hơn là khoa học) hoặc thông lượng mạng hóa ra như dự đoán hoặc bất kỳ số lượng nào khác.

Tất cả hy vọng không bị mất. Chỉ là một điều tồi tệ nếu khoa học máy tính không phải là khoa học (ngoại trừ người viết sai)?
k.stm

@ k.stm Theo tôi, vâng. Tại sao giải quyết cho ít?
Raphael

Toán học không phải là khoa học, nhưng nó không bao giờ phải chịu đựng khi không phải là một. Và chắc chắn, cả toán học lẫn khoa học máy tính đều không kém khoa học vì không phải là khoa học. Có lẽ bạn có nghĩa là ít hơn một cách khó tính, vì trong khoa học máy tính, không kém gì toán học, kỹ thuật khoa học,? Nhưng ngay cả sau đó tôi cũng không thấy được sự kế thừa trong việc trở thành khoa học. Tại sao nó có? Có cần phải tiếp cận lý luận tính toán một cách khoa học?
k.stm

@ k.stm Vâng. Không phải tất cả CS có thể là toán học, và không phải tất cả đều có thể (hoặc muốn) là kỹ thuật. Những phần không phải lúc nào cũng không phải lúc nào (đọc: thường là không) khoa học. Đó là một vấn đề lớn. Ví dụ: thuật toán thực nghiệm. Các phân tích toán học là khó hiểu, các nguyên tắc kỹ thuật không áp dụng. Sau đó, về cơ bản, chúng tôi đang thực hiện các thí nghiệm khoa học trên các chương trình - nhưng chúng tôi thường không sử dụng các nguyên tắc khoa học. (Có bao nhiêu người CS biết các số liệu thống kê cơ bản?)
Raphael

Được rồi, vì vậy bạn đang nói rằng chúng ta cần tiếp cận lý luận tính toán một cách khoa học bởi vì điều đó hoạt động tốt nhất (hoặc hoàn toàn) trong một số tình huống, tôi có hiểu đúng về bạn không? Nếu đó là như vậy, tôi có thể thấy quan điểm của bạn - vẫn vậy, điều đó không có nghĩa là có một lợi ích kế thừa cho khoa học máy tính để thực sự trở thành một khoa học. Nó chỉ ra rằng nó sẽ tốt hơn nữa
k.stm

3

đây có thể là một câu hỏi cũ được tranh luận từ lâu về nguồn gốc của khoa học máy tính. một cách tự nhiên để nghiên cứu / trả lời điều này là thông qua các tài liệu được xuất bản trên subj. nghi ngờ có nhiều giới thiệu tốt về điều này bị chôn vùi trong các tài liệu chưa được trích dẫn. Ngoài ra, các câu trả lời / POV về điều này có thể đã thay đổi theo thời gian hay còn gọi là dịch chuyển Kuhnian đã hơi phổ biến trong lĩnh vực này, có thể nhiều hơn so với các lĩnh vực khoa học khác. một góc độ khác để nghiên cứu điều này là cách môn học đã được dạy trong học viện và cách nó phù hợp với cấu trúc phòng ban hiện tại cũng đã thay đổi theo thời gian.

Dưới đây là một số bài viết / bài luận hay của Denning, cơ quan có thẩm quyền trong lĩnh vực này, giải quyết trực tiếp câu hỏi này và là một nơi tốt để bắt đầu cho nhiều lượt giới thiệu hơn. cả hai được công bố trên tạp chí của xã hội học thuật chính của lĩnh vực này, CACM .

Các quy trình thông tin và tính toán tiếp tục được tìm thấy rất nhiều trong các cấu trúc sâu của nhiều lĩnh vực. Trên thực tế, máy tính không phải là máy tính, không bao giờ là một khoa học chỉ mang tính nhân tạo.

Khoa học máy tính đáp ứng mọi tiêu chí để trở thành một khoa học, nhưng nó có một vấn đề uy tín tự gây ra.


Từ chối định nghĩa 'điện toán' là, một cách hiệu quả, 'nghiên cứu về điện toán'. Rõ ràng, nghiên cứu về một cái gì đó không giống như một cái gì đó. Tôi luôn luôn ngạc nhiên về mức độ mà những sai lầm cơ bản được chấp nhận mà không chớp mắt trong lĩnh vực này.
Revierpost

không hoàn toàn đồng ý với mọi thứ trong bài báo, tuy nhiên hãy nghĩ rằng bạn đang trích dẫn ra khỏi bối cảnh
vzn

2

làm việc từ định nghĩa của khoa học

  1. một nhánh kiến ​​thức hoặc nghiên cứu liên quan đến một cơ thể của sự thật hoặc sự thật được sắp xếp một cách có hệ thống và cho thấy hoạt động của các định luật chung: khoa học toán học.
  2. kiến thức hệ thống về thế giới vật chất hoặc vật chất có được thông qua quan sát và thử nghiệm.
  3. bất kỳ ngành khoa học tự nhiên hoặc vật lý.
  4. hệ thống hóa kiến ​​thức nói chung.
  5. kiến thức, như sự thật hoặc nguyên tắc; kiến thức thu được bằng nghiên cứu có hệ thống.
  1. khoa học máy tính được kết nối chặt chẽ với toán học và liên quan đến nghiên cứu quan trọng (ví dụ như nghiên cứu).

  2. khoa học máy tính là rộng và kết nối chặt chẽ với vật lý theo nhiều cách. ví dụ: vật lý / nhiệt động lực học tính toán, tính toán lượng tử , P =? NP như một định luật vật lý , chuyển pha , v.v.

  3. nó là hệ thống kiến ​​thức.

  4. nó trải qua nghiên cứu có hệ thống tức là nghiên cứu.

thuật ngữ "khoa học máy tính" nhấn mạnh lĩnh vực này không chỉ đơn thuần là áp dụng các nguyên tắc đã biết, ví dụ như trong kỹ thuật. có khá nhiều terra incersonita xung quanh khoa học máy tính, nhiều câu hỏi cơ bản trong lĩnh vực này là mở / chưa được trả lời . số lượng các nhà nghiên cứu trên toàn thế giới rất khó ước tính nhưng con số vượt quá hàng ngàn hoặc hàng chục ngàn.

tuy nhiên, lưu ý rằng các khía cạnh khoa học hơn của khoa học máy tính không thực sự được dạy / tiếp xúc quá nhiều ở cấp đại học, có thể dẫn đến một số rắc rối. Dường như cũng không có nhiều hiện thân / lễ kỷ niệm / người đề xướng / người ủng hộ nó như là một khoa học, ví dụ như trái ngược với các lĩnh vực khác như LHC & khám phá về boson Higgs, v.v ... mặc dù CS có vai trò chính trong nó khám phá!], hoặc một nhân vật dân túy nổi tiếng giống Carl Sagan hoặc Hawking. tuy nhiên, ví dụ, xem các cuốn sách khoa học phổ biến truyền cảm hứng cho CS


1
Hoặc tùy thuộc vào lĩnh vực khoa học máy tính, sự khác biệt của toán học thực sự là gì? :-)
Juho

một yếu tố khác là khoa học máy tính có các khía cạnh liên ngành rất mạnh. một ví dụ / khu vực hồ sơ ngày càng cao có hương vị khoa học mạnh mẽ, dữ liệu lớn
vzn

một khía cạnh khác để suy ngẫm. một đối tượng nghiên cứu CS chính, máy Turing được gọi là máy & là một giao thoa giống như chimeric giữa một thiết bị lý thuyết và thiết bị vật lý.
vzn

Máy Turing là thiết bị lý tưởng. Chúng không tồn tại trong thực tế. Ngay cả với tư cách là một mô hình, nó không quá gần với cách tính toán "thực sự" được thực hiện.
Yuval Filmus
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.