计算机科学:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Xiaogaozi留言 | 贡献
无编辑摘要
Xiaogaozi留言 | 贡献
无编辑摘要
第4行: 第4行:
}}
}}


<div class="thumb tright" style="background-color: #f7f7f7; border:green
<div class="thumb tright">
<div class="thumbinner" style="width:200px;">
1px solid #CCCCCC; margin:0.5em;">
{| border="0" cellpadding="10" cellspacing="0" style="font-size: 85%; border: 1px solid #CCCCCC; margin: 0.3em;"
{| style="border:1px solid #ccc;"
|valign="top"|[[File:Utah teapot simple 2.png|90px|计算机图形学|link=计算机图形学]]
|valign="top"|[[File:Sorting quicksort anim frame.png|90px|计算复杂性理论|link=计算复杂性理论]]
|-
|-
| [[File:Utah teapot simple 2.png|94px|alt=Utah teapot representing computer graphics|计算机图形学|link=计算机图形学]]
|valign="------"|[[File:Lambda lc.svg|90px|编程语言理论|link=编程语言理论]]
| [[File:Sorting quicksort anim frame.png|94px|alt=Plot of a quicksort algorithm|计算复杂性理论|link=计算复杂性理论]]
|valign="------"|[[File:3-Tastenmaus Microsoft.jpg|90px|人机交互|link=人机交互]]
|-
| [[File:Lambda lc.svg|94px|alt=large capital lambda|编程语言理论|link=编程语言理论]]
| [[File:3-Tastenmaus Microsoft.jpg|94px|alt=Microsoft Tastenmaus mouse representing human-computer interaction|人机交互|link=人机交互]]
|}
|}
<div style="border: none; width:200px;"><div class="thumbcaption">计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。</div></div></div>
<div class="thumbcaption">计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。</div>
</div>
</div>


'''计算机科学'''(Computer Science,有时缩写为'''CS''')是对于[[信息]]与[[计算]]的理论基础以及它们在[[计算机]]系统中如何实现与应用的实用技术的学习。<ref>{{Cite doi|10.1145/63238.63239}} "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information."</ref><ref>{{cite conference|author=Wegner, P.|title=Research paradigms in computer science|booktitle=Proceedings of the 2nd international Conference on Software Engineering |location=San Francisco, California, United States| date=October 13–15, 1976|publisher=IEEE Computer Society Press, Los Alamitos, CA|quote=Computer science is the study of information structures}}</ref> 它通常被形容为对那些创造、描述以及转换信息的[[算法]]处理的系统学习。计算机科学包含很多[[List of computer science fields|分支领域]];其中一些,比如[[计算机图形学]]强调特定结果的计算,而另外一些,比如[[计算复杂性理论]]是学习[[计算问题]]的性质。还有一些领域专注于挑战怎样实现计算。比如[[编程语言理论]]学习描述计算的方法,而[[程序设计]]是应用特定的[[编程语言]]解决特定的计算问题,[[人机交互]]则是专注于挑战怎样使计算机和计算变得有用、可用,以及随时随地为[[人]]所用。
'''计算机科学'''(Computer Science,有时缩写为'''CS''')是对于[[信息]]与[[计算]]的理论基础以及它们在[[计算机]]系统中如何实现与应用的实用技术的学习。<ref>{{Cite doi|10.1145/63238.63239}} "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information."</ref><ref>{{cite conference|author=Wegner, P.|title=Research paradigms in computer science|booktitle=Proceedings of the 2nd international Conference on Software Engineering |location=San Francisco, California, United States| date=October 13–15, 1976|publisher=IEEE Computer Society Press, Los Alamitos, CA|quote=Computer science is the study of information structures}}</ref> 它通常被形容为对那些创造、描述以及转换信息的[[算法]]处理的系统学习。计算机科学包含很多[[List of computer science fields|分支领域]];其中一些,比如[[计算机图形学]]强调特定结果的计算,而另外一些,比如[[计算复杂性理论]]是学习[[计算问题]]的性质。还有一些领域专注于挑战怎样实现计算。比如[[编程语言理论]]学习描述计算的方法,而[[程序设计]]是应用特定的[[编程语言]]解决特定的计算问题,[[人机交互]]则是专注于挑战怎样使计算机和计算变得有用、可用,以及随时随地为[[人]]所用。
第22行: 第25行:


{{Main|计算机科学的历史}}
{{Main|计算机科学的历史}}
{{Wikiversity|computing}}


