APP下载

C语言程序设计中f o r语句的教学流程设计
——以西藏大学为例

2017-01-11曾晓莉王龙业李勇峰

西藏大学学报(自然科学版) 2016年2期
关键词:西藏大学C语言程序设计

曾晓莉 王龙业 李勇峰

(①西藏大学藏文信息技术研究中心 ②③西藏大学工学院 西藏拉萨 850000)

C语言程序设计中f o r语句的教学流程设计
——以西藏大学为例

曾晓莉①王龙业②李勇峰③

(①西藏大学藏文信息技术研究中心 ②③西藏大学工学院 西藏拉萨 850000)

文章以C语言程序中的循环控制结构语句的教学流程为例,根据布卢姆的认知教育目标的层次定义,在学生基础较差的前提下,提出了C语言中for循环结构的分层认知教学目标。教学设计过程中以动机激励模型为理念,根据加涅的教学设计原理设计了for循环语句的课堂教学流程。

C语言;for循环结构;教学流程;布卢姆

C语言是程序设计语言中的常青树。它兼具高级语言和低级语言的特点,既可以编写系统应用程序,也可以编写不依赖计算机硬件的应用程序,它比高级语言耗费的代价小,又比低级语言容易理解。几乎任何一种机型和操作系统都支持C语言开发。同时,国内外的理工科学科中也都普遍开设了C语言程序设计课程,它既是后续专业课程学习基础,亦是培养学生掌握数据处理分析和算法设计的工具。

作为结构化程序设计语言,C语言遵循E.W.Dijikstra提出的使用顺序、选择、循环三种基本控制结构构造程序[1]。循环控制结构是整个C语言程序设计的核心,它和顺序、选择结构一起互相嵌套能实现更复杂的程序功能,且也和后续数组、递归等知识点相辅相成。从一定意义上讲,循环控制结构掌握与否,将直接影响学生对整个程序设计语言的把握。本文结合西藏大学的教学现状,论述了C语言程序设计中for语句的教学流程设计方法。

1 教学现状分析

1.1 学习内容分析

循环控制结构作为程序设计三大控制结构之一,在C语言程序设计中起到了承前启后的作用。一方面能和顺序与选择结构一起构造出更复杂的程序流程,完成更为强大的计算处理工作;另一方面又是后续课程的基础,没有循环就无从谈递归,没有循环数组的实现也是空谈。

在C语言程序设计中,允许使用for语句、while语句和do-while语句等三种循环表现形式。另外还涉及到循环与选择的嵌套、循环与循环的嵌套、break与continue的使用等[2],语法知识庞多而且复杂。在庞杂的知识系统里,需要对知识点进行梳理,找出其内在的联系。for语句能够很容易变形为while语句,while语句也能容易变为do-while语句,学生如果深刻理解了for语句,那么其它两种语句就不会成为难点[3]。因此,笔者认为在教学安排中,for语句是第一个教学重点;而第二个教学重点是循环与选择的嵌套,循环与循环的嵌套;第三个重点是break与continue在for循环中的特殊作用。在掌握了for语句的使用以后,很容易通过for语句的变形掌握while语句和do-while语句。

世界中太多的重复,但并不是简单的复制,而是“九层之台起于累土”的渐变,这正是我们课程中的循环之道。循环控制结构的难点就体现在怎样运用相应的知识去解决现实生活中的问题,如求解斐波那契数列,棋盘上的麦粒等古老数学问题,也包含统计计划生育政策下男孩女孩的比率等实际应用问题。

1.2 学习者特征分析

西藏大学是西藏自治区地方高校,按照汉藏生源1:1.5的比例招生,形成混合生源班级。由于学生基础差距太大,所以在西藏大学的各类教学实施中,通常采用分级教学模式或者统一降低教学难度的方式。分级教学模式主要应用在受众群体比较广泛的公共课教学中,按照学生高考成绩的不同,重新对学生组班教学,各班级采用不同的教学大纲;而在专业课教学中,很多老师依照“照顾大多数学生”的原则,统一降低教学难度,导致基础好的学生“吃不饱”,基础差的学生“撑不下”。在这两种模式中,其共同点是对基础差的学生采用了降低教学难度,减少教学内容的策略。

