邓红
【摘要】针对高职院校师生在教授和学习C语言中面临的畏难困境,提出了基于微课的教学方法及其组织策略。该方法在教学设计上关注学生的注意力、切需性[1]、自信心,从而进一步有效的提高学生学习效率和自主学习能力。本文以printf()函数的微课为例,阐述了微课教学设计的过程与应用策略。
【关键词】微课 高职 C语言 printf( )
【基金项目】全国教育信息技术研究课题(142741818)。
【中图分类号】TP312.1-4 【文献标识码】A 【文章编号】2095-3089(2015)36-0016-02
1.引言
C语言程序设计是计算机类相关专业的核心基础课程,是整个程序设计课程体系的基石,是培养学生抽象思维和程序设计能力的起点。然而高职院校的学生普遍基础知识薄弱,学生普遍认为C 语言枯燥难学、概念复杂、使用靈活、容易出错。学生的畏难、厌学情绪,使得教学困难重重。从以往的教学情况和计算机等级考试的较低通过率来看,学生对C语言的掌握情况不理想。因此为了更好的提高教师的教学质量,学生的自主性和学习效率,应该延展课堂空间。
2.微课简介
微课又名“微课程”,是“微型视频网络课程”的简称,它是以微型教学视频为主要载体,针对某个学科知识点(如重点、难点、疑点、考点等)或教学环节(如学习活动、主题、实验、任务等)而设计开发的一种情景化、支持多种学习方式的在线视频课程资源[2]。
本文选取C 语言程序设计课程中学习时重要的输出函数——printf函数作为探讨内容,并以在课堂上开展微课程的形式进行这次堂课的设计。
3.格式函数教学设计
输出函数是C 语言的重点,而格式输出函数printf()函数是输出函数中的难点,格式控制内容多,复杂繁琐,使用灵活。学生在学习时往往觉得难以掌握,尤其是在使用修饰符时会出现困难(本次课程教学之前,学生已经学习了数据类型以及数据之间的运算)。因此,在课程设计时要注重知识的承上启下,在授课方式上注意由浅入深,化静态为动态,从表象探规律,步步引导,培养学生举一反三的创新能力,达到抛砖引玉的目的。
教学目标:
知识目标:掌握printf语句的调用方法;理解printf语句中格式的表达。
能力目标:利用printf函数灵活实现输出。
素养目标:通过知识点的学习,引导学生逐步建立结构程序设计的思维模式。
情感目标:引导学生学会交流与合作学习,培养学生对未来工作的责任心和自信心。
重难点分析:
重点:printf函数的格式控制。难点:各类修饰符的使用。
教学活动设计:
本微课设计采用教具演示法将printf的函数结构进行直观演示,采用任务驱动教学法、温故知新教学法和试误教学法对格式输出函数的应用进行详细讲解。教学过程中关注学生的注意力、切需性、自信心和满足感。教学形式综合运用多媒体技术。具体讲授过程分成以下几个环节。
3.1 引入
首先让学生自己学习微课程。微课程是以视频的形式让学生学习,如何在一开始就抓住学生的注意力以期做到引人入胜,这是教学设计时需要思考的难点之一即抓住学生的注意力。本次课中,通过图片展示各类输出现象,以提问的形式:在C语言中我们如何实现信息的输出呢?让学生带着问题专心地进入接下来的学习。给出答案:通过调用标准库函数中提供的输出函数来实现语句如下:
#include
接下来很自然的转入本课正题,学习其中输出函数中使用最多的格式输出函数printf(),同时解决了为什么要学习和学习什么内容两个问题。
3.2 知识准备
由于格式输出函数中的格式字符和修饰符种类繁多,形式多样,难以掌握,因此根据高职院校C语言的教学大纲,将常使用的格式字符和修饰符进行整理和分类,减少学生学习的难度和畏学的情绪,并且便于理解和记忆。本次课程设计为基础核心课,在掌握常见格式字符和修饰符基础上再依此类推,学生在学有余力的情况下再学习其它提升版微课。
1)格式输出函数的格式
printf(“格式控制”,输出项1,输出项2,…);
(1)格式控制包含的信息
字符输出:提供需要原样输出的文字及字符或者转义序列
格式说明:为输出项提供输出格式说明
(2)输出表列:是需要输出的一些数据,可以是常量、变量或表达式
2)格式说明
%[修饰符] 格式字符
(1)格式字符
图1 常用格式字符举例
(2)修饰符 % [标志][输出最小宽度][.精度][长度] 格式字符
图2 常用修饰符分类
3.3 输出举例
分析下面程序输出结果
#include
main( )
{
int a=1234;
float f=123.456;
printf(“%-8d\n”,a);
printf(“% +10.2f\n”,f);
}
建议学生暂停微课视频,引导学生自己分析输出的结果,并与老师给出的结果和老师的详细讲解相比较,检查自己的解题思路和结果有无错误之处。由于静态的语句学生不能看到它的结果,因此通过执行VC 程序来动态展示语句运行结果,并在监视窗口观看变量的值,这样更直接客观,进一步理解格式输出函数,内化知识。
3.4 探讨
在理解的基础知识上,进一步提出学生在使用格式函数的几点注意事项,并给出例子,分别配以学生常见的错误答案,例如:
#include
main( )
{
int i=8,j=10,m=0,n=0;
printf(“%d,%d, %d,%d\n”,i,j,m=++i,n=j++);
}
答案一:8, 11, 9,10
答案二:9,10,9,10
再执行VC 程序来动态展示语句运行结果:9,11,9,10
此时超出预期的运行结果,必将让学生印象深刻。进一步给出结论:如果“输出表列”是表达式,则输出列表中的求值顺序,不同的编译系统不一定相同,可以从左到右,也可从右到左,Turbo C,VC++6.0 都是按从右到左进行的,而LCC是从左到右的。上例的结果在LCC编译器结果是:8, 10, 9, 10
3.5 新知巩固
将本节课的新理论知识点以选择题、填空题、判断题等形式,来检测学生的学习效果和知识点的掌握的情况,并在学生易出错的地方重点讲解下。最后给出课后作业,确保学生独立完成。
4.微课的应用策略
制作微课的意义在于如何组织教与学的过程,使得微课作为课堂教学有效的资源,以达到最佳的教学效果。因此,课前教师方面应充分备课,做到有的放矢,微课的学习让学生能够感知或理解相应的知识。课堂则是学生“吸收内化” 的过程,教师根据微课学习反馈,给予有针对性的辅导,学生之间相互交流讨论,将知识点内化[3]。课后则是学生知识点或技能的巩固过程,进行有效的练习,达到本节课的学习目标,重点清理重难点目标。而教师应该及时做好教学反思,通过学习平台或课后作业等了解学生的学习情况,进而对教学过程进行调整。本文仅从C语言微课的应用方面,谈谈如何组织实施教学的过程:
(1)确立学习目标