徐艳艳,陈志泊,徐秋红
(北京林业大学 信息学院,北京 100083)
摘要: 针对北京林业大学计算机基础系列课程教学模式存在的问题,以C语言课程为例,分析“计算思维”在创新人才培养中的重要性以及课程的教学现状、教学定位和教学要求,提出基于“计算思维”的大学计算机基础课程教学改革方案。
教育期刊网 http://www.jyqkw.com
关键词 :大学计算机基础课程;C语言;计算思维;算法;实践教学
基金项目:以计算思维能力培养为核心的大学计算机基础课程的研究与实践(BJFU2013JG030);程序设计系列课程实验和考核方式改革研究(BJFU2014JG029)。
第一作者简介:徐艳艳,女,副教授,研究方向为人工智能、模式识别和形式化方法等,xuyanyan@bjfu.edu.cn。
0 引言
近10年来,计算机科学与技术已经成为新兴技术发展所必需的手段和方法,新技术的创造和发展源于先进的工具、先进的技术和先进的方法,计算思维与各个学科交叉和融合的趋势非常明显。
但是现在很多高校,包括北京林业大学,仍将大学的计算机基础课程停留在计算机工具应用教育的层面上,课程的内容和教学还未能深刻地反映思维和能力的培养,与计算机科学发展日新月异的现实不相适应,距离当前计算机已经广泛渗透到各个领域的现状有很大差距。因此,在大学的计算机基础教学中,应该将原来的大学计算机基础教学中的计算机工具应用教育转化为以“计算思维”能力培养为核心的计算机科学的通识教育,使之成为大学生科学素质培养的重要组成部分,这也是当前大学计算机基础课程改革的重要任务之一[1]。
1 “计算思维”在创新人才中的作用
早在2005年11月,美国卡内基梅隆大学计算机系主任周以真教授在第七届“二十一世纪的计算”大型学术研讨会就表达过这样的观点:“计算思维”是每一个人应该拥有的基本技能,它不仅仅只属于计算机方面的科学家。当我们在求解一个给定的问题时,首先会判断:这个问题的难度如何?它的最佳解决方案是什么?计算机科学凭借坚实的理论基础准确地回答这些问题。“计算思维”利用启发式推理来寻求解答,采用抽象和分解去处理庞大复杂的任务或者设计巨大复杂的系统。总之,“计算思维”是运用计算机科学的理论知识进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。
“计算思维”不仅是计算机学科的思维方式,在其他学科领域也具有深远影响。在生物学领域,生物学家用“计算思维”发展了计算生物学;在化学领域,化学家的思考方式受到纳米计算的影响;在经济学领域,经济学家用计算博弈理论进行经济分析;在物理领域,物理学家用量子计算建构新的物理模型。“计算思维”能力培养是创新人才培养中通识教育的重要组成部分,计算机科学教育的目的,除了要为各个学科提供解决问题的有效手段和方法之外,还要培养人拥有一种有效地解决问题的思维方式。在大学计算机基础教育中,对各种专业的学生进行计算思维能力的培养将有助于他们更好地进行专业知识的学习和理解,改变学生的创新思维过程与能力,并在今后的个人发展和从事行业的科学研究中产生潜移默化的影响[3]。
C语言课程是大学计算机基础系列课程之一,其教学目的是培养学生自觉运用计算机技术和方法去解决问题的能力[4]。在编程能力、逻辑思维能力和独立解决问题能力的培养和提高上,C语言课程对学生来说有着不可替代的重要意义[5],在专业知识的学习和使用上,也能对学生起到很好的辅助作用。
2 基于“计算思维”的C语言教学改革
2.1 C语言课程的传统教学模式
在C语言课程以往的教学过程中,教师授课基本上以语法教学为主,授课内容主要是C语言的语法和语义。课程结束后,对学生掌握语法和语义情况进行考核,考核方式一般采用闭卷笔试的形式。
以往的C语言课程教学虽然无论是课堂授课还是考核都易于操作,但教学效果不理想。比如说,单向的教与学的过程使得课堂上气氛沉闷、缺乏趣味,学生往往觉得枯燥,不能主动参与到课程中去;除此之外,学生虽然对语法和语义掌握得还不错,示例程序也能模仿,可是独立思考能力却严重不足,总体来说编程能力依然缺乏,不能解决实际问题。由此可见,基于语法的教学模式不能很好地培养学生的“计算思维”能力和编写程序解决问题的能力。
2.2 C语言课程教学模式改革的尝试
在长期的教学实践中,我们与学生反复沟通,在教学过程中深入思考、大胆尝试,对教学效果认真验证,得出这样的结论:基于语法的单向传授的教学模式不适应目前计算科学发展的现实,应该把基于“计算思维”的教学模式贯穿到C语言教学中,用新的理念和方法帮助学生提高能力。
2.2.1 内容上强调实践
以往的C语言课程内容强调语法,改革后,我们把“计算思维”引入课堂。基于“计算思维”的教学模式不再偏重语法,而是强调动手实践,重点放在思路上,课堂上以问题求解为核心,帮助学生解决问题,构建出数学模型后,引导学生得出算法并编程实现[6]。
2.2.2 课堂上突出互动
多强调课堂实践,将使得我们转变传统的教师为中心的教学观念。改革后,课堂上以学生为中心,将学生视为教学的主体,鼓励学生探索、研究和创新,并运用“计算思维”的教学模式引导学生求解问题、研究算法与编程。
在课上,教师的授课重点放在问题求解思路、算法和程序实现上,细枝末节不讲。实验课上,学生每人一台电脑上机解题。教师先提出问题,由学生自行思考如何设计算法,在学生遇到困难时,教师给予引导,学生最终编写程序并解决问题。在整个过程中,学生居于主动地位。教师实时了解学生的答题进程,在合适的时机给予引导,最后由学生自主完成任务。由于学生在课堂上充分展示了自己的能力,因此,教师能充分了解学生的学习进度,得到反馈信息后及时修订教学内容和难度。学生在实践的过程中得到了锻炼,学习由被动转为了主动。这种教学互动、学生编程答题与教师精讲加上答疑相结合的教学方式不仅能通过编程训练提高学生使用计算机解决问题的能力,还使得学生为了在课堂上表现好,不得不提前预习,课后不断练习,自主学习能力也得到提高。
2.2.3 考核上改为机试
以往的C语言课程考试同其他传统科目考试方式相同,均为闭卷考试,在题型设计上主要包括选择、填空、判断和程序题等。我们认为,C语言课程是强调实际操作能力的,而以往的考核方式却不能真正考查学生的实操能力,更多考查书本知识掌握情况。有的学生虽然在闭卷考试中拿了优秀,语法掌握得很好,可是独立设计算法和动手编程能力却并不强,在上机解决实际问题时依然举步维艰。
因此我们用上机考试取代了闭卷笔试。无论是期中还是期末考试,我们都把考场安排在了机房。根据之前的学习内容,事先在考试系统上出好题目。学生需要在实际操作中,按规定的考试时间提交完整的程序,测试通过即为合格。如果测试未通过,教师会通过查看代码,判断学生答题情况,给出适当的成绩。机试是对实际问题的解决,学生通过测试会有较强的成就感,对学生有更多的激励。能在机试中取得好成绩的学生,实际编程能力也必然是比较优秀的。
2.3 实施改革的成效
这种基于“计算思维”的大学计算机基础课程教学改革,在北京林业大学2013级的C语言课程教学中得以实施,并取得了一些成效。从改革实践来看,学生对C语言课程的学习兴趣越来越浓厚,编程能力越来越强,独立解决问题的能力也有所提高。统计结果表明,对于同样难度的一份试卷,教改后,学生的平均成绩提高了大约10分。
3 基于“计算思维”的教学改革和展望
针对C语言课程教学中以往存在的问题,我们以“计算思维”的理念为主导,进行了改革尝试,在内容上由强调语法改为强调实践,在课堂上由单向传授改为教学互动,在考核上把传统的笔试改为上机考试。实践证明,这种由问题设计算法、由算法引导程序,强调算法设计、淡化语法细节,重视实验课并使用考试系统的教学模式更有利于培养学生的思考能力以及编程能力。
除了C语言课程之外,北京林业大学计算机基础系列课程还包括计算机应用基础课程、VB语言课程和数据库课程等。对这一系列课程我们都进行了改革,挖掘“计算思维”的潜在影响,打破计算机仅是一种工具和技术的局限,在课程中培养学生的“计算思维”能力,使计算机基础课程在释放创新能力与创新思维中发挥了应有的作用,也进一步提高了大学计算机基础教学的质量和水平。
我们虽然已经初步取得了一些成果,但基于“计算思维”的大学计算机基础课程的改革并未结束。在未来几年,我们将在教学硬件环境发展的基础上对大学计算机基础课程做进一步改革。比如,可以把诸如C语言这样的程序设计课程改为在机房上课,这样能更好地实现教师和学生的互动,也能使学生更大程度地得到练习。再比如,我们可以在课程学习、实验和考试时引入在线评测系统或者和“计蒜客”网站合作[7],这样不仅能有效督促学生以提高学生的学习积极性,还能通过自动批改作业和试卷,大大节省教师的精力。总之,这些改革能更好地贯彻“计算思维”的思想,最终在大学计算机基础教学中达到“普及计算机文化,培养专业应用能力,训练计算思维能力”的总目标。
教育期刊网 http://www.jyqkw.com
参考文献:
[1] C9高校联盟. 九校联盟(C9)计算机基础教学发展战略联合声明[J]. 中国大学教学, 2010(9): 4.
[2] J.M. Wing. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[3] 陈国良. 计算思维: 大学计算教育的振兴科学工程研究的创新[EB/OL]. [2013-5-10] 2011(第八届)CCF中国计算机大会演讲稿. http://www.ccf.org.cn/resources/1190201776262/digital/cnccpdf/chenguoliang2011-12-12-10_03_14.pdf.
[4] 陈志泊, 王春玲, 徐艳艳, 等. C语言程序设计[M]. 北京: 清华大学出版社, 2012: 1-261.
[5] Stephen Prata. C Primer Plus[M]. 北京: 人民邮电出版社, 2008: 1-538.
[6] 吴文虎, 徐明星. 程序设计基础[M]. 北京: 清华大学出版社, 2010: 1-312.
[7] 北京矩道优达网络科技有限公司. 计蒜客[EB/OL]. [2014-11-23]. http://www.jisuanke.com.
(编辑:白杰)