西藏大学选择在学生修完计算机文化基础课程之后,于大学一年级的下学期开设C语言程序设计课程。C语言程序设计作为工具类课程,有其完整的知识体系,某些知识的缺失,必然会导致学生后续课程学习的困难。例如,如果没有链表的相关知识,学生在数据结构的学习中就会面临巨大的困难。笔者认为上述两种方式都不适合C语言程序设计教学。笔者在教学的过程中意识到,C语言程序设计课程不同于英语、数学等,需要扎实的基础知识功底,对大部分学生而言,都是初次接触程序设计语言,大家的起跑线是一样的。另外基础差也并不等于“脑子笨”,只是生活中使用藏语言交流的学生在面对普通话授课的课程中,需要先经历语言翻译一关而导致理解能力较差。故在教学过程中,由浅入深,贴近生活的教学设计将有助于学生对知识的理解和掌握[4]。

2 教学目标分析

1956年,美国著名的教育心理学家布卢姆立足于教育目标的完整性,制定了教育目标分类系统[5]。梅耶、安德森、拉斯沃尔等专家于2001年完成了对布卢姆教育目标分类理论的修订,将认知过程维度教育目标分为六个层次:记忆→理解→应用→分析→评价→创造。这六个环节环环相扣,从低到高,前为基础,后为深化。原本的知识被变更为知识维度,将知识从本质上分为事实性知识、概念性知识、程序性知识和元认知知识等内容[6]。

以案例教学为根本,实际应用为目标,结合布卢姆认知教育目标的划分及C语言教学强调实操的特点,通过对教学内容的分析和对学生的学习能力进行评价,笔者将循环控制结构从知识维度进行了梳理[7-10]。在表1中,笔者设计了层次教学目标,且以“掌握知识”“内化知识”和“获得知识的内核和精华”的层层推进方式对教学内容进行分解。拟实现能使所有学生真正明白和掌握所学知识,使大多数学生能内化知识、学以致用、能解决实际问题,部分学有余力的学生能掌握知识的精髓、实施更高级的知识评价的教学目标。

表1 for循环结构分层认知教学目标

通过以上的教学目标分析,我们把课程教学内容按照循序渐进的方式进行了整理和细化,在教学环节中能够实施阶段递进式教学,让学生在每个阶段有明确的学习目标。

3 教学设计

西藏大学C语言教学面临着学生基础差、学习的自主能动性不强、C语言专业性强、教学学时紧张等客观条件。在课堂教学的活动中,面临的第一个问题就是,怎样引导学生的学习兴趣,提高教学效果,我们引入了动机激励模型。

3.1 动机激励模型

美国佛罗里达大学的约翰·凯勒教授提出的动机激励(ARCS)模型得到了众多从事教学设计和实施实践教学的教育者的关注。他分析了很多有关学生激励的材料,最后总结出来四个基本要素,即注意、相关性、信心和满足感[11-13]。在课堂教学中,可结合这四个方面来引导学生的学习兴趣,如在课程导入环节,与简单的生活实例相结合,吸引学生的“注意”;在for循环的案例设计中体现出与实际应用的“相关性”和与以前学过的程序设计流程等知识点的“相关性”;对于“信心”的激励,可结合课堂学生反映,做出合适的激励原则,给学生设定“经过努力,就能做到”的目标和期望,这其中,目标过高或者过低都只会产生负面影响;最后,要实施公正、正面的评价机制,促进学生“满足感”的产生。

3.2 课堂教学流程设计

课堂教学流程设计的好坏直接决定了学生的课堂学习效果,在课堂教学中,需要注重引导学生的学习兴趣,加强教学互动,以培养学生的应用实践能力为基本准则,采用形式多样的教学方法。

3.2.1 课程导入

根据ARCS模型,在课程导入环节,需要积极引导学生的注意力,分析循环和生活的相关性,引导学生给出循环的应用场景。吸引学生的注意力有很多方式,包括激发学生的求知欲,引起学生的好奇心或者推翻学生原有的认知等。由于学生基础较差,加上语言翻译上的障碍,笔者尝试从生活实例中去吸引学生的注意力,用特别简单的案例来引导学生分析解决问题,获得“C语言循环处理功能很强大”的认知。从而将课程导入以课堂讨论方式层层推进[14-17]。

