走复杂路线的机器人

来源:原创作者:发布时间:2011年04月06日 浏览次数: 次

 一、 教学内容分析

 

       本节选自校本发展性课程《c语言程序设计》,学生上机采用AI-CODE游戏编程竞技教育平台,计算机程序设计语言是C。同学们通过实现一个走复杂路线的机器人,学习数组的概念,定义以及其引用。

 

       内容组织结构是:提出任务 -> 说出常规解决思路,思考其他解决方法 -> 引入数组的感念和定义,运用数组的引用来完成任务 -> 归纳用数组的方法来简化某些问题的处理过程。

 

二、 教学对象分析

       本节课的教学对象为高一级学生,对计算机知识有较强兴趣,但对于枯燥的编程语言的学习有一定的技术难度。有以下特点:

1.      已初步掌握C语言程序的基本结构

2.      掌握C语言的数据类型和表达式

3.      初步掌握C语言三种基本流程控制结构:顺序、选择、循环结构

4.      会使用AI-CODE游戏编程竞技教育平台

5.      对其他C语言的内容缺乏了解

 

三、 教学目标

1.知识与技能

     能在高级语言编程环境操作执行一段计算机程序代码,了解计算机程序的工作过程。

(1)掌握数组的概念、定义。

(2)掌握数组的引用。

(3)掌握数组的初始化。

(4)初步理解数组的作用。

2.过程与方法

(1)合理运用信息技术和方法进行简单的探究活动。

(2)在学习过程中,学会与他人进行广泛交流、相互合作、评价作品。

3.情感、态度与价值观

(1)借助计算机程序解决问题的思想方法,养成严谨客观的学习习惯。

(2)学会运用信息技术进行交流与合作,善于思考,勇于创新,提高解决实际问题的能力。

(3)培养学生分析问题、解决问题以及思维的严密性、条理性。

 

四、  教学重点及难点

1.教学重点

(1)掌握数组的概念、定义。

(2)掌握数组的引用和初始化。

(3)初步理解数组的作用。

2.教学难点

(1)掌握数组的引用。

(2)初步理解数组的作用。

 

五、 教学策略

       AI-CODE提供了这样一个环境:为程序和算法设计的学习及实践提供了一个全方位的环境。由于其游戏主题的有趣性,直观性,使被授者在学习的同时感到了快乐,而在娱乐的同时又发现自己目前的知识存储不能给自己更高的支持,所以为了得到更多的快乐,被授者又投入学习。被授者就是通过娱乐、学习、娱乐、学习这样一个循序渐进的方式,来完成对知识点的学习,这个过程是有趣而不是乏味的,由此带来与传统教学方式不同的效果是提高了被授者的学习兴趣并加深了对知识点的理解度。整个过程是个自主的过程,而非压迫的。

   1.教学方法

    情景教学、任务驱动、赏识教学等。

   2.学习方法

    自主探究、协作学习等。

   3.课时安排

    1课时

 4.基本流程

   创设情景 -> 知识讲解 -> 巧设任务 -> 自主探究 -> 练习拓展 ->反馈评价

 

六、 教学媒体选择

   在多媒体计算机房上课,教师利用投影,电子教室广播软件等媒体进行教学和师生互动。

 

七、教学过程

 

 

教学环节

教师活动

学生活动

设计意图

情境导入

回顾上节课模块化的内容

观看视频录像。

创设情景,激发学生的学习兴趣。

提出任务

任务:

实现一个按顺序移动到坐标(50,200),(150,200),(400,200),(100,200),(300,200),(450,200),(350,200),(600,200),(500,200),(100,200)的机器人。

思考完成任务的具体步骤

让学生知道实现一个按顺序移动到坐标基本步骤:顺序移动到定点。

 

 

 

大家读完这个任务后,发现太简单了吧,只要用doMoveTo系统函数就可以,新建机器人源代码如下: (非数组方法)

void run(void)

