什么是计算机科学?

In today's digital world, Computer Science has become an important subject for everyone to learn about. The knowledge and Computational Thinking skills associated with it are now crucial to developing innovative digital technology, understanding modern society, and qualifications in this area are highly sought after.

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

此种情况正是计算机科学大显身手之时。计算机科学有许多领域可确保系统运行良好,而 Unplugged 就对其中大部分领域进行了相关说明。您如何能够在几分之一秒内搜遍数十亿个条目(搜索算法)?您如何能够确保其易于使用(人机交互)?我们需要保证其安全性——用户不希望其他人知道他们在搜索什么,而搜索引擎亦不希望被商业利益操纵其搜索排名(计算机安全和加密)?搜索引擎通常会预测您要搜索的内容(人工智能)。它必须足够可靠——即便搜索引擎公司数千名程序员当中有人犯了一个小小的错误,搜索引擎网站的正常运行也不会受到丝毫影响(软件工程)。它需要具备良好的扩展性——即便访问量增加到 10 倍,其也无需消耗 100 倍的计算资源(算法)。搜索的相关性通常取决于网站之间的关系——您需要一张能够显示哪些网站链接至哪些其他网站的地图(图表)。

上述领域涵盖计算机科学这一学科的绝大部分内容。编程只是我们将想法付诸实现的一个工具(这是一个极其强大的工具,需要丰富技巧方可驾驭得当)。但是,仅靠编程本身并不足以帮助我们打造出人人爱用的软件。计算机科学为程序员提供了必要的独门秘籍,帮助他们了解如何让自己的软件变得快速、高效、可靠、安全、易用、智能、可扩展甚至令人愉悦!

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

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