我的系经常要求我与高中毕业的学生就计算机科学的更多数学元素进行讲座。我尽我所能从TCS中选择主题,这些主题可能会激发他们的兴趣(主要涉及与Halting问题有关的事情),但希望听到其他人的想法/成功/失败。
职权范围是这些学生正在考虑在一家体面的大学申请CS本科学位,但可能更受数学或另一门科学的吸引。我发现最短路径算法或更快的排序方法的常规主题实际上并不能再引起他们的兴趣。
我的系经常要求我与高中毕业的学生就计算机科学的更多数学元素进行讲座。我尽我所能从TCS中选择主题,这些主题可能会激发他们的兴趣(主要涉及与Halting问题有关的事情),但希望听到其他人的想法/成功/失败。
职权范围是这些学生正在考虑在一家体面的大学申请CS本科学位,但可能更受数学或另一门科学的吸引。我发现最短路径算法或更快的排序方法的常规主题实际上并不能再引起他们的兴趣。
Answers:
有一种巧妙的方法可以向学生介绍零知识证明,我认为这最初是由于Oded Goldreich(如果我错了,请纠正我)。
您有一个红色的球和一个绿色的球,差的色盲查理(Charlie)认为它们是相同的颜色。您想让查理说出您可以分辨出红色球和绿色球之间的区别,并且您想要以一种不让查理知道哪个红色和哪个绿色的方式来做到这一点。(您想证明某事是真实的,以至于没有其他人可以回过头来声称某件事是他们自己的。)如何做到这一点?还是不可能?
以下是一种协议。查理每只手都放一个球,然后选择是否将两个球切换到他身后。然后他再次提出了两个球。如果您始终可以检测到他是否切换了两个球,那么查理越来越相信您可以分辨出它们之间的区别。如果Charlie随机进行此混洗,而您真的无法分辨出颜色之间的差异,那么您只能以概率正确猜测。经过试验后,Charlie应该确信您可以以至少概率分辨出差异。ķ 1 - 1 / 2 ķ
现在,尽管查理越来越相信您可以分辨出区别,但他沮丧地从未得知哪个球是红色和哪个球是绿色。
TCS最具吸引力的方面之一是它如何将抽象数学思想用于日常实际应用。演示文稿可以着重于抽象概念,这些抽象概念比它们在Internet上每天看到的内容落后一步:将最短路径放入Facebook上的“朋友之友”环境中,将变得令人兴奋。Pagerank可以使用更多图形算法;亚马逊的建议提出了机器学习的挑战;互联网上的购买商品无疑是公钥加密的一个很好的线索。
我认为计算机科学中的几乎任何主题都可以用来进行有趣的演讲,但是有些主题更适合,更重要的部分是演示。
我使用过组合游戏理论的各种游戏,主要是Richard Guy的“公平游戏”和Elwyn R. Berlekamp,John H. Conway和Richard K. Guy的“数学游戏的成功之道”(wiki)。
它们很有趣,您可以与他们一起在课堂上玩耍,让他们找到正确的玩法,并给出一些提示,以便最终他们找到赢得比赛的方法。这些游戏可能更适合年轻的学生。
在计算机科学中还有其他有趣的主题,您可以在其中找到更适合您的受众的问题,并利用它来吸引他们。
理论计算机科学中有许多与哲学和大问题有关的话题。从Gödel的不完全性定理到零知识证明,安全性,隐私权,算法博弈论,P vs NP,机器学习,...我不做详细介绍,仅说明问题很有趣,而不仅仅是计算机科学,它们与大问题有关。(请看自从德cri克利特以来的 Scott Aaronson的量子计算和理论计算机科学演讲中的伟大思想)。不要让他们觉得话题已经死了(即回答了所有问题),不要让他们觉得该地区还活着,已经取得了进展,但仍然面临着巨大的挑战,这是一个通往未被发现的土地的旅程。
谈论技术背后的计算机科学。人们可以在这里选择很多主题,从视频游戏到Google搜索的熟悉技术,机器翻译,视觉技术……每个人每天使用的技术,甚至是不熟悉的技术。谈论正在进行中的技术和下一代技术,它们对我们的生活产生的影响,以及他们如何改善它。谈论大型知名公司(例如Google,Microsoft,Apple,IBM等)正在进行的研究及其开发的产品。谈论我们这个时代的重大问题以及计算机科学对其产生的影响。
这对于已经对数学感兴趣的学生,对纯正和精确的方面感兴趣的学生来说是个好选择,但是如果不将其与上述其他主题结合使用,它将对其他学生没有效果。我会提出一个大问题,并在某个时候提到开始谈论涉及的数学问题。
计算机科学可能是最跨学科的学科之一,几乎与任何其他学科(人文学科(社会学,语言学,经济学,哲学等),自然科学(数学,物理学,...),生物学,医学,艺术,工程学(电子学,机械学,...)……任何东西!无论您感兴趣的主题是什么,在计算机科学中都与此有关!正如Scott所说,“其他所有重大问题都比较糟糕:)。
您也可以尝试提及我上面提到的所有主题。我还没有尝试过,而且不确定其效果如何。您必须转移感觉并指出要点,这需要一些时间。另一种选择是在开始(或结束)时简短地提及所有这些,然后继续其中的一种,并告诉他们如果感兴趣的话,他们可以与您联系以获取有关其他信息的更多信息。
无论您要谈论什么,您都应该对此充满热情。让他们对自己并不真正感兴趣的话题感兴趣会变得更加困难。告诉他们您选择计算机科学的原因。而且不要无聊。
我已经与高中生和新生一起成功地进行了两次演讲。
折纸。我首先介绍了5点星问题(由于与美国国旗的联系,在美国情况下效果很好),让学生尝试找出如何制作折叠+ 1切的五点星。我将讨论“资源”(剪切)以及算法设计如何与有限的资源一起工作。然后,我将讨论现实世界中的其他折纸问题和应用(心脏瓣膜,NASA望远镜,汽车的易碎区域)。
煎饼分类:煎饼分类与基因组重排之间有着美丽的联系,我实际上是用泡沫制成一叠煎饼供学生玩的。效果很好,让我谈谈算法,基因测序,比尔·盖茨(!)和其他有趣的事情。
密码学总是吸引着年轻人(我个人希望是老年人)的思想的东西。我有一些朋友想当护士的助手,曲棍球运动员,商人,政客和朋友(尽管他们的目标更高)却担任杂货店装袋工人和推车手,建筑工人和狗窝助手的工作-他们全都发明了彼此并彼此残破。 (公认的天真和简单)代码。特别是,公钥密码术的存在通常很容易解释是否采用RSA路由。可能还会列出一些没有证明或构造的重要结果-零知识证明和同态加密必定会为它的价值吸引怪胎因素。
前向纠错和错误检测代码也非常酷,如果操作正确,可以向好奇的听众讲授。为了使它们更容易理解,您可以提及巧合指数的“通用性”-我们所有的口语和写作都有一些小冗余和夸张之处,可以帮助我们在一个装有混洗袋,脚和脚的房间的嘈杂通道中进行交流。嗡嗡的空调。
最后,我还建议对复杂性理论做一个简单的介绍-类似于我对“理论计算机科学”的晚餐表描述的回答。
AK杜威的《新图灵综合巴士》在计算机科学领域有66次所谓的短途旅行。它涵盖诸如算法分析,AI,复杂性理论,计算理论,密码学,计算机图形学等主题。每个主题都以简洁的形式编写,在计算机科学中获得了一些里程碑式的成果。这本书可以提供一些启发。
另一种可能性是允许学生通过诸如Google的Code-in程序之类的东西弄脏自己的手。它有点像Google的“代码之夏”,但是,对于孩子们来说,这是可以理解的。展示学生可以参与的一些惊人的编码项目也许是激发兴趣的一种可能方式。
我认为,要对高中生性感,您需要成为某种魔术师。这就是为什么我认为随机算法作为学生吸引者非常好。例如,属性测试确实很有趣,并且可以向任何人解释(不是技术性,而是思想)。
PCP也是魔术,但我想这是遥不可及的...
这是Michael Mitzenmacher针对高中生写的一篇非常不错的编码理论文章:
http://www.eecs.harvard.edu/~michaelm/FUTUREOFCS/codes-mitzenmacher.pdf
我的答案与TCS没有直接关系,但可以证明数学可以是美丽而有用的。
您可以发表演讲,说明如何获取有关有多少学生在考试中作弊的可靠数据。如果直接问他们,那么您将无法获得可靠的数据。如何获取可靠数据的想法非常简单。首先,您告诉每个学生思考一个整数,然后您说:
-如果是奇数,请写下您是否喜欢绿色。您可以选择其他任何简单的问题,但是从其他调查中您必须知道,有多少百分比的人对此问题的回答是“是”。
-如果是偶数,请写下您是否在作弊。
大约50%的学生将回答第一个问题,其他50%的学生将回答第二个问题。现在很容易估计有多少学生在作弊。示例:如果40%的答案是肯定的,并且您知道30%的人喜欢绿色,那么您知道大约50%的学生在作弊。
我认为这与理论计算机科学的餐桌描述密切相关吗?
正如我在那儿发布的那样,我感到算法与日常问题联系得最好,因此可以很好地激发TCS。(“如果用与您查找电话号码相同的方式进行搜索,一个Google搜索将花费多长时间”)
根据我的说法,“计算机科学”是“所有科学的科学” :)
什么是“科学”?我们从自然界中获取数据,然后尝试构建一个解释数据的模型。同样,我们隐式地假设自然不是任意的。自然法则必须简洁明了,数据必须满足某些对称性,等等。
但这确实是一个学习问题!数据是由某个过程生成的,该过程被认为是“低复杂性”的,我们的任务是重建该过程的描述。
我们对此类问题的了解还非常原始,因此您有责任解决这些问题!:)甚至我们对黑匣子进程的输出是否等效于某些固定函数的看似更简单的问题的理解也远远不够。例如,假设我们被承诺黑匣子正在评估一个可以由小深度算术电路计算的函数(这对高中生来说很容易解释),并且我们想知道黑匣子是否是计算零函数。我们不知道对于合理大小的域上的函数,这是否可以在Universe的生命周期内完成!
提示开始讨论算术复杂性理论,深度4处的鸿沟,随机性在计算中的作用,如果我们减少乘法门的数量等是已知的,等等。
一个月前,在DIMACS的“现场算法”研讨会上,Graham Cormode主张支持从流算法到本科生的素描技术教学。摩西·夏里卡尔(Moses Charikar)说他们确实在普林斯顿教他们,我认为@Suresh Venkat还提到他教沉重击球手的Misra-Gries算法。我认为一些基本的流式传输结果也将对高中生也很重要:它们依赖于基本但重要的数学技巧,问题的表述就像拼图,解决方案就像魔术,魔术是激发高中生的好方法。您可以确保强调问题的规模和可以使用的资源量之间的巨大差异。一个愚蠢的例子:假设您可以询问进入或离开肯尼迪国际机场的每个人的邮政编码。