APP下载

“三T”教学法在程序设计类课程中的应用

2014-09-20

天津职业院校联合学报 2014年2期
关键词:数组鼠标程序设计

(天津中德职业技术学院,天津 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).

猜你喜欢

数组鼠标程序设计
JAVA稀疏矩阵算法
基于Visual Studio Code的C语言程序设计实践教学探索
JAVA玩转数学之二维数组排序
从细节入手,谈PLC程序设计技巧
更高效用好 Excel的数组公式
高职高专院校C语言程序设计教学改革探索
寻找勾股数组的历程
PLC梯形图程序设计技巧及应用
鼠标折叠笔
45岁的鼠标