acm-header
登录

ACM通信

BLOG@CACM

对计算机科学课程的反思


最近,在逻辑学界有一个关于将逻辑研究重新引入当代计算机科学本科课程的讨论。这个想法得到了许多著名逻辑学家的支持,包括Moshe Vardi, Martin Davis和Arnon Avron。去年有一个关于这方面的研讨会,今年计划再举办一个(https://www.cs.technion.ac.il/~janos/LogTeach-22/).我建议最好在人工智能课程的背景下进行,因为这将使逻辑理论与各种应用相结合。

尽管如此,我对这个想法有疑虑,也不确定它能否成功。我现在正试图通过一门人工智能课程做到这一点,这门课程已经被列为研究生和本科的双重课程。我发现这门课在研究生中很受欢迎,但在本科生中却不太受欢迎。

我相信这是因为我们大部分CS本科生都不喜欢数学和所谓的“理论课”,宁愿不去上。这一观点在最近对莱斯利•兰波特(Leslie Lamport)的采访中得到了印证。广达电脑杂志他认为,虽然优秀的编程确实需要数学精度,但他也承认,“基本上,程序员和许多(如果不是大多数)计算机科学家都被数学吓坏了。”

我也发现了这种情况,并注意到有一种通过删除数学主题来简化计算机科学课程的增长趋势。举个例子,我还教授我们的数据库课程。我们一直在使用Garcia-Molina、Ullman和Widom合著的《数据库系统:全书第二版》(Pearson, 2009)。本课程最困难的部分是关于标准形式(Boyce-Codd, Third normal Form等)的部分,它依赖于函数依赖的理论。书中对这一点的处理是精确和清楚的,但学生们觉得它具有挑战性。有些学生只是忽略了相关的家庭作业,也不尝试回答考试中的相关问题。

此外,我还注意到,其他教师直接跳过了这个话题。最近,我被要求复习一本新的数据库教科书,发现这个主题被省略了;作者模糊地提到了标准形式,但没有讨论它们。

另一个问题是,大多数计算机专业的学生主要只对获取技能感兴趣,这些技能将使他们能够找到软件开发人员的工作。很少有人对研究生学习和研究感兴趣。因此,他们认为研究理论课题没有任何意义。

正因为如此,我怀疑逻辑是否真的可以重新引入到目前的本科计算机课程中。

然而,在这方面,我认为一个更大的问题是abet批准的CS课程存在问题。自开设以来,本科课程的设计有两个目的:(1)培养学生从事工业工作,(2)为研究生学习和研究做好准备。但在试图同时达到这两种目的时,它并没有达到它本可以达到的效果。

我的建议是,我们可以考虑设立两个不同的本科学位,一个命名为“cs应用”,另一个命名为“cs基础”。前者的数学知识较少,更多地关注软件开发,而后者则需要额外的数学知识,更多地关注理论。

然后我会建议在后者中重新引入逻辑,并再次将其作为人工智能课程的一部分。数学逻辑确实是数学(尽管有许多数学家的观点),最好把它教给对这门学科有兴趣和天赋的学生。

当然,这样做的一个问题是,在基金会轨道上的注册人数会很少,可能不足以证明它的存在。提供只吸引少数学生的课程代价高昂。然而,与此同时,这种情况与物理学等学科没有什么不同,这些学科通常没有很多专业。

此外,这样一个学位课程的存在可以鼓励更多的学生继续研究生学习。正如Moshe Vardi最近在《国内研究生都去哪儿了?》(通信, 2020年9月,第63卷第9期,第5页),很少有美国计算机科学专业的学生继续学士学位。一个可能的原因可能是,学士学位足以获得一份薪水不错的工作,而学生们渴望开始看到薪水支票。然而,事实是,有研究生学位的人可以得到更高的薪水,在学术专业的职业仍然是有吸引力的,如果不是因为工资,至少是许多其他的好处。

此外,美国需要有才华的研究人员来继续推进其信息技术。因此,实施基于基础的本科学位课程的成本可以被长期的社会和经济效益所证明。

基于这些原因,我认为这是一个值得探索的想法。

丹尼尔·g·施瓦兹他是佛罗里达州立大学计算机科学系的教授。

没有发现记录

Baidu
map