时间:2022-10-14 17:59:46
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇计算机科学导论论文范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
[中图分类号] G420 [文献标识码] A [文章编号] 2095-3437(2016)08-0017-03
一、前言
课程建设是专业建设中的重要组成部分,专业导论课往往在第一学年开设,是学生了解专业、建立专业概念和专业认同的重要课程,对学生的专业学习和发展有着重要的引领和指导作用。[1] [2] [3]
信息与计算科学专业是信息科学、计算科学、运筹与控制、计算机及应用等学科交叉而形成的专业,往往设置为理科专业。多种学科知识的交叉渗透,加上因专业名称的望文生义,使学生容易产生简单的认识――“信息与计算科学专业是数学与计算机结合的专业”。这样笼统的认识可能会导致学生认为该专业“要么学数学,要么学计算机”,至于“怎么结合”搞不清,不重视专业的其他重要方面,甚至连信息与计算科学的专业特点和核心竞争力也模糊不清。
关于信息与计算科学专业课程体系建设的论述已有很多,然而关于该专业大导论课程的研究还不多见。针对上述存在的种种问题,本文认为信息与计算科学专业设置专业导论课程是极为必要的,而且在课程体系中应作为独立的重要一环。因为作为信息与计算科学(信计)专业的导论课程,需要回答的问题多且必要:信计专业培养什么样的人才?什么是信计专业?信计的核心竞争力是什么?如何实现?信息处理、应用开发中有哪些数学知识?信息挖掘、信息安全与算法设计的联系如何?建模能力如何铸就?计算分析能力怎样打造?就业岗位对信计的现实要求有哪些?等等。
信计专业导论课的开设需要对信计专业的发展历史,专业的研究应用进展和前沿有深入、广泛的了解,通过精选教学内容,使教学内容形成体系,以达到解决学生关切问题、培养学生专业思想、建立学生专业认同、激发学生专业学习兴趣的教学目标。教学过程中典型的教学案例对学习兴趣的提高有明显的促进作用,在专业学习中能够激发学生对专业的兴趣,促进学生对专业的理解,特别是有利于学生加深对专业的宏观认识以及对专业的一些具体方向的感性认识。本文将结合教学典型案例深入剖析信息与计算科学专业导论教学中需要解决的问题。
二、信息与计算科学的直观印象
信息与计算科学作为交叉学科,和其他一些专业的易混淆性,使得我们必须首先回答什么是信息与计算科学专业,更为紧要的是在大一阶段应该如何从直观的角度来阐述它。我们知道,随着现代信息计算科学技术的发展,上班考勤甚至上课考勤都有系列的产品可供选择,常见的考勤机为指纹考勤机器――这是一个很典型的利用信息与计算科学知识和方法进行应用开发的产品。在教学中,类似的案例可以体现信息与计算科学专业各学科之间的交叉渗透,为学生提供直观的专业认识印象,具体阐述如下。
1.利用该例阐述科技应用开发中,信息与计算科学专业知识的使用流程和涉及的课程知识。指纹考勤机首先要采集被识别人的指纹信息,并以此作为样本;预处理后把样本信息存储为向量或数据,通过建立样本的特征提取模型,进行特征提取;之后输入建立的识别模型,对待识别的指纹进行计算识别;接下来是针对硬件的编程实现和测试,最后再植入匹配的设备或者网络传入后台系统,完成系统测试,投入使用。由于建立特征提取模型和识别模型的方法很多,快速计算的方法选择有所不同,这涉及信息与计算科学中许多数学基础知识和数学建模方法等。总的来说,考勤机的工作流程可以归纳为5步:(1)信息采集和预处理;(2)特征提取和识别模型;(3)识别、计算分析;(4)编程实现;(5)植入硬件。分别讲述其中各个环节可涉及的专业课程:信息采集和预处理可涉及高等代数、概率统计等课程;特征提取和识别模型可涉及高等代数、数学分析、概率统计、运筹优化、数学建模等课程;识别、计算分析涉及高等代数、数学分析、运筹优化、数值分析等课程;编程实现可涉及程序设计语言、算法设计、软件开发测试,等等。这样结合专业课程知识与应用实例的详细讲解,易于让学生了解信息与计算科学专业知识的应用流程,使学生对信息与计算科学专业知识有直观的认识。
2.利用该例阐述科技应用开发中,信息与计算科学中各个学科的交叉渗透。如前所述,由于一个产品的开发可能涉及的知识点很多,可采取的模型方法也是多种多样,这些知识之间的应用就会有交叉。例如,特征提取、识别模型的建立有可能用到信息处理的数学基础,这时又需要考虑该模型是否能设计出快速的计算方法来满足实际计算速度的要求;识别模型的实现最后需要计算机编程来完成,这又涉及合适的模型、快速的算法和良好的程序设计之间的协调融合。当然,完整的产品设计还需要考虑到采集设备的精度、程序植入等其他学科的知识。这样讲解,学生就会对信息与计算科学知识的交叉有较为宏观的认识。
3.启发学生对信息与计算科学中的相关问题进行思考。
(1)指纹样本信息采集是很微妙的事,如果当采集一个样本的次数太多,超出了很多人的承受范围,比如一个手指的指纹采集超过了三次,这样产品的便利性、应用性和竞争力就值得怀疑了。因为通常情况下,我们很自然的认为事不过三为好。那么,如何以最少的采集次数达到要求的识别效果?这就是值得考虑的问题。
(2)如何提高产品的识别效果(正确识别率),提升产品质量,这除了与团队的专业知识相关以外,还与获取知识的能力有很大关系。例如能不能利用已有的专业知识积累从现有的国内文献中获取最新的技术信息,能不能利用国外的技术文献,等等。这些都是由典型案例所延伸出的值得思考的问题。这些问题有利于开拓思路,使学生对将来的工作和研究研发空间充满期待。
三、信息与计算科学专业的核心竞争力
信息与计算科学是由多个学科专业合并和综合而来的,其重视基础能力,培养能解决实际中信息与科学工程计算应用问题的宽口径专业人才。考虑到专业的名称与计算机、信息工程等专业有相似之处,专业导论课程需要阐明该专业与其他专业,特别是一些计算机科学专业、信息工程专业和数学与应用数学专业之间的区别。因此,信息与计算科学专业课程的核心是什么?专业人才的核心竞争力是什么?这两个问题是无法回避的。针对这些问题,除了上述案例,图像(信息)的压缩处理也是一个很直观的例子。利用图像压缩,可以给学生展示压缩编码技术、压缩的算法、软件开发等,这涉及信息编码、密码学、算法设计能力、应用开发能力等。结合这些案例,我们信息与计算科学专业并不是单纯的涉及数学基础课程、建模能力、算法设计或者计算机科学其中的某一方面,它的核心竞争力在于“数学基础与建模能力、计算分析与算法设计、程序语言与应用开发”这三者的有机融合。单单讲某个方面还不足以称之为专业的核心竞争力。因为专业人才的定位是解决信息与科学工程计算的应用问题,这些实际问题本身与这三方面多有紧密的联系,单强调某一方面或重视某一模块容易和上述一些类似名称的专业混淆。因而,与这三方面相关的数学基础课程有数学分析、高等代数、解析几何、微分方程、概率统计等;与这三方面相关的一些专业课程需要凝聚成为专业的核心课程,如数值分析、离散数学、程序语言、数学建模等。
四、信息处理、应用开发中的数学知识
信息与计算科学专业的大一新生对就读该专业充满了憧憬。他们能发现数学基础的老三样(数分、高代、解几)但看不到信息和计算的影子,看不出专业的特征和特色,这就需要专业导论课程加以引导。选取信息处理和应用开发中的相关案例来阐述数学基础知识在解决这些问题中的重要作用,可以使学生对数学基础知识与实际科学工程问题有直观的印象,这对学生下决心打好基础,投入前期课程学习有着重要的作用。如选择图像处理中的修补算法、游戏开发中愤怒的小鸟的技术含量为讲述案例,则这些应用案例就可结合数学基础知识来阐述。
1.图像处理中的修补算法。图形图像的基本处理分析方法,如傅里叶分析可选择进行更为全面的介绍,介绍其在工程领域、数字信号处理、医学领域的广泛应用。这样来看,大一开始学习的分析类课程作为专业的基础课程确实是名符其实。图像图像处理的修补涉及优化模型和优化算法、算法的复杂性等,而这些基本的模型形式――在一定约束要求的前提下,求目标函数的极小值,容易使学生对开始学的分析课程的导数与极值、矩阵等基本知识联系起来。
2.愤怒的小鸟的技术含量。应用开发形式多种多样,游戏开发是一种有趣生动的开发过程,许多游戏开发又与数学基础知识有紧密联系。因此,选取其中的典型案例进行介绍,容易激发学生的学习兴趣,促进学生对数学知识在应用开发中作用的理解。如该例涉及的物体碰撞检测和连续碰撞检测与向量及运算、旋转矩阵、线性变换等数学基础知识,可以由此进一步介绍物体的移动、壁障和寻路等游戏开发中常见的智能化算法,这些都将和许多基础知识紧密结合。
五、信息挖掘与算法设计
信息与计算科学专业人才应具有处理实际中信息与科学工程计算问题的能力。当前大数据处理涉及的信息挖掘的相关内容,与信计专业有天然的联系,特别是挖掘目标的设置、隐含信息的挖掘模型的建立和使用、模型的求解、算法性能分析等,与信息与计算科学中的计算能力、建模能力、程序设计等核心能力模块要求相连。这方面的热点案例很多,如可选阿里巴巴大数据竞赛、2012年和2015年深圳杯全国大学生数学建模夏令营B题进行展示,其中阿里巴巴大数据竞赛可联系到机器学习算法等。讲述这些典型的热点应用案例,对学生了解专业课程和专业的内涵有重要的指导作用。
综上,通过梳理信息与计算科学专业导论教学中一些需要澄清的问题,根据教学实践,从典型案例的视角对这些问题设置的必要性和解决方式进行了分析和探讨,剖析了这对于促进学生对专业内涵的总体把握、了解专业应用领域、品味专业学习价值的有益作用。
[ 参 考 文 献 ]
[1] 杨晓东,崔亚新,刘贵富.试论高等学校专业导论课的开设[J].黑龙江高教研究,2010(7):147-149.
[2] 王晓晖.大学专业导论课开设的目标探析[J].高教论坛,2013(12):69-71.
[3] 王利众,朱丽平.工科专业导论课教学研究――以“通信技术导论与导学”为例[J].黑龙江教育:高教研究与评估,2015(9):29-30.
[4] 许峰,方贤文,许志才.信息与计算科学专业教学体系的实践与探索[J].高等理科教育,2007(4):70-73.
[5] 龚日朝.“以特色取胜”建设信息与计算科学专业的新型思路与实践[J].大学数学,2004(3):12-15.
[6] 苏丽卿,黄民海.对信息与计算科学专业的认识与思考[J].河北师范大学学报(教育科学版),2008(6):107-109.
[7] 李学勇,王鑫,谭义红.应用型本科院校信息与计算科学专业人才培养模式[J].长沙大学学报,2009(5):109-111.
[8] 汪富泉.信息与计算科学专业应用型人才培养模式研究与实践[J].大学教育,2013(18):62-63.
0 引言
1989年,ACM攻关组提交了著名的“计算作为一门学科”报告,报告认为,“计算机导论”课程要培养学生面向科学的思维能力,是学生领会学科的力量,以及从事本学科工作的价值所在[1]。2001年,CC2001将计算机学科划分为计算机科学、计算机工程、软件工程、信息工程、信息技术五个分支[2]。2005年,CC2005进一步指出,该课程的关键是课程的结构设计问题,ACM和IEEE-CS分别为这五个分支学科设计了相对独立的课程体系,要求“计算机导论”课程应该以面向计算学科的思维能力,即计算思维能力的培养为核心,为学生的大学课程打好基础[3]。2002年中国计算机学会教育委员会和全国高等学校计算机教育研究会推出了《中国计算机科学与技术学科教程2002》(China Computing Curricula 2002,简称CCC2002),阐明了计算机科学与技术学科的教育思想,对学科的定义、学科方法论、学科知识体系和内容、教学计划制定以及课程组织方法、毕业生应具备的能力等方面做了系统全面设计,并将计算机科学与技术学科的知识体系结构组织成知识领域、知识单元和知识点三个层次,其中知识领域是知识体系结构的最高层次,共14个领域,下设132个知识单元[4]。
目前,我国国内的学科分支及课程体系一直沿用CC2005和CCC2002,“计算机导论”设计5个知识领域,涵盖12个核心知识单元,分别是信息技术史、程序设计语言概论、软件工具和环境、语言翻译简介、人机交互基础、软件演化、通信与网络、信息技术的社会环境、职业责任和道德责任、基于计算机的系统的风险和责任、知识产权、隐私权和公民自由。
“计算机导论”是一门计算机专业的引导性课程,开设在学生第一学年的第一个学期。本课程教学目标是:通过本课程学习,要求学生了解计算机科学的基本概念、计算机系统的组成、数据表示方法学和数据加工表示方法等,最终对本专业各个学科的核心内容、各个学科的关联有全面、概要的认识,为后续的专业学习奠定入门的基础。同时,“计算机导论”该课程也是一次对学生具体而详尽的专业思想教育,对学生的专业学习具有启蒙作用。因此,依托学科课程体系,对《计算机导论》课程进行改革,优化课程内容、打造精英团队、改进教学方法,培养学生计算思维和实践能力非常重要。
1 课程教学存在的问题
从计算机学科体系发展背景、计算机导论课程大纲设计、计算机专业的计算机导论实际教学效果等方面分析,计算机导论课程建设主要存在以下问题。
1.1 课程意义认识不足
随着中学阶段信息技术课程的普及,学生对网络资源获取日益增多的社会环境下,一些学生和教师对“计算机导论”课程的地位认识不足。学生将“计算机导论”课程与“计算机应用基础”课程混为一谈,在教学管理过程中,学生对大量的专业名词感觉枯燥,理解困难,学生的学习积极性不高,处于被动接受状态,缺乏自主学习和创新意识。学生学完后感觉不到这门课程的意义,没有起到为后续课程打基础的作用。
1.2 教师对计算机导论课程内容理解不够,教学内容简单化
“计算机导论”课程信息量大,教师很难做到每个章节分配合理,重难点掌握恰当,没有潜移默化的培养学生的学习思维,不能很好地帮助学生系统的认识计算机学科体系结构。教师在面临繁多的学科体系要求下,很难贯彻执行计算机学科体系的核心思想,在教学内容上只是对核心内容进行简化和压缩,生搬硬套教学大纲,完成基本的教学要求。
1.3 教学方式陈旧
在信息化高速发展的环境下,学生习惯了依赖网络、依赖手机电脑,这时,教师还采用传统的教学方法,只是简单的将黑板的“人灌”简单的改成了PPT的“电灌”,学生还是被动地接受,课堂气氛沉闷,学生没有激情,教学效果不理想。
2 课程改革的思路
2.1 依托学科课程体系,以培养学生计算思维为向导构建课程的教学大纲
计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。基于计算思维的教学,是指通过建立一种合适的体系,以培养创新型人才为目标,激励、引导和帮助学生主动发现问题、分析问题和解决问题。在课程教学是以教师为主导、学生为主体的“探究”过程,在教学过程中运用计算思维的方法获取知识、训练技能、培养能力、发展个性[5]。
2006年3月,美国卡内基・梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊Communications of the ACM杂志上给出,并定义的计算思维(Computational Thinking)。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。2008年6月,ACM在网上公布的对CS2001(CC2001)进行中期审查的报告(CS2001 Interim Review)(草案),开始将美国卡内基・梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授倡导的“计算思维”与“计算机导论”课程绑定在一起,并明确要求该课程讲授计算思维的本质。根据ACM和IEEE-CS的要求,“计算机导论”课程应该以面向计算学科的思维能力,即计算思维能力的培养为核心,为学生将来的大学课程打好基础[6]。
“计算机导论”在课程大纲设计中,依托学科课程体系,以培养学生计算思维为向导,力求以严密的方式将学生引入计算学科各个富有挑战性的领域之中,为学生正确认知计算学科提供方法,为学生今后深入学习计算机的课程做铺垫。下面列出“计算机导论”课程教学大纲。如表1所示。
如表1所述,“计算机导论”课程的课程大纲中包含了学科的宏大视野和学科各分支领域具有的共性的核心概念、数学方法、系统科学方法、社会与问题,要求学生理解计算思维,认识学科形态,培养专业基础素质。课程大纲体现了在不断地提出问题、解决问题的过程中,加强学生运用计算思维进行问题求解能力的训练以及逻辑思维能力的培养,结合专业特色,将计算思维应用到各个专业问题的解决方法中去。
2.2 教学内容模块化,以培养学生实践能力为目的改变教学表现形式
依据3.1中构建的课程大纲,将“计算机导论”的所有教学内容分模块以不同的课堂形式表现。下面列出分模块的“计算机导论”教学内容及教学表现形式。如表2所示。
2.3 打造可持续发展、创新型的教学团队
“计算机导论”需要解决的主要问题是让学生了解学科发展历史,学科最新发展方向,职业基本行为规范和学科所要学习的内容,因此需要教师能够融会贯通的对“计算机导论”所设计的计算机学科知识进行系统的讲解,并能够跟踪学科的科研动态,了解目前的重大科研成果,通过对前沿科学内容的讲解,开拓学生的视野。因此,“计算机导论”教师团队的教师必须教学经验丰富,“计算机导论”中所涉及的知识映射的单门课程需要有循环教学2-3遍的教学经验,能够非常清楚后续各课程之间的衔接关系,准确地把握各类课程的引导性内容和重要性内容,在教学过程中潜移默化的培养学生的计算思维能力。
教学团队由教学经验丰富的教学型专业人员担任课程负责人,以中、青年骨干教师为主体,形成由教授、副教授、讲师、助教组成梯次合理的队伍。教学团队中有教学效果优秀、教学经验丰富的名师。
课程负责人熟悉各个教学环节教育改革趋势,能够协调和凝聚团队成员的力量,实现优势互补,指导团队成员在课程建设、教材建设、教学内容、教学方法和手段或实验、实践教学等方面的教育教学改革中取得成果。
“计算机导论”教师团队的教师要求掌握各种课堂技巧,根据不同的章节内容特色,灵活运用各种教学方法,用通俗易懂的语言描述繁杂的专业内容,调动课堂氛围,激发学生学习“计算机导论”的兴趣,让学生正确认识本门课程的重要性。
教学团队成员要求具有创新性思维,在间教学过程中进行专业学术探讨与论争、教学方法交流、教学经验沟通等,产生教学实践改革的创新思考,并在教学实践中逐渐实施,形成通过教学团队成员的创新精神来促进课程发展和培养具有创新意识教师的良性循环。
2.4 合理利用网络资源,创造交互式课堂
根据上文所描述的模块化的教学内容和教学形式,在课堂教学过程中,以学生为中心,采用理论、实践(2:1)的形式组织课堂教学。理论课堂以讲解基本理论知识为重点,帮助学生运用学科数学思想梳清整个学科脉络,建立系统化的认知模型。实践课堂以“任务驱动”的形式组织教学,以团队小组的形式进行考核。课堂教学方式是:①教师引导组长运用关注点的计算思维指导组内的分工,将一个复杂的题目演变成一系列的子模块;②各组员定期交流各自完成的情况,对于过程中遇到的问题;③教师引导学生运用计算思维的方法进行抽象、分析;④通过网络等各种途径进行自主检索、探究、思考、讨论;⑤最终形成问题的求解思路;⑥在学生完成任务后,教师引导学生进行知识的归纳和总结,并演示、讲解和答辩相结合进行总结评价,加深学生对知识体系的理解。通过这种课堂组织方式,激发学生的求知欲,改变学生由被动学习为主动获取知识,提高学生的学习主动性。
随着互联网的普及和学生对计算机技术的应用,学生可以通过互联网去使用优质的教育资源,不再单纯地依赖授课老师去教授知识。而课堂和老师的角色则发生了变化。老师更多的责任是去理解学生的问题和引导学生去运用知识。1/3的时间课程教学中,除去需要用实验验证计算机学科中的一些核心概念和学科形态外,如:计算机的体系结构在最新的计算机产品中的应用问题,第三次数学危机,职业道德,计算机未来的形态等问题均可以采用“任务驱动”的形式授课。学生需要课前根据老师布置的范围了解和学习相关的知识,形成小组总结性文字,老师需要根据学生的实际水平和课前学习效果组织课堂讨论,引导学生计算思维的方式构建学科脉络,拓展学科视野。
理论教学与任务驱动实践教学有机结合,充分调动了学生的学习积极性,促进了学对知识的理解,训练了学生的计算思维,培养了学生的创造力。
3 小结
论文通过对“计算机导论”课程的课程大纲梳理、教学团队建设、教学方法改革,在当前“计算机导论”教学中注入了新的思路,体现了以培养学生实践能力的教育思想。
【参考文献】
[1]Denning P J, et al. Computing as a discipline. Communications of the ACM, 1989,32(1)[J].
[2]ACM/IEEE Curriculum 2001 Task Force. Computing Curricula 2001, Computer Science. IEEE Computer Society Press and ACM Press,2001[J].
[3]The Join Task Force. Computing Curricula 2005. The Overview Report. A cooperative project of ACM, AIS, and IEEE-CS. Sept 2005[J].
0 引言
针对国内外计算机教育发展的新动向,教育部高等学校计算机专业教学指导分委员会联合中国计算机学会教育专业委员会、全国高等学校计算机教育研究会,特别就计算思维能力的培养问题形成几点认识。计算机专业教育应该在计算思维能力培养中做出表率,将系统化计算思维能力的培养贯穿在计算机专业的教育中。计算机导论是计算机专业的一门先导必修课程,是作为计算机专业学生进入大学后的第一门专业课程,其主要作用可以归纳为“五导”:导知识、导方法、导思维、导意识和导职业。我们认为“导思维”是首要的,也是最为核心的,同时也是最难做到的,“导思维”在引导培养学生计算思维能力的过程中,可以很好地、潜移默化地达到其他4项引导作用。
如何建立计算思维能力的培养要求、实施途径、评测规范与方法一直是当前计算机教育者从事计算思维研究的一项重要课题。我们结合教学团队多年的经验积累,依据计算思维的本质和特征及计算机导论课程的构建目的,从教学内容、教学理念、教学方法及教学评价等方面探讨如何在计算思维驱动下对计算机导论课程进行一系列的改革和探索。
1 计算思维与计算机导论
计算思维(Computational Thinking),笼统地讲,是指受过良好训练的计算机科学工作者面对问题所习惯采用的思维方法,体现为在过去半个多世纪以来成就计算机和信息技术辉煌发展过程中行之有效的若干分析问题与解决问题的典型手段与途径。其具体内涵在近年来发表的文献资料中均有丰富论述。而有关计算机导论课程的构建问题,在1989年ACM攻关组所提交的“计算作为一门学科”(Computing as a discipline)报告中认为,该课程要培养学生面向学科的思维能力,使学生领会学科的力量,以及从事本学科工作的价值所在。报告希望该课程能用类似于数学那样严密的方式将学生引入到计算学科各个富有挑战性的领域之中。
2008年6月在网上公布的ACM对CC2001(CS2001)进行的中期审查报告(CS2001 Imerim Review)(草案)中,开始将美国卡内基·梅隆大学计算机科学系教授周以真(Jeannette M.wing)倡导的“计算思维”与计算机导论课程绑定在一起,并明确要求该课程讲授计算思维的本质。
综上所述,计算机导论这门课程不是解决对计算机功能的工具性认识问题,而是要对学生进行专业引导和思维引导,应该以面向计算学科的思维能力,也即计算思维能力的培养为核心。学生如果有了良好的计算思维品质,不管环境、知识需求如何变化,都可以灵活应变,从而为今后的专业学习以及走上工作岗位打好坚实的基础。
2 计算思维驱动下的课程改革
2.1 学目标,灵活教学内容
美国卡内基·梅隆大学周以真教授认为:计算思维是运用计算机科学的基本概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。计算思维一大特征是数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,其形式化基础建筑于数学之上。计算机科学又从本质上源自工程思维,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。所以计算思维的研究存在多维性,它紧密地同数学、科学和工程结合在一起。另一方面,计算思维建立在计算过程的能力和限制之上,由人和机器去执行,在求解问题时必须从人的认知、心理、思维活动和学科发展角度去入手,故存在研究角度的多态性。
因此,计算思维多维、多态的复杂特征决定了计算机导论课程当前培养方案的多样性与差异性。当今计算机的理论和技术发展太快,新的知识大约每两年就会增长一倍,教材根本无法实现实时地对新知识、新技术进行跟进。因此,我们主张教材为辅,“导思维”为主的原则,在统一的数学目标指导下灵活课程的讲授内容,留给教师和学生最大的思考空间。没有了教材的“束缚”,教师有了更多的掌控空间,学生也不会因教科书而将概念固定化,更不会出现临考抱“教材”的现象。
我们确定计算机导论课程的教学目标是:在学生建立计算机专业学科知识体系框架的同时激发学生的学习兴趣及学习的主动性,培养学生的计算思维能力、洞察问题及解决问题的能力,为后续学习相关专业课程、参与创新课题等打下坚实的基础。在教学内容的划分和安排上,由于课时有限,我们主张理论教学内容在划分上尽可能地简单分明,前后知识可以很好地呼应起来,这样更有利于知识点的系统化,不会因为章节庞杂、知识点太多而导致学生难于消化。为此将课程的讲授内容简单划分成3大部分:
(1)介绍计算学科各领域的发展史及前沿,揭示各主要领域的基本规律及相互之间的内在联系;认识当前社会和职业问题等。
(2)介绍计算机学科中的经典科学问题,初步认识和理解抽象、理论和设计3种学科形态。
(3)讲解计算机学科中的核心概念(如算法、数据结构、程序、软件、硬件、信息表示等),探讨研究学科中的数学方法和系统科学方法,培养计算思维能力。
在讲授过程中,我们借助精心制作的多媒体课件,结合授课内容和计算思维的培养目标,随时有针对性地调整和丰富自己的讲授内容。例如,讲解计算机学科各领域的发展史时,通过引荐吴军老师的《浪潮之巅》,让学生对整个信息产业有个整体了解,明鉴信息技术之兴衰和发展;而王伟老师的《计算机科学前沿技术》则系统展示了计算机学科各领域中令人激动的前沿技术,揭示未来计算机的发展方向,很好地体现了计算思维及其重要性。
2.2 主张自由文理教育,突显学生主体
作为国家建设未来的栋梁,需要的不是仅有技能的人才,重要的是有思想、精神、独立思考能力和良好的身体。技能是容易学的,但一个人的素养和教养不是一蹴而就就能培养的。大学教育的目的应该在于培养学生终身学习的能力,比如阅读、写作、计算思维,而不是一时的某项职业技能。如果学生进入大学仅是为了将来的饭碗,那必然会羁绊他的头脑,抑制他的求知欲。所以大学的专业学习需从“学什么”(内容)转到“如何学”(过程),将“导思维”放置课程建设的首位。
我们主张自由文理(Liberal Arts)的教学理念,力争引导一种自由的环境,激起学生主动学习的欲望,成为真正热爱学习的人,即在没有外界利益驱使下仍然在学习的人。对于自由的学生,他们的时间,他们的大脑和心灵在学习的时刻才真正受他们自己所支配,这样的学习过程才可能专注且快乐。
在教学中,我们坚持以学生为本,打破传统的教师讲学生听的单向模式,在课堂上采用提问式教学,注意引发学生学习的动机;严格地遵循计算机学科的发展规律,定期给出具有一定挑战性的课题,通过分组合作的方式,以师生间讨论、辩论的形式,自律地学习获取知识的方法及分析问题的原则;利用平时的小论文,引导学生收集资料,增强自我学习的能力,建立抽象立体的概念;通过对科学大师的解读沉淀一种学者的尊严和对真理的敬重和向往,培养学生的社会责任心。
2.3 遵从螺旋式组织方式,提升学生思维
若将教学比作爬山,通常的教学习惯是一口气从山下直线攻顶,而布鲁纳在《教育过程》中所提出的螺旋式课程(Spiral curriculum)则是绕着山转,在相同的角度看到的风景虽然都一样,但每次绕回来时的高度不同,能看到的广度和深度都不一样。等到达山顶时学生不仅对山有具体认知,也能掌握四周环境全面性的关联知识。计算机导论课程几乎涵盖了计算机领域所有的理论、技术和研究课题,内容太过广泛,若前后不能很好地呼应起来,学生往往会因孤立地学习太多的知识点而导致前面学的内容到后面就忘记了,理解起来也相对困难。对于计算机科学这样一个有机的、庞大的学科体系,教师应该引发学生对计算机学科知识结构的理解,精熟其基本原则、原理,以此产生类化的能力,而不是零碎概念、知识点的描述。
我们在课程实施中,遵循螺旋式课程的组织方式。首先结合教学团队多年的教学经验和团队成员之间的合作讨论对课程知识进行合理的结构化;然后从学生认知发展角度出发,沿认知发展的动作表象、形象表象、符号表象3个阶段来组织课程内容。讲授内容如2.1节所述,知识点在组织安排上前后呼应,螺旋式地扩展和加深,直至复杂、抽象的现代知识领域;最后在教学过程中我们采用合理的教学方式和紧密相连的学习节目来配合教学过程。比如教学中我们注重学习情境的安排,在讲授算法时,注重引导学生感受其产生背景,摸索过程,走过什么道路,不同阶段产生什么改变,将来的发展趋势是什么,它还可以做什么改进等。引导学生主动参与学习活动,提供学生更多自行探索的机会,最终实现将“知识个人化”。为使学生站在同一角度看到更大的广度和深度,我们主张采用团队教学制。计算机学科发展迅速,应用领域广,学科交叉和渗透十分突出,而计算机学科教师掌握和积累知识的广度是有限的,往往限于个别研究方向,为了提高学生的学习兴趣,拓展学生的思维和视野,在不同的知识领域会组织邀请相应有所“专”的教师来讲授,这样可以发挥团队互补优势,实现对学生全方位的指导,收到良好的人本教育的效果。
2.4 采用分级评价手段,有效监管教学过程
计算思维能力的培养是一个长期的过程,学习和思维不是彼此独立的,是紧密而互补地联系在一起的。所以为了内化学生的计算思维能力,我们必须有效监管整个教学过程,对每个个体在不同的教学环节中的表现做出正确评价,这样才可以实施因材施教,兼顾那些因各种原因而落后的学生。
我们采用螺旋式教学法,非常注重引导学生课前进行预习。在讲授新内容之前,我们要求学生课前收集相应的材料加以了解,课堂上通过实施提问式教学,引导学生积极讨论,同时依据学生参与情况及时做出相应的评价,对未准备的学生要给予相应惩罚,并在下次课中加重对其进行考察。相应地,在平时作业中我们不会布置常识性的题目,而是根据授课内容布置一些能够引发思考、对计算机学科整体认知有帮助的题目,这样就避免了作业抄袭的现象,增加了学生主动思考的机会,教师也可及时捕获学生思维能力的变化,调整和改进后续的讲解内容。
我们所采用的团队教学制为实施团队合作式学习提供了很好的平台。在整个课程结束后,教学团队中的每个成员会给出一些具有挑战性和合作性的题目,学生根据自身对学科分支的理解和把握情况来挑选导师,在导师的牵头引领下开展以小组为单位的研究型学习。学生最终需按照要求提交论文或报告,并在小组内通过上台演讲的方式进行答辩,最终以个人和小组的共同表现综合给出评定。
1 计算机科学与技术专业的定位与培养目标
我国高等院校早期的计算机学科教育注重学术研究性教育,也就是我们所说的精英化教育。随着计算机应用的普及,需要大量实践能力强且上手快的计算机专业人才,高等院校本科计算机科学与技术专业教育,就需要改变传统的教育思维,应该研究培养体现职业特征的应用型人才的培养模式,我校计算机科学与技术专业以基础适度、口径适中、强化应用、提升能力、注重特色的人才培养规格为要求,以培养应用型人才为目标。
我校计算机科学与技术专业的培养目标是:培养德、智、体、美全面发展,知识、能力、素质相互协调,系统地学习掌握计算机科学与技术,能从事计算机应用软件的开发、计算机系统软件的分析和维护、计算机网络的管理与维护,计算机硬件、嵌入式系统以及接口设计、调试、安装与维修,获得计算机科学和技术领域工程师基本训练,具有安全意识、实践能力、创业精神,适应社会发展需求的应用型高级专门人才。
2 计算机科学与技术专业应用型人才培养的原则
关于计算机应用型人才培养,是发展和建设专业所必需的。在应用型人才的培养过程中,需要以市场为导向、特色建设、创新的原则,对培养模式进行深化,进而达到教学改革与发展的需求。
2.1以市场为导向的原则
随着信息技术的发展,计算机已成为社会发展的原动力。计算机具有实用性的特点,注重专业与市场的对接,这样才能更好地发挥计算机科学与技术专业的教学目标。面对多元化的经济市场,实现人才培养模式与市场相结合,以市场为导向,使得教学活动更具有针对性和职业性。基于市场需求,在专业课程的设计上,要具有实效性,以市场的需求面来确定教学的内容面,这样在培养方式和内容上,有助于应用型人才的培养。
2.2 专业建设的特色化原则
随着高校计算机科学与技术专业的开设增多,其竞争性加强,社会对于其的要求也增加。因而,在应用型人才的培养中,关于特色专业的建设非常重要。专业建设的特色化,可以更好地体现应用型,是高校学科建设的重要方面。在计算机专业的建设中,要体现学科的细化,教学方面进行明确。诸如,运行、系统建设、维护等相关技术的教学培养,是应用型人才培养的重要方面,这点也是专业细化下,专业特色化建设的重要方面。
2.3教学内容的创新性原则
计算机科学与技术发展迅猛,其课程内容具有技术新、变化快的特点。计算机教学内容的多变性,在于教学主体未变,其相关技术的创新性发展。在应用型人才的培养中,关于教学内容的创新非常重要,教学内容的创新,可以为专业培养提供多元化的平台,进而实现综合性的培养模式。同时,教学内容的创新,还需要体现市场的需求,在教学活动之中渗透职业教育,在掌握理论知识的同时提高实践能力。这样,学生的社会生存能力得到更好地培养,适合现代教学改革的需求。
3 理论课程体系的构建
计算机科学与技术专业要实现其人才培养目标,课程是其采取的重要手段,即课程是专业教学的重要载体。课程体系是课程及进程的总和,是同一专业不同课程门类按照门类顺序排列,课程门类排列顺序决定了学生通过学习将获得怎样的知识结构。课程体系是教学理念的重要体现,是培养目标的具体化和依托,它规定了培养目标实施的规划方案。因此,构建专业的课程体系是人才培养的关键,它关系到学生获得哪些方面的知识和能力、如何强化应用、怎样体现专业特色。
3.1 通识教育课程
通识教育模块分为必修模块与选修模块。必修模块分为思想政治理论模块、军事理论模块、公共体育模块、公共外语模块与数学模块。它们是大学生知识结构和能力素质培养中的基础部分。
通识部分选修模块是根据当代大学生素质培养和知识结构自我构造的需要而设置的一系列课程,按课程的学科性质将选修通积教育分为人文素质模块、自然科技模块、经济管理模块、艺体健康模块等四大模块,目的是提高学生的文化品位、审美情趣、身心健康、人文素质和科学素养。
3.2 学科基础课程
包括各相关专业的基础知识、基本理论、基本技能的课程,其目的是夯实学科基础。
具体课程包括计算机导论、C程序设计、线性代数、概率论与数理统计、电路与电子学、离散数学、数字逻辑与数字系统、数据结构。具体分为以下两个课程群:①数理基础:线性代数、概率论与数理统计、离散数学;②技术基础:包括电路与电子学、数字逻辑与数字系统等硬件基础课程群和计算机导论、C程序设计、数据结构等软件基础课程群。
3.3 专业基础课程
专业基础模块是按社会需求和专业学科发展需要所开设的反映人才知识结构要求的若干门课程,主要包括该专业的基础知识、基本理论、基本技能的课程,其目的是夯实专业基础。分为软件与硬件两个课程群,包括必修和选修课程。
必修课程包括面向对象程序设计(C++)、汇编语言、计算机组成原理、操作系统、数据库原理与应用、编译原理、数据通信与计算机网络、接口技术、软件工程等。
选修课程包括计算机图形学、网页制作、JAVA程序设计、LINUX操作系统、JSP网络编程和计算机系统结构。
3.4 专业方向及专业前沿课程
专业方向及专业前沿课程是根据社会上实际的人才岗位群需求,在专业基础课程的基础上从深度上体现该专业内涵和特色的一系列面向应用的课程,主要是指与某一特定的工作或某一类职业相关的课程,目的是为学生进一步扩充和强化专业相关知识和技能,进而培养学生解决实际问题的能力。包括计算机应用方向和嵌入式系统方向。
计算机应用方向包括必修课和选修课,其中必修课有.NET构架及应用和ASP.NET网络编程两门课程,选修课有J2EE技术、微机与外设维护维修技术、Delphi程序设计、多媒体技术、数字图像处理、ORACLE数据库、电子商务概论和UML建模技术等课程。
嵌入式系统方向包括必修课和选修课,其中必修课有嵌入式系统基础和嵌入式Linux应用开发两门课程,选修课有单片机原理及应用、嵌入式操作系统及其程序设计、嵌入式处理器体系结构、移动设备软件开发、嵌入式系统测试技术、嵌入式网络协议及应用、WinCE嵌入式软件开发、嵌入式数据库和通信网络与总线技术。
4实践教学环节
4.1实践课程体系的构建
应用型本科实践课程教学体系应包括普适基本技能层次、学科专业技能实验层次、专业应用与综合技能实践训练层次在内的三层次实验课程体系。
1) 普适基本技能层次
普适基本技能层次开出预备性实验基本技能课程实验,使学生尽早进入实验室,尽早转变学习方式,尽早增强工程意识。这方面设置有物理实验和认识实习。
2) 学科专业技能实验层次
学科专业技能实验层次开出二级学科及其相关专业实验课程,通过基础科学原理课程的实验训练,养成科学规范的研究习惯,掌握实验设计、装置准备、数据采集和处理、结果分析和报告的方法。包括计算机导论、C程序设计、数据结构等课程的上机编程、电路与电子学和数字逻辑与数字系统两门课程的硬件实验。
3) 专业应用与综合技能实践训练层次
专业应用与综合技能实践训练层次通过专业课程实验、课程设计、生产实习、毕业实习和毕业设计等综合实践训练,培养学生分析问题、解决问题的能力,达到学以致用的目的。
在生产实习和毕业实习实践环节,广泛开展校企合作,以项目实训为主,着力提升本专业学生的就业能力和就业质量。例如,本专业与工信部人才交流中心签署了合作共建协议,实施蓝桥计划,联合培养JAVA程序高级开发人才。与北京达内科技有限公司合作培养C++程序设计高级开发人才。另外,与北京安卓易科技有限公司、京东翰林教育集团、汇众益智(北京)教育科技有限公司等共建校内实习实训基地,双方教师共同指导学生的生产实习、毕业实习,取得良好效果,基本实现了应用型人才与工作岗位的无缝对接。
4.2课外素质拓展与创新实践
课外素质拓展与创新实践为鼓励学生参加课外科研创新、专业技能训练和社会实践活动,培养学生实践和创新能力,要求每个学生必须取得课外素质和创新项目4个学分,此类学分单独记载,超过的学分可以替代相应选修课学分。
中图分类号:G642 文献标识码:B
1引言
“算法设计与分析”是计算机科学与技术学科的核心课程之一,受到越来越多的重视。对于一个计算机专业的学生,学好算法课是必要且是必须的。“算法设计与分析”这门课程的主要目的不仅是讲授计算领域中不同问题的标准算法,更重要的是分析其算法复杂度,并且在诸多可行算法中选择一种时间或者空间效率最高的方法。美国著名算法大师Donld Knuth认为“计算机科学就是算法的研究”,他主持设计的TeX排版系统被誉为是“不存在Bug的系统”,这是以大师严密的算法设计基础为保证的。前微软高级副总裁李开复博士认为“计算机科学实质是人工智能”,而人工智能则是模拟人类思维的一种算法科学。计算机算法的应用已经遍及人类社会的各个领域,包括计算机软硬件机器学习、电信及互联网、一般制造业、经济与金融业等。算法技术不仅在计算机领域,而且在其它理工及社会科学领域都有极其广泛的应用。任何问题的求解,都离不开一般性的算法设计原则,在笔者执教的学校,数学和信息安全两个非计算机专业已将该课程列为必修课程。因此,提高“算法设计与分析”课程教学水平有着极其深远的意义和重要的作用。
2教材选择
近年来,国内引进了一些优秀的国外教材,其中的《算法导论》是国际上被引用频率最高而且知名度也最高的专著,但是由于它篇幅过长,在国外多用于两个学期的教学课程,因此难以将该教材系统地用于学时有限的本科教学;《算法设计与分析》是美国工程院院士UIIman等三位大师合著的优秀教材,该书的目的是将算法领域的基础研究结果进行综合,重点在于对算法思想过程的理解,而不是算法的实现细节和具体的编程技巧。但是该书内容和习题难度都较大,因此更适合作为研究生教材。国内的专家王晓东和周培德所编写的教材也很优秀。这些教材都被我们重点推荐给学生作为参考书。
出于上述考虑,我们最终选择了沙特学者M.H.Alsuwaiyel所著的《算法设计技巧与分析》作为教材,该书基本覆盖了传统算法设计的主要内容,此外还包含了概率算法和近似算法等一些基本内容,这些内容在传统教材中并不多见,是一些高端算法经常使用的方法。虽然该书不是欧美传统名校教材,但作者在南加州大学攻读获得硕士和博士学位,因此该书吸收了欧美优秀教材的风格,且文笔简洁流畅。该书的内容及习题难度适中,便于课堂教学及自学,是一本适合本科教学的好书。
如果一个本科生能够学好本教材,并在后面的硕士阶段,学好UIIman的《算法设计与分析》,之后再将《算法导论》学习好,则必将打下坚实的算法理论基础,为终身的职业生涯所受用。
3兴趣培养
本课程的教学对象是大学理工科三年级学生,要求他们不仅具备数学分析、概率及线性代数的基础,而且具备离散数学和数据结构等计算机专业基础知识。很多学生刚学过数据结构,翻开算法教材,有似曾相识的感觉。教材中确实有部分章节如数据结构,排序算法,图的遍历等取材于数据结构课程。因此会有些学生学习热情不高,认为是在学习重复的课程。
针对这一情况,首先我们会教育学生两课程的目的是不一样的。数据结构的目的是教会学生如果对现实世界中的事物及对其信息处理过程建立数据模型;而算法设计课程的重点是算法的效率问题,其主题是算法的空间和时间复杂度,主要论述如何运用算法技术改进已有一些算法的效率,或者对复杂问题进行求解。
近年来,计算机硬件和软件技术发展迅速,CPU、外存、内存的性能在持续提高,价格却大幅度下跌。因此有很多人认为,软件的效率已经不再重要了,只要提高计算机系统的配置就足够了。这种观点显然是错误的。
我们在第一节的绪论课中引用《算法导论》的例子,深入浅出地阐明了算法效率的重要性。设有两个排序算法:其一是插入排序,时间复杂度为c1 n*n, c1是一个不依赖于n的常数;其二是归并排序,时间复杂度为c2 nlog n,c2是一个不依赖于n的常数,一般情况下c1< c2。n是待排序数列的长度。对于这两个实质上属于不同数量级的算法,很多人并未真正感觉到log n比n优化多少,甚至当n较小时,插入排序比归并排序还要快速一些。但是我们必须认识到,当n逐渐增大到一定数值以后,无论c1比c2小多少,归并排序均比插入排序快速。在大规模数据集上排序结果的对比,则效果更为显著。假若在高性能计算机A(10亿指令/秒)上运行插入排序,而在低速计算机B(1千万指令/秒)上运行归并排序。此时硬件条件是机器A比机器B快了近100倍;软件先决条件是 c1值为2, c2值为50;数据集的规模n为100万。
计算得到:
机器A运行时间为2*(100万*100万)/10亿=2000秒
机器B运行时间为 50*100万*lg(100万)≈100秒
结果是惊人的,用了快100倍的机器处理相同的数据集,反而慢几乎20倍。如果数据集大10倍为1000万,那么机器A要算2.3天,机器B只要20分钟,这一差距是令人震惊的。
事实上,算法技术的发展没能跟上硬件的发展,其发展空间还很大,盲目崇尚硬件建设而忽视算法技术的观点是错误的。
在电信应用中,虽然硬件和软件技术发展很快,但是用户的需求更是呈爆炸式增长。一个国家网内就可能有成百万实时在线用户,每秒几十万次用户交互发生,夜间有成千万的话单记录要处理。当一台内存中存放近百万用户资料,则浪费16个字节就是浪费16M空间。如果记录的数据结构及处理算法设计不合理,则内存很容易不够用,大量工作任务会被抛弃。要在这样的平台软件上构建软件,必须对每个字节空间、每个计算机指令的使用优化到位。否则,即便有先进的计算机系统,一般的软件技术是无法承受高性能、高容量计算的需要的。算法技术能支持开发人员在软件设计阶段从理论层面保障系统的效率达到最优。
经首次引论性教学,绝大多数同学认识了算法课程重要性,明确了学习目的,获得了较好的教学效果。
4理论教学
课程教学组在教材内容上选择了以下内容:
(1) 算法分析基本概念,数学预备知识。这些都是本课程工具性方法。
(2) 堆和不相交理论。介绍了能有效实现优先队列的数据结构。
(3) 归纳法、分治、动态规划。介绍了计算机技术中十分重要的递归为主题的设计技术,递归要求能够将待解问题抽象为递推表达式,确定初试值和递推终止条件后就能将复杂问题化解为嵌套的简单问题。
(4) 贪心算法。介绍了如何求解最优化问题。
(5)NP完全问题。介绍不确定性图灵机在P时间内能解决的问题,这类论题对于培养学生将来思考问题复杂度是个导论。
(6) 回朔法。介绍有组织的穷尽搜索算法,对一些问题尤其是解空间很大的问题有效。我们介绍了3着色、8皇后等经典问题。
(7) 概率算法和近似算法。一般性介绍近20年来算法研究迅猛发展的领域,以扩展学生知识面,但不做考核要求。
其他内容如数据结构、图遍历等是数据结构和图论课的内容,本课程内不做讲解,供学生预习课程时选读;对于域指定问题的迭代改进和计算几何技术等高级课题,推荐学生根据兴趣自学。
近年,越来越多的国内高校主张双语教学。我们也有这样的规划,但是考虑课程有一定深度,三年级本科生英语运用还有限,为此达到最好的教学效果,在教学中先采用中文教学。但是我们鼓励学生同步阅读英文版教材,以更好地适应未来科研和国际化软件研发的需要。
5科研方法及实践能力培养
科研式教育并不是新生事物。在二十年前,我国清华大学、中国科技大学等名校就对高年级学生讲授研究生课程,并进行导师制研教结合型教学,使得很多学生读研时就能取得优秀的成果。作者所执教的是重点工科院校,有很多有利的因素便于我们展开科研式教学:一是有超过60%的学生主观上有本科毕业后继续深造的愿望;二是学校有丰富的图书馆资源,能全文检索CNKI、硕博士论文、IEEE、ACM、ELSERVIER、SPRINGER等中外优秀电子数据库。在教学中,作者也将在科研中读到的一些新颖实用且难度适中的论文摘录下来介绍给学生,并将自己研究生阶段的学习方法介绍给学生。除了阅读教材,我们还鼓励学生读一些高端的杂志,例如计算机学科领域的四大学报,ACM期刊,Software Experience and Practice,Information Processing Letter等刊物,从其中检索感兴趣的论题。读核心期刊有几点好处:这些刊物审稿严格,文章无论是学术性、前瞻性、理论正确性及写作水平都有保证;减少检索的开销。读者可以先在这些高水平杂志中找到自己感兴趣的主题后,再广泛检索与主题相关的其它刊物或会议文章。引导学有余力的本科生读高水平论文并不是过高要求,算法设计及数据结构教材中大部分章节内容其实也都是来源于前二十至五十年的国际知名算法学术期刊,其中选择ACM、IEEE及ISAM杂志内容的比例最高。现在的一些学术期刊中刊出的优秀算法,过几年就会被大量的引用或实际应用,也许再过十至二十年后就会被引入未来的教材之中。
我们认为,在本科高年级展开研究式教学对学生长远发展有好处。对打算深造的同学,可以潜移默化地引导他们思索自己未来的发展方向,有很多成功的学者就是在大学受到某门课程老师的影响而走上科研道路的。科学研究是一个漫长的过程,很多工科博士生学习到第三、四年后才开始发表一级论文,很多硕士生毕业前才急忙撰写可发表成果。而同时有些博士生入学两年就能取得丰硕的成果,很重要的因素是他们在本科高年级阶段就培养了研究型思维,为以后深造明确了方向并作好了理论准备。如果本科阶段就培养研究型学习方法,那么在日后深造过程中多出成果就是水到渠成的事。而如何培养学生良好的研究习惯,正是我们教师要不断探索的论题。
重视理论而实践不足,是我国高校普遍存在的问题。
在国际上,知名的软件鲜有来自中国人的原创。所以我们要更加重视培养学生实践能力。
实验环节,我们布置了基本的排序、递归、贪心、回溯等论题的实验,鼓励学生用不同的编程语言实现,不仅仅是单纯的算法实现,最好能够编制出实用美观的界面,将算法更友好地呈现出来。无论以后的工作或者深造,目标是可应用或者可发表的成果,都需要研发者具有较高的实践能力。我们认为实践与理论教育是并重的。
6结束语
通过四年的教学实践,学生对此课程实践的参与度越来越高。通过教育方法的不断改进,学生的课程成绩也一届好于一届。更为重要的是,通过启发引导式教育,很多同学开始萌发研究型思维,课余经常向老师提问,有的问题有较高难度,老师都要回去研究资料才能解答。在来自本校新入学的硕士生中,不少同学反映受益于此课,有些同学读研究生后不久就在一级学报上发表了算法类论文,这也正是我们当初所期待的。我们教师仍然要不断提高自身科研水平,并将研究成果及方法引进课堂,提高教学效果和质量。
教学中,还发现一个现象,数学系的学生比计算机系的考试成绩要高一些。最简单的因素,是他们理论思维能力更强,如何因材施教,改进教学方法及增强工科学生学习本课程能力,是我们课程教学组今后要探索与研究的方向。
参考文献:
1引言
随着经济和信息技术的发展,计算机科学与技术专业已经发展成为我国招生规模最大,培养学生最多的专业之一,计算机专业不仅需要高层次的计算机科学家和研究员,更多需要的是系统掌握计算机科学理论、计算机软、硬件及网络知识的应用型人才,计算机专业教育应以人才市场为的导向,融合在相关学科的知识,满足经济社会发展的对新型复合型人才的需求。在社会对计算机人才的需求呈现多元化的今天,对基础扎实,具有过硬的技术背景,又有较强实践能力和有较强市场意识的应用型计算机人才的需求旺盛。因此,从商科类院校的实际特点出发,探索商科类院校的计算机科学与技术专业人才培养及特色,突出特色和优势,是值得认真研究和需要亟待解决的问题。
2明确人才培养目标,满足人才市场需求
国家信息化的发展步伐在加快,信息产业对人才的需求在进一步增加,从人才就业形势来看,一方面用人单位急需实践能力强,学有所长的计算机人才,另一方面又存在计算机专业的毕业生找不到理想工作的问题。究其原因,主要是计算机专业毕业生的知识结构与用人单位的需求存在一定的距离。计算机专业培养的人才应该是熟练掌握计算机软件开发技术,精通计算机程序设计;掌握计算机网络软硬件技术,能够从事计算机网络应用技术开发和网络编程技术;掌握计算机硬件技术基础,具备计算机硬件或产品开发的潜力;并且通过对上述三个方面知识的选修课程模块使学生在某一个方面学有所长。商科类院校计算机科学与技术专业应该结合现代商科特色,与经济、管理等学科结合,渗透和交叉,培养出特色鲜明并且有竞争优势的学生。
3培养目标与专业特色
商科类院校计算机科学与技术专业要坚持为经济建设和社会发展服务。人才培养目标可以确定为:本专业培养德、智、体、美全面发展,系统掌握计算机科学理论、计算机软硬件及网络理论及应用知识;基础扎实,综合素质高,实践能力强,具有市场意识和创新精神,能够在企事业、政府部门、学校等单位从事计算机软件、硬件、网络系统的研究、开发和管理等工作的应用型高级技术人才。
商科类院校的计算机专业,培养的是“应用型”人才,通过自身已经存在的商科人文环境,着重培养学生的学习、分析与解决问题、开展创新活动的能力,使学生不仅有计算机软、硬件及网络应用知识,又有经济和管理的知识背景,使学生既懂计算机技术,又懂得一些经济和管理方面的知识;当然,培养出来的学生首先应该符合计算机专业人才培养规格要求,学生学有所长;同时,和其他院校相比又应具有商科知识背景,能够在相关专业领域从事信息技术服务、技术管理和市场开拓工作。使学生既懂技术,又会经营管理。
4商科特色的应用型计算机人才培养目标的实现
商科特色的应用型人才培养是由教师教学、学生学习、培养目标、培养模式、教学管理、教学计划、教学内容、教学方法、教学手段等多个方面共同作用来实现的。2006年9月,教育部高等学校计算机科学与技术教学指导委员会编制了《高等学校计算机科学与技术专业战略研究报告暨专业规范(试行)》,由高等教育出版社出版,其中提出了4个参考的专业方向,即计算机科学、计算机工程、软件工程以及信息技术。商科类院校计算机科学与技术专业适合信息技术方向。
4.1课程体系的设置原则
在培养方案和教学内容安排时,即要注重基础理论、基本知识、基本技能的培养,又要突出商科特色,还要注重实用技术与工程开发能力的培养。计算机科学与技术专业培养的学生首先应该满足人才培养规格要求,在计算机软硬件和网络方面有较扎实的基础和较宽的知识面;学生要熟练掌握软件编程技术、计算机网络及网络设备的配置和使用和计算机硬件系统或产品的开发潜力,能够解决生产、生活中的实际问题的能力;课程设置可以从计算机软、硬件及网络三类课程入手,构成课程体系和课程模块。在商科特色的培养方面,要注重学生经管、管理知识和理念的培育。通过教学计划设置商科课程,让学生了解企业经营和管理的实际问题,通过讲座或案例,让学生了解现代企业经营管理模式,通过成功IT企业的案例作为现实教材,使学生在经营、管理和创业等方面能够学以致用。通过实践教学使学生具有较强的解决问题能力,获得一技之长,能够结合企业的实际情况,解决生产中的实际问题,缩短企业对人才需求的距离。
4.1.1专业的核心课程设置
为了满足计算机科学与技术专业人才培养规格,在专业核心课程的设置方面要满足人才培养规格的需要,开展与各有关课程配套的教学大纲、教材建设工作,把本学科领域前沿的优秀学术成果增加到教学内容中去。如下表所示。
4.1.2商科特色的建设
商科类院校计算机科学与技术专业,在培养方案中要体现商科背景的培养。主要通过六个层次的教学实现,首先,在公共基础课中开设经济学通论、管理学通论二门课程;第二,在人文科技选修课中,限制学生选修6个学分的经济管理类课程;第三,在专业选修课中开设财税实务、项目分析与策划、行业营销、企业登记运行等专题讲座;第四,在独立实践教学环节中,设置计算机市场调研、电子及计算机产品营销实践等实习环节;第五,在专业课中,结合学科建设的优势,开设电子商务技术、信息管理等方面的课程;第六,鼓励学生参加经济、管理类学术交流活动,辅修经济管理类第二专业;发挥商科类院校的特色。
4.1.3实践教学体系建设
实践教学通过课程内实验、独立开课实验、实习、课程设计、毕业设计、第二课堂、创新学分设置等实现。独立的实践教学环节,如计算机导论实验、C语言程序设计实验、大学物理实验、面向对象程序设计实验、计算机网络工程实验、大型数据库系统实验、计算机市场调研、电子及计算机产品营销实践、专业实习、毕业实习、面向对象程序课程设计、数据结构课程设计、网络工程课程设计、软件综合课程设计、毕业设计等。实验场地可以建设计算机专业软件和计算机网络实验室,建立软件技术校内实习基地,如建立软件技术创新实验室,程序设计基地等。利用社会资源,建设校外实习基地,满足学生的实习、实践需要。构建立体的实践教学体系。
5综述
商科类院校计算机科学与技术专业特色,通过培养方案开设商科类课程、实践教学环节、第二课堂、学术交流活动、辅修专业、开设计算机在经济管理学科领域的应用课程等方法,具体落实学生商科背景、经济管理的知识培育,发挥商科院校专业教学、科研优势。
通过建立稳定的校外实习基地,使学生尽早接触社会,了解当地经济建设和生产实际需求;提高学生实践能力。建立软件技术创新校内实习基地,鼓励学生积极参加课外科技创新活动,形成良好的科技创新和专业学习氛围,培养高水平的应用型人才。组织学生参加“大学生程序设计大赛”,全国“挑战杯”课外学术科技作品竞赛等活动,为学生提供更多的科技创新活动机会,提高学生专业学习的主动性和积极性,形成良好的科技创新和专业学习氛围,促进专业建设和实践教学工作,培养出高水平的具有商科特色的应用型高级技术人才。
参考文献
[1]蒋宗礼,王志英,李晓明,孙吉贵,樊晓桠.构建计算机科学与技术专业公共核心课程[J].中国大学教学,2007,(11).
研究高端科学技术的人们,不仅要懂得电子计算机是如何工作的,而且还要知道它是如何制造出来的,要了解它从一个几十吨重的庞然大物变成今天的笔记本电脑的演变过程;把它当工具使用的人,则只要了解电子计算机的基础知识,学会编制程序的方法,就能得心应手地开展自已应用领域的工作,没有必要去过问它是怎样造出来的;把电脑当作玩具者,则只要知道计算机的操作命令就行了。当然兴趣不一样,玩的方法也就各有特色。科技产品、工具、玩具只是人们在各自使用范围内对计算机的不同理解,但它显现出来的本质仍然是一台不折不扣的电子计算机。
鉴于电子计算机与人们是如此亲密无间,电子计算机也就必然从高端科技演变成为人们的基础知识。2006年3月,曾任美国卡内基・梅隆大学(CMU)计算机科学系主任,现任美国基金会(MSP)计算机和信息科学与工程部(CISE)主任的周以真Jearmette M.Wing教授,在美国计算机权威刊物《Communicatons of the ACM》上,首次提出了计算思维的观念。计算思维这一观念提出后,立即得到美国教育界的广泛支持,并引起了欧洲的极大关注。2007年9月19日,欧洲科学界、工业界和政府的一些领导者还在布鲁塞尔皇家科学院召开了一次名为“思维科学――欧洲的下一个政策挑战”的会议。
在国内,为了紧跟国际学术动态,推动教学理念的更新,全国高等学校计算机教育研究会早在2003年10月31日,就在桂林电子工业学院主办了全国“计算机科学与技术方法论”专题学术研讨会,在热烈的讨论中,也萌发了计算思维的理念。本次会议有来自全国百余所高校的150余位代表参会,还吸引了哲学界、物理学界的学者参加,讨论中不仅有相同的观点共识,也有对立的论点交锋,会议开得热烈、成功。大会收到论文100余篇,其中64篇由核心刊物《计算机科学》杂志专辑发表。
5年之后的2008年10月31日,全国高等学校计算机教育研究会又在桂林电子科技大学召开了“计算思维与计算机导论”专题研讨会,探讨了科学思维与科学方法在计算机学科教学创新中的作用。来自全国80多所高校,包括70多位计算机学院院长、主管教学的副院长在内的近百名专家出席了会议。在本次会议上,桂林电子科技大学董荣胜教授、武汉大学费定舟教授、国防科大李婷婷博士、著名计算机教育家苏运霖教授、中国人民大学赵总宽教授等分别就有关计算思维与计算机导论、计算思维与计算机方法论、哲学思维、计算思维及科技创新、历史上重大科学发现与技术创新中蕴含的计算思维、中国古代科学中蕴含的计算思维――算法化思想、计算思维在各学科领域的应用、计算思维在计算机学科各门课程中讲授的经验和体会等内容作了大会报告,探讨了在教学过程中如何以课程为载体讲授面向学科的思维方法,以及这种讲授对国家科学与教育事业发展的作用等。
这两次会议的核心宗旨是期望促使我国计算机教育界的同行们要更新思维,尽快适应计算机科学领域发生的根本性变革。
2008年6月29日至7月14日,中国国家科学基金委员会组织了计算机科学代表团,访问了美国的lO所大学和美国国家科学基金会。访问成员对“计算思维”有了更强烈的感受:中国工程院院士、国家自然科学基金委员会副主任、清华大学孙家广教授说:“最具有基础性和长期性的思想是‘计算思维’。这也给中国计算机科学技术的学科建设工作提供了很好的参考”。中国计算机学会理事、国家自然科学基金委员会信息科学部二处(计算机学科)处长刘克教授说:“在大学中推进‘计算思维’这一基本理念的教育与传播工作也非常必要”。中国计算机学会高级会员、2007年中国计算机学会王选奖获得者、中国科学院计算技术研究所研究员徐志伟总工程师说:“‘计算思维’就本人了解而言,这可能是近十年来最具有基础性、长期性的学术思想。这个思想由美国国家科学基金会主管计算机与信息科学与工程学部的副主任珍妮特・文(Jeannette Wing)博士提出。简言之:计算思维是一种本质的、所有人都必须具备的思维方式,就像识字、做算术一样;任务是在2050年以前,让地球上每一个公民都具备‘计算思维’能力。换句话说,以前要‘扫盲’,是扫‘文盲’,在21世纪,要扫‘计算机盲’。当然,要做到这点,必须说清楚什么是计算思维。”他又说:“计算思维这一思想也部分地给出了初步理论,可用于解释为什么美国正在发生各种学科、教育、科研活动和机构变革的实践。这也给中国计算机科学技术的学科建设工作提供了一个很好的参考。这个思想还应该更正面地理解,即计算思维的普及可以从科学界、研究界开始,给予科技人员一种新的视角和思维方式。”徐志伟总工程师最后总结说:“计算使人们能够发现与创新CDI(Cyber Enabled Discovery and Innovation),是实现计算思维的第一个美国国家科学基金会的重大计划。它的目的是,通过计算思维的创新和进步(包括概念、方法、模型、算法、工具和系统等),对科学与工程领域产生新理解、新模式,创造革命性的研究成果。”
从以上这些论述来看,在2050年以前,要让地球上每一个公民都具备“计算思维”能力,要扫“计算机盲”。因此,应把计算思维看成是一种本质的、所有人都必须具备的思维方式。国际上已经在大声疾呼了,我们中国的计算机教育工作者岂能坐视不理,我们应该结合国情,奋起直追!
2010年7月19日至20日,北京大学、清华大学、浙江大学、复旦大学、上海交通大学、南京大学、中国科技大学、哈尔滨工业大学、西安交通大学九所知名高校在西安交通大学举办了“C9高校联盟计算机基础课程研讨会”。教育部高等学校计算机基础课程教学指导委员会主任陈国良院士亲临大会,作了“计算思维能力培养研究”的报告,并主持了该专题的讨论,各有关高等学校计算机基础课程教学负责人 及骨干教师出席了大会。经大会研究讨论后就增强大学生计算思维能力的培养发表了“C9高校联盟计算机基础教学发展战略联合声明”。这是个好兆头,作为全国高等学校计算机教育研究会,我们在表示积极支持的前提下,还要力争在促进建立“计算思维”的观念上作出贡献。
那么,什么是计算思维?
周以真教授指出:“计算思维代表着一种普遍的认识和一类普适的技能,每一个人,而不仅仅是计算机科学家,都应热心于它的学习和应用。”他又说:“计算思维是每个人的基本技能,不仅仅是计算机科学家。我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Reading Writing and Arithmetic――3R),还要学会计算思维。”
中国科学院计算所李国杰院士说:“计算思维运用计算机科学的基础概念求解问题、设计系统和理解人类行为,它选择合适的方式陈述一个问题、对一个问题的相关方面建模,并用最有效的办法实现问题求解。”李国杰院士还认为,计算机科学本质上源自数学思维和工程思维。然而,计算思维远远不只是为计算机编程,它是抽象的多个层次上的思维,与“读写能力”一样,是人类的基本思维方式。他强调,“计算思维是每个人的基本技能,不仅仅属于计算机科学家。”他建议,在培养孩子们的解析能力时,不仅要求其学会阅读、写作和算术,还要学会计算思维。
因此,我们可以这样来认识计算思维:计算思维是运用计算机科学的基础概念来进行问题的求解、系统的设计以及人类行为的理解等,它包括了涵盖计算机科学广度的一系列思维活动。计算思维是一种本质的、所有人都必须具备的思维方式,就像阅读、写字、做算术一样,成为人们最基础、最普遍、最适用和不可缺少的基础思维方式。
计算思维的普及可以从科学界、研究界开始做起,它能给科技人员一种新的视觉和思维方式。
在大学里推进计算思维这一基本理念的教育和传播工作是十分必要的,建议面向所有专业的大学新生开一门“怎么像计算机科学家一样思维”的课程。还应当让没有进入大学之前的学生接触计算的方法和模型。要培养具有“计算思维”能力的中国计算机本科大学生,就需要制定出具有“计算思维”能力特色的教学计划。因此,对我国现行教学计划的创新改革已经到了刻不容缓的时候了。我国计算机教育界同行已经在审时度势地审定和修改现行的教学计划,发掘新特色,寻找新亮点。
在全民中有计划、有步骤地进行计算思维观念的宣传和普及工作,也应当提上议事日程。美国人已经提出,在2050年以前,要让地球上每一个公民都具备“计算思维”能力,要扫“计算机盲”。因此,应该把计算思维看成是一种本质的、所有人都必须具备的思维方式,激发人们对计算机领域科学探索的兴趣,使计算思维成为一种常识。周以真教授说,“我特别需要抓住尚未进入大学之前的听众,包括教师、父母和学生,向他们传送下面两个信息:智力上的挑战和引人入胜的科学问题依旧亟待理解和解决。这些问题的解答仅仅受限于我们自己的好奇心和创造力。”
结论应当是:当计算思维面向所有的人,所有的地方,真正融入人类活动的整体,不再表现为一种显式哲学的时候,计算思维就将成为一种现实。
综上所述,不妨把计算思维看成是“基础的回归”,把学习计算机科学看成像学习数学或英语一样的基础知识。主修数学或英语的人,可以从事各种各样的职业。主修计算机科学的人,当然也可以从事各种各样的职业,比如,一个人在主修计算机科学以后,可以直接从事医学、法律、商业、政治以及任何类型的科学和工程职业,甚至艺术工作。也就是说,在原来的数、理、化、天、生、物六大基础学科的基础上,加上计算机科学而成为七大基础学科。
这里还要阐明几个概念:
计算思维是概念化,而不是程序化。因为计算机科学不只是为计算机编制程序,而是要像计算机科学家那样去思维,进而要求在抽象的多个层次上思维。
计算思维是人的思维,是人类求解问题的一条途径。计算机的思维方式也决不是要人类像计算机那样去思考。计算机的工作非常机械、枯燥、沉闷,人类则聪颖并富有想象力,是人类创造了计算机,给计算机赋以智能和激情。当人类为自己配置了计算机系统,人类就能够用自己的智慧来解决那些在计算时代之前不敢尝试的问题,进而实现“只有想不到,没有做不到”的境界。
计算思维是数学思维和工程思维的互补与融合,和所有学科的形式化基础都是建筑在数学之上一样,计算机科学在本质上也来源于数学思维。又由于人类建造的计算机系统是一个能够与实际世界互动的系统,计算机科学在本质上又来源于工程思维。由于基本的计算机系统受到的限制,迫使计算机科学家必须进行计算性思考,不能只是单纯地进行数学思考,而要开拓视野,用构建虚拟世界的自由来使人类能够设计出超物理世界的各种系统。
计算思维是人类的思想活动,不是人造的物品,它不只是以人类生产的软件、硬件等人造物的物理形式到处呈现并时刻融入人们的生活,更重要的是,它是人类用以接近求解问题、管理日常生活、建立与他人交流和互动的计算概念。因此,不能把计算机科学只等同于为计算机编制程序,也不能把主修计算机科学局限于狭窄的就业范围,更不能认为计算机科学的基础研究已经完成,只剩下工程实现的问题了。当人们行动起来去改变这个领域的社会形象的时候,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景了。
计算思维不仅是计算机科学家的思维,它已经不局限于计算机领域,计算机科学家对各种学科都产生了兴趣。例如,他们坚信生物学家能够从计算思维中获益,计算机科学也确实对生物科学作出极大贡献,它不仅具有能够从海量的序列数据中搜索寻找模式规律的本领,最终还能用体现数据结构和算法(指计算抽象和方法)自身的功能方式来表示蛋白质的结构,计算生物学正在改变着生物学家的思考方式。类似的,计算博弈理论正在改变着经济学家的思考方式:纳米计算正在改变着化学家的思考方式;量子计算正在改变着物理学家的思考方式。当然,计算思维不仅仅限于科学家,计算思维应该成为每个人的技能组合成分。可以这样认为:普适计算之于今天就如计算思维之于明天。普适计算让今天实现了昨天的梦想,而计算思维将是明天的现实。
计算思维是利用启发式的推理寻求解答,它可以在不能确定的情况下进行规划、学习和调度。实质上就是搜索、搜索、再搜索。
计算思维是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行权衡。我们来看一些日常生活中的事例:当你的孩子早晨去上学时,他把当天所需的东西放进背包,这就是“预置和缓存”;当有人弄丢了自己的物品,你建议他沿着走过的路线去寻找,这就叫“回推”;在什么时候停止长期租用的物品而为自己买一个呢?这就是“在线算法”;在超市付费时,你应当去排哪一个队呢?这就是“多服务器系统”的性能模型;为什么停电时你的电话仍然可以用呢?这就是“失败的无关性”和“设计的冗余性。”当计算思维真正渗透到每一个人的生活之中的时候,“预置和缓存”、“回推”、“在线算法”、“多服务器系统”、“失败的无关性”和“设计的冗余性”等专业词汇也就成为人们的日常语言了。
计算思维既然与人们的工作和生活如此密切相关,计算思维理所当然地应当成为人类不可或缺的一种生存能力。当今的信息社会已经离不开计算机了,未来的社会一定更需要计算机来加速实现美好的愿景。从事计算机科学技术研究和计算机教育的同行们,我们有责任首先成为具有计算思维能力的先驱者和促进者,大家首先要齐心协力地用计算思维的观念和能力把自己武装起来,再用自己的切身体会去培育更多的人们具有计算思维的观念,再把计算思维的观念提升到计算思维的能力。我坚信:通过大家的共同努力,一定能把国际上流行的“2050年全世界的每一个公民都应具有计算思维能力”的预言变成现实!
参考文献:
[1]裘宗燕.C++程序设计语言(特别版).北京机械工业出版社,2002.7.
[2]StandleyB.lippman.C++Primer中文版.人民邮电出版社,20006.3.
[3]谭浩强.C程序设计(第二版).清华大学出版社出版,2005.6.
[4]钱能.C++程序设计教程.清华大学出版社,2005.5.
[5]沈美明.IBMPC汇编语言程序设计.清华大学出版社,1993.9.
[6]钱晓捷.汇编语言程序设计.电子工业出版社,2003.
【参考文献】
[1]翟乃强,隋树林,汇编语言与C语言及VisualC++混合编程[J].青岛科技大学学报,2003,24(B09):136~138.
[2]钱晓捷,汇编语言程序设计(第二版)[M],电子工业出版社,2003.6.
[3]钱春英,浅谈C语言与汇编语言混合编程的一些技术[J].南通航运职业技术学院学报,2005,4(1):50~52,55.
[4]郭晓梅,汇编语言与C语言的混合编程及应用[J].南京农专学报,2002,18(4):49~52,62.
[5]普拉塔.CPrimerPlus(第五版)中文版[M].人民邮电出版社,2005.
[6]斯马尔迪诺.教学技术与媒体[M].高等教育出版社,2008.
[7]教育部考试中心.全国计算机等级考试二级教程——C语言程序设计[M].2010年版.北京:高等教育出版社,2010.
参考文献:
[1]周以真.计算思维[J].中国计算机学会通讯,2007,(3):77-79.
[2]董荣胜.计算思维与计算机导论[J].计算机科学,2009,(36):50-52.
一、计算思维与离散数学
根据周以真教授的定义,[1]计算思维是运用计算机科学的基本概念来求解问题、设计系统和理解人类行为,包括了一系列广泛的计算机科学的思维方法。比如,在解释一个看起来比较复杂的事物时,计算思维通常会采用约简、转化、仿真等思维方法;在处理复杂的问题时,通常会采用抽象以及分而治之的思维方法。计算思维采用多视角、最适合的表示方式来表述一个问题,或者对问题的某个特定方面进行建模,从而使问题易于理解和处理。周以真教授认为一个人具备计算思维能力体现在如下几个方面:给定一个问题,能够理解其哪些方面是可以计算的;能够对计算工具或技术与需要解决的问题之间的匹配程度进行评估,能够理解计算工具和技术所具备的能力以及其局限性;能够识别出使用新的计算方法的机会;能够在任何领域应用诸如分而治之等计算策略。
离散数学作为计算机相关专业的一门重要基础课,它所研究的对象是离散量的结构以及相互间的关系,其内容对后续的数据结构、编译原理、数据库原理、人工智能等计算机核心课程都具有非常重要的作用。通过学习离散数学,可以培养和提高学生的抽象思维和逻辑推理能力。而抽象思维和逻辑推理恰恰是计算机科学最常用的思维方法,也可以说是计算思维的核心所在。因此,离散数学教学内容所蕴含的思维方法恰恰体现了计算思维,另一方面,也可以从计算思维所包括的思维方法角度重新审视和梳理离散数学的教学内容,从培养计算思维和解决实际问题两个角度展开教学内容和教学方法方面的研究,更好地进行离散数学的教学,从根本上解决传统离散数学教学中所面临的问题。
二、基于计算思维培养的离散数学教学内容改革
在离散数学的教学中,讲授的具体知识点基本都涵盖了计算思维中其它基本概念和思维方法。比如数理逻辑部分就涵盖了归结推理、约简等常用的思维方法,等价关系涵盖了软件测试中常用的样本点选取的思维方法;代数结构涵盖了抽象的思维方法。为了更好地展开教学,针对离散数学的教学内容进行了基本概念和思维方法的抽取,并在实际教学过程中将这些计算思维中的方法传输给学生。例如,在讲解数理逻辑中的归结推理方法后,将以伪代码的形式表达其算法,并且鼓励学生利用LISP语言完成命题逻辑的归结推理算法。同时,在给出归结推理算法后,对算法的复杂度、完备性、可终止性等问题进行简单论述,从而告知学生谓词逻辑本身是不可判定的。下面两个表格(见表1、表2)列出了在教学过程中整理出来的部分教学知识点与计算思维的对应关系。限于篇幅,在此不一一阐述。
三、基于计算思维培养的离散数学教学手段改革
在对教学内容进行改革的基础上,采用何种有效的教学手段展开教学,是能否培养学生计算思维能力的关键。在教学过程中,主要采用两种方法:归纳学习法和案例驱动法。
所谓归纳学习法是通过归纳思维,形成 对知识的特点、中心、性质的认识、理解与运用。在教学过程中,讲解完具体的教学内容后,都会将其蕴含的计算思维方法进行归纳总结,并利用其蕴含的计算思维方法去解决一个实际生活中的问题,比如:在讲解完代数系统部分的内容后,其蕴含的主要计算思维方法就是抽象,从而可以将有理数四则混合运算、实数运算和复数运算等抽象为代数系统。然后,就可以引入面向对象程序语言中的抽象概念,包括类、对象等,很好地将离散数学中的教学内容与学生所熟悉的编程语言有效地结合起来。一方面,加深学生对教学内容的理解,另一方面,学生能够灵活运用所学的计算思维解释现实问题。
归纳学习法是从教学内容出发,提炼计算思维,解决现实问题的过程。而案例驱动教学法则是根据现实问题,使用计算思维引出教学内容的过程。在教学过程中,如果突兀地引入具体的教学内容,而不对其应用场景进行阐述,大部分学生都会感觉无法理解。为此,引入了案例驱动教学法。例如,在介绍最短路径算法时,一般先引入旅行商问题,然后利用抽象的思维方法将一些无关的因素去掉,进而构建出一个抽象图的形式呈现出来的模型,自然地引入了最短路径算法。同时在算法介绍过程中,可以对权值所表示的含义进行解释,既可以表示时间也可以表示路长,从而产生两种不同的路径。最后可以让学生把这一问题推广到软件项目管理中关键路径的处理,激发更深层次的思考。在讲述欧拉图的时候,可以类似地展开案例教学法。首先,给出著名的哥尼斯堡七桥问题,然后利用抽象的计算思维方法忽略桥的宽度、距离等无关的因素,从而对哥尼斯堡七桥问题进行建模,自然地得出欧拉图的定义。
四、结束语
作为计算机相关专业的核心基础课程,离散数学为计算思维能力的培养提供了一个很好的平台,也为更好地展开离散数学教学内容的组织和教学方法的改革提供了思路。本文在分析离散数学教学内容和计算思维的内在关系基础上,从教学内容和教学手段两个方面进行了一定的探索,将计算思维的培养有机地结合到离散数学的教学过程中。从教学效果和学生反馈来说,都取得了显著的成效。然而,在加强了计算思维的培养之后,还要求能够应用新的思维方法解决具体的专业问题,能够推陈出新,提出新的思维方法。这些方面仅仅依靠离散数学的教学还远远不够,需要将计算思维的培养理念贯穿于各个专业课程的教学过程中。
参考文献:
.Communications of ACM,2006,49 (3):33-35.
[2]周以真.计算思维[J].中国计算机学会通讯,2007,3(11).
[3]李国杰.计算思维不仅仅属于计算机科学家[N].大众科技报,2009-08-02(B01).
[4]孙家广.计算机科学的变革[J].中国计算机学会通讯,2009,2.
中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)17-4728-02
Discussion andResearch of Continuity Mode of Computer Professional English
XIAN Min, ZHOU Li-fen
(Qujing Normal University Computer Science and Engineering College, Qujing 655001, China)
Abstract: Computer professional English is one of the important courses in computer, which plays an important role in improving the computer science students to understand and absorb advanced knowledge in the computer field .Computer Professional English courses which has their specificity, combines computer technology, specialty English and public English. The traditional teaching model of education can not adapt to a new era of education. This paper combinated with the practice, discusses and researches the continuity mode of computer professional English and gives some suggestions and methods
Key words: computer professional English; continuity; teaching mode
随着科学技术的发展,计算机技术已经渗透和融入到人们的工作生活与学习中。以计算机和通信技术为代表的科技技术已经对世界经济,文化,军事,教育,文化产生深远影响。计算机科学发源于欧美国家,近几年,我们国家的计算机科学也有一定的发展,但是由于最新的计算机科学技术仍然来自于欧美国家。做为计算机专业人才,必须掌握最新的科学技术,由于计算机技术具有更新较快等特点,一般是一年半就要更新,硬件平均三年半就要提升一档,这样的发展速度也就决定了要及时从国外接受先进的计算机技术知识[1]。由于受到语言环境的限制,如果将国外的最新的技术翻译为中文,首先是时间较缓慢,另外由于翻译以及计算机知识的固有特点,引进后的技术和文档会影响技术的理解与应用。于是,计算机专业英语教学成为解决此类问题的一个突破口。计算机专业英语模式的改革与研究会直接影响教学效果。
目前国内的计算机专业英语课程开设在大三年级,大一大二主要学习公共英语,而且该课程是一门跨学科课程,它将计算机专业与英语有机地结合在一起,但又区别于某一具体的计算机专业课程或者一般的英语语言课。正是由于该课程的特点,计算机专业英语的教学模式有探讨与研究的趋势和必要。保留传统的模式的优点,借鉴新模式,联系实际,让计算机专业英语课程成为提高学生英语和专业课程的文化修养的重要途径。
1 传统教学模式与连贯性教学模式的区别
计算机专业英语包括英语科技文献的特点与常见表达方式,计算机专业知识的英语表述,计算机主干学科和研究领域的概论。一般的大学教学采用启发式教学,在课堂中通过复习旧知识,学习新知识,对知识进行评价这三个教学过程完成基本教学。并且一般的高校在大三进行专业英语的教学,通常只有一学期,这样对整体提高学生对科技英语和专业英语的能力有限。因此在魏元春,陈伟等人在《计算机专业英语的连贯性教学模式研究》中[2]提及到连贯性模式。受此启发,在计算机专业英语的教学实践中,对连贯性教学模式进行探讨与研究。
1.1 传统的教学模式
传统的专业英语教学模式不仅有时间短,因为一般都在大三一学期进行,同时教师在课堂上一般采取课文教学模式。专业英语教材一般课后都有计算机专业词汇,很多老师都花上不少的时间进行单词讲解,然后才回到课文进行课文讲解,包括课文翻译。在传统的教学模式中,学生感到课堂枯燥,老师为如何让这门课程上得更生动和精彩感到困惑。学生因为有大一大二的英语基础了,如果再简单地对专业英语用传统的教学模式进行课堂教学则不合适。
1.2 连贯性教学模式
连贯性教学模式是指专业英语的教学需要贯穿在每个学生的整个大学过程中。连贯性教学模式旨在将专业英语的教学融入到学生的专业知识中。在此教学模式中,不是简单的大三的一门专业课程,而是许多课程,教学方式的整体融合。
1.2.1 连贯性教学模式过程
在整个大学教学过程中,四个过程是相互连贯相互辅存,一环扣一环。在大一阶段,着重打好公共英语的基础,但是一般公共英语的老师不会在课堂中引入专业英语词汇。这就要求专业基础课程老师在平常的教学中引入一些简单的专业英语词汇。例如在大一的《计算机导论课程》中,会涉及到软盘硬盘等词汇,专业基础课老师可以在此时引入floppy disk ,hard disk 简单英语词汇。同时对一词多义的单词进行强调,比如“block”单词,即有“块”的意思,也有“分程序”的意思。另外对专业英语中经常涉及到的缩写词进行引入。比如“CPU”,“AI”等词汇。大二学生在上计算机专业课程的基础上,增设专业英语课程,在这门课程中除了系统的介绍计算机专业词汇,语法,特别是要强调科技英语。比如:Table and Graph, Document Conventions, Description and Listing ,Academic papers等,通过引入这些科技英语,让学生知道科技英语的写作与翻译,在此阶段,强调中英科技英语的互译。大三学生即有了专业英语的基础也有了专业知识的基础,在此基础上,增设双语课程,原滋原味地吸收英文计算机课程与相关文档,对其能力的提高有个质的飞跃。大四实践阶段,有了前面三年的积累,在这阶段让学生更多的接触一些国外会议,国外文章,从毕业实践到毕业答辩尽可能地用全英语进行。
1.2.2 连贯性教学过程实践方法
通过前面的分析,以及传统模式和连贯性教学模式的互相比较,取双方之优点,在具体的连贯性教学过程实践中,把握教学指导思想,注重实用性,针对性,连贯性,在整个教学过程中从感性认识到理性认识到质的飞跃。
1) 科技英语
加强科技英语的认识,在连贯模式中,不能忽视科技英语的重要作用,科技英语起到为学生打开世界之窗的作用,学生理解科技英语的知识点和写作,才能看懂国外文章书籍,理解知识。
2) 加强学生中英互译的能力
由于学生有公共英语的基础,对普通的中英互译不感到困难,但是对于计算机英语本身固有的特性,它不仅是计算机词汇与公共英语的融合,更多的是科技英语的渗透。由于其特殊性,所以要特别加强学生中英互译的能力。
3) 教师能力的提高
连贯性教学模式不仅要求教师有较强的专业基础知识还要有深厚的英语功底,这样才能在教学中潜移默化的把专业英语渗透给学生。学校应多提供机会给教师进修英语,提高口语表达的能力,同时也应当让教师参加更多的计算机国际会议,了解最前沿知识。
4) 教学方法多样性
教学方法是教学活动的灵魂,合理有效的灵活多变的教学方法能够教好地组织教学活动,改善刻板的教学状态,取得良好的教学效果[3]。在专业英语教学中,不能简单地通过词汇介绍,导读翻译,总结内容,布置作业等常规教学方法进行教学。可以通过因材施教,课堂上讲解中等难度的文章,针对学有能力的同学可以布置一些较高难度的文章进行阅读理解[4]。适当地引入多媒体教学,在多媒体教学中引导学生如何查阅国外最新成果的文章[5]。
5) 学生思维能力的转变
通过在课堂上引入中外科技论文进行对比,让学生比较中外科技论文写作的区别与特点。英文科技论文一般是在文章中先给出推论或者结论,再一步步介绍原因。学生掌握这种思维方式后,无论是对写科技论文还是阅读外文文献都有帮助。
6) 开设双语课程
在适当的年级开设双语课程,双语课程是以中英文同时为讲授语言,但是教材选用影印版国外文献或原版文献。通过双语课程,让学生不仅学到国外先进的知识,因为这部分知识不需要翻译,直接理解,不会产生歧义,同时学会西方思维,进一步加深对科技文章的理解,最后学会自主式学习[6]。
2 结论
保持传统教学模式的优点,借鉴连贯性模式的新理论,在此基础上,对大学计算机专业英语进行新的教学模式的探讨与研究。连贯性模式贯穿于大学四年,连续性很强,需要学校制定相应的教学大纲以促进该模式更好地被执行。该模式的实践需要教师队伍和学生队伍的配合。本文分析了连贯性模式的过程,以及相应过程中应当把握的教学重点,并对教学实践中的方法进行研究与分析。该连贯性模式不仅为学生打下良好的英文文献阅读能力,也为有能力进一步深造的同学提供了更好的平台。
参考文献:
[1] 崔玉宝.谈计算机专业英语的学与教[J].华北航天工业学院学报,2003,13(4):60-62.
[2] 魏元春,陈伟.计算机专业英语的连贯性教学模式研究[J].科技信息,209(20):3-3,6.
[3] 姚越.浅谈计算机专业英语的教学[J].福建电脑,2009(5):202.