人人范文网 范文大全

基于计算思维的程序设计类课程教学实践.

发布时间:2020-03-03 23:06:53 来源:范文大全 收藏本文 下载本文 手机版

8 月65 计算机教育 Computer Education 第 15 期2012 年 10 日 中图分类号:G642 文章编号:1672-5913(201215-0065-04基于计算思维的程序设计类课程教学实践 丁金凤1,李英梅1,徐建山2,盛琳阳1 (1.哈尔滨师范大学 计算机科学与信息工程学院,黑龙江 哈尔滨 150025;2.哈尔滨商业大学 计算机与信息工程学院, 黑龙江 哈尔滨150028 摘 要:介绍计算思维的概念和特征,提出在程序设计类课程中强化计算思维的两种方法,即上机操作和算法多样化。以哈尔滨师范大学计算机科学与信息工程学院C 语言程序设计课程为例,介绍强化计算思维训练的教学实践手段。

关键词:上机实验;算法多样化;教学实践

计算思维不同于传统的数学思维,它不关注逻辑关系、推理演算的严谨程度,而是强调问题解决的操作过程和应用实践。《中国高等院校计算机基础教育课程体系2008》提出了计算教学培养应用能力的三大要求:操作演示能力、应用开发能力和创新实践能力。程序设计课程作为计算机应用技术的基础课程,掌握问题求解的算法和实现算法的具体过程是重要的培养目标,这些都需要强化计算思维训练实现。基于计算思维的程序设计课程就是要在教会学生计算机编程的同时培养他们的计算思维能力。

1 计算思维

计算思维最早是由美国的周以真(Jeannette M.Wing教授在美国权威计算机杂志《Communications of the ACM 》上定义的,她指出,计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。计算机的计算思维建立在计算过程的具体实现和约束之上,利

用程序语言控制机器解决实际问题。计算思维的本质是抽象和自动化,计算思维的抽象是使用符号代替实际问题中的各种变量,每个程序包括各种标识符、常量、变量、数组、函数和结构体等符号语言,这些组合在一起就构成了程序设计语言。计算思维的自动化则体现在程序的机械式执行,这也是冯•诺伊曼计算机体系的本质特征。要实现自动化,就必须要设计精确的算法和严格的程序语言体系。计算思维的主要特征如下。

1计算思维是严谨规整的。完备的算法是计算机程序解决问题的基本要求,它的实现必然要使用严格的数学符号描述。数学符号本身就是一种有限确定性的描述问题手段,所以算法必须要保证每一步的操作都是确定无二义的,所以计算

思维体现的正是严谨而又规整的逻辑思维。

不同于人们用自然语言描述现实生活的各种现象,计算思维使用形式化语言科学地描述问题以及求解过程,这样可以避免由于文化习惯的差异造成的二义性现象。比如自然语言“丁老师在上课”可以理解为“丁老师在教课,她在教别人”,但也可以理解为“丁老师在听课,别人在教”。计

基金项目:2010年黑龙江省高等教育教学改革工程项目(2010-45;黑龙江省教育学会“十二五”科研规划课题(XHY125-016;哈尔滨师范大学科技发展省预研项目(10XKYY12,10XYS-03。

作者简介:丁金凤,女,讲师,研究方向为数据库与知识库、网络应用;李英梅,女,副教授,研究方向为数据库、软件工程;徐建山,男,讲师,研究方向为网络计算与网络应用。

2012

66 计算机教育

Computer Education 算思维要求用确定、形式化并且无二义性的语言描述问题,这就要求在程序设计课程教学过程中强化计算思维训练。比如学生在编写程序时使用了错误的符号或者语法,都会在编译或者运行时提示错误,我们需要引导学生纠正自己的错误,培养他们严谨的科学实证精神和编程的良好习惯,这些都属于强化计算思维严谨性的范畴[2]。

2计算思维是目标明确的。计算思维是用来解答问题的,它将实际生活中的问题以抽象化和程序化的形式表示出来。通常解答问题的过程如下:发现问题、分析问题、思考问题、解决问题和反思。在程序设计课程的教学过程中,要注意培养学生依据已有的知识体系,提出问题、解决问题的能力,着重强化利用计算思维的方式描述问题和使用机器语言解决问题的训练。例如,火车分段计费问题就是我们在日常生活中感受到的问题,学生可根据自己对火车收费的理解写出数学式,然后用多分支结构算法进行描述,最后上机实现。

3计算思维是机械化的。用来描述问题解决问题的算法有3种形式:①生活算法:完成某项任务的计划,例如一个学期的学习计划;②数学算法:对一类计算问题确定统一的求解方法,例如一元二次方程组的求解公式;③计算思维算法:精确描述问题和求解问题的自动化形式语言,比如高级程序设计语言。计算思维算法强调利用计算机的速度和存储优势,通过严格机械化的操作时序解决实际问题。比如“鸡兔同笼”问题可以使用两个二元方程组进行数学求解,但是计算机算法则可以使用穷举法进行简单重复的操作求解,充分利用了计算机的计算速度优势。在程序设计课程中强化计算思维训练,可以让学生掌握使用机械化思维进行信息处理的能力[3]。

2 计算思维强化训练策略 2.1 以上机实验为重点

笔者在讲授程序设计类课程教学过程中,摒

弃传统的理论灌输和课后练习的教学模式,采用以上机实践为重点的计算思维教学模式,让学生在亲手操作中学习知识、消化知识,以战代练,强化计算思维。具体的策略包括如下几个方面。

1提高上机实验的地位。程序设计类课程本身就是一门实践型学科,在进行教学活动之前,需要跟学生沟通,让他们明白上机实验的重要性,同时认识到上机不是仅仅为了强化实践能力,而主要是为了培养他们积极思维,自己发现问题、解决问题的计算思维能力。授课教师也应该认识到上机实验应是程序设计课程教学的核心。

2保证实验内容,体现计算思维。要强化计算思维,首先要在实验内容上下功夫。教师要不断学习和创作适合学生知识和心理特点的实验内容。实验内容不应是课堂内容的简单复习,要给学生提供计算思维的创新空间。课堂内容也要符合实验内容,要给学生留问题,让他们自己分析总结,在实验上机时解决,提高自主思维能力。在实验过程中遇到困难和错误,不要轻易否定和批评学生,要指导他们分析难点和错误,让他们自己解决。实验课程要给学生提出新的解决方案或排除未知问题的满足感,激发他们的学习积极性,大胆创新。

3增强实验的趣味性和综合性。实验内容不能太枯燥,也不能是课上例题的验证和重复,这样会使学生失去学习兴趣。应该多选取学生感兴趣的实际问题作为实验内容,利用学生的兴趣增强实验内容的综合型,从而提高学生的计算思维能力。比如在分支程序结构中,安排火车计费程序进行计算思维训练。

2.2 以思维多样化为核心点

由于学生思维能力和心理特征存在个体差异,在程序设计课程的教学活动中,应倡导多样化的算法思维,培养学生的探索精神和创新意识。强调多样化的算法思维,可以有效地强化计算思维,让学生明白“条条大路通罗马”的道理。具体策略如下。

学科建设与教学改革 第 15 期67

1尊重不同的认知方式。计算思维多样化的本质就是尊重学生不同的认知方式。由于认知方式存在差异,在程序设计课程的教学过程中必然会出现思维多样化的现象。教师要尊重这种认知方式的差异,鼓励学生根据自己的兴趣,从不同角度发现问题和分析问题,用不同的算法解决问题,用不同的程序实现算法。

2增强计算思维的重构性。所谓重构,就是在已有的程序基础上衍生出的新的解决问题算法实现。这种通过分析已有程序的优缺点,修改并把自己的思维融入新程序的过程,就是最好的锻炼计算思维的训练手段。好的算法不一定适用于每个问题和每个学生,并且几乎所有的算法都有局限性。在设计上机实验内容时,教师要考虑给出一些可供学生重构的程序片段,培养他们的思维创新能力。

3充分利用算法的简化和优化过程。除了要尊重认知差异和思维重构性,教师还要引导学生进行反思和创新联系,到达简化和优化算法的目的。这个简化和优化算法的过程可以很好地强化计算思维训练,帮助学生举一反三地学好程序设计课程。

3 C语言计算思维能力培养实践

课堂教学采用任务驱动的方式。例如,可以选用涵盖所有知识点的“猜数游戏”程序,让学生围绕这个程序循序渐进地学习,便于思维训练的连贯性。猜数游戏程序知识点分布如表1所示。

序号逐步改进的猜数游戏涉及知识点

1运行结果只给出信息“猜对了”单分支的if语句

2运行结果给出信息“猜对了”、“猜错了”双分支的if-else语句

3运行结果给出信息“猜对了”、“猜大了”、“猜小了”多分支if-else语句以及switch语句

4让猜数者不断地猜数,直到数猜对循环结构

5让猜数者不断地猜数,直到数猜对,但程序中限制猜数的次数循环结构以及break语句、continue语句6通过多次,猜对4个数值组成一个序列数组

7将猜数游戏中“判断数值大小程序”使用函数调到的方式函数 8利用指针实现猜对4个数值的猜数游戏中的相关函数指针 9在程序中保存猜数游戏,猜对学生的班级、姓名结构体 10在程序中保存猜数游戏的排行榜文件 表1 猜数游戏程序知识点分布

C语言程序设计课程中的思维能力训练主要培养学生分析问题、决策和解决问题的能力。我院除了课堂教学中采用项目驱动的方式授课,更加注重个体思维和操作能力的培养,上机环节采用“验证-调试-设计”的形式设计实验内容,力求在课上和课下都有强化计算思维的专项训练。具体做法如下。

1规范化上机。实验采用流程化管理的方式,对于任何实验内容,都要求学生按照“阅读题目-分析总结-设计算法-编写实现代码-上机调试-优化程序”的顺序进行,引导他们养成良好的思维能力和编程习惯,逐步训练、提高他们分析解决问题和开拓创新的能力。

2兴趣化培养。一成不变的枯燥内容很难调动起学生学习的积极性,教师在编写教案时,要多选取贴近生活和趣味性的内容。比如出租车的计费方式和if结构结合、个人所得税的计算和switch结构结合等,这些日常生活中的问题都可以让他们感兴趣解决。

3简优化训练。在鼓励学生发散思维,提倡算法多样化的同时,C语言教学还要引导学生思考和分析已有算法的优缺点,进而进行简化和优化。比如“百鸡百钱”问题,大多数学生都采用三重循环的算法实现。我们就可以提出改进方

2012

68 计算机教育

Computer Education 案,鼓励学生积极思考如何采用二重循环的方式实现,然后再比较两种算法的性能,三重循环的次数达到了100万次,而二次循环是1万次,性能提升了99%。一个简单的循环就可以让学生认识到算法优化的魅力,这就可以让他们继续思考如何简化问题,公鸡数量不可超过32,就可以在循环中把公鸡数量由100降到32,同理,母鸡也降到98,这样循环又降低了10 000-32×98=6 864次,比之前的二重循环又减少了70%左右,这一系列的简优化处理,对于增强计算思维能力有极大的促进作用。

4 结语

程序设计课程中的计算思维训练对于计算机学科培养高素质技术人才的培养目标是十分重要的,因为计算思维可以帮助学生理解计算的实现机制,还有利于他们进行实践和创新。计算思维的本质就是信息思维,也就是用计算机的方式思考问题和表达行为,这也是计算机人才必备的能力。我们不仅要在程序设计课程中强化计算思维,还要努力把它推广到更多的课程中去,真正把强化计算思维做到实处。

参考文献: [1] 王荣良.信息技术课程中算法学习的价值探索[J].中国电化教育, 2008(8: 78-81.[2] 董荣胜.计算机科学导论: 思想与方法[M].北京: 高等教育出版社, 2007: 101-102.[3] 陈杰华.程序设计课程中强化计算思维训练的实践探索[J].电化教育研究, 2009(10: 84-85.(编辑:张玥 参考文献:

[1] 王刚.CDIO 工程教育模式的解读与思考[J].中国高教研究, 2009(5: 86-87.[2] 郝智秀, 季林红, 冯涓.基于CDIO 的低年级学生工程能力培养探索: 机械基础实践教学案例[J].高等工程教育研究, 2009(5: 36-40.[3] 陈春林, 朱张青.基于CDIO 教育理念的工程学科教育改革与实践[J].教育与现代化, 2010(1: 30-33.[4] 代钰, 张斌, 杨雷, 朱志良.多元化软件人才培养模式的探索与实践[J].计算机教育, 2009(22: 20-23.[5] 孙菁, 傅德胜.“密码学”课程教学方法的探索与实践[J].信息网络安全, 2009(7: 65-67.[6] 郑淑丽, 胡东辉, 侯整风, 等.信息安全专业“信息隐藏”课程的教学研究[J].系统仿真学报, 2010(2: 105-108.(编辑:郭小明

任务驱动的探究教学模式”相融合的方法,对课堂教学模式进行改革,将大大提升课堂教学效果,提高学生对理论知识的掌握水平;采用“协同学习,合作研究”的实验教学模式”将改变,学生对演示性、验证性实验缺乏学习兴趣的情况,让学生在互动、协作、讨论、探究的过程中掌握实验方法和实验手段,并巩固理论知识;采用“基于任务驱动的DIM 实践教学模式”,将课

堂角色进行必要的转换,主讲教师是指导者、提供建议者,而学生是实践任务的主题,通过分组DIY 的方式完成实验任务,这样可以极大地培养学生的学习兴趣、协作精神和创新能力。基于CDIO 的网络安全类课程教学模式的研究与探索将为信息安全专业课程体系的建设提供有力的支持和保证,并为CDIO 在信息安全专业建设的深入应用奠定理论与实践基础。

(上接第64页

《程序设计实践》课程实验内容

《程序设计实践》课程实验内容

计算思维

计算思维

基于计算思维能力培养的程序设计课程教学模式

程序设计类课程网络教学平台建设与研究

《C语言程序设计(实践)》课程教学大纲.

高职高专计算机程序设计类课程实验实训教学的改革与实践

《C程序设计》课程教学心得体会

信息技术课程中计算思维的培养

基于计算思维的程序设计类课程教学实践.
《基于计算思维的程序设计类课程教学实践..doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档