与专业应用案例结合的程序设计基础课

2014-07-02 05:21赖锦辉
计算机教育 2014年8期
关键词:程序设计课程改革

赖锦辉

摘要:针对目前程序设计基础课程知识点分散,学生感觉枯燥和乏味,不知如何应用等问题,论述程序设计基础课程与专业结合教学的可能性,提出具体的案例教学设计和方法。

关键词:程序设计;课程改革;孤立;工具改造者;专业结合

0 引言

程序设计类课程是大学非计算机专业学生接触的第一门计算机编程语言,课程目的是提供一种广义的解决问题的技能n],可以用在任何编程设计中。在传统的程序设计类教学过程中,一般按照数据类型、操作符、分支语句、循环语句、输入输出、模块化、数据结构的顺序教学并举例说明。实践证明,这种过程周期较长,而且实验课程难以安排,尽管很多教师都对教学活动进行了很多改革以期提高教学质量,但有证据表明,如果不在一个具体领域内学习程序设计这样的抽象概念,学生很可能什么都学不会。程序设计类课程教学作到与专业应用案例相结合,使得学生学会设计程序去解决本专业领域的某些问题,而不是孤立地去讲解一个个分散的知识点。

1 程序设计基础课程教学现状

1.1 教师方面

当前,程序设计类课程的教学活动主要以教师讲解为主,大部分同学是课堂上听懂了,一旦自己编程就感觉很陌生,不知从何人手。为了提高教学效果,很多教师都作了改革,如用任务驱动法、项目教学法、PBL教学法㈤等。还有的教学改革是从课程建设角度来进行,从课程内容的补充完善、实训案例扩充、加强师生互动等方面进行深度探索。此外为了提高学生的自主学习能力,基于网络平台进行的教学改革也越来越多。

1.2 学生方面

目前一个普遍的问题是,学生抱怨程序设计课程内容过于抽象和枯燥。他们通常认为程序设计类课程是一门孤立的学科,与其他课程和将来工作没有关系,这导致很多学生对该门课程产生“无用论”思想和抵触情绪,更糟糕的是导致心理障碍,一看到代码就会产生恐惧感,更有甚者会从此拒绝学习与计算机有关的知识。

2 改革目标

教学实践表明,过多的抽象概念和理论只会在学生和教师之间竖起高墙。我们的目标是让学生能在很短时间内写出有意义的程序,而不是把重点放在语言细节上。因此在讲程序设计课程中直接使用专业应用案例,向学生展示程序设计结构和语句实例,进行实际的运行和数据测试,直面解决专业领域问题的方法。这种教学设计把原来孤立的程序设计转变成为面向专业问题的程序设计教学,通过设计良好的案例展示,学生不仅清晰地理解程序结构形成的过程,并将程序设计与专业问题的求解一并形成知识记忆关联,而不再是一个一个离散的程序设计语言语法知识点。所以讲好程序设计类课程的关键之一是使学生感到课程教学、作业和实验内容与他们专业应用和发展相关联。

大部分情形下,不必让学生从零开始编程,而是改造他人已编写好的程序用于解决新问题,形成新的功能,因此案例选择很重要。

3 具体专业案例教学过程

很多教师都知道专业结合案例教学的重要性,并努力做到教学活动不与专业脱节,但在选择案例上往往无从下手。实际上,在设计专业应用案例过程中,一些交叉性的、共性的东西,都可以作为结合点。

1)前期准备。

跨学科的教学方法对教师提出了更高的要求。首先,教师尽量固定在某个专业大类上课,深入了解专业群人才培养目标、培养计划和方案,及时关注社会新闻与行业动态;其次,要与专业课教师、辅导员等密切联系与沟通,积极参与学生社团和专业活动,努力将自身打造为“专家型教师;第三,教师要积极在自身潜力与教学方面不断挖掘,努力钻研,善于发现,认真研究应用案例与各个专业之间的最佳结合点,努力作好基础为专业服务的教学工作。

广东石油化工学院是华南地区唯一一所石油化工特色院校,高分子专业是特色专业,该专业主要培养具有高分子材料与工程专业的基础知识和专业知识,掌握高分子材料的化学组成、合成制备、结构与性能关系和加工应用等全面知识的高级技术人才。笔者以高分子专业为教学对象,在深入了解该专业开设课程及实验目标后,设计出符合高分子专业的程序设计案例,以求抛砖引玉,为其他教师带来示范。

2)案例挖掘。

在挖掘专业应用案例中,可以参考情境概念教学中所应用的不同案例:物理学专业喜欢使用力学的例子讨论速度和加速度,热动专业可能讨论反应速率和动态均衡的例子,国贸专业倾向于汇率、税务等的数值计算。对这些例子进行分析和理解后,教师可以再进行抽象,从中提取数据规律。实际上,从这些专业的分支得到的案例和基础知识,很容易同计算的概念结合。

以高分子专业为例,在“分子的立体构型”这一节中提到“杂化轨道”的理论,并且杂化类型包括sp1、sp2和sp3三类,其中甲烷(CH4)属于sp3杂化(英语:sp3 hybridization),是指一个原子同一电子层内由一个ns轨道和三个np轨道发生杂化的过程。原子发生sp3杂化后,上述ns轨道和np轨道便会转化成为四个等价的原子轨道,称为“sp3杂化轨道”。

在课堂上,要求同学们编程实现描绘出“甲烷分子sp3杂化轨道”,值得一提的是,高分子专业的学生对“sp3杂化轨道”的概念早就熟知,教师不必浪费时间去讲解题目,实际上,很多时候,对于教师要求的编程任务,如果学生费半天劲还看不懂题目,又何谈编程呢?

因为我们专业开设的程序设计语言是VB,因此,以vB为例,程序的最终结果如下。