{ doMoveTo(50,200);

doMoveTo(150,200);

doMoveTo(400,200);

doMoveTo(100,200);

doMoveTo(300,200);

doMoveTo(450,200);

doMoveTo(350,200);

doMoveTo(600,200);

doMoveTo(500,200);

doMoveTo(100,200); }

思考

完成的步骤有些繁琐,有没有其他简单的方法呢?

认识数组

数组是一个由若干同类型变量组成的集合

数组的定义:

一维数组定义的一般格式为:

数据类型说明符 数组名[常量表达式]

常量表达式表示这个数组的长度。

观察、思考

让学生理解数组的概念和定义

 

思考

这样定义合法吗?

int n; double a[n];

思考讨论回答问题

让学生加深理解数组的定义

掌握数组元素的引用

数组元素的表达形式为:

数组名[下标]

一维数组元素的下标从0开始,如果数组长度为n,则元素的最大下标为n-1。

观察、思考

让学生认识数组元素的表达和引用

掌握一维数组的初始化

一维数组的初始化:

数据类型说明符 数组名[常量表达式]={初始值表};

观察、思考

让学生理解一维数组的初始化

提出任务

任务:(用数组方法)

实现一个按顺序移动到坐标(50,200),(150,200),(400,200),(100,200),(300,200),(450,200),(350,200),(600,200),(500,200),(100,200)的机器人。

分析、思考本任务完成的具体步骤;

上传完成的作品

让学生自己通过本任务的学习如何用数组方法实现

学生自主探究

巡视、指导学生,发现学生存在的普遍问题

学生实践,遇到困难自行阅读学习辅助资料,学生之间相互交流。

让学生自己体验如何用数组方法实现

 

分析总结任务

1、              将个别学生在制作中遇到的问题提出来全班分析。

2、              师生共同归纳出:用一维数组实现的方法。

思考问题存在的地方,提出解决的方法。

以一些经常犯的错误来引起学生注意,帮助学生理清思路,归纳知识。

拓展性练习

为有学习余力的学生布置拓展性练习:

用二维数组完成走(50,50),(150,200),(400,250),(100,400),(300,200),(450,200),(350,100),(600,200),(500,300),(100,200)坐标的的机器人。

阅读学习辅助资料,学生根据自己的实际情况继续完成任务。

上传完成的作品

1.留有时间给学生根据自己的情况修改作业,巩固自己的新知识。

2.给有学习余力的学生更多拓展的机会。

学生自主探究

巡视、指导学生,发现学生存在的普遍问题

展示完成任务的学生作品

学生实践,遇到困难自行阅读学习辅助资料,学生之间相互交流。

让学生自己体验如何用数组方法实现并完成任务

 

分析总结任务

师生共同归纳出:用二维数组实现的方法。

思考问题存在的地方,提出解决的方法。

帮助学生理清思路,归纳知识。

知识梳理,总结本课

我们学到了数组的定义与使用的知识,还体会到了数组在程序中的作用。如果能灵活的引用数组可以给你的工作带来很大的帮助。当然,要熟练的引用数组还需要大量的练习。

 

 

八、 教学评价设计

学生能够用数组来解决机器人行走的路线,并能上传到教师机正常运行,本节课是c语言编程学习的一部分,主要以形成性教学评价为主, 从而促进学生的学习、改进和提高教师教学质量。

 

 、教学反思

      本节课采用AI-CODE游戏编程竞技教育平台,配合教学,同学们对用数组解决机器人行走路线印象深刻,绝大多数学生都能掌握用数组解决机器人行走路线的方法和程序的编写。学生普遍反应效果好。教师发挥主导作用,通过身边的实例启发学生,积极引导,循序渐进、层层深入、由易到难、由具体到抽象、点面结合,同时发挥学生主体作用,步步深入,找出规律,自己动手编写程序。教学效果较佳。为激发和提高学生的逻辑思维能力,提供了一个很好的氛围,体现课堂的开放性,学生对获得的知识进行内化、迁移和应用。