第一,老师抛出问题“怎样让计算机输出跳100次”开始,让学生讨论当前所学知识是否能解决这个问题。如果能,解决方案是否合理?如果不能,那我们生活中是怎样“跳100次的”?

在开放式的提问下,课堂氛围会变得非常活跃,给学生1-2分钟的讨论时间后,进行提问引导,在常规的思维下,学生会按照printf(“跳1次”),printf(“跳2次”),……,printf(“跳100次”)这样连续执行printf()函数100次进行输出。当然方式累赘,不合理。

第二,接着就回忆我们自己在实施“跳100次”时,动作是不变的,只需要从1到100每次递增1计数就可以了,而在常规处理方式下,输出语句的主体也是不变的,改变的只是用数字1到100表达的次数。老师在这时可以抛出循环的概念就是“重复执行某件事”,并让学生分析要完成一个循环,需要知道哪些要素?

通过课堂讨论以及教师引导,学生能够得出答案:需要重复的事件,循环开始计数,循环结束计数,从开始到结束的改变方式。

第三,经过第二步的分析,学生已经从实例分析中掌握了循环的四个组成部分,如表2为老师用术语总结。

表2 循环基本组成要素

经过以上三步,完成了循环的导入,学生理解了循环的概念,掌握了实施循环需要的组成要素。

3.2.2 课程学习

课堂教学是实施整个课程教学的重点,我们按照布卢姆分层教学目标进行了课堂教学组织。教学过程包含教学内容的组织、教学案例的选择以及教学方法的使用。教学内容要由易到难呈现,并且要注意教学内容的衔接以及综合应用;教学案例要精简且贴合实际应用,要具有代表性,包含课程讲授知识点,能层层推进;教学方法要灵活多样,加强教学互动,吸引学生的注意力,提高学生学习的兴趣[18-22]。如表3所示,根据布卢姆教学目标,进一步细化了课堂活动环节,综合运用不同教学组织形式,按照知识层层推进的模式,加强教学互动,完成课堂教学环节。

表3 课堂教学设计

课堂教学目的是实现对学生分析问题、解决问题能力的培养。在C语言教学中要把教学重点放在教会学生对现实问题进行逻辑抽象,掌握分析问题以及解决问题的思路,而不仅仅是以“语言为主”的教学方式。教是为学服务,我们要了解学生的心理,针对学生学习兴趣点来设定教学活动,每个教学环节都能起到帮助或支持学生对知识的获取和加固的作用,从而使学生得到进步。根据加涅的教学设计原理[23],结合布卢姆的认知教学目标层次,我们对课堂教学环节进行了划分,在教学组织形式中,按照ARCS模型的要求,采用多种教学组织方式引导学生学习兴趣,激励学生学习动力。

在以上的教学环节中,以层层推进的方式,完成for循环语句的所有知识点的教学,在整体的教学流程中,我们不拘泥于语法知识的介绍,强调了语法知识的应用。在精选的案例教学中,学生能从实际的应用角度出发,利用C语言程序设计的知识来解决实际的问题,这也是我们进行C语言教学根本的目标所在。

3.2.3 课后作业

在前面的教学环节中,成功实施了for循环程序设计的导入,完成了for语句、for循环和选择结构的嵌套,for循环自身嵌套以及伪随机数的产生和应用等知识点的学习。在教学过程中,采用了案例分析的层层推进方式,着重培养学生应用相关知识点解决实际问题的能力,学生“学中做”,边学边做,编程能力得到了锻炼。接下来的课后的训练中,还要加强学生的实训,在课堂训练的基础上,推进深化实践项目,完成“假如2000万对夫妇中有300万对夫妇所在地区实行‘一孩半’(第一胎是女儿,还能生第二胎)政策,继续分析其对男女比例的影响,并让学生自行讨论其他的一些生育政策与现状,并用程序进行模拟”。让学生自主程序设计中,互相协作,深入讨论,形成实践报告。在报告中着重阐述设计流程,并分析实践的难点和重点,作为课程学习最重要的反馈,以供教师分析。

实践证明,这样的教学活动流程满足了学生的学习心理,对知识点的提取、分类、总结恰当,兼顾到学生的学习基础不好的问题,由浅入深,较好地实现了既定的教学目标。在组织实施中,引入ARCS模型,很好地调动学生的学习主动性,教学气氛活跃,教学相长,较好地完成了课堂教学。