早期计算机科学建立的基础得追溯到现代[[电子计算机]]的发明。那些计算固定数值任务的机器,比如[[算盘]],自古希腊时期即已存在。[[Wilhelm Schickard]]在1623年设计了世界上第一台机械计算器,但没有完成它的建造。<ref>{{cite web|author=Nigel Tout|title=Calculator Timeline|url=http://www.vintagecalculators.com/html/calculator_time-line.html|work=Vintage Calculator Web Museum|year=2006|accessdate=2006-09-18}}</ref> [[Blaise Pascal]]在1642年设计并且建造了世界上第一台可以工作的机械计算器[[Pascal's calculator|Pascaline]]。[[Ada Lovelace]]协助<ref>{{cite web| url=http://www.scottlan.edu/Lriddle/women/ada-love.htm| title=A Selection and Adaptation From Ada's Notes found in "Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA | accessdate=2006-05-04}}</ref> [[Charles Babbage]]在[[维多利亚时代]]设计了[[差分机]]。<ref>{{cite web | url=http://www.sciencemuseum.org.uk/on-line/babbage/index.asp | title=Science Museum - Introduction to Babbage | accessdate=2006-09-24 |archiveurl = http://web.archive.org/web/20060908054017/http://www.sciencemuseum.org.uk/on-line/babbage/index.asp <!-- Bot retrieved archive --> |archivedate = 2006-09-08}}</ref> 1900年左右,[[打孔机]]<ref>{{cite web | url=http://www.pattonhq.com/ibm.html | title=IBM Punch Cards in the U.S. Army | accessdate=2006-09-24}}</ref> 问世。然而以上这些机器都局限在只能完成单个任务,或者充其量是所有可能任务的子集。
早期计算机科学建立的基础得追溯到现代[[电子计算机]]的发明。那些计算固定数值任务的机器,比如[[算盘]],自古希腊时期即已存在。[[Wilhelm Schickard]]在1623年设计了世界上第一台机械计算器,但没有完成它的建造。<ref>{{cite web|author=Nigel Tout|title=Calculator Timeline|url=http://www.vintagecalculators.com/html/calculator_time-line.html|work=Vintage Calculator Web Museum|year=2006|accessdate=2006-09-18}}</ref> [[Blaise Pascal]]在1642年设计并且建造了世界上第一台可以工作的机械计算器[[Pascal's calculator|Pascaline]]。[[Ada Lovelace]]协助<ref>{{cite web| url=http://www.scottlan.edu/Lriddle/women/ada-love.htm| title=A Selection and Adaptation From Ada's Notes found in "Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA | accessdate=2006-05-04}}</ref> [[Charles Babbage]]在[[维多利亚时代]]设计了[[差分机]]。<ref>{{cite web | url=http://www.sciencemuseum.org.uk/on-line/babbage/index.asp | title=Science Museum - Introduction to Babbage | accessdate=2006-09-24 |archiveurl = http://web.archive.org/web/20060908054017/http://www.sciencemuseum.org.uk/on-line/babbage/index.asp <!-- Bot retrieved archive --> |archivedate = 2006-09-08}}</ref> 1900年左右,[[打孔机]]<ref>{{cite web | url=http://www.pattonhq.com/ibm.html | title=IBM Punch Cards in the U.S. Army | accessdate=2006-09-24}}</ref> 问世。然而以上这些机器都局限在只能完成单个任务,或者充其量是所有可能任务的子集。
第99行: 第101行:
{{main|信息论|编码理论}}
{{main|信息论|编码理论}}
{{Expand section|date=March 2011}}
{{Expand section|date=March 2011}}
信息论与信息量化相关,由[[克劳德·香农|Claude E. Shannon]]创建,用于寻找信号处理操作的本限,比如压缩数据和可靠的数据存储通讯。编码理论是对编码以及它们适用的特定应用性质的研究。编码(code)被用于数据压缩,密码学,前向纠错,以及最网络编码。研究编码的目的在于设计更高效、可靠的数据传输方法。
信息论与信息量化相关,由[[克劳德·香农|Claude E. Shannon]]创建,用于寻找信号处理操作的限,比如压缩数据和可靠的数据存储通讯。编码理论是对编码以及它们适用的特定应用性质的研究。编码(code)被用于数据压缩,密码学,前向纠错,近期也被用于网络编码。研究编码的目的在于设计更高效、可靠的数据传输方法。


=== 算法与数据结构 ===
==== 算法与数据结构 ====


{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
第116行: 第118行:
|}
|}


== 相关领域 ==
==== 编程语言理论 ====
{{main|编程语言理论}}

编程语言理论是计算机科学的一个分支,主要处理[[编程语言]]的设计、实现、分析、描述和分类,以及它们的个体特性。它属于计算机科学学科,既受影响于也影响着[[数学]]、[[软件工程]]和[[语言学]]。它是公认的计算机科学分支,同时也是活跃的研究领域,研究成果被发表在众多[[学术期刊]],计算机科学以及工程出版物。
=== 计算机架构与工程 ===


{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
| [[File:NOR ANSI.svg|96px]]
| [[File:Fivestagespipeline.png|96px]]
| [[File:SIMD.svg|96px]]
|-
|-
| <math>\Gamma\vdash x: \text{Int}</math>
| [[数字电路]]
| [[File:Ideal compiler.png|96px]]
| [[微架构]]
| [[File:Python add5 syntax.svg|96px]]
| [[多处理机]]
|-
| [[类型论]]
| [[编译器设计]]
| [[编程语言]]
|}
|}


=== 计算科学 ===
==== 形式化方法 ====
{{main|形式化方法}}
形式化方法是一种特别的基于[[数学]]的技术,用于[[软件]]和[[硬件]]系统的[[规范|形式规范]]、开发以及[[验证|形式验证]]。在软件和硬件设计方面,形式化方法的使用动机,如同其它工程学科,是通过适当的数学分析便有助于设计的可靠性和健壮性的期望。但是,使用形式化方法会带来很高的成本,意味着它们通常只用于高可靠性系统,这种系统中[[安全]]或[[保安]](security)是最重要的。对于形式化方法的最佳形容是各种[[理论计算机科学]]基础种类的应用,特别是[[逻辑|计算机逻辑]]演算,[[形式语言]],[[自动机]]理论和[[形式语义学]],此外还有[[类型系统]]、[[代数数据类型]],以及软件和硬件规范和验证中的一些问题。


==== 并发,并行和分布式系统 ====
[[计算科学]](或者[[科学计算]])是关注构造[[科学建模|数学模型]]和[[数值分析|量化分析]]技术的研究领域,同时使用计算机分析和解决[[科学]]问题。
{{main|并行性|分布式计算}}
并行性(concurrency)是系统的一种性质,这类系统可以同时执行多个可能互相交互的计算。一些数学模型,如[[Petri网]]、[[进程演算]]和[[PRAM模型]],被建立以用于通用并发计算。分布式系统将并行性的思想扩展到了多台由网络连接的计算机。同一分布式系统中的计算机拥有自己的私有内存,它们之间经常交换信息以达到一个共同的目的。


==== 数据库和信息检索 ====
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
{{main|数据库|数据库管理系统}}
| [[File:Lorenz attractor yb.svg|96px]]
数据库是为了更容易地组织、存储和检索大量数据。数据库由数据库管理系统管理,通过[[数据库模型]]和[[查询语言]]来存储、创建、维护和搜索数据。
| [[File:Quark wiki.jpg|96px]]
{{Expand section|date=January 2011}}
| [[File:Naphthalene-3D-balls.png|96px]]

| [[File:1u04-argonaute.png|96px]]
=== 应用计算机科学 ===
|-

| [[数值分析]]
尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语''计算科学''(computing science),以精确强调两者之间的不同。丹麦科学家[[Peter Naur]]建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。<ref>Communications of the ACM 1(4):p.6</ref> 三个月后在同样的期刊上,''comptologist''被提出,第二年又变成了''hypologist''。<ref>Communications of the ACM 2(1):p.4</ref> 术语''computics''也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika([[斯拉夫语族]])。
| [[计算物理学]]

| [[计算化学]]
著名计算机科学家[[艾兹赫尔·戴克斯特拉|Edsger Dijkstra]]曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究[[个人电脑硬件|计算机硬件]]被看作是[[计算机工程]]的一部分,而对于商业[[电子计算机|计算机系统]]的研究和部署被称为[[信息技术]]或者[[信息系统]]。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如[[心理学]],[[认知科学]],[[语言学]],[[数学]],[[物理学]],[[计算统计学|统计学]]和[[计算经济学|经济学]]。
| [[生物信息学]]

|}
计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。<ref name="Denning_cs_discipline" /> 早期计算机科学受数学研究成果的影响很大,如[[库尔特·哥德尔|Kurt Gödel]]和[[艾伦·图灵|Alan Turing]],这两个领域在某些学科,例如[[数理逻辑]]、[[范畴论]]、[[域理论]]和[[代数]],也不断有有益的思想交流。

计算机科学和[[软件工程]]的关系是一个有争议的话题,随后关于什么是“软件工程”,计算机科学又该如何定义的争论使得情况更加混乱。[[David Parnas]]从其它工程和科学学科之间的关系得到启示,宣称计算机科学的主要重点总的来说是研究计算的性质,而软件工程的主要重点是具体的计算设计,以达到实用的目的,这样便构成了两个独立但又互补的学科。<ref>{{Cite doi|10.1023/A:1018949113292}}, p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, [...]"</ref>


=== 神经网络与人工智能 ===
==== 人工智能 ====
{{main|人工智能}}


这个计算机科学分支旨在创造可以解决计算问题,以及像动物和人类一样思考与交流的人造系统。无论是在理论还是应用上,都要求研究者在多个学科领域具备细致的、综合的专长,比如[[应用数学]],[[逻辑]],[[符号学]],[[电机工程学]],[[精神哲学]],[[神经生理学]]和[[社会智力]],用于推动智能研究领域,或者被应用到其它需要计算理解与建模的学科领域,如[[金融]]或是[[物理科学]]。人工智能领域开始变得正式源于[[艾伦·图灵|Alan Turing]]这位[[人工智能]]先驱提出了[[图灵试验]],以回答这样一个终极问题:“计算机能够思考吗?”
这个计算机科学分支旨在创造可以解决计算问题,以及像动物和人类一样思考与交流的人造系统。无论是在理论还是应用上,都要求研究者在多个学科领域具备细致的、综合的专长,比如[[应用数学]],[[逻辑]],[[符号学]],[[电机工程学]],[[精神哲学]],[[神经生理学]]和[[社会智力]],用于推动智能研究领域,或者被应用到其它需要计算理解与建模的学科领域,如[[金融]]或是[[物理科学]]。人工智能领域开始变得正式源于[[艾伦·图灵|Alan Turing]]这位[[人工智能]]先驱提出了[[图灵试验]],以回答这样一个终极问题:“计算机能够思考吗?”


{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[File:brain.png|96px]]
| [[File:Nicolas_P._Rougier's_rendering_of_the_human_brain.png|96px]]
| [[File:eye.png|96px]]
| [[File:eye.png|96px]]
| [[File:Corner.png|96px]]
| [[File:Corner.png|96px]]
第171行: 第183行:
| [[信息检索]]
| [[信息检索]]
|-
|-
| [[File:neuron.png|96px]]
| [[File:neuron.svg|96px]]
| [[File:english.png|96px]]
| [[File:english.png|96px]]
| [[File:HONDA ASIMO.jpg|64px]]
| [[File:HONDA ASIMO.jpg|64px]]
| [[File:Wacom Pen-tablet.jpg|96px]]
|-
|-
| [[知识表示]]
| [[知识表示]]
| [[自然语言处理]]
| [[自然语言处理]]
| [[机器人科学]]
| [[机器人科学]]
| [[人机交互]]
|}
|}


=== 软件系统 ===
==== 计算机系统结构与工程 ====
{{main|计算机系统结构|计算机工程}}

计算机系统结构,或者数字计算机组织,是一个计算机系统的概念设计和根本运作结构。它主要侧重于CPU的内部执行和内存访问地址。这个领域经常涉及计算机工程和电子工程学科,选择和互连硬件组件以创造满足功能、性能和成本目标的计算机。
{{Main|软件系统}}

[[软件系统]]包含广泛的子领域,如设计原则,以及对各种基于软件的系统的分析。这些子领域借鉴了来自[[理论计算机科学]],[[人工智能]],[[数学]],[[电机工程学]]等的概念和技术,用以构建真实世界的软件系统。


{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[File:NOR ANSI.svg|96px]]
| [[File:Fivestagespipeline.png|96px]]
| [[File:SIMD.svg|96px]]
|-
| [[数字电路]]
| [[微架构]]
| [[多处理机]]
|-
| [[File:Operating system placement.svg|96px]]
| [[File:Operating system placement.svg|96px]]
| [[File:NETWORK-Library-LAN.png|96px]]
| [[File:NETWORK-Library-LAN.png|96px]]
第206行: 第223行:
| [[普适计算]]
| [[普适计算]]
| [[系统架构]]
| [[系统架构]]
| [[编译器]]
| [[编译器设计]]
| [[编程语言]]
| [[编程语言]]
|}
|}


