什么是计算机科学?

近年来,“计算机科学”一词得到广泛使用,因为与该主题相关的技能已成为开发创新数字技术的关键,并且在该领域的资质受到高度追捧。

CS Unplugged 活动旨在让您了解是什么主题 - 您可通过这样做,了解它是什么。在这个早期阶段,暂时不要正式定义它,让我们来思考它可能如何影响日常生活。例如,想想您最喜欢的搜索引擎。从表面上看,它就像一个相当简单的界面:设有一个供您键入要搜索内容的文本框,以及一个用于开始搜索的按钮。执行文本框和按钮所需的编程知识水平相当基础,您可通过编写一个简短的程序(可能少于 20 行)执行搜索,以浏览网站上的所有文本并显示任何匹配项。但显然,事实并非如此简单! 每天,搜索数量都将达到数十亿次。网页上有数十亿次搜索,上述方法会(最终)给出答案,但速度会变得极慢且无效率,没有人会使用它。

这时,我们需要用到计算机科学;计算机科学有许多领域可确保系统运行良好,Unplugged 对其中大部分进行了说明。您可以如何在几分之一秒内搜索数十亿的条目(搜索算法)?您可以如何确保其易于使用(人机交互)?我们需要保证其安全性 - 用户不希望其他人知道他们在搜索什么,而搜索引擎不希望由商业利益操纵搜索排名(计算机安全和加密)?搜索引擎通常会预测您要搜索的内容(人工智能)。这需要具有可靠性 - 搜索引擎公司成千上万的程序员中,有人出现一个小错误并不应阻止网站运作(软件工程)。这需要具有极佳扩展性 - 当推广度加大 10 倍时,您不会希望用 100 倍的计算资源(算法)。搜索相关性通常取决于网站之间的关系 - 您需要一张地图,显示哪些网站链接至哪些其他网站(图表)。

上述领域涵盖计算机科学主题的大部分内容。编程只是实践想法的工具(这是一个非常强大的工具,需要相当多的技巧才能很好地使用)。但是,编程本身并不足以创建人们喜欢使用的软件,而计算机科学是为程序员提供内部知识以使其软件变得快速、高效、可靠、安全、可用、智能、可扩展甚至令人愉悦!

这就是我们开发 CS Unplugged 的原因 - 希望青少年学生能够理解计算机科学所涵盖的伟大创意,而不必首先将自己打造为专业程序员。他们并不会精确学习如何构建下一个搜索引擎、社交网络或游戏应用程序,但将了解需要哪些类型的技术方可成功。我们不希望他们将数字系统看作是无法参与的某种魔法,而是看作他们能够理解的东西,并且对某些人来说,是可创造的东西。实际上,当您开始了解哪些可以完成、哪些无法完成时,它也呈现出魔幻的一面。

阅读‘我应如何进行 CS Unplugged 教学?’ or 查看可用主题