4 结语

教学设计是一项没有通用标准的工作,教师要结合学生现状考虑学习者特征,并结合社会发展来分析教学内容,学习各类先进的教学方法和教学理念,充实自己,完善教学过程。循环结构作为C程序设计的重点和难点,起着承前启后的作用,语法实现多样,还涉及到与其他程序设计流程的嵌套。但是只要向学生讲清楚for语句的内涵,学生就能较好地掌握while和do…while结构以及后续数组等课程的学习都打下了良好的基础。

[1][2]谭浩强.C语言程序设计(第4版)[M].北京:清华大学出版社,2012.

[3]马宪敏,于延.C语言中循环结构的教学设计探讨[J].计算机教育,2011(5):87-90.

[4][18]张莉,金莹.如何让程序设计课程既有用又有趣[J].计算机教育,2015(19):45-49.

[5]Bloom BS,EngelhartM D,Furst E J.Taxonomy ofeducationalobjectives:The classification ofeducationalgoals,handbook I:Cognitive domain[M].New York:NY:Longman,1956:1-5.

[6]KrathwohlDR.ARevision of Bloom's Taxonomy:An overview[J].Theory Into Practice,2002,41(4):212-218.

[7][14][19]孙华,于炯,田生伟,等.《C语言程序设计》中循环结构的教学方法探讨[J].中国科技信息,2012,08:238.

[8][15][20]吴育含.VB程序设计中“循环结构”的教学方法改进[J].福建电脑,2015,07:156-157.

[9][16][21]盛小春.VB程序设计中循环结构教学方法的探讨与实践[J].江苏技术师范学院学报,2011,08:86-89,96.

[10][17][22]赵美虹,任建平.程序设计基础课程中循环结构的教学方法[J].中国管理信息化,2016,03:253-254.

[11]John M Keller.The systematic processofmotivationaldesign[J].Performance&Instruction,1987,26(9):1-8.

[12]John M Keller.Developmentand Use of the ARCSModel of Instructional Design[J].Journalof Instructional Development,1987, 10(3):2-10.

[13][23]加涅RM,布里格斯L J,韦杰WW,等.教学设计原理[M].皮连生,庞维国,等,译.上海:华东师范大学出版社,1999.

Teaching processdesign of“For Circulation Structure”in CLanguage Programming design

Zeng Xiao-li①Wang Long-ye②LiYong-feng③

(①Tibetan Information Technology Research Center,TibetUniversity,Lhasa 850000,Tibet;
②③Schoolof Engineeringand Technology,TibetUniversity,Lhasa 850000,Tibet)

According to the hierarchy definition of Bloom's cognitive education goals and the teaching process of circular-control structural statement in C Language as an example,the hierarchical cognitive teaching goal of“For circulation structure”in C Language was proposed based on studentswith poor basic knowledge and low learning interest.The teaching process of“For circulation structure”was designed based on Gagne's instructionalprinciplewith the idea of themotivating encouragementmodel.

C language;For circulation structure;teaching process;Bloom

10.16249/j.cnki.54-1034/c.2016.02.016

TP311.11

A

1005-5738(2016)02-096-006

[责任编辑:张建伟]

2016-04-13

2015年度西藏自治区高等教育教学改革研究项目“任务驱动教学模式在西藏信息类课程中的应用研究”(项目号:JG2015-03);2015年西藏大学人才培养模式改革项目“我校大学生开放实验室管理研究与实践”(项目号:藏大字[2015]61号);2015年度西藏大学教学改革创新资助项目“基于微课的翻转课堂的研究”(项目号:藏大字[2015]32号)阶段性成果。

曾晓莉,女,汉族,四川南充人,西藏大学藏文信息技术研究中心副教授,主要研究方向为计算机应用和教育技术。

猜你喜欢

西藏大学C语言程序设计
西藏大学2021 年度社会科学类项目一览表
基于Visual Studio Code的C语言程序设计实践教学探索
习近平给在首钢医院实习的西藏大学医学院学生的回信
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
谈西藏高校合唱发展状况——以西藏大学艺术学院为例
高职高专院校C语言程序设计教学改革探索
《西藏大学学报》(自然科学版)2015年总目录
PLC梯形图程序设计技巧及应用