第一篇:应用C语言循环结构解决等差数列求和问题微课设计研究
应用C语言循环结构解决等差数列求和问题微课设计研究
【摘要】本文以应用C语言循环结构解决等差数列求和问题作为微课主要内容,阐述了对微课设计进行的研究与探索。
【关键词】C语言;循环结构;微课
当今,信息化高速发展,数字技术正在影响和改变着我们生活中的各个领域,其中也包括教学模式的改变。微课作为数字时代的一种新型课程表现形式,以其主题明确、短小精悍、交互效果好等优点,在各个学科的教学中正被积极地推广和应用。在我院的C语言课程教学中,微课设计被应用于很多较难理解的知识点讲解中,经过实践发现教学效果良好。本文以应用C语言循环结构解决等差数列求和问题作为微课主要内容,对微课设计进行研究与探索。
一、微课的介绍
1.微课的定义。
微课是以视频为主要载体,记录教师在课堂内外教育教学过程中围绕某个知识点(重点难点疑点)或技能点的教学环节开展的精彩教与学活动全过程,具有目标明确、针对性强和教学时间短的特点。
2.微课的组成。
(1)围绕某个知识点或技能点的教学视频和微课设计脚本;
(2)微课教学相关的教学设计方案和教学课件;
(3)微课相关素材、练习题、测试题、教学反思等辅助性教学资源。
3.微课的主要特点。
(1)教学时间较短:时长一般为8―10分钟。
(2)教学内容较少:主要是突出课堂教学中某个知识点,内容十分精简。
(3)资源容量较小:学生可以在线观看视频学习,也可查看相应教学资料。
(4)主题突出:一个微课就只包含一个主题任务,内容明确。
(5)自主学习为主:学生可以使用微课完成自主的、一对一的学习。
二、应用C语言循环结构解决等差数列求和问题微课设计
1.微课名称:应用C语言循环结构解决等差数列求和问题。
2.所属专业:软件技术专业。
3.所属年级:高职一年级。
4.所属课程:C语言。
5.知识点。
(1)掌握while循环语句的格式和执行过程;
(2)学会分析循环结构程序的设计思路;
(3)熟练应用while循环语句来编写程序。
6.技能点:能够通过while循环语句编写程序来解决实际问题。
7.教学类型:讲授型。
8.设计思路。
(1)微课设计目标:通过微课交代出课程的基本知识点(包括理论部分与实践部分)、课程的整个教学环节以及所实现的具体任务。
(2)教学情境设计:在现实生活中,我们会遇到很多需要重复操作的事情。比如,在数学课中曾经接触过的等差数列求和问题。因为等差数列中的数据都是有规律的,而且加法的计算也是重复的,所以完全可以用循环程序来帮助我们完成这个看似复杂的计算。
(3)微课基本思路:在微课设计中,通过教学情境的引入,向学生交代本次课的主要内容是用循环结构程序来解决等差数列求和问题,学生首先聆听教师讲解有关循环结构的相关知识点,教师做好相关的技术指导,之后教师将学生带入到具体任务的实现过程中,包括本次课中主要学习的while循环结构的特点、语法格式、流程图和执行过程,再根据等差数列的特点分析出用程序解决该问题的设计思路和所需变量,然后结合while循环的语法格式将循环语句书写出来。在具体编程设计工作之前要将整个程序的流程分析清楚,再动手写出具体程序,这样才能避免问题的产生,还能够培养学生良好的程序设计书写习惯。学生在分组完成具体任务后要进行讨论,能够总结出while循环应用于实际问题中的设计思路和分析方法,之后能够举一反三合理解决其它问题。本次课程结束前,要求各项目组对项目成果进行演示和阐述,并进行评分。最后总结归纳本次课的主要内容。
9.教学过程。
(1)片头(20秒以内)
通过画面展示“微课”名称、“微课”所支持的课程名称、“微课”教学内容简介、“微课”主讲教师简介。可以添加适当的背景音乐。
(2)正文(8分钟)
①画面1:通过课件展示教学情境,引入具体研究任务。(30秒)
具体展示内容:各位同学,在现实生活中,我们会遇到很多需要重复操作的事情。比如,在数学课中曾经接触过的等差数列求和问题。因为等差数列中的数据都是有规律的,而且加法的计算也是重复的,所以完全可以用循环程序来帮助我们完成这个看似复杂的计算。
②画面2:讲解循环结构的特点、while循环的语法格式和执行过程。(220秒)
具体技术指导内容:学生首先聆听教师讲解有关循环结构的相关知识点,教师做好相关的技术指导,之后教师将学生带入到具体任务的实现过程中,包括本次课中主要学习的while循环结构的特点、语法格式、流程图和执行过程。
③画面3:分析等差数列求和问题中所使用的变量、设计流程,并进行程序编写。(300秒)
具体操练内容:向学生交代本次课的主要内容是用循环结构程序来解决等差数列求和问题,再根据等差数列的特点分析出用程序解决该问题的设计思路和所需变量,然后结合while循环的语法格式将循环语句书写出来。在具体编程设计工作之前要将整个程序的流程分析清楚,再动手写出具体程序,这样才能避免问题的产生,还能够培养学生良好的程序设计书写习惯。
(3)小结(20秒)
通过画面展示总结本微课重点。
(4)片尾(10秒)
通过画面展示“微课”制作者信息、相关“微课”信息、“微课”应用信息和必要的内容注解。
三、结语
本微课在C语言教学中已经应用,并取得了较好的教学效果,学生通过微课的学习对C语言循环结构的理解更加深刻了。张一春教授认为,对于老师而言,最关键的是要从学生的角度去制作微课,而不是在教师的角度去制作,要体现以学生为本的教学思想。因此,在今后的微课设计中,我们还要不断地探索,真正使微课成为学生自主学习的重要资源。
参考文献:
[1]张一春.微课建设研究与思考[J].中国教育网络,2013,10.[2]孟祥增,刘瑞梅,王广新.微课设计与制作的理论与实践[J].远程教育杂志,2014,6.[3]钟绍春,张琢,唐烨伟.微课设计和应用的关键问题思考[J].中国电化教育,2014,12.
第二篇:《C语言循环结构》课程教学设计研究(定稿)
《C语言循环结构》课程教学设计研究
作者简介作者简介:徐东(1972-),男,硕士,中国人民解放军海军大连舰艇学院讲师、教研室主任,研究方向为计算机视觉与人工智能、计算机教育。0引言
C语言程序设计中,循环结构、顺序结构和选择结构共同作为各种复杂程序的基本构造单元。C语言中几乎所有实用程序都包含循环,许多问题求解都可归结为重复执行的操作,比如数值计算中的方程迭代求根、非数值计算中的树的遍历等等。循环的特征是:在给定条件成立时,重复执行某程序段,直到条件不成立为止。教学实践证明,循环结构是整个C语言程序设计课程中的“拐点”,这个环节学好了,就有了进一步学习的兴趣,反之,则会让很多学生对C语言的深入学习望而却步。因此熟练掌握循环结构的概念及使用方法是程序设计最基本的要求之一。笔者通过总结学生学习C语言循环结构的一般心理思维规律,结合国内外优秀的计算机语言教学方法和模式,在讲授C语言循环结构程序设计环节的教学过程中,采取“双主体教学模式”,充分运用了项目实例教学、问题驱动教学、多媒体辅助教学等多种教学方法,重视学生的学习主体作用,在课堂教学中,以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,教师极尽启发、诱导、调动学生学习的主动性,使学生在掌握知识、形成能力、开发智力等方面得到最大发展。
1C语言公共课教学中存在的问题
C语言公共课程的授课对象均为非计算机专业学生,C语言教学总课时数也偏紧。C语言相对于计算机基础课程,它注重设计算法、书写程序并进行调试的整个过程,内容较为抽象、复杂,教学方法和学习方法都有极大的不同。笔者通过观察并与学生交流,发现很大一部分学生上课时能听懂课程,但程序一旦稍有改变就便不知所措,学生独立编程时更是无从下手,尤其到了循环结构设计阶段。究其原因,在教学方面存在以下问题。
1.1传统课堂教学方式存在一些弊端
通常,传统的C语言教学方法是选用经典教材,教师在讲解时先给出一般的语法格式,然后逐步讲解语法要点,再给出例子。传统教学方法比较适合基础差的学生,但此方式的缺点也是显而易见的,一方面不利于学生自学能力的培养;另一方面,对于基础好的学生会觉得太罗嗦,甚至因此丧失学习兴趣。多数学生对于这种按部就班讲编程的传统教学方式有厌倦心理,不愿意主动与教师在课后交流,依靠教师的现象比较严重。另外,很大一部分学生还在延续高中时的学习方法,缺乏自主学习的意识和能力。C语言毕竟是一门抽象、复杂的课程,知识点非常散。学生在学习C语言的过程中,在教学内容越来越多、编程越来越困难的情况下,很难自我保持学习的兴趣和热度。
1.2教与学比例不合理
教师在教学实施过程中,往往过于注重对知识的传授,过于强调教学方法,而实际上,C语言是一门实践性很强的课程,理论理解与实际演练密不可分,相辅相成,因而,整个C语言教学过程中如何分配教与学、理论与实践的比例,是学生学好C语言的关键因素之一。
1.3上机实作课时偏少
由于总课时数的限定,目前计划学时内安排上机实作学时不足以完成预订目标,以计划外形式安排课时,学生在自主学习能力较弱的情况下,学习效果不佳。
2双主体教学法
经过多年实践,我们在教学过程中采取了适合C语言公共课的“双主体互动教学模式”。双主体互动教学模式是新型的课堂教学理论,它突破传统教学中的“双主”理论,极其重视学生的学习主体作用,并引入“互动”观念,教、学双方相互影响,彼此促动。在课堂教学中,它以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,提倡教师极尽启发、诱导、调动学生主动性之能事,在授课过程中,采用讲解、现场编程演示、幻灯片、提问、目光交流、练、学生自主学习相结合的方式,授课完毕后进行课堂小结,布置上机作业。
2.1采用实例教学法,提高学生对抽象概念的感观认识
实例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,在讲课过程中,经常举一些与实际生活相关的事例,以精选出的程序实例为中心,把学习的重点放在具体实例讲述上,并引导学生自己去思考解决方案,从主观上让学生感受到成就感,从而保持他们的学习兴趣。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅增强了学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。
为了达到本课程的教学目的,让学生能更加深刻地体会到软件编程的实际作用,提高并保持对该课程的学习兴趣,本文引例就从“实弹射击训练分析系统软件”的编制任务开始,该软件编制任务共分5个阶段完成,编制过程将一直持续到本课程结束,并且会在后续章节中得到进一步完善。“实弹射击训练分析系统软件”具体任务安排:
第一阶段:能记录一名学生的打靶成绩(平均环数)。
说明:为简单起见,规定每名学生打10发子弹,记平均成绩。
第二阶段:能记录每个班的打靶总成绩(总平均环数)。
第三阶段:能对参训学生进行成绩排名;能对参训单位进行成绩排名。
第四阶段:在前3个阶段任务完成的情况下,进一步完善该软件的功能,学生可以添加自定义功能模块。
在简单介绍“实弹射击训练分析系统软件”的编制任务后,提出本次课的任务。运用实例启发学生,明确本节课要解决的任务,即寻求一种循环机制,能够自动循环地对10个成绩求和。这样,不仅激起了学生探究问题的兴趣,而且轻松地引入了本节课的教学内容:循环结构。接下来,就按照软件设计的步骤依次进行。
2.2采用进阶式问题驱动法,提高上机效率
在C语言教学过程中,上机操作是非常必要的。通过上机,学生不但可以进一步理解和掌握知识,而且许多不清楚或不理解的问题也迎刃而解。但在上机过程中,教师不要总是要求学生按部就班地解决问题,要让学生自己寻找解决方法,把学习的主动权还给学生,增强学生的自主学习能力,当然,教师的主导地位不能变。在组织学生上机实践的过程中,教师可以适当地设计一些连续的作业。例如,学完循环结构后,在上机时先带领学生分析一个程序,其功能是输出四行六列并且是由星形符号构成的图案[1,2]。教师可以通过以下步骤引导学生上机实践:
步骤1:教师可用多种编程方法进行程序演示。①利用普通的输出函数如何解决;②利用单循环如何解决;③利用双重循环如何解决;④说明双重循环的优点及特征,然后让学生自行编写并运行程序。
步骤2:待学生完成任务后,在原程序基础上,进一步提出新问题,让学生学会灵活编程。①若要输出每行“#”与“*”相间的四行六列图案应该如何修改程序;②若要输出每行两个连续的“#”和3个连续的“*”的四行五列图案应该如何修改程序;③若要输出用“*”组成的一个正三角形应如何修改程序;④行列数在这里是固定的,可否通过键盘随机输入,等等。
以上问题均可通过修改步骤1中编好的程序逐步解决,每次修改的幅度均不大,难度也是缓慢增加,学生在不知不觉中得到了编程的训练,在很短的时间内掌握了所学知识并灵活运用,学生会拥有成就感,同时会意识到,只要自己肯动脑,问题就会很快解决,从而激发了学生的学习主动性。
2.3以项目为牵引,强化学生课后自主学习
在完成一定的教学任务后,及时布置项目作业,训练学生对所学知识的灵活运用能力,并使每一阶段的内容有足够的焦点,让学生轻松消化每个知识。
在布置项目时,除要包含所学内容的焦点问题外,还要特别注意对新知识的迁移,也就是说,可以在项目中涉及少量的学生没有学过的知识点,促使学生主动探究、主动解决,教师在恰当的时候再给出解答方案,最后由学生自己总结得出项目结果。这么做不仅让学生学习的心态更加主动,而且让学生更具有成就感。
第三篇:C语言循环嵌套结构教学设计探究
C语言循环嵌套结构教学设计探究
摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的基础。该文将针对初学者实际情况,通过教学实例的设计,由浅入深,采用类比、启发等多种教学方法,分析循环嵌套结构程序的设计思路与设计方法,帮助学生掌握C语言循环嵌套结构设计的实质,提高利用循环嵌套结构解决实际问题的能力。
关键词:C语言 循环嵌套 教学设计
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2015)03(a)-0120-02
The Inquiry Teaching Design of Nested Loop Structure on C Language
Duan Hongyi,Wang Huihui
(Science Department of Hetao College,Bayannaoer,Inner Mongolia,015000,China)
Abstract:The C program nested loop structure design is the key and difficult points in chapter C program loop structure teaching,is the follow-up data structure course algorithm in the most frequently used sentence,is the basis for complex programming.This paper will according to the actual situation of beginners,by design,the teaching examples from the shallower to the deeper,by analogy,inspiration and so on many kinds of teaching methods,design analysis and design method of loop nesting structure of the program,to help the students to grasp the essence of C language nested loop structure design,improve the ability of using the nested loop structure to solve the practical problems.Key Words:C language;Loop nests;Teaching design
C语言是一门面向过程的结构化程序设计语言,其程序设计的基本结构单元主要由顺序结构、选择结构与循环结构三种基本结构组成。其中选择结构与循环结构在程序设计中最为重要且使用较多,对于后续课程数据结构来说,其算法实现主要以这两种结构为主,所以在学习数据结构之前,学生必须要通过C语言的学习打下良好的程序设计基础,深入理解并掌握这两种程序结构,并能够正确设计与阅读理解这两种结构的程序。在循环结构程序设计中,循环的嵌套程序设计是一个重点与难点内容,该文结合作者从教以来教授C语言的教学经验及心得体会,探讨如何教会学生理解并掌握循环嵌套结构的设计,提高利用循环嵌套解决实际问题的能力。循环嵌套教学内容引入及设计
循环嵌套结构程序设计的基础是循环结构,在学习循环嵌套结构程序设计之前需要掌握C语言中实现循环结构的三种语句,while语句、do...while语句以及for语句,在此基础上学习循环的嵌套。首先需要知道循环嵌套的概念:一个循环的循环体内包含另外一个完整的循环结构,称为循环的嵌套,内嵌的循环还可以继续嵌套循环,构成多层循环。循环的嵌套结构本质上仍是一个循环语句,只不过其循环体为一个循环语句罢了。C语言中三种循环语句可以互相嵌套构成循环嵌套结构。由于for语句在C语言中最为灵活,下面以for语句为例来讨论循环的嵌套结构。
1.1 循环嵌套结构程序的引入
为了便于理解循环嵌套,首先举一个简单的循环结构的例子来引入嵌套。
例1:输出123456789。
该例子如果利用for循环设计,学生可以轻松写出如下语句。
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
如果对该例进行修改,要设计以下程序。
例2:输出5行123456789。对于该例来说,可以使用循环的嵌套来设计程序。
1.2 循环嵌套结构设计
我们可以利用循环语句的设计思路来解决这个问题,这个例子的关键在于循环体语句为输出123456789及换行符,即要循环5次123456789以及换行符。这里我们先把上述代码以及输出换行符语句看成一个整体即一个语句块。比如用语句块一来表示,则可以写出如下的程序代码。
int j;
for(j=1;j<=5;j++)
{
语句块一;
}
由于语句块一的代码为:
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
所以将语句块一用上述代码进行替换,可以写出例2完整代码如下:
int j;
for(j=1;j
{
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
}
通过这个例子看出,外循环决定内循环(把内循环看成一个整体)的执行次数,而内循环则控制每行内循环的次数。在这个例子中,内循环变量与外循环变量之间没有关系,下面我们再来看一个稍微复杂一些的例子,内循环变量执行的次数取决于当前的外循环变量,来进一步理解循环嵌套结构程序。
例3:设计程序输出如下的图案数字。
2
3
4
5
这个例子要打印5行数字,故外循环次数为5,设外循环变量为i,取值为1~5,再看每一行要打印的数字的个数为1,2,3,4,5,即循环的次数为1,2,3,4,5,假设用j表示内循环变量,那么,内循环变量与外循环变量有什么关系?假设我们要打印的是第i行上的数字,可以发现其打印的数字j取值为1到i。找到了规律就可以写出的循环嵌套程序段:
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf(“%d ”,j);
printf(“\n”);
}
通过这个例子我们可以引导学生,写出如下图案的程序段。
例4:设计程序输出如下的图案数字。
3
5
7
9
提示学生这个程序可以有2种写法。
第一种写法:通过观察,发现例3与例4只是每一行上输出的数字不同,即需要修改例3的内循环语句printf(“%d ”,j);即可。显然第i行上打印的是一个等差数列,其打印的第j个数字应为2*j-1。即例4对应的语句为printf(“%d ”,2*j-1);
第二种写法:不改变例3的printf(“%d ”,j);输出语句,则需要修改内循环for(j=1;j<=i;j++),分析可知第i行的内循环次数为i,而打印的数字最大值j为2*i-1,后一个打印的数比前一个数大2,即步长为2,则将例3的内循环语句改为for(j=1;j<=2*i-1;j+=2)即可。
通过上面例
3、例4两个程序的设计,学生基本上能够掌握循环的嵌套结构了,对循环的嵌套有了更深入的理解,并能利用循环嵌套结构设计并解决简单的实际问题了。
例5:打印如下图的九九乘法表。
这个例子与例3比较相似,一共要打印九行,故外循环为9次,假设用i来表示外循环变量,其值应为1到9;第i行打印输出i个数,假设用j来表示内循环变量,即内循环变量j取值为1到i。并且能写出第i行第j个要打印输出的数为:printf(“%d×%d=%4d”,j,i,j*i);有了例3,例4的基础可以写出如下的程序:
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(“%d×%d=%4d ”,j,i,j*i);
printf(“\n”);
}
结语
在循环嵌套结构设计教学中,教师要充分考虑学生的实际情况,要考虑不同专业、不同层次学生的理解能力,设计针对学生实际情况的教学用例,从浅显易懂的例子出发,逐步引导学生思考,采用类比,启发等多种教学方法,教学实践证明,这种方法能够很好的调动学生的学习积极性,学生的理解能力与程序设计能力有了明显的提高。
参考文献
[1] 谭浩强.C程序设计[M].4版.北京:清华大学出版社,2010.[2] 刘井莲,赵卫绩.C/C++循环嵌套教学实践[J].电脑知识与技术,2012(25).[3] 唐红杰.C语言循环结构教学探讨[J].软件工程师,2014(10):49-50.[4] 刘运,程家兴.图形打印案例在计算机高级语言教学中的应用研究[J].山东农业工程学院学报,2014(6):48-49,58.
第四篇:《解决数学问题》微课教学设计
《解决数学问题》微课教学设计
江西省兴国县梅窖镇三僚小学
曾令红
一、教学内容
跳绳比赛:求总和问题,求相差多少的问题,属人教版一年级数学下册第二单元中的知识。
二、教学目标
1、使学生能够正确解决简单的数学问题,初步学会列式解答求总和问题与相差多少的问题。
2、培养学生积极参与数学学习活动的态度,对数学有好奇心和求知欲。
3、初步认识到数学与人类生活的密切联系,培养学生应用数学的意识。
三、教学重点:
运用数学思想,在实践中解决问题
四、教学难点:
学会收集数学信息,用正确的方法来解决问题
五、教具准备: 自制多媒体课件
六、教学过程:
出示主题图,练习中的一个题目:
(1)明确条件和问题,理解题意(2)选择有效的信息来解决问题
第一个问题:要用到题目中的哪些信息?要用什么数学方法来解答? 第二个问题:要用到题目中的哪些信息?又要用什么数学方法来解答?
七、回顾总结,强化解决问题的策略和步骤
我们解决问题时,第一步要通过看图、看文字弄清楚知道了什么,问题是什么;第二步要弄清楚哪些信息和问题有关系,学会选择合适的信息解决问题;第三步要找到正确的方法解决问题。
第五篇:微课在C语言公共课中的应用
微课在C语言公共课中的应用
摘要:针对C语言公共课教学面临的问题,以一个知识点(递归函数)教学为案例,展示了微课的完整应用。从学生的角度去设计和制作微课,体现了以学生为本的教学思想,在一定程度上解决了传统C语言公共课学生缺乏兴趣、注意力不集中、学习效果差等问题。针对非计算机专业学生学习C语言较困难的现象,微课从贴近生活的实例寻找解决问题的方法。在制作微视频时,将教师讲课和课件屏幕分开制作,通过抠频再合成,解决了现有微视频中教师和课件不能同时清晰显示的问题。
关键词:微课;C语言;教学改革
DOIDOI:10.11907/rjdk.161014
中图分类号:G433
文献标识码:A 文章编号:1672-7800(2016)005-0221-02
0 引言
微课是信息技术与学科教学融合的产物,也是近几年教学改革的热门话题。随着高校微课教学比赛、中国微课大赛等赛事活动的开展,微课迅速升温。
中文“微课”一词在2011年10月由广东省佛山市教育局胡铁生[1]提出,他定义的微课是:按照新课程标准及教学实践要求,以教学视频为主要载体,记录教师在课堂教学中针对某个知识点或教学环节所需各种教学资源的有机结合体。
在近几年国内的一些学术期刊中,对微课内涵的探讨主要有3种典型观点:①微讲座(Micro-lecture),即微课是一种教学视频资源。2008年秋,出现了一种只有一分钟的“微讲座”,由戴维?彭罗斯[2](David Penrose)首次提出。戴维?彭罗斯被称为美国新墨西哥州圣胡安学院的“一分钟教授”,他认为,一分钟讲座将产生与传统的长时间授课相同的效果;②微课程(Micro-lesson或Mini-course),即微课是以微视频为中心的资源包。每一个微视频围绕一个知识点展开,与第一种微课不同的是,微课程为了支撑整个学习过程,必须有测验、作业和讨论。将教学包上传到网上,学生可以随时随地上网观看视频,自主学习并进行单元测验;③微课教学(Micro-teaching),即微课是一种微型的教学活动。主要包括两种形态:微课形式教学和微课资源教学。以英国纳皮尔大学T.P.Kee教授为代表的微课,由学生进行一分钟演讲。微课资源教学,主要是教师播放相关的微视频辅助讲解,阐述教学中的知识点、重点和难点[3]。本文讨论的微课主要是指第二种。
微课是一种创新性教育形式,具备形式多样、主题突出、短小精趣等特点。微课的形式多样,主要是指微课视频的制作方式多样,有软件合成式,还有较为流行的摄制型、录屏型以及混合式;主题突出体现在一个微课只围绕一个知识点展开,主题明确;微课的教学视频一般为5-15分钟。微课以其“短、小、精、趣”的特征,迎合了时代的要求和大众的心理[4]。C语言公共课教学存在的问题
以笔者学校开设的C语言公共课为例,教学中面临的主要问题有:①对于非计算机专业的学生来说,程序设计很枯燥,普遍的感受是计算机语言离自己的现实生活较远,没有学习的兴趣;②C语言公共课课时较少,教师为了完成教学任务,往往满堂灌,学生难以成为学习的主体;③C语言程序设计知识点较为抽象、连贯性强,一旦前一个知识点没有掌握,后面的知识点就很难理解,学生会产生厌学情绪。
C语言微课教学中的问题有:①举例知识扩展较广,不太适合非计算机专业的学生学习;②C语言微课视频,有的只有课件录屏,没有教师形象,即使有教师,由于光线原因,教师形象和课件屏幕不能同时清晰显示。微课在C语言公共课中的实施
微课不能单纯地将传统课堂教学实录切片加工成短视频,应该在受限的时长内,重新组织教学信息,精心进行教学设计。要研究授课对象,对教材作知识点划分。本文将以C语言程序设计公共课中的一个知识点(递归函数)教学为案例,阐述微课教学的设计与应用。
2.1 微课教学目标设定
《C语言程序设计》是面向非计算机专业理工类学生的公共基础课,教学目的是掌握程序设计的思路与基本方法,利用程序来解决专业或学习生活中的一些基本问题,培养学生的计算思维能力[5]。针对C语言公共课学生为非计算机专业的特殊性,本微课定位递归函数的教学目标为:认识递归现象,领悟递归现象的本质,能针对简答问题写出算法和递归程序。
2.2 微课教学内容选取
C语言公共课的教学内容前后联系紧密。针对每个章节选取的知识点必须清晰且具备连贯性。选取的知识点可以是关键概念、难点突破或题型精讲等。本文选取的递归函数知识地位突出,教学难度较大,先修知识是函数的嵌套,因此它既是关键概念,又是函数嵌套中的难点突破。
2.3 微课教学内容处理
微课教学内容确定后,就可根据微课时长进行内容加工和微处理,时长控制在15分钟。
片头:递归函数。
导入方式众多,可以开门见山、提出一个疑问或与生活息息相关的现象或复习回顾等方式。无论采取什么方法,都必须吸引学生的注意力,能切入知识点。本文针对递归函数的导入设计是基于“程序来源于生活,映射生活,作用于生活”,所以从生活中找到递归的现象引入,能更好地提高学生的学习兴趣。本文设计的递归实例为镜子中的镜子、画中的画等德罗斯特效应。
正文知识点的讲授,要求线索清晰、语言精炼,并结合一定的手势和表情。在微课的讲授中,尽量围绕一条线索展开,并且该条线索应该能够覆盖本次微课的知识点,能体现教学的重点和难点。在讲授重点内容时,要求解释准、精、简,论据充分。本文设计的递归函数微课围绕汉诺塔游戏这一线索进行,师生共玩3个盘的汉诺塔游戏,逐步总结出游戏的规律。具体步骤如下:
(1)进行以下3个步骤:①将A塔上的n-1个盘子借助C移至B上;②将A上剩下的一个盘子移至C上;③将B上n-1个盘子借助A移至C上。
(2)引导学生发现第①步和第③步是同一个问题,都是将n-1个盘子借助一个空塔移动到另一个塔上,该操作用一个递归函数hanoi()来实现。
(3)引出递归的相关概念。若是10个盘子,需移动1 023次,若是64个盘子,需移动约1 844亿亿次,按每次耗时1ms计算,完成64个盘子的移动需60万年!如此复杂操作的递归函数代码竟然不到10行,由此引出递归的概念、递归的条件和递归的两个要素。
(4)从生活中选取一个递归现象,引导学生判断是否符合递归条件,是否具备递归的两个要素。设计选取的实例为经典的“你几岁?”问题。先建立年龄递归模型,编写对应的递归函数。
(5)在上述问题的解决过程中引导学生自主发现难点。在递归调用的操作过程中,形参和变量的取值容易混淆,是难点所在,只要牢牢把握递归就是嵌套这一本质就不容易出错。接下来播放递归调用的操作过程动画。整个演示过程清晰、明了,不会产生任何混淆。
课程小结部分要求快捷,起到提纲挈领的作用,加深对所学内容的印象。本文递归函数的课程小结借助了图灵奖获得者Niklaus Wirth的话――利用递归解决问题,允许用户用有限的语句描述无限的对象,从而让程序代码变得精简,提高编程效率。
课后练习部分,让学生解决有趣的分书递归问题。
2.4 微课教学媒体设计
微课视频的媒体呈现形式多样,设计步骤如下:
(1)准备好素材,制作好PPT课件。PPT的制作尽量少用文字,因为文字表达的效果有限,文字的表达不如表格,表格不如图像,图像不如动画,在PPT中尽量使用后者。
(2)将讲授过程录像。一般是教师讲课的同时进行录像,这种方式的优点是教师讲课很自然,缺点是由于光线原因,教师的形象和课件屏幕不清晰。针对上述问题,将教师讲课和课件演示分开录制,后期再进行合成。教师讲课直接对着摄像头,讲课过程中没有学生。课件演示的录屏软件选择Camtasia Studio。在录制过程中一边录像,一边配合鼠标的移动和课件进行切换。教师讲课时主光一个、侧光两个,拍摄的时候还在主机位提供专用提词器,场景布置如图1所示。
(3)将教师讲课的录像和课件演示的录屏合成。讲课录制好以后,将教师的形象从视频中抠出来,抠频工具有Adobe After Effects。将录屏和录像合成,使用软件Adobe Premiere。后期合成后,教师形象和课件屏幕画面都非常清晰。
(4)为合成的视频添加字幕。外挂字幕编辑软件很多,本文选择SrtEdit。本微课通过视频+文字+图片+动画,全面深入地表达知识点。
2.5 微课教学资源设计
微课教学资源除了上述的微视频外,还包括教案、课件、过关测试及答案、学习资料及素材、作业及答案、评分标准,甚至还包括教师的教学反思等,所有这些都围绕一个知识点,构成一个主题鲜明的微课教学资源包。本文设计的递归函数教学资源主要包括:课件PPT和过关测试。过关测试主要是客观题,以选择和填空的形式出现。在微课视频制作完毕后,将所有教学资源一并上传。结语
本文以递归函数为例,对微课应用于C语言公共课教学进行了探讨。制作的微视频从生活中的德罗斯特效应、递归故事等现象出发,拉近了程序设计与学生之间的距离,利用师生共玩“汉诺塔”游戏来获得感性认识,激发学生的学习兴趣;通过问题“你几岁?”来具体讲解递归函数的分析、设计、执行过程;对于递归函数调用执行过程不容易把握这一难点,精心制作动画,巧妙展示程序控制的流程转向等;总结时用图灵奖获得者Niklaus Wirth的话给出递归的本质。整个微课设计合理,达到了该知识点教学目的。
参考文献:
[1]胡铁生.区域教育信息资源发展的新趋势[J].电化教育研究,2011(10):61-65.[2]黄建军,郭绍青.论微课程的设计与开发[J].现代教育技术,2013(5):31-35.[3]教育部全国高校教师网络培训中心.中国高校微课研究报告[EB/OL].[2014-07-10].http://weike.enetedu.com/report/.[4]鲁庆.微课在程序设计课程中的应用[J].柳州职业技术学院学报,2014(6):71-72.[5]唐大仕.“递归算法”微课教学设计――以“文科计算机基础(下)”为例[J].计算机教育,2013(17):5-7.(责任编辑:杜能钢)