所以,我不太确定计算机科学是什么,或者计算机科学家是做什么的. 你能解释一下什么是计算机科学吗?
简而言之, 计算机科学不是关于使用计算机或编写程序, 尽管计算机科学家经常做这些事情. 计算机科学是关于用计算机解决问题的科学.
完整的答案
计算机科学将理论与实践相结合, 它彻底改变了我们思考事物的方式. 然而,对于什么是计算机科学有很多误解. 有些人认为计算机科学是关于发送电子邮件的, 浏览互联网, 或者使用Word或Excel等软件. 其他人认为计算机科学就是简单的编程. 还有一些人认为计算机科学只是一堆数学.
然而,计算机科学是 不 关于 使用 软件, 例如电子表格(如Excel), 文字处理软件(如word), 或图像工具(如Photoshop). 它是 不 关于电脑游戏的专业知识, 在网站上写内容, 组装电脑, 知道哪些电脑是最划算的, 或者我们用来进行计算的工具. 这不仅仅是关于数学, 尽管它像科学和工程的许多其他领域(如化学)一样使用数学, 物理, 机械工程, 航空航天工程, 举几个例子). 计算机科学不是 只是 关于制造计算机或编写计算机程序!
据传,著名的获奖计算机科学家Edsger Dijkstra曾经说过:
“计算机科学与计算机无关,正如天文学与望远镜无关一样." [1]
等一下,别挂电话! 你说计算机科学不是写计算机程序是什么意思?
总之, 这意味着计算机科学不是用计算机来解决问题或编写程序或软件. 计算机科学是关于用计算机解决问题的科学.
完整的答案
是的,计算机程序和软件通常是计算机科学家工作的副产品. 但是,计算机科学不仅仅是编写程序或软件.
这就把我们带回了这个问题:什么是计算机科学?
回答这个问题的一个更简洁的定义是:
计算机科学是系统地研究 可行性, 结构, 表达式, 机械化 的 有条理的过程 (or 算法),这是此次收购的基础, 表示, 处理, 存储, 沟通的, 获取信息[2].
这里强调的是理解, 分析, 并解释算法是如何工作的以及为什么它们是这样工作的. 这意味着计算机科学是关于构建软件包背后的原理, 电脑游戏中使用的算法, 互联网背后的技术, 以及计算设备的架构.
许多人认为计算机科学只不过是信息技术(IT)。. 然而, 信息技术是一门研究如何用计算机技术解决商业问题的学科, 以及如何保持, 升级, 并排除组织内计算机系统的故障. 它是计算机和因特网在存储方面的应用, 检索, 传输, 操纵数据和信息, 在商业或其他企业的上下文中. 这里的重点是用可用的技术解决特定的业务问题.
另一方面,计算机科学学科关注的是更基本的问题. 计算机科学是一门研究用计算机解决问题的学科. 它不包括用计算机解决问题. 仅仅回答这个问题是不够的:“我们如何在计算机的帮助下解决一个特定的问题??”
再等一分钟! 你的意思是计算机科学不仅与编程无关, 但它甚至不是用计算机来解决问题? 哈!!!
再一次, 总之, 计算机科学不是用计算机来解决一个特定的问题, 而是关于用计算机解决问题的科学.
完整的答案
是的, 计算机科学的重点不是用计算机解决问题, 虽然这往往是我们所做的最终结果. 计算机科学是关于什么的 一般原则 是用计算机解决问题的基础? 计算机科学学科会提出这样的问题:
- 解决一个问题可能有哪些不同的方法?
- 特定问题的解决方案是如何相关的?
- 什么技术最适合某个特定的问题?
- 什么是问题的“最佳”解决方案?
- 不同问题的解决方案是如何相互关联的?
- 我们如何验证我们有一个问题的解决方案?
- 哪些问题能用电脑解决,哪些问题不能用电脑解决?
所有计算背后最重要的原则是:“计算过程可以是什么。 有效地 自动化 和 实现?[2]重点在于效率. 有些问题的解决方案效率非常低,无论我们在这个问题上投入多少计算能力, 几千年后才会有正确的结果, 如果有.
计算机科学家设计和分析算法来解决问题,研究计算机硬件和软件的性能[3]. 他们专攻计算理论和计算系统的设计. 虽然知道如何编程对学习计算机科学是必不可少的, 它只是字段的一个元素. 计算机科学家遇到的问题从抽象的——确定什么问题可以用计算机解决,以及解决这些问题的算法的复杂性——到实际的——设计在手持设备上运行良好的应用程序, 很容易使用, 并支持安全措施[3].
计算机科学是一门年轻的学科,直到1953年才作为一个独立的研究领域存在. 早期计算机的发展涉及电气工程和物理等学科, 计算机科学主要是从数学学科发展起来的. 今天, 计算机科学是一个跨学科的领域,同时是科学和工程, 这就是为什么许多大学的理学院都有学术计算机科学系的原因, 或大多数其他大学的工程学院. 这是因为解决导致软件解决方案的复杂问题涉及科学和工程的应用, 通常是在同一时间. 这意味着计算机科学家需要很强的解决问题的能力,并有动机去研究解决问题的多种方法, 以及同时在多个抽象层次上思考的能力. 然而,, 因为计算机科学这门学科还很年轻, 这个领域仍在发展同样的公理, 原则, 以及在其他学科(如物理或化学工程)中可以找到的定律. 这意味着计算机科学家在为不同的问题开发新的和独特的解决方案时也需要大量的创造力和直觉. 尽管已经开发了所有的工具和技术来设计和实现大规模的高质量复杂软件, 计算机科学在很大程度上仍然是一种艺术形式. 唐纳德·高德纳曾经说过:
“计算机编程是一门艺术, 因为它将积累的知识应用于世界, 因为这需要技巧和智慧, 尤其是因为它创造了美丽的事物. 如果程序员潜意识里认为自己是一名艺术家,他就会喜欢自己所做的事情,并将其做得更好."
这使得计算机科学的职业生涯既具有挑战性又有回报, 因为它需要很大程度的想象力和理论与实践相结合的能力来解决计算机科学家每天遇到的各种问题.
参考文献
查看所有
[1] M.D. 任务和数据管理的分布式运行时支持.“技术报告CS-93-110科罗拉多州立大学,1993年
[2]“什么是计算机科学”,http://www.cs.bu.edu/AboutCS/WhatIsCS.pdf,波士顿大学. (最后验证日期为2017年10月1日)
[3]“什么是计算机科学”,http://undergrad.cs.umd格式.马里兰大学计算机科学. (最后验证日期为1/10/17)