图1是一个动态演示过程。首先,引导学生如何实现4个椭圆、2个小圆、X轴、Y轴以及箭头的绘制,特别要注意圆心的位置,这就要用到line()函数和circle()函数;其次,如何让y轴左右的圆向原点移动,这就要用到timer控件来实现动画;最后,当左右的圆移动到原点那一刻,如何显示图1(b)的结果,这实际上就是图1(a)的所有圆都消失,也就是用到CLS方法,而在消失那一刻,再用上述2个函数在窗体上绘制出图1(b)的5个圆,由此程序设计如下:endprint

Private SubTImerl_Timer()

Forml.Cls每次都清屏,重新在新的圆心位置画圆,因此就感觉是圆在移动

Line(5000,1000)-(5000,9000):Line(1000,5000)-(9000,5000)

Line(4900,1200)-(5000,1000):Line(5000,1000)-(5100,1200)

Line(8800,4900)-(9000,5000):Line(8800,5100)-(9000,5000)

X1=X1+10设置6个圆心位置,左边的圆圆心x坐标向右边增加,右边的圆圆心x坐标向左边增加

X2=X2-10

X3=X3+10

X4=X4-10

X5=X5+10:X6=X6-10

Circle(X1,5000),500,vbRed,,,0.5

Circle(X2,5000),500,vbRed,,,0.5

Circle(x3,5000),500,vbRed,,,0.5

Circle(X4,5000),500,vbRed,,,0.5

Circle(X5,5000),50:Circle(X6,5000),50

IfX3>4500 Then当移动到原点后,时钟控件间隔设为0,表示不再移动,然后把所有图像全部清除,显示新的图像

Labe12.Visible=True:Timer1.Interval=0

Form1.Cls

Line(5000,1000)-(5000,9000):Line(1000,5000)-(9000,5000)

Line(4900,1200)-(5000,1000):Line(5000,1000)-(5100,1200)

Line(8800,4900)-(9000,5000):Line(9000,5000)-(8800,5100)

Circle(5000,5000),1 500,vbBlue,,,0.7

Circle(3000,5000),500,vbBlue,,,0.5

Circle(7000,5000),500,vbBlue,,,0.5

Circle(3500,5000),50:Circle(6500,5000),50

EndIf

End Sub

3)能力引导。

能力引导包括3方面:一是让学生学会成为“工具的改造者”,也就是改造他人编写好的程序用于解决新问题,形成新的功能;二是学会在已有程序上进行相关联专业知识扩展;三是让学生了解专业领域中计算机的局限性所不能解决的一些问题。

仍以“甲烷sp3杂化轨道”为例,对于能力引导的第一方面,可以让学生编程描述乙烯(C2H4)、乙炔(C2H2)的杂化轨道,其杂化轨道分别是spl和sp2杂化;对于能力引导的第二方面,可以向学生提出问题,比如编程实现输入某一物质,根据相应的公式计算其杂化轨道数以及杂化轨道类型,设计界面如图2所示。

由以上案例可知,程序设计和化工并不是风马牛不相及,实际上,在程序设计中,化学与化工的理论计算、实验设计、数据与信息处理、分析和测试等都能应用在教学案例中。当然,学生也应该看到计算机的局限性,如对于光谱和磁性(例如氧分子的顺磁性)等理论的描述,用程序设计则很难加以解释,这是能力引导的第三方面。

4)学生实践。

在教学过程中选择案例不宜太复杂,应该能对学生有各种启发,比如编程描述实验原理、实验步骤、分析和处理实验数据等,也激发学生不断地在自己本专业的实验中挖掘案例并加深对该实验的理解。为了使学生编程能更深入,而不是简单地实现一些数据处理,可以把学生设计的专业案例作为期末成绩的主要组成部分。

5)作品展示。

经过一个学期的上机实践,很多学生都设计出了优秀专业案例,如图3—7所示。

4 调查与分析

笔者所在计算机中心全体教师积极做出尝试,历经一个学期的程序设计基础课程教学改革,不断挖掘专业教学案例,深入到各专业中与教师和学生互动,力求能消除学生对程序设计的陌生感和抵触感,同时也促进专业教师的发展和深化专业课程建设。表1为学生问卷调查与结果分析。

从问卷调查的结果来看,学生普遍对专业结合教学是很欢迎的,至少在他们看来是学得其所,而不是疲于应付考试。

5 结语

作为通识课程的程序设计基础课程有其抽象和枯燥的特点,如果将案例教学与学生所熟知的专业背景相结合,而不是孤立地去讲授一门课程或者离散地讲解某个知识点,将极大丰富程序设计教学的内容,也促进学生对程序设计的理解和应用。笔者给出了具体的专业结合案例和教学方法,以求能为其他教师带来灵感和启发,为其他基础课程结合专业教学提供示范作用。

参考文献:

[1]何钦铭,颜晖,苏小红,等.“程序设计基础”课程教学实施方案[J].中国大学教学,2010(5):62-64.

[2]杨晨霞,涂风涛.任务驱动教学法在Visllal Basic程序设计教学中的应用[J].职教论坛,2012(18):79-81.

[3]海晓伟.项目教学法在“面向对象程序设计”课程教学中的应用研究:以C#程序设计为例[J].大学教育,2013(1):91-93.

[4]彭海云,马占欣.基于PBL+竞争机制的“程序设计基础”课程教学模式探究[J].实验技术与管理,2012(6):174-176.

(编辑:郭田珍)endprint

猜你喜欢
程序设计课程改革
基于OBE的Java程序设计个性化教学研究
基于Electron.js的风向玫瑰图绘制程序设计与实现
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
“双创”形势下高职财务管理课程改革探索
基于创意的对口单招色彩课程改革突破点研究
校企协同实施高职专业课程改革的实践研究