导航菜单

以“计算机模拟”引导程序设计教学中的计算思维能力培养

贾月乐,张 静

(西南石油大学计算机科学学院,四川成都610500)

摘要:分析C语言程序设计课程教学过程中存在的问题,提出以“计算机模拟”为切入点,运用程序设计的方法实现过程模拟,从而达到培养计算思维能力的目标;设置与知识相关的案例,把思维训练融入教学环节,提升大学生运用程序设计的知识和方法解决实际问题的能力。

教育期刊网 http://www.jyqkw.com
关键词 :计算机模拟;计算思维;“知识相关”的案例教学模式;科研促教学

文章编号:1672-5913(2015)15-0041-05 中图分类号:G642

基金项目:西南石油大学高等教育人才培养质量和教学改革项目(2014JXYJ-27);四川省高校计算机基础教育研究会教育教学改革研究项目( 2014016)。

第一作者简介:贾月乐,女,讲师,研究方向为计算机仿真、计算机图形图像、虚拟现实技术,jiayuele@sina.com。

1 C语言程序设计教学分析

1.1 存在的问题

1)教学过程缺乏指导性思维方式的培养和训练。

C语言程序设计是一门非常重要的计算机公共基础课程。传统的C语言程序设计课程教学以学习C语言为出发点,忽略了通过课程对学生思维方式的引导和训练,导致“学习计算机知识”与“解决实际问题”是两个独立过程,不利于学生养成运用计算机知识思考并解决专业问题的计算思维习惯。

2)教学内容缺少与学生已有知识和能力的结合。

教师在授课方法上缺乏新意,使用的案例缺少实际意义,无法体现“程序设计是解决实际问题的好帮手”这一思想。此外,案例与学生习得的其他知识结构无交点,导致很难在教学过程中引起学生的共鸣。以上问题导致课堂教学缺少活力、学生学习缺乏兴趣,使学生的主观能动性受到了很大的局限。

3)教学过程缺少引导学生进行延伸性思考的环节。

教师在授课内容上过多强调语法,课程总结也大多是知识点的归纳,缺少引导学生针对所学知识进行延伸性思考的过程。对知识的应用方法和应用领域进行深度思维和再次认知是使所学知识应用范围最大化必不可少的过程,只有有效地开展该环节,才能加深学生对程序设计思想的体会。

1.2 计算思维在课程中的重要性

C语言程序设计是大学计算机基础课程,是培养学生运用程序设计方法和计算机语言解决实际问题的重要环节。课程不仅注重培养学生的编程能力,更注重培养学生运用计算机知识解决专业领域问题的能力。在这个过程中,计算思维会贯穿始终,指导学生运用计算机科学的基础概念对各领域专业知识进行问题求解和系统设计。

目前,计算思维在高校计算机基础教学过程中已上升到一个非常重要的地位。C语言程序课程应遵循以实际问题求解为主导的教学目标,把计算思维能力的培养思想融人到教学的各个环节中。

2 以“计算机模拟”为切入点的思维能力培养

2.1 计算思维能力培养

以学校多个专业的大四毕业设计题目为例,石油工程专业的瞬变流数值模拟算法研究、电子信息专业的红外图像场景识别算法研究、海面目标红外偏振探测能力仿真分析研究、红外成像系统性能仿真中的气象衰减特性建模仿真、校车乘员保护系统的数字化设计与建模、过程控制专业的UOE钢管成形过程仿真等众多题目,都是科研过程中运用计算机解决专业问题的应用型开发,程序设计知识在开发过程中起着非常重要的作用。但是以专业知识为依据,运用所学计算机知识进行抽象、分析和模拟来解决问题的能力是大多数学生缺少的,即使学习了程序设计课程,也有很多学生不知道如何找到突破口。其中一个主要原因就是思维方式的断层。

针对该情况,在授课过程中,教师应有效地把授课的基本出发点从学习程序语法转变为掌握程序设计思想;同时,设置与专业知识和学生已具备的知识体系相结合的典型案例,结合程序设计的知识,把案例以“计算机模拟”的方法直观展现。即教师通过计算机科学中的约简、嵌入、仿真等方法把较复杂的问题重新阐述,转化为计算机可以处理和模拟的一般过程,然后将这些过程以程序设计方法实现。这样的方式能激发学生的兴趣,引导学生的思考和实践,把培养计算思维方式训练作为课程教学的突破口,让学生感受到运用计算机知识解决实际问题的优势。

2.2 “知识相关”案例教学模式

为了验证以“计算机模拟”为切入点来培养学生计算思维能力的思路是否可行,我们在教学内容和教学设计中引入与“知识相关”的案例,在案例中引导学生将知识点与解决问题的方法对应起来,同时设置与案例相关的问题,引发学生对知识的延伸思考,从而达到计算思维方式培养的目标,提高学生的学习积极性。

以控制结构为例,以编写程序的基本过程为线索,我们展开“知识相关”的案例教学设计。控制结构是C语言程序设计课程中非常重要的知识点,现实中的控制过程都可由程序设计的控制过程描述。在结构化程序设计当中,任何复杂的算法都可由顺序结构、选择结构、循环结构组成。在学生具有了控制结构的基本知识后,重点应通过案例教学,强化学生对控制结构的理解以及程序设计在解决实际问题过程中的方法和作用,具体过程如图1所示。教学过程由分析问题、设计算法、算法实现和延伸思考4个环节组成:用计算思维的思想分析问题,用程序设计的方法设计算法,通过代码编写实现算法功能,通过科研实例进行延伸性思考,以此培养学生学习程序设计的兴趣。

3 物理知识相关案例

小球的弹跳是在日常生活中常见的现象,在高中学生们经常会根据物理学相关知识计算小球在运动过程中的状态,如高度、速度、位置等,但某个时刻的状态计算并不能完整地展现小球运动的全过程。如果运用计算机高速运算的优势,把小球运动的整个过程展现出来,将会是一件非常有趣的事情。

在授课过程中,我们在计算思维的帮助下,对具体问题进行分析,然后通过程序设计的方法,运用控制结构的知识,实现小球弹跳过程的模拟。

3.1 分析问题

假定小球在不受外力的作用下自由下落,在下落的过程中,小球的下落速度会越来越快,在接触地面后,小球反弹,随后随着小球的高度越来越高,上升的速度也会越来越慢。小球的运动过程可以用机械能守恒定律描述。

根据常识,小球并不会一直运动下去,其中,能量的损失是主要原因,而能量损失在小球与地面发生碰撞时最大。在小球与地面接触的瞬间发生了形变,部分能量会转换为热能,小球具有的机械能慢慢减少,最后小球的运动停止。

3.2 设计算法

我们以程序流程图为工具,用计算机可以识别和处理的方式模拟小球弹跳的运动过程,算法设计过程体现了计算思维。程序流程图可以有效地把语义描述转换为计算机可以处理的流程,通过顺序结构、选择结构和循环结构的有效组织,实现对计算机模拟小球运动的控制。程序流程图如图2所示。

假定小球做自由落体运动,模拟过程从小球准备下落开始。首先计算小球的初始能量,如果能量大于零,则小球可以做自由落体运动,否则保持静止。根据小球运动过程中位置的变化,判断小球是否与地面接触:如果小球没有接触地面,则根据机械能守恒定律计算小球每一时刻的运动状态;如果小球与地面接触了,我们将考虑能量的损失。然后,重新判断对小球的剩余能量,如果大于零,则运动继续,否则运动停止,模拟结束。

3.3 编写代码及调试

对照控制结构的基本知识点和描述小球弹跳的程序流程图,通过顺序、选择和循环结构语句的组合,结合物理公式的计算,参照分析阶段模拟小球运动时考虑的因素,我们就可以实现程序编码。同时,为了更直观地展现模拟效果,可以在程序实现的过程中引用图形绘制函数,用圆表示小球,用直线表示地面,使小球弹跳的运动更加形象。程序代码如下:

从模拟结果中可知,小球越接近地面,弹跳的速度越快,越接近高空,弹跳的速度越慢。随着与地面接触次数的增多,小球跳动的高度越来越低,直到运动停止。模拟的结果与日常生活所见基本一致。

3.4 设计与编码的关系

用C语言编程实现了小球弹跳模拟后,可以通过其他的程序设计软件或易于展示效果的图形引擎实现小球弹跳过程的模拟。在课堂上,教师展示使用Virtools图形引擎,以脚本式编程语言实现的小球弹跳过程模拟,编程脚本及运行效果如图3、图4所示。

模拟过程遵循相同的算法设计,虽然在最终展现形式上有所不同,但通过运行结果可知,该环境模拟的小球运动过程及运动规律与C语言编写的代码运行结果是完全相同的。通过这样的方式,学生可以更加深刻地认识到算法是程序设计的灵魂,而语言及编译环境则是实现功能的工具。学习程序设计课程在掌握编程方法的同时,更应重视程序设计思想和计算思维方式以及运用程序设计方法描述问题和解决问题的能力。

3.5 “案例讨论式”教学的延伸思考

小球弹跳的例子里,我们考虑的情况比较简单,分析涵盖的细节不多,专业性不强。如果我们把更多影响小球运动的因素考虑进去,如初始速度、初始角度、能量衰减因素、小球材质、地面属性等,加入更多的数学模型和物理模型,同时细化计算机的模拟过程,那么我们模拟的小球弹跳会更加接近实际情况。

计算机可以为学生的专业领域做些什么?把计算思维的理念与大家的专业知识结合在一起,用计算机模拟的方法进行数据计算量大、可重复度高的过程仿真,那么在专业知识的指导下,计算机的模拟结果将会对实际情况有指导意义。同时,计算机程序设计将会成为学生进行学术研究的有力工具。

3.6 以科研促教学

我们积极以科研成果促进教学效果,把计算机模拟与学校特色石油工程专业的具体应用相结合,如以“钻井模拟器”中的计算机模拟内容为例,展示一个模拟的钻井作业过程,用科研成果增强说服力;阐述程序设计与专业结合的方法,引导学生对模拟的内容和实现的过程进行思考,以提高学生的学习兴趣。

4 结语

“兴趣”和“参与度”是学生获取知识的原动力。课堂教学以“计算机模拟”为切人点,促进了学生养成用计算机解决问题的思维方式,在实际教学过程中从学生熟悉并感兴趣的现象和实例出发,合理有效地组织并运用“知识相关”的案例教学模式开展教学活动,促进学生对知识点的掌握;同时,通过“以科研促教学”的方式,注重教学过程中的师生交互,启发学生对编程知识和课程本身的深入思考。以兴趣培养的方式引导教学过程,启发学生深入思考的主观能动性,该方法在授课过程中达到了良好的教学效果。考虑到计算机与各学科知识的碰撞及融合,我们计划在今后的教学过程中推动计算机模拟在教学过程中的应用,有效地培养学生的计算思维能力。

教育期刊网 http://www.jyqkw.com
参考文献:

[1]苏晓红,王宇颖,孙志岗.C语言程序设计[M].北京:高等教育出版社,2013.

[2]丁岩,张宇昕.C语言程序设计课程改革与计算思维的培养[J]重庆与世界,2014(1): 84-86.

[3]张华,张淼,基于问题求解的C语言开篇教学研究[J].计算机教育,2014(1): 13-17.

[4]刘淑娴,阿里甫.库尔班,李晓华.简单案例为主线的教学模式在C话-言教学中的应用[J]计算机教育,2011(4):89-94.

[5]魏书堤,赵辉煌,邓红卫.基于计算思维的C语言教学案例设计[J]当代教育理论与实践,2014(6): 108-110.

(编辑:孙怡铭)

下载文本