“三T”教学法在程序设计类课程中的应用
2014-09-20
(天津中德职业技术学院,天津 300350)
在高职教学中,程序设计课程具有逻辑性强,抽象等特点,很难能引发学生的学习兴趣。程序设计课程传统的教学模式分章节教学,学生往往学习到课程结束,理论知识学习了不少,但远离应用。学生对于开发实用的程序无从下手。为了使学生回归课堂的主体,用最快的时间让学生获得成就感,激发学生的学习兴趣和愿望,采取了复线型分组式任务教学法,即“三T”教学法。本文通过C语言“连连看”游戏设计的实际案例来加以说明。
一、“三T”教学法的理论基础
任务教学法(Task-based Teaching, TBT)是建立在建构主义教学理论基础上的教学方法。建构主义认为,认识是一种以主体已有的知识和经验为基础的主动建构,认知过程包括注意、感知、记忆、思维和问题解决等方面。任务教学法是以学生为主体,关注学生心理认知过程,并以主体已有的知识和经验为基础,对新知识主动建构的过程。任务教学法以明确的任务作为课堂主要教学目标,在实践任务过程中,培养学生自我分析、解决、总结问题的能力。
分组式教学法(Teaching in Groups, TIG)是指教师在授课时,按一定的规律,将全班分成若干个学习小组,以小组为单位进行循环教学的教学方法。这种教学方法通过形式多样的分享活动,充分调动学生的学习积极性,让学生做学习的主人,使学生得到全面发展,有效解决现有教学资源不足的问题。
复线型教学法(Teaching in Multi-track, TMT)是采用以任务内容为主线,以传统教材按章节划分的理论知识为辅线,齐头并讲的教学方法。
本文将TBT、TIG和TMT三种教学法结合在一起,形成全新的“三T”教学方法,“三T”教学方法的全称叫做复线型分组式任务教学法。
二、“三T”教学法在“连连看”游戏设计中的应用
1.课程总体设计
教学围绕培养学生用程序设计语言解决实际问题的能力。通过“连连看”一个学生熟悉的案例引入,案例分析,让学生逐个步骤了解连连看游戏的开发过程,再逐步分解任务。帮助学生形成应用程序设计的思路和方法,帮助学生学会查看帮助手册,使用相关资料。从而达到提高学生程序设计的综合能力,增加信心和兴趣。学生以小组为单位完成系统设计,通过小组内讨论,分工,培养每个学生的团队合作能力和团队荣誉感。
2.教学条件
硬件环境:台式电脑,白板。
软件环境:window xp操作系统
教师提供:VC6.0集成开发环境,开发帮助文档,相关源代码。
对软硬件环境几乎没有要求,只要带着U盘,有电脑的地方都可以进行开发。
3.教学方式及考核方式
教学方式采用统一讲解理论和分组实训相结合:统一讲解理论知识。实训时四个人一组,其中一名项目组长,一名技术总监。项目组长负责项目人员分工协调,技术总监负责系统集成和攻克技术难关。每名组员由项目组长分配具体工作模块。
考核方式为项目组长和技术总监对每个成员进行项目过程考核。成员对项目组长和技术总监进行过程考核。
4.教学内容及步骤
(1)“连连看”项目导入
课程通过案例的方式导入:“在一次游戏设计实训课上,有个学生没有做老师给她布置得任务,在玩一个叫“连连看”的游戏,老师看到后没有立即制止,和她说我们学习的知识可以做这个游戏,要不要尝试?后来她通过努力完成了这个游戏的设计,她很激动,开始主动尝试新的挑战。”
案例导入结束后,设计两个问题让学生展开思考,问题有针对性。问题一:这个游戏是如何操作的?问题二:游戏中你看到了什么?
通过两个问题让学生了解了游戏的操作流程,看到了直观的图片,表格,鼠标点击后等具体要解决的问题。
(2)“连连看”任务分解
教学任务过程设计七个子任务:
项目背景介绍,确定系统边界;
复线型教学法讲解任务所需理论知识,板书讲解;
连连看游戏的系统分析,功能模块的划分;
整理收集开发素材(教师提供,小组收集);
实现游戏布局;
实现鼠标消息处理;
图1 板书样式
系统集成测试。
其中前四个子任务是教师带领学生完成的,通过前四个子任务系统设计有思路了,开发所需的原材料,参考资料齐全了,后三个子任务由学生自主完成。
子任务单1、项目背景介绍,明确系统边界
“连连看”游戏是一个非常流行的桌面小游戏,有多种版本的“连连看”。我们这次课程要开发的任务是一个最基础的版本。
设计要求:给定一个10×10的图片的矩阵,鼠标连续两次左键点击后判断,如果两个图片相同,且位置不同时,消除这两个图片。图片全部消除后游戏结束。
子任务单2、复线型教学法讲解任务所需理论知识
VC开发环境的搭建。
讲解程序设计的整体框架,如图1所示。
讲解本次设计使用到的知识点。
子任务单3、连连看游戏的系统分析,功能模块的划分。
系统分析:
数据定义:定义10×10二维数组用于记录每个位置图片编号,规定1-20为图片编号,0为已消除图片编号。
布局设计:图形相关函数的使用,图片的收集。
游戏操作:鼠标点击消息处理,相同图片判断,记录消除图片数量。
游戏结束判断:设置达到消除图片数量值为50。
功能模块划分,接口函数如下:
init()初始化数据布局。
mouse_hit()游戏操作。
judge_user()用户定义游戏结束条件。
ok()显示成功。
子任务单4:整理收集开发素材。
布局所需素材,如表1所示:
表1 布局相关函数
鼠标操作所需素材,如表2所示:
表2 鼠标相关函数
参考鼠标操作模板:
MOUSEMSG m;//定义鼠标消息
while(true)
{
//获取一条鼠标消息
m=GetMouseMsg();
witch(m.uMsg)
{
case WM_LBUTTONDOWN://左键按下
break;
}
}
如何判断图片相同?
算法思想提示:
由鼠标的当前位置为(m.x,m.y),每个图片大小48×48,内边框宽1,图片区域大小为50×50,所以通过image[m.x/50][m.y/50]读取当前图片的编号。同理鼠标第二次点击后判断,下标与第一次点击时不同,且图片编号与第一次点击时的相同时,执行消图操作。
子任务单5:实现游戏布局。
背景可设计成一个495*495的方形区域(48*10+9+3*2=495)
边框与背景边框距离1,边框线宽2,内部线宽1。图片内方框大小48*48,每个图片占面积50*50。运行效果如图2所示。
图2 布局效果
绘制边框的参考代码:
initgraph(495, 495);
setbkcolor(RGB(255,220,255));//背景色
cleardevice(); //清屏幕
setlinestyle(PS_SOLID, NULL, 2);
setfillstyle(RGB(255,232,222));
//***************表格的绘制******************
line(2,2,493,2);//上边界
line(2,2,2,493);//左边界
line(2,493,493,493);//下边界
line(493,2,493,493);//右边界
图片的加载参考代码:
IMAGE img[50]; //定义图片对象数组
getimage(&img[0], "D:\image\0.jpg"); //获取D:image .jpg路径下名为0.jpg的图片
Putimage(0, 0, &img[0]); //图片从(0,0)位置开始绘制
子任务单6、实现鼠标消息处理。
实现鼠标消息处理思路:用变量存第一次鼠标点击x,y坐标转换成数组的坐标及数组元素的值和第二次鼠标点击后捕获的x,y转换成图片数组坐标及数组值相比较。值相同且数组下标不全相同时,用消除后统一图片替换,并把其两个图片的数组值赋值为0。
参考代码框架:
if(n%2!=0)
{
//记录第一次点击的数组坐标及数组值
}
else
{ //记录第二次的位置,和图片名称
if(是否满 足消除条件)
{
//消除图片填充
//数组值赋值为0
//消图片组数记录
}
//变量初始化
}
子任务单7:系统集成测试。
系统集成伪代码框架:
void main()
{
Init( ) ;
mouse_hit();//鼠标操作
judge_user();//判断是否结束
}
judge_user()用户定义结束条件
{
//调用ok()显示结果
}
ok()显示成功
{
}
还有一个任务是:帮助学生学习使用DEBUG调试工具,锻炼纠错,改错能力。
运行结果截图,如图3所示。
图3 运行效果
三、教学实际效果
学生开始接触程序设计时会觉得枯燥,无从下手,我采用的方法先把程序框架搭建起来,每个子任务都在程序框架中。再针对某一个子任务我给学生一个类似的代码版本,学生读程序,我根据我们的子任务经过改动后再发给学生,看看两次代码运行结果的变化,代码编写的变化。学生在不断的尝试中,摸索中不知不觉在熟悉程序,开始尝试写程序,学生有了求知欲。当每一个子任务完成时,他们可以运行程序见到效果,成就感推动学生前进。几个部分的子任务都完成了程序也基本完成了。学生挑战中获得满足感,也激发学生很多创意,会产生很多新想法,当我和学生一起把这些新想法实现时,我们都收获了成就感。 “三T”教学法在程序设计课程中的应用,培养了学生的兴趣,拓展了学生的思路,取得了学习成果。
四、总结
通过“连连看”这一实例的教学为例,任务的设计需要教师前期准备,一定贴近学生生活,难度适中,让学生可以快速、不断的获得成就。当学生融入任务中时,他们会开始主动学习。
作为应用性学科,我们要用好手中的工具,努力让学生成为课堂的主角,教师成为是课堂的组织者,以应用作为向导来指导学习。让学生有兴趣的,有成就感的,快乐的学习。
结合“三T”教学法的理论,结合本文的实例,说明“三T”教学法在程序设计课程中是适用的,并且取得了良好的教学成果。同时结合“三T”教学法的程序设计类课程的建设,开发还有很多工作要做。
参考文献:
[1]田宝忠.关于高职学生评价体系的研究[J].天津市财贸管理干部学院学报,2007,(01).
[2]田宝忠.高职院校“三T”教学法的应用[J].职业技术教育,2010,(09).