== 计算机科学教育 ==
==== 计算机图形与视觉 ====
{{main|计算机图形学}}
计算机图形学是对于数字视觉内容的研究,涉及图像数据的合成和操作。它跟计算机科学的许多其它领域密切相关,包括[[计算机视觉]]、[[图像处理]]和[[计算几何]],同时也被大量运用在[[特效]]和[[电子游戏]]。

==== 计算机安全和密码学 ====
{{main|计算机安全|密码学}}
计算机安全是计算机技术的一个分支,其目标包括保护信息免受未经授权的访问、中断和修改,同时为系统的预期用户保持系统的可访问性和可用性。密码学是对于隐藏(加密)和破译(解密)信息的实践与研究。现代密码学主要跟计算机科学相关,很多加密和解密算法都是基于它们的计算复杂性。

==== 计算科学 ====

[[计算科学]](或者[[科学计算]])是关注构建[[科学建模|数学模型]]和[[数值分析|量化分析]]技术的研究领域,同时通过计算机分析和解决[[科学]]问题。在实际使用中,它通常是[[计算机模拟]]和[[计算]]等形式在各个科学学科问题中的应用。

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
| [[File:Lorenz attractor yb.svg|96px]]
| [[File:Quark wiki.jpg|96px]]
| [[File:Naphthalene-3D-balls.png|96px]]
| [[File:1u04-argonaute.png|96px]]
|-
| [[数值分析]]
| [[计算物理学]]
| [[计算化学]]
| [[生物信息学]]
|}

==== 信息科学 ====
{{main|信息科学}}

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[File:earth.png|96px]]
| [[File:neuron.png|96px]]
| [[File:english.png|96px]]
| [[File:Wacom graphics tablet and pen.png|96px]]
|-
| [[信息检索]]
| [[知识表示]]
| [[自然语言处理]]
| [[人机交互]]
|}

{{Expand section|date=January 2011}}

==== 软件工程 ====
{{main|软件工程}}
软件工程是对于设计、实现和修改软件的研究,以确保软件的高质量、适中的价格、可维护性,以及能够快速构建。它是一个系统的软件设计方法,涉及工程实践到软件的应用。

{{Expand section|date=January 2011}}

== 学术界 ==

=== 会议 ===
{{see|计算机科学会议列表}}
{{Expand section|date=June 2011}}

=== 期刊 ===
{{see|Category:计算机科学期刊}}
{{Expand section|date=June 2011}}

== 教育界 ==


一些教授计算机科学的大学主要进行计算和算法推理的研究。其中包括[[计算理论]],[[算法分析]],[[形式化方法]],[[并行性|并行理论]],[[数据库]],[[计算机图形学]],以及[[系统分析]]等。通常也教授[[程序设计]],但仅仅将它看作是支持计算机科学其它领域的媒介,而不是高级研究的重心。
一些教授计算机科学的大学主要进行计算和算法推理的研究。其中包括[[计算理论]],[[算法分析]],[[形式化方法]],[[并行性|并行理论]],[[数据库]],[[计算机图形学]],以及[[系统分析]]等。通常也教授[[程序设计]],但仅仅将它看作是支持计算机科学其它领域的媒介,而不是高级研究的重心。


其它一些学院、大学、[[中学]]以及职业培训的计算机科学课程则主要侧重于训练高级编程,而不是算法和计算理论。这些课程着重教授那些对于软件工业很重要的技能。像这样的计算机编程过程通常被叫做[[软件工程]]。
其它一些学院、大学、[[中学]]以及职业培训的计算机科学课程则主要侧重于训练高级编程,而不是算法和计算理论。这些课程着重教授那些对于软件工业很重要的技能。像这样的计算机编程过程通常被叫做[[软件工程]]。

然而,尽管计算机科学专业日益推动着美国经济,但是计算机科学教育依然不存在大多数美国K-12课程中。2010年10月由[http://www.acm.org/ ACM]和[http://csta.acm.org/ 计算机科学教师协会(CSTA)]共同发表了一篇名为[http://www.acm.org/runningonempty/ “Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age”]的报告,文中揭示了仅有14个州通过了有意义的高中计算机科学教育标准。同时,仅有9个州将高中计算机科学课程算作毕业要求的核心学科。配合“Running on Empty”这篇文章,一个新的无党派宣传联盟:[http://www.computinginthecore.org/ Computing in the Core(CinC)]被建立,以影响联邦和政府政策,比如[http://www.govtrack.us/congress/bill.xpd?bill=h111-5929&tab=summary Computer Science Education Act]要求政府拨款以制定计划完善计算机科学教育及支持计算机科学教师。

== 工业界 ==
{{Expand section|date=June 2011}}


== 更多内容 ==
== 更多内容 ==
{{Portal box|计算机科学}}
{{Wikipedia-Books|计算机科学}}
{{Wikipedia-Books|计算机科学}}

{{Main|基本的计算机科学主题列表}}
{{Main|基本的计算机科学主题列表}}
{{Portal box|计算机科学|计算机网络|信息技术}}


{{colbegin|2}}
{{refbegin|colwidth=30em}}
* [[计算机科学家的学术家谱]]
* [[计算机科学家]]
* [[计算机科学家]]
* [[计算]]
* [[计算]]
* [[信息学教学法]]
* [[计算中的英语|计算机科学中的英语]]
* [[计算机科学的历史]]
* [[计算机科学的历史]]
* [[信息学 (学术领域)|信息学]]
* [[信息学 (学术领域)|信息学]]
* [[发展信息和通信技术]]
* [[学术计算机科学系列表]]
* [[学术计算机科学系列表]]
* [[计算机科学会议列表]]
* [[计算机科学会议列表]]
第238行: 第315行:
* [[软件工程主题列表]]
* [[软件工程主题列表]]
* [[计算机科学的哲学]]
* [[计算机科学的哲学]]
* [[软件工程]]
* [[计算领域的女性]]
* [[计算领域的女性]]
{{refend}}
{{colend}}


== 引用 ==
== 引用 ==
{{Clear}}
{{Reflist|2}}
{{Reflist|colwidth=30em}}


== 引申阅读 ==
== 引申阅读 ==
{{refbegin|2}}

; 概述
{{refbegin}}
* {{cite book|first=Allen B.|last=Tucker|authorlink=Allen B. Tucker|title=Computer Science Handbook|edition=2nd|publisher=Chapman and Hall/CRC|year=2004|isbn=158488360X}}
* [[Association for Computing Machinery]]. [http://www.acm.org/class/1998/overview.html 1998 ACM Computing Classification System]. 1998.
** "Within more than 70 chapters, every one new or significantly revised, one can find any kind of information and references about computer science one can imagine. [...] all in all, there is absolute nothing about Computer Science that can not be found in the 2.5 kilogram-encyclopaedia with its 110 survey articles [...]." (Christoph Meinel, ''[[Zentralblatt MATH]]'')
* {{cite book|first=Jan|last=van Leeuwen|authorlink=Jan van Leeuwen|title=Handbook of Theoretical Computer Science|publisher=The MIT Press|year=1994|isbn=0262720205}}
** "[...] this set is the most unique and possibly the most useful to the [theoretical computer science] community, in support both of teaching and research [...]. The books can be used by anyone wanting simply to gain an understanding of one of these areas, or by someone desiring to be in research in a topic, or by instructors wishing to find timely information on a subject they are teaching outside their major areas of expertise." (Rocky Ross, ''[[SIGACT News]]'')
* {{cite book|title=Encyclopedia of Computer Science|edition=4th|first1=Anthony|last1=Ralston|authorlink=Anthony Ralston|first2=Edwin D.|last2=Reilly|authorlink2=Edwin D. Reilly|first3=David|last3=Hemmendinger|authorlink3=David Hemmendinger|publisher=Grove's Dictionaries|year=2000|isbn=156159248X|url=http://portal.acm.org/ralston.cfm}}
** "Since 1976, this has been the definitive reference work on computer, computing, and computer science. [...] Alphabetically arranged and classified into broad subject areas, the entries cover hardware, computer systems, information and data, software, the mathematics of computing, theory of computation, methodologies, applications, and computing milieu. The editors have done a commendable job of blending historical perspective and practical reference information. The encyclopedia remains essential for most public and academic library reference collections." (Joe Accardin, Northeastern Illinois Univ., Chicago)
; 论文选集
* {{cite book|first=Donald E.|last=Knuth|authorlink=Donald Knuth|title=Selected Papers on Computer Science|publisher=CSLI Publications, [[Cambridge University Press]]|year=1996}}
** "Covering a period from 1966 to 1993, its interest lies not only in the content of each of these papers &mdash; still timely today &mdash; but also in their being put together so that ideas expressed at different times complement each other nicely." (N. Bernard, ''Zentralblatt MATH'')
; 文章
* Peter J. Denning. ''[http://portal.acm.org/citation.cfm?id=1053309&coll=&dl=ACM&CFID=15151515&CFTOKEN=6184618 Is computer science science?]'', Communications of the ACM, April 2005.
* Peter J. Denning. ''[http://portal.acm.org/citation.cfm?id=1053309&coll=&dl=ACM&CFID=15151515&CFTOKEN=6184618 Is computer science science?]'', Communications of the ACM, April 2005.
* Peter J. Denning, ''[http://portal.acm.org/citation.cfm?id=971303&dl=ACM&coll=&CFID=15151515&CFTOKEN=6184618 Great principles in computing curricula]'', Technical Symposium on Computer Science Education, 2004.
* Peter J. Denning, ''[http://portal.acm.org/citation.cfm?id=971303&dl=ACM&coll=&CFID=15151515&CFTOKEN=6184618 Great principles in computing curricula]'', Technical Symposium on Computer Science Education, 2004.
* Research evaluation for computer science, Informatics Europe [http://www.informatics-europe.org/docs/research_evaluation.pdf report]. Shorter journal version: Bertrand Meyer, Christine Choppy, Jan van Leeuwen and Jorgen Staunstrup, ''Research evaluation for computer science'', in [[Communications of the ACM]], vol. 52, no. 4, pp. 31-34, April 2009.
* [[Donald E. Knuth]]. ''Selected Papers on Computer Science,'' CSLI Publications, [[Cambridge University Press]], 1996.
; 课程与分类
* [[Association for Computing Machinery]]. [http://www.acm.org/class/1998/overview.html 1998 ACM Computing Classification System]. 1998.
* Joint Task Force of Association for Computing Machinery (ACM), [[Association for Information Systems]] (AIS) and [[IEEE Computer Society]] (IEEE-CS). [http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf Computing Curricula 2005: The Overview Report]. September 30, 2005.
* Joint Task Force of Association for Computing Machinery (ACM), [[Association for Information Systems]] (AIS) and [[IEEE Computer Society]] (IEEE-CS). [http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf Computing Curricula 2005: The Overview Report]. September 30, 2005.
* [[Norman Gibbs]], [[Allen Tucker]]. "A model curriculum for a liberal arts degree in computer science". ''Communications of the ACM'', Volume 29 Issue 3, March 1986.
* [[List of computer science conferences]]. ''A ranked list of CS conferences.''
{{refend}}
{{refend}}


== 外部链接 ==
== 外部链接 ==
{{Sister project links}}

{{Sisterlinks}}

<big>'''讲座与索引'''</big>
{{refbegin}}
* {{dmoz|Computers/Computer_Science/}}
* {{dmoz|Computers/Computer_Science/}}
* [http://www.lib.uwaterloo.ca/society/compsci_soc.html Scholarly Societies in Computer Science]
* [http://jeffhuang.com/best_paper_awards.html Best Papers Awards in Computer Science since 1996]
* [http://se.ethz.ch/~meyer/gallery/ Photographs of computer scientists] by [[Bertrand Meyer]]
; 参考文献和学术搜索引擎
* [http://citeseerx.ist.psu.edu/ CiteSeer<sup>''x''</sup>]: search engine, digital library and repository for scientific and academic papers with a focus on computer and information science.
* [http://dblp.uni-trier.de/ DBLP Computer Science Bibliography]: computer science bibliography website hosted at Universität Trier, in Germany.
* [http://liinwww.ira.uka.de/bibliography/ The Collection of Computer Science Bibliographies]
; Webcast
* [http://www.lecturefox.com/computerscience/ Directory of free university lectures in Computer Science]
* [http://www.lecturefox.com/computerscience/ Directory of free university lectures in Computer Science]
* [http://videolectures.net/Top/Computer_Science/ Collection of computer science lectures]
* [http://videolectures.net/Top/Computer_Science/ Collection of computer science lectures]
* [http://liinwww.ira.uka.de/ bibliography/ Collection of Computer Science Bibliographies]
* [http://csdir.org/ CS Directory and resources]
* [http://se.ethz.ch/~meyer/gallery/ Photographs of computer scientists] ([[Bertrand Meyer]]'s gallery)
{{refend}}

<big>'''Webcasts'''</big>
{{refbegin}}
* [http://www.oid.ucla.edu/webcasts/courses/2006-2007/2006fall/cs1 UCLA Computer Science 1 Freshman Computer Science Seminar Section 1]
* [http://www.oid.ucla.edu/webcasts/courses/2006-2007/2006fall/cs1 UCLA Computer Science 1 Freshman Computer Science Seminar Section 1]
* [http://webcast.berkeley.edu/course_details.php?seriesid=1906978395 Berkeley Introduction to Computers]
* [http://webcast.berkeley.edu/course_details.php?seriesid=1906978395 Berkeley Introduction to Computers]
{{refend}}


{{Computer Science}}
{{Computer Science}}


{{DEFAULTSORT:计算机科学}}
[[Category:计算机科学| ]]
[[Category:计算机科学| ]]


第284行: 第367行:
[[als:Informatik]]
[[als:Informatik]]
[[am:የኮምፒውተር፡ጥናት]]
[[am:የኮምፒውተር፡ጥናት]]
[[an:Informatica]]
[[ar:علم الحاسوب]]
[[ar:علم الحاسوب]]
[[an:Informatica]]
[[ast:Informática]]
[[ast:Informática]]
[[bn:কম্পিউটার বিজ্ঞান]]
[[bat-smg:Infuormatėka]]
[[zh-min-nan:Tiān-náu kho-ha̍k]]
[[be-x-old:Інфарматыка]]
[[be-x-old:Інфарматыка]]
[[bs:Informatika]]
[[br:Urzhiataerezh]]
[[bg:Информатика]]
[[bg:Информатика]]
[[bn:কম্পিউটার বিজ্ঞান]]
[[br:Urzhiataerezh]]
[[bs:Informatika]]
[[ca:Informàtica]]
[[ca:Informàtica]]
[[cs:Informatika]]
[[cs:Informatika]]
[[csb:Infòrmatika]]
[[da:Datalogi]]
[[da:Datalogi]]
[[de:Informatik]]
[[de:Informatik]]
[[et:Informaatika]]
[[el:Επιστήμη υπολογιστών]]
[[el:Επιστήμη υπολογιστών]]
[[eml:Informàtica]]
[[eml:Informàtica]]
[[en:Computer science]]
[[en:Computer science]]
[[es:Ciencias de la computación]]
[[eo:Komputado]]
[[eo:Komputado]]
[[es:Ciencias de la computación]]
[[et:Informaatika]]
[[eu:Informatika]]
[[ext:Enhormática]]
[[ext:Enhormática]]
[[eu:Informatika]]
[[fa:علوم رایانه]]
[[fa:علوم رایانه]]
[[fi:Tietojenkäsittelytiede]]
[[fiu-vro:Informaatiga]]
[[fo:Teldufrøði]]
[[fo:Teldufrøði]]
[[fr:Informatique]]
[[fr:Informatique]]
[[frr:Informaatik]]
[[fy:Ynformatika]]
[[fur:Informatiche]]
[[fur:Informatiche]]
[[fy:Ynformatika]]
[[ga:Ríomheolaíocht]]
[[ga:Ríomheolaíocht]]
[[gv:Sheanse co-earrooagh]]
[[gl:Informática]]
[[gl:Informática]]
[[gv:Sheanse co-earrooagh]]
[[ko:컴퓨터 과학]]
[[hy:Ինֆորմատիկա]]
[[he:מדעי המחשב]]
[[hi:संगणक विज्ञान]]
[[hi:संगणक विज्ञान]]
[[hr:Računarstvo]]
[[hr:Računarstvo]]
[[ht:Enfòmatik]]
[[io:Informatiko]]
[[id:Ilmu komputer]]
[[hu:Számítástechnika]]
[[hy:Ինֆորմատիկա]]
[[ia:Informatica]]
[[ia:Informatica]]
[[id:Ilmu komputer]]
[[ie:Informatica]]
[[ie:Informatica]]
[[iu:ᑐᓴᐅᒪᖃᑦᑕᐅᑎᔾᔪᑎᓂᒃ ᐊᐅᓚᑦᑎᔩᑦ/tusaumaqattautijjutinik aulattijiit]]
[[io:Informatiko]]
[[is:Tölvunarfræði]]
[[is:Tölvunarfræði]]
[[it:Informatica]]
[[it:Informatica]]
[[he:מדעי המחשב]]
[[iu:ᑐᓴᐅᒪᖃᑦᑕᐅᑎᔾᔪᑎᓂᒃ ᐊᐅᓚᑦᑎᔩᑦ/tusaumaqattautijjutinik aulattijiit]]
[[ja:計算機科学]]
[[jbo:samske]]
[[ka:საინფორმაციო მეცნიერება]]
[[kl:Qarasaasialerinermik ilisimatusarneq]]
[[kl:Qarasaasialerinermik ilisimatusarneq]]
[[kn:ಗಣಕ ವಿಜ್ಞಾನ]]
[[kn:ಗಣಕ ವಿಜ್ಞಾನ]]
[[ka:საინფორმაციო მეცნიერება]]
[[ko:컴퓨터 과학]]
[[csb:Infòrmatika]]
[[ht:Enfòmatik]]
[[lad:Informatika]]
[[la:Informatica]]
[[la:Informatica]]
[[lad:Informatika]]
[[ltg:Datorzineiba]]
[[lv:Datorzinātne]]
[[lb:Informatik]]
[[lb:Informatik]]
[[lt:Informatika]]
[[li:Informatica]]
[[li:Informatica]]
[[lt:Informatika]]
[[jbo:samske]]
[[hu:Számítástechnika]]
[[ltg:Datorzineiba]]
[[mk:Информатика]]
[[lv:Datorzinātne]]
[[mg:Informatika]]
[[mg:Informatika]]
[[mhr:Информатике]]
[[mk:Информатика]]
[[ml:കമ്പ്യൂട്ടർ ശാസ്ത്രം]]
[[ml:കമ്പ്യൂട്ടർ ശാസ്ത്രം]]
[[mn:Компьютерийн шинжлэх ухаан]]
[[ms:Sains komputer]]
[[ms:Sains komputer]]
[[ro:Informatică]]
[[mn:Компьютерийн шинжлэх ухаан]]
[[nl:Informatica]]
[[nds-nl:Infermatika]]
[[nds-nl:Infermatika]]
[[ne:कम्प्युटर विज्ञान]]
[[ne:कम्प्युटर विज्ञान]]
[[new:कम्प्युटर विज्ञान]]
[[new:कम्प्युटर विज्ञान]]
[[nl:Informatica]]
[[ja:計算機科学]]
[[nn:Informatikk]]
[[frr:Informaatik]]
[[no:Informatikk]]
[[no:Informatikk]]
[[nn:Informatikk]]
[[nov:Informatike]]
[[nov:Informatike]]
[[oc:Informatica]]
[[oc:Informatica]]
[[mhr:Информатике]]
[[pl:Informatyka]]
[[pms:Anformàtica]]
[[ps:سولګرپوهنه]]
[[ps:سولګرپوهنه]]
[[pms:Anformàtica]]
[[pl:Informatyka]]
[[pt:Ciência da computação]]
[[pt:Ciência da computação]]
[[ro:Informatică]]
[[ru:Информатика]]
[[rue:Інформатіка]]
[[rue:Інформатіка]]
[[ru:Информатика]]
[[sq:Shkenca kompjuterike]]
[[scn:Nfurmàtica]]
[[scn:Nfurmàtica]]
[[sh:Informatika]]
[[si:පරිගණක විද්‍යාව]]
[[si:පරිගණක විද්‍යාව]]
[[simple:Computer science]]
[[simple:Computer science]]
[[sk:Veda o počítačoch]]
[[sk:Veda o počítačoch]]
[[sl:Računalništvo]]
[[sl:Računalništvo]]
[[sq:Shkenca kompjuterike]]
[[sr:Рачунарство]]
[[sr:Рачунарство]]
[[sh:Informatika]]
[[fi:Tietojenkäsittelytiede]]
[[sv:Datavetenskap]]
[[sv:Datavetenskap]]
[[tl:Agham pangkompyuter]]
[[ta:கணினியியல்]]
[[ta:கணினியியல்]]
[[tt:Санак белеме]]
[[tg:Информатика]]
[[th:วิทยาการคอมพิวเตอร์]]
[[th:วิทยาการคอมพิวเตอร์]]
[[tg:Информатика]]
[[tr:Bilişim bilimi]]
[[tk:Informatika]]
[[tk:Informatika]]
[[tl:Agham pangkompyuter]]
[[tr:Bilişim bilimi]]
[[tt:Санак белеме]]
[[ug:بیلگیسايار مۈھەندیسلیغی]]
[[uk:Інформатика]]
[[uk:Інформатика]]
[[ur:شمارندیات]]
[[ur:شمارندیات]]
[[ug:بیلگیسايار مۈھەندیسلیغی]]
[[vec:Computer Science]]
[[vec:Computer Science]]
[[vi:Khoa học máy tính]]
[[vi:Khoa học máy tính]]
[[fiu-vro:Informaatiga]]
[[wa:Infôrmatike]]
[[wa:Infôrmatike]]
[[war:Siyensya han komputasyon]]
[[war:Siyensya han komputasyon]]
第390行: 第473行:
[[wuu:计算机科学]]
[[wuu:计算机科学]]
[[yo:Informatics (Ifitonileti)]]
[[yo:Informatics (Ifitonileti)]]
[[zh-min-nan:Tiān-náu kho-ha̍k]]
[[zh-yue:電算]]
[[zh-yue:電算]]
[[bat-smg:Infuormatėka]]

2011年6月16日 (四) 07:45的版本

Utah teapot representing computer graphics Plot of a quicksort algorithm
large capital lambda Microsoft Tastenmaus mouse representing human-computer interaction
计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。

计算机科学(Computer Science,有时缩写为CS)是对于信息计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学习。[1][2] 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统学习。计算机科学包含很多分支领域;其中一些,比如计算机图形学强调特定结果的计算,而另外一些,比如计算复杂性理论是学习计算问题的性质。还有一些领域专注于挑战怎样实现计算。比如编程语言理论学习描述计算的方法,而程序设计是应用特定的编程语言解决特定的计算问题,人机交互则是专注于挑战怎样使计算机和计算变得有用、可用,以及随时随地为所用。

有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。[3]

历史

早期计算机科学建立的基础得追溯到现代电子计算机的发明。那些计算固定数值任务的机器,比如算盘,自古希腊时期即已存在。Wilhelm Schickard在1623年设计了世界上第一台机械计算器,但没有完成它的建造。[4] Blaise Pascal在1642年设计并且建造了世界上第一台可以工作的机械计算器PascalineAda Lovelace协助[5] Charles Babbage维多利亚时代设计了差分机[6] 1900年左右,打孔机[7] 问世。然而以上这些机器都局限在只能完成单个任务,或者充其量是所有可能任务的子集。

到了20世纪40年代,随着更新更强大的计算机器被发明,术语“计算机”开始用于指代那些机器而不是它们的祖先。[8] 计算机的概念变得更加清晰,它不仅仅用于数学运算,总的来说计算机科学的领域也扩展到了对于计算的研究。20世纪50年代至20世纪60年代早期,计算机科学开始被确立为不同种类的学术学科。[9] 世界上第一个计算机科学学位点由普渡大学在1962年设立。[10] 随着实用计算机的出现,很多计算的应用都以它们自己的方式逐渐转变成了研究的不同领域。

虽然最初很多人并不相信计算机可能成为科学研究的领域,但是随后的50年里也逐渐被学术界认可。[11] IBM公司是那段时期计算机科学革命的参与者之一。在那段探索时期,IBM(International Business Machines的缩写)发布的IBM 704以及之后的IBM 709计算机被广泛使用。“不过,使用IBM电脑工作仍然是一件很沮丧的事情。如果你弄错了一条指令中的一个字母,程序将会崩溃,而你也得从头再来。”[11] 到了19世纪60年代后期,计算机科学学科得到了长足发展,这在当时是一件很寻常的事情。

随着时间的推移,计算机科学技术在可用性和有效性上都有显著提升。现代社会见证了计算机从仅仅由专业人士使用到被广大用户接受的重大转变。最初,计算机非常昂贵,要有效利用它们,某种程度上必须得由专业的计算机操作员来完成。然而,随着计算机变得普及和低廉,已经几乎不需要专人的协助,虽然某些时候援助依旧存在。

主要成就

军在二战时用于加密通信的恩尼格玛密码机。恩尼格玛加密信息在布莱切利园被大量破译被认为是帮助盟军在二战中获胜的重要因素。[12]

虽然计算机科学被认定为正式学术学科的历史很短暂,但仍对科学社会作出了很多基础贡献。包括:

哲学

Peter Wegner和Amnon H. Eden提议了三种范式应用于计算机科学的各个领域:[17]

  • “理性主义范式”,将计算机科学看作是数学的分支,在理论计算机科学中很流行,主要利用演绎推理
  • “技术专家范式”,这类范式有着很明显的工程学倾向,尤其是在软件工程领域。
  • “科学范式”,人工智能的某些分支可以作为这类范式的代表(比如说对于人工生命的研究)。

计算机科学的领域

作为一个学科,计算机科学涵盖了从算法的理论研究和计算的极限,到如何通过硬件和软件实现计算系统。[18][19] CSAB(以前被叫做Computing Sciences Accreditation Board),由Association for Computing Machinery(ACM)和IEEE Computer Society(IEEE-CS)的代表组成[20],确立了计算机科学学科的4个主要领域:计算理论算法与数据结构编程方法与编程语言,以及计算机元素与架构。CSAB还确立了其它一些重要领域,如软件工程,人工智能,计算机网络与通信,数据库系统,并行计算,分布式计算,人机交互,计算机图形学,操作系统,以及数值和符号计算。

理论计算机科学

广义的理论计算机科学包括经典的计算理论和其它专注于更抽象、逻辑与数学方面的计算。

计算理论

按照Peter J. Denning的说法,计算机科学的最根本问题是“什么能够被有效地自动化?”[21] 计算理论的研究就是专注于回答这个根本问题,关于什么能够被计算,去实施这些计算又需要用到多少资源。为了试图回答第一个问题,递归论检验在多种理论计算模型中哪个计算问题是可解的。而计算复杂性理论则被用于回答第二个问题,研究解决一个不同目的的计算问题的时间与空间消耗。

著名的“P=NP?”问题,千禧年大奖难题之一,[22] 是计算理论的一个开放问题。

P = NP ? GNITIRW-TERCES
自动机理论 递归论 计算复杂性理论 密码学 量子计算论

信息与编码理论

信息论与信息量化相关,由Claude E. Shannon创建,用于寻找信号处理操作的根本极限,比如压缩数据和可靠的数据存储与通讯。编码理论是对编码以及它们适用的特定应用性质的研究。编码(code)被用于数据压缩,密码学,前向纠错,近期也被用于网络编码。研究编码的目的在于设计更高效、可靠的数据传输方法。

算法与数据结构

算法分析 算法 数据结构 计算几何

编程语言理论

编程语言理论是计算机科学的一个分支,主要处理编程语言的设计、实现、分析、描述和分类,以及它们的个体特性。它属于计算机科学学科,既受影响于也影响着数学软件工程语言学。它是公认的计算机科学分支,同时也是活跃的研究领域,研究成果被发表在众多学术期刊,计算机科学以及工程出版物。

类型论 编译器设计 编程语言

形式化方法

形式化方法是一种特别的基于数学的技术,用于软件硬件系统的形式规范、开发以及形式验证。在软件和硬件设计方面,形式化方法的使用动机,如同其它工程学科,是通过适当的数学分析便有助于设计的可靠性和健壮性的期望。但是,使用形式化方法会带来很高的成本,意味着它们通常只用于高可靠性系统,这种系统中安全保安(security)是最重要的。对于形式化方法的最佳形容是各种理论计算机科学基础种类的应用,特别是计算机逻辑演算,形式语言自动机理论和形式语义学,此外还有类型系统代数数据类型,以及软件和硬件规范和验证中的一些问题。

并发,并行和分布式系统

并行性(concurrency)是系统的一种性质,这类系统可以同时执行多个可能互相交互的计算。一些数学模型,如Petri网进程演算PRAM模型,被建立以用于通用并发计算。分布式系统将并行性的思想扩展到了多台由网络连接的计算机。同一分布式系统中的计算机拥有自己的私有内存,它们之间经常交换信息以达到一个共同的目的。

数据库和信息检索

数据库是为了更容易地组织、存储和检索大量数据。数据库由数据库管理系统管理,通过数据库模型查询语言来存储、创建、维护和搜索数据。

应用计算机科学

尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。[23] 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist[24] 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。

著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学认知科学语言学数学物理学统计学经济学

计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。[21] 早期计算机科学受数学研究成果的影响很大,如Kurt GödelAlan Turing,这两个领域在某些学科,例如数理逻辑范畴论域理论代数,也不断有有益的思想交流。

计算机科学和软件工程的关系是一个有争议的话题,随后关于什么是“软件工程”,计算机科学又该如何定义的争论使得情况更加混乱。David Parnas从其它工程和科学学科之间的关系得到启示,宣称计算机科学的主要重点总的来说是研究计算的性质,而软件工程的主要重点是具体的计算设计,以达到实用的目的,这样便构成了两个独立但又互补的学科。[25]

人工智能

这个计算机科学分支旨在创造可以解决计算问题,以及像动物和人类一样思考与交流的人造系统。无论是在理论还是应用上,都要求研究者在多个学科领域具备细致的、综合的专长,比如应用数学逻辑符号学电机工程学精神哲学神经生理学社会智力,用于推动智能研究领域,或者被应用到其它需要计算理解与建模的学科领域,如金融或是物理科学。人工智能领域开始变得正式源于Alan Turing这位人工智能先驱提出了图灵试验,以回答这样一个终极问题:“计算机能够思考吗?”

机器学习 计算机视觉 图像处理 模式识别
认知科学 数据挖掘 进化计算 信息检索
知识表示 自然语言处理 机器人科学

计算机系统结构与工程

计算机系统结构,或者数字计算机组织,是一个计算机系统的概念设计和根本运作结构。它主要侧重于CPU的内部执行和内存访问地址。这个领域经常涉及计算机工程和电子工程学科,选择和互连硬件组件以创造满足功能、性能和成本目标的计算机。

数字电路 微架构 多处理机
操作系统 计算机网络 数据库 计算机安全
普适计算 系统架构 编译器设计 编程语言

计算机图形与视觉

计算机图形学是对于数字视觉内容的研究,涉及图像数据的合成和操作。它跟计算机科学的许多其它领域密切相关,包括计算机视觉图像处理计算几何,同时也被大量运用在特效电子游戏

计算机安全和密码学

计算机安全是计算机技术的一个分支,其目标包括保护信息免受未经授权的访问、中断和修改,同时为系统的预期用户保持系统的可访问性和可用性。密码学是对于隐藏(加密)和破译(解密)信息的实践与研究。现代密码学主要跟计算机科学相关,很多加密和解密算法都是基于它们的计算复杂性。

计算科学

计算科学(或者科学计算)是关注构建数学模型量化分析技术的研究领域,同时通过计算机分析和解决科学问题。在实际使用中,它通常是计算机模拟计算等形式在各个科学学科问题中的应用。

数值分析 计算物理学 计算化学 生物信息学

信息科学

信息检索 知识表示 自然语言处理 人机交互

软件工程

软件工程是对于设计、实现和修改软件的研究,以确保软件的高质量、适中的价格、可维护性,以及能够快速构建。它是一个系统的软件设计方法,涉及工程实践到软件的应用。

学术界

会议

期刊

教育界

一些教授计算机科学的大学主要进行计算和算法推理的研究。其中包括计算理论算法分析形式化方法并行理论数据库计算机图形学,以及系统分析等。通常也教授程序设计,但仅仅将它看作是支持计算机科学其它领域的媒介,而不是高级研究的重心。

其它一些学院、大学、中学以及职业培训的计算机科学课程则主要侧重于训练高级编程,而不是算法和计算理论。这些课程着重教授那些对于软件工业很重要的技能。像这样的计算机编程过程通常被叫做软件工程

然而,尽管计算机科学专业日益推动着美国经济,但是计算机科学教育依然不存在大多数美国K-12课程中。2010年10月由ACM计算机科学教师协会(CSTA)共同发表了一篇名为“Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age”的报告,文中揭示了仅有14个州通过了有意义的高中计算机科学教育标准。同时,仅有9个州将高中计算机科学课程算作毕业要求的核心学科。配合“Running on Empty”这篇文章,一个新的无党派宣传联盟:Computing in the Core(CinC)被建立,以影响联邦和政府政策,比如Computer Science Education Act要求政府拨款以制定计划完善计算机科学教育及支持计算机科学教师。

工业界

更多内容

Template:Wikipedia-Books

引用

  1. ^ doi:10.1145/63238.63239
    {{cite doi}}已停用,请参见{{cite journal}}。 "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information."
  2. ^ Wegner, P. Research paradigms in computer science. Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA. October 13–15, 1976. Computer science is the study of information structures 
  3. ^ "Common myths and preconceptions about Cambridge Computer Science" Computer Science Department, University of Cambridge
  4. ^ Nigel Tout. Calculator Timeline. Vintage Calculator Web Museum. 2006 [2006-09-18]. 
  5. ^ A Selection and Adaptation From Ada's Notes found in "Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA. [2006-05-04]. 
  6. ^ Science Museum - Introduction to Babbage. [2006-09-24]. (原始内容存档于2006-09-08). 
  7. ^ IBM Punch Cards in the U.S. Army. [2006-09-24]. 
  8. ^ The Association for Computing Machinery (ACM) was founded in 1947.
  9. ^ CAM.ac.uk
  10. ^ Computer science pioneer Samuel D. Conte dies at 85 July 1, 2002
  11. ^ 11.0 11.1 Levy, Steven. Hackers: Heroes of the Computer Revolution. Doubleday. 1984. ISBN 0-385-19195-2. 
  12. ^ 12.0 12.1 David Kahn, The Codebreakers, 1967, ISBN 0-684-83130-9.
  13. ^ 13.0 13.1 Cornell.edu
  14. ^ Constable, R.L. Computer Science: Achievements and Challenges circa 2000 (PDF). March 2000. 
  15. ^ Abelson, H.; G.J. Sussman with J. Sussman. Structure and Interpretation of Computer Programs 2nd. MIT Press. 1996. ISBN 0-262-01153-0. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology — the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. 
  16. ^ Black box traders are on the march The Telegraph, August 26, 2006
  17. ^ doi:10.1007/s11023-007-9060-8
    {{cite doi}}已停用,请参见{{cite journal}}。
  18. ^ Computing Sciences Accreditation Board. Computer Science as a Profession. 28 May 1997 [2010-05-23]. (原始内容存档于2008-06-17). 
  19. ^ Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council. Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. 2004. ISBN 978-0-309-09301-9. 
  20. ^ CSAB, Inc.
  21. ^ 21.0 21.1 Denning, P.J. Computer Science: The Discipline (PDF). Encyclopedia of Computer Science. 2000. (原始内容 (PDF)存档于2006-05-25). 
  22. ^ Clay Mathematics Institute P=NP
  23. ^ Communications of the ACM 1(4):p.6
  24. ^ Communications of the ACM 2(1):p.4
  25. ^ doi:10.1023/A:1018949113292
    {{cite doi}}已停用,请参见{{cite journal}}。, p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, [...]"

引申阅读

概述
  • Tucker, Allen B. Computer Science Handbook 2nd. Chapman and Hall/CRC. 2004. ISBN 158488360X. 
    • "Within more than 70 chapters, every one new or significantly revised, one can find any kind of information and references about computer science one can imagine. [...] all in all, there is absolute nothing about Computer Science that can not be found in the 2.5 kilogram-encyclopaedia with its 110 survey articles [...]." (Christoph Meinel, Zentralblatt MATH)
  • van Leeuwen, Jan. Handbook of Theoretical Computer Science. The MIT Press. 1994. ISBN 0262720205. 
    • "[...] this set is the most unique and possibly the most useful to the [theoretical computer science] community, in support both of teaching and research [...]. The books can be used by anyone wanting simply to gain an understanding of one of these areas, or by someone desiring to be in research in a topic, or by instructors wishing to find timely information on a subject they are teaching outside their major areas of expertise." (Rocky Ross, SIGACT News)
  • Ralston, Anthony; Reilly, Edwin D.; Hemmendinger, David. Encyclopedia of Computer Science 4th. Grove's Dictionaries. 2000. ISBN 156159248X. 
    • "Since 1976, this has been the definitive reference work on computer, computing, and computer science. [...] Alphabetically arranged and classified into broad subject areas, the entries cover hardware, computer systems, information and data, software, the mathematics of computing, theory of computation, methodologies, applications, and computing milieu. The editors have done a commendable job of blending historical perspective and practical reference information. The encyclopedia remains essential for most public and academic library reference collections." (Joe Accardin, Northeastern Illinois Univ., Chicago)
论文选集
  • Knuth, Donald E. Selected Papers on Computer Science. CSLI Publications, Cambridge University Press. 1996. 
    • "Covering a period from 1966 to 1993, its interest lies not only in the content of each of these papers — still timely today — but also in their being put together so that ideas expressed at different times complement each other nicely." (N. Bernard, Zentralblatt MATH)
文章
课程与分类

外部链接

参考文献和学术搜索引擎
Webcast