计算机专业的课程设置特点,计算机类专业“离散数学”课程设置的意义

【摘 要】离散数学是研究离散的、有限对象的科学,它广泛地应用于计算机科学,是计算机科学的数学基石。学习离散数学的学生大部分来自计算机科学专业,然而,计算机科学专业的大学生在离散数学课程学习中存在很多认识误区。文章以离散数学与计算机科学的内在联系为切入点,阐述了计算机科学专业“离散数学”课程设置的必要性、重要性及作用,以启迪学生正确对待离散数学的学习。

【关键词】离散数学 计算机科学 课程

【中图分类号】G642 【文献标识码】A【文章编号】1006-9682(2010)09-0018-02

离散数学是研究离散的、有限对象的结构及其相互关系的数学学科,是由数理逻辑、集合论、抽象代数、组合数学、图论、算法理论、数论、计算模型(语言与自动机)、离散概率等汇集而成的一门综合学科,[1][2]是现代数学的一个重要分支。它广泛地应用于各学科领域,特别是计算机科学与技术领域。

一、计算机类专业大学生面临“离散数学”课程设置的困惑

一方面,虽然连续数学与离散数学都是以抽象和形式化为重要特征,但是,连续对象和离散对象的不同特性使它们的求解思路、方法存在差异。学习离散数学意味着要以全新的思维方式来考虑问题。同时,离散数学课程所教授的一些概念、理论、技术相对复杂。而计算机专业大学生在开始大学生活之前没有接受足够的数学训练,即便是那些有相当数学背景的学生,相对于专业对数学的要求也显得相形见拙。这就意味着离散数学可能是一门非难教与难学的课程;另一方面,由于程序设计是学习后续课程的技能,又吸引着学生的兴趣,程序设计所提供的训练也提高了学生的能力,因此计算机科学与技术专业已习惯于程序设计优先的入门模式,并在此基础上形成了实施多年、基本稳定的课程体系。[3]其缺点是使学生片面地认为“计算机就是编程”:只关注编码,而很少涉及设计、分析和测试;推迟了对学科的了解,把精力集中在编程细节上,而不是本学科的概念性、思维性的一些基础上,忽视了更重要的理论、算法等问题。同时,由于计算机技术的快速发展,系统的界面越来越友好,人们对系统的进一步开发利用的基础越来越好,使人们对“掌握计算机技术”产生误解,误认为掌握计算机技术就是“会用”计算机,错误地认为一些基础知识,如离散数学枯燥无味、没有意义、没有作用,甚至认为不应开设这种颇具难度的课程。

二、离散数学与计算机科学的内在联系

由于计算机是一个离散结构,它只能处理离散的或离散化了的数量关系,因而,无论是计算机科学本身,还是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何建立离散结构的数学模型;以及将已用连续数量关系建立起来的数学模型离散化,从而可由计算机加以处理。而离散数学恰恰提供了描述离散结构的工具和方法。因此,从科学计算到信息处理,从理论计算机科学到计算机应用技术,从计算机软件到计算机硬件,从人工智能到认知系统等计算机科学技术领域,无不处处体现了离散数学的思想与方法。在计算机科学中,离散数学有两个用途:一是描述计算机科学理论、方法和技术的主要工具,为理论计算机科学提供坚实的基础;二是为形式描述技术奠定数学基础,而形式描述技术则是描述和验证计算机系统的数学表示方法。[4]

1.数理逻辑与计算机科学

工程实践是计算机科学新思想的一个重要源泉,是计算机科学中的“实验”,工程实践总要基于某种被普遍接受的科学背景知识,在计算机科学中,这种背景知识在很大程度上就是数理逻辑;任何复杂的装置或系统均需借助计算机的控制机制,而计算机的控制手段是形式语言,研究形式语言构造与意义的数理逻辑,恰为计算机科学的工程实践提供了基本的逻辑背景框架。[5]逻辑严密的论证能力,在计算机科学的许多领域至关重要,且构造一个形式证明和写一个程序的思维过程在本质上是一致的,具有离散数学修养的程序员在写代码时更有可能写出逻辑严密的最简化的高质量代码。

2.抽象代数与计算机科学

在计算机科学中,抽象代数为研究抽象数据结构的性质及操作提供代数结构与方法,为程序设计语言提供理论基础。实际计算机的设计与制造,使用数字逻辑技术实现计算各种运算的理论基础是代数和布尔代数。布尔代数的实质虽是命题逻辑,但在形式演算方面要使用代数方法,且依靠代数操作实现的指令系统具有递归性。

3.组合数学与计算机科学

组合数学的主要内容不是证明定理,而是着重于计算的过程、方法、步骤,这个方法步骤就相当于计算机科学中的所谓算法。组合数学更多关心开发存在问题、计数问题和优化问题的算法。在计算机科学中,计数或枚举对象、研究两个集合间的关系、分析含有限步数的过程、编码技术等都要用到组合数学理论与方法。

4.图论与计算机科学

图论是一门新兴学科,凡有二元关系的系统,图论均可提供一种数学模型。在计算机科学中,图论提供了一种非常优美实用的描述离散结构层次关系的数据结构――树,且图论算法又大大促进了计算机科学的发展。

5.算法理论与计算机科学

算法不等于程序,也不等于计算方法。许多问题都可以通过构造一个可以被程序实现的算法来解决。计算机科学的发展,为科学计算及数据处理提供了高速度和高精度的计算工具。但计算机只能机械地执行人的指令,它本身不会主动地进行思维,也不可能发挥任何创造性。因此,在计算机解决实际问题之前,首先要进行程序设计。程序对应的计算方法首先必须是构造性的,数据表示必须离散化,计算操作必须使用逻辑或代数方法进行。这些都离不开算法理论。

三、离散数学课程设置的效用

从学科特点与学科方法论的角度考察,计算机科学与技术学科的主要基础是以代数、逻辑为代表的离散数学,连程序技术与电子技术也仅是计算机科学与技术学科的一种产品或表现形式。同时,由于计算机技术的飞速发展,今天非常流行的系统和工具在几年后、甚至在学生走上工作岗位时就可能被更新的系统和工具所取代。离散数学课程从组合分析、离散结构(包括集合、排列、置换、函数、关系、图、树、有限状态机等)、算法构思与设计、模型构建等方面进行专门的反复的研究、训练及应用,培养学生解决实际问题的能力,并为参与创新性研究和开发工作奠定坚实的理论基础。同时,离散数学课程还通过专门的反复的数学推理、数学证明的强化训练,培养学生的抽象思维能力与逻辑推理能力。离散数学课程介绍的离散数学各分支的基本概念、基本理论、基本方法,是后续专业课程学习的数学基础和理论支撑。如数字电路、程序设计语言、数据结构、数据库理论、自动机理论、编译理论、信息安全、人工智能、数据挖掘、编码理论、密码学、图像处理、操作系统、多媒体技术等专业课程都与离散数学密切相关。正如中国首届国家最高科技奖获得者吴文俊院士指出:每个时代都有它自己的数学,离散数学就是信息时代的数学。[6]王选院士也曾多次强调,离散数学在中国的应用有巨大的潜力。[7]随着计算机的发展,离散数学渗入各行各业,并物化到各种先进设备中,这又大大地促进了离散数学的迅猛发展。计算机科学与离散数学在相互作用与促进中共同发展。

参考文献

1 [美]Kenneth H. Rosen著.离散数学及其应用(袁崇义、屈婉玲、王捍贫、刘田译)[M].机械工业出版社,2008

2 [美]Richard Johsonbaugh著.离散数学(王孝喜、邵秀丽、朱思俞等译)[M].电子工业出版社,2009

3 中国计算机科学与技术教程2002[M].清华大学出版社,2004:14、156

4 [英]Andrew Simpson著.离散数学导学(冯速译)[M].机械工业出版社,2005

5 沈恩绍著.集合与逻辑――面向计算机科学[M].科学出版社,2003:98

6 http://www.省略/01gmrb/2000-01/01/GB/gm^18288^3^GMA3-005.htm

7 http://www.cfc.nankai.省略/CGT06/wrap-up.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值