
计算机教育
Computer Education
第 19 期2012 年 10 月 10 日
中图分类号:G2
文章编号:1672-5913(2012)19-0017-03程序设计类课程教学改革与计算思维之培养
乔淑云,黄 刚
(徐州工程学院 信电工程学院,江苏 徐州 221111)
摘 要: 讨论程序设计类课程与计算思维之间的内在联系,提出在“知识、能力、素质”三位一体人才培养模式下非计算机专业程序设计类课程教学改革与实践,阐述如何构建“课堂+实验+网络”三结合的教学模式,即通过优化教学内容、创新实践方法等一系列举措,将程序设计的思想与方法转化为学生的创新精神和创新能力。
关键词: 非计算机专业;程序设计类课程;教学改革;计算思维
1 背景
高校非计算机专业开设的程序设计类课程主要有“C 语言程序设计”、“Visual C++程序设计”、“Visual Basic 程序设计”、“Visual FoxPro 程序设计”等课程(以下简称“程序设计类课程”),对改善大学生的知识结构,培养计算思维、创新精神与创新能力以及提高综合素质起着十分重要的作用。
美国卡内基●梅隆大学的周以真(Jeannette M. Wing)教授认为计算思维(Computational Thinking)是运用计算机科学的基础概念进行问题求解、系统设计、理解人类行为等一系列思维活动[1]。计算思维的本质是抽象和自动化,如同所有人都具备“读、写、算”能力一样,计算思维是人类改造世界的最基本的思维模式[2]。程序设计类课程中的许多知识都为计算思维的培养提供了很好的诠释和生动的案例,以“C 语言程序设计”为例,C 语言具有知识点多、概念复杂、规则繁多、使用灵活、自由度大、抽象度深等特点,而计算思维又涉及计算机语言的编程思路和
基本方法[3],特别是对问题进行符合逻辑的科学分析,抽象到数学层次上,并进行算法设计、编程与调试时。
2 程序设计类课程教学改革
2.1 教学现状及存在的问题
非计算机专业学生占我校全体学生比例约90%,针对他们的程序设计类课程采取大班上课,学生对程序设计怀着神秘兴奋的心情,但随着程序设计知识点增多,大量的难以理解和记忆的新概念、新术语、新规则出现以后,学生逐渐感觉课程难度大,与后续专业课程结合不密切,所以学习的主动性和自觉性下降,人在课堂,心却不在听课状态,厌学情绪明显,学习效益低下,程序设计类课程逐渐沦为“水”课。为端正学习态度、明确教学目标、提高教学质量,改革势在必行。
2.2 教学模式改革
在“知识、能力、素质”三位一体人才培养
基金项目:江苏省现代教育技术研究课题(2011-R-20006);徐州工程学院高等教育教学研究重点课题(GJY1110)。作者简介:乔淑云,女,副教授,研究方向为计算机基础教育、计算机应用; 黄刚,男,讲师,研究方向为计算机应用。
2012
18
计算机教育
Computer Education 模式下,将程序设计类课程原有的教师讲、学生听的被动模式转变为以“课堂+实验+网络”三结合的教学模式,如图1所示,实现由以传授知识为主向以培养能力为主转变。
序设计奥妙的网络学习环境,建立课程教学资源网站。
教学网站提供多媒体课件、教学大纲、电子教案、课堂视频等。CAI 课件、动画和教案不仅使学生感到生动有趣、易于理解,而且又能提问、讨论,达到师生互动的效果。教师通过该网
站或QQ 群对学生提出的问题进行辅导答疑,同时还能发现教学中存在的不足,及时调整教学内容和教学策略。学生在线学习并提交作业和实验报告,系统自动从程序的正确性、运行总时间、运行结果等各方面评测代码并返回评测结果。网络辅导将有限的课内时间延续到课外,解决了由于学生理解能力差异带来的课堂效果不佳的问题,有效训练了学生编程能力、自学能力和实践创新能力。
3 计算思维的培养
培养计算思维是目前计算机教育界研究的热点之一。我们采用如下两种方法将计算思维融入到程序设计类课程教学改革和实践中。
3.1 计算思维视角下的课程引入
首先,在引入程序设计类课程之前告诉学生编程能力是计算思维的具体表现。学生不仅要掌握计算机语言的相关知识,而且要能够应用程序设计的思想与方法分析和解决问题。
其次,引入程序设计类课程的目标:借助程序设计的知识载体,学习和掌握基本问题的求解过程和基本算法,培养良好的编程习惯,获得动手操作能力和应用开发能力,提高素质。
最后,介绍以程序设计为主线和计算思维为核心的教学内容。
3.2 基于计算思维的案例教学
针对逻辑推理、枚举法、选择结构、循环结构等重点教学内容,笔者选取日常生活中较有代表性的有趣教学案例予以说明。
案例 六位年轻的男嘉宾与一位女嘉宾均已
图1 “课堂+实验+网络”的教学模式
ܷာʼាὋܷာࠃᰍ
̾࣍˝˞Ὃ̾૾˝˞
͛૾ᅻខὋᜁҮΙᠺ
Ѹளዴᇷኪধ፤ࠃѸள
ܷာʼាὋ࠴ာࠃᰍ
̾ၶ˝ఴὋᎩፎᣘ࠭
۱ШᑞҦὋଡᰳገ
ुӐࠃ
ၿ᱒Ԫຓ
ᒬ˞ߥ˷
இ᭨ґ
இ᭨Ր
2.3 梳理教学内容,创新教学方法
笔者在深入研究非计算机专业学生认知规律、思维模式和专业背景后,按照课程知识的内在体系结构梳理教学内容,遵循由易到难、由已知到未知、由部分到整体的教学规则,制订低起点、小坡度、快节奏、高标准的教学策略,淡化繁琐的语法规则,突出重点,增加学科前沿知识,设计丰富的教学实例。笔者在第一堂课中展示经典案例及上届学生的优秀作品,使学生对本课程产生浓厚的兴趣。笔者在后续的课堂教学中不时地构思一些引人入胜的情境,启发同学思考,培养计算思维和创新精神。
在课堂教学中,笔者应用类似江苏卫视《非诚勿扰》节目化教学方法,灵活运用启发式、互动式、讨论式、案例式等多种教学方法。教师通过投影仪给学生演示经典程序案例编写的全过程,并在计算机语言集成开发环境下调试运行程序,消除学生认为程序设计难以掌握的心理,让学生能够直观地看到程序运行的整个过程,并对运行结果进行分析;教师留出充分的时间参与上机实验活动。通过完成大型综合性作业,学生不断提高自身分析问题和解决问题的能力,激发对新知识和新技术的求知欲。
2.4 网络环境下的实践创新
应用现代教育技术和网络技术将真实情境与模拟情境相融通,创设能够激发学生不断探索程
侍女一说:“我认为公主会嫁给科尔王子,或者是威廉王子。”侍女二说:“我想公主一定不会选择亚瑟王子,因为他的身材实在太矮了。”侍女三说:“不管怎么说,公主肯定不会嫁给菲利普、查理、路易斯三位王子,因为他们的国家正准备和我们打仗。”
事实上,三个侍女中只有一人猜对了。试编写程序,找出哪位王子能与公主喜结良缘。
为了找出伊丽莎白的白马王子,从计算思维的角度进行逻辑推理。首先引入逻辑运算符和逻辑表达式,规定一些符号变换规则,将三个侍女的话分别转换成逻辑表达式,给出综合判断条件,再借助这些符号和规则将逻辑推理过程在形式上变得像代数演算一样。表1定义了6个整型变量——A、B、C、D、E、F分别代表6位男嘉宾,变量取值为0表示不是伊丽莎白的白马王子,为1表示是白马王子。每位男嘉宾都有两种可能:“是(1)”或者“不是(0)”,6位男嘉宾按A、B、C、D、E、F顺序,有种取值:000000,000001, (111111)
表1 变量定义及取值
变量n A B C D E F
取值0000000 1000001 2000010 (63111111)
对案例题分析的目的是让学生懂得:
1)掌握解题的重要一步是将人的想法转写成计算机能够处理的表达式或操作步骤,要用到关系运算、逻辑运算和算术运算;
2)用计算机解题经常需要从多种可能性中寻找其中的一种或几种,因此,要用“枚举法”,当遇到大量重复计算时,自然就引出了循环结构;
3)分支是计算思维的重要方式。
笔者借助这个案例题把程序设计的基本概念和方法传授给学生,当学生建立起这种认识之后,在潜移默化中也就培养了逻辑思维和计算思维。
学生通过上机实践还可以体会到计算思维的精髓。“程序设计不是听会和看会的,而是自己通过上机练会的[4]”。实践要有目的地训练五种能力:1)分析题目,找到问题,并将其抽象为数学模型;2)构思算法;3)编写程序;4)调试程序;5)分析运行结果,一旦出错,应该仔细认真找出原因,提出改正的意见。
大多数学生对许多问题的看法是在小班实验课的讨论中逐渐清晰和升华,对思想启发、计算思维的培养起到推动作用。依据非计算机专业学生认知的规律,我们设计了生活化、趣味化的实验内容,如表2所示。
表2 实验内容
实验类型具体实验内容
综合、创新型实验
俄罗斯方块游戏
贪吃蛇学英语
旅游管理系统
基本设计型实验
身高、体重、体型判断
国王的许诺
高速公路收费站设计
模仿、验证性实验
常量、变量的定义和使用
算术、关系和逻辑运算
图形的输入和输出……
4 取得的成效
教学模式与教学方法的创新得到了广大同学的认可。问卷调查显示,选择“上课专心听讲时间比重为50% (下转第23页) 3 结语 在文科生的大学计算机基础课程中强化计算思维的培养是必要的也是可行的,通过精心的课程教学设计,可以让学生初步树立用计算机求解 问题的意识,认识到计算机对于人的优势和局限性,最终自觉地运用计算思维来看问题、思考问题和解决问题。当然,仅通过这一门课来形成计算思维是不够的,但是,作为21世纪人类的必备技能,计算思维的培养势在必行。 参考文献: [1] Wing J M. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.[2] 牟琴, 谭良. 计算思维的研究及其进展[J]. 计算机科学, 2011(3): 10-15.[3] 董荣胜, 古天龙. 计算思维与计算机方[J]. 计算机科学, 2009(1): 1-4. [4] 常亮, 徐周波, 古天龙, 等. 离散数学教学中的计算思维培养[J]. 计算机教育, 2011(14): 90-94. [5] 贾茹, 郝长胜, 裴衣非. Visual Basic 程序设计课程的计算思维教学实践[J]. 电脑知识与技术, 2011(25): 6266-6268.[6] 吴绍兵. 计算思维和程序设计能力的培养[J]. 计算机教育, 2011(16): 11-14. [7] 于晓强, 赵秀岩, 闫丕涛. 计算机程序设计课程中计算思维能力的培养[J]. 计算机教育, 2011(13): 18-21.[8] 邓家荣. 大众教育背景下的计算思维能力培养研究[J]. 文山学院学报, 2011(3): 52-54. [9] 陈杰华, 戴丽娟. 以培养计算思维为核心的程序设计实验教学[J]. 实验技术与管理, 2011(1): 125-127.[10] 牟琴, 谭良, 周雄峻. 基于计算思维的任务驱动式教学模式的研究[J]. 现代教育技术, 2011(6): 44-49. (编辑:孙怡铭) 参考文献: [1] Wing J M. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.[2] 周以真. 计算思维[J]. 中国计算机学会通讯, 2007, 3(11): 83-85. [3] 陈杰华. 程序设计课程中强化计算思维训练的实践探索[J]. 计算机教育, 2009(20): 84-85. [4] 吴文虎, 王建德. 世界大学生程序设计竞赛(ACM/ICPC) 高级教程(第一册) 程序设计中常用的计算思维方式[M]. 北京: 中国铁道出版社, 2009(7): 1-3. (编辑:彭远红) 图3 改革前后听课状态对比 " # $ % եា࿃খ இ᭨ґஇ᭨Ր 由于小班实验、网络辅导、讨论答疑等环节的设 计,大量的综合性知识内容被置于课堂外,教师需要提炼教学内容和回应讨论的问题,授课方式 上更趋于启发、引导、互动和课内外互通。 通过程序设计类课程教学改革与实践,非计算机专业学生不仅开阔视野、探索计算机世界的奥妙,而且培养了计算思维、追求真理的精神与实践创新能力。然而,计算思维的培养不是通过一两门课程的教学就能完全实现,而应该始终贯穿于所有与计算思维相关的课程中。 (上接第19页)
