论文部分内容阅读
程序设计教学长期以来一直是高中信息技术课教学的重点和难点之一。如何找到一条比较实效的教学方式,使学生通过学习既掌握高级编程语言的知识,又能灵活运用高级语言进行程序设计,一直是广大信息技术教师颇感兴趣的课题。本文结合实例和具体的课堂教学,就如何提高程序计课程的教学质量、培养和提高学生分析问题、解决问题的能力和创新能力等方面,谈了一些在教学上的经验和体会。
目前程序设计教学中存在的普遍问题
根据笔者以前的程序教学经验和通过与学生、同行之间的交流,得知部分学生反映上课时都能听懂讲解,可在涉及到具体的编程及上机操作时,往往会出现没有思路、无从下手或错误百出、不会调试程序等各种情况。究其原因,在教学方面可能存在以下两个问题:
1、教材重语法,轻算法
现在的教材通常先给出一般的语法格式,然后逐步讲解语法要点,再给出例子。教师钟情于举一反三地对使用语句、语法的深入教学,而不是有机地结合算法思想进行教学。贴近生活并引起学生兴趣的编程题讲得很少。这往往导致学生上机时不知道写程序的步骤而无从下手。 2、学生厌学,师生沟通少 学生对于先讲后编、先听后编这一传统的课堂教学方式有厌倦心理。同时由于高中信息技术课的课时少(据笔者了解一般学校都是两节课,而且这两节课间隔时间又长),平时课后作业又很少,师生之间缺乏足够的交流和沟通,学生没有有效、实用的学习辅助途径,也间接影响着学生的学习兴趣和学习效果。
在教学中所采取的实践尝试
那么,如何就针对现阶段程序设计教学中存在的普遍问题有效开展高中程序设计课呢?笔者做了以下几点尝试:
1、由易到难,逐步深入上好程序设计的理论课
学习程序设计的目的就是要培养中学生的结构化程序设计的逻辑思维,而这种逻辑思维又主要是通过对顺序、条件、循环三种结构化语句和过程、子程序及自定义函数的学习来获得的。要让学生学好上述三个语句,首先要理解各语句的结构、功能和框图的绘制,然后是多举例,同时举例也要由易到难。比如学习条件语句,这时可先举数学中的一些数值判断的例子,例如有这样一个关系式:当X≥0时,y≥0;否则当X<0时,y<0。通过这个例子来教学生认识条件判断语句的结构、书写规则,了解其功能和如何画流程图。在让学生循序渐进学编程时,老师应多采用程序填空、补充完整的方式诱导学生进入编程的角色。同时对于编程要用到的很多函数及其他语句,就可以在讲程序设计时,结合例子碰到一个讲解一个,使学生活学活用,解除学生学习的拦路虎,减轻学生学习的心理压力。
2、合理把握技术难度,加强思想方法感悟
技术难度的把握是程序设计教学中容易产生困惑的地方,难度过高,大部分学生无法掌握;难度过低,天赋好的学生感觉学不到知识。面向所有学生,要找到一个平衡点,须遵循奥卡姆剃刀原理:即根据绝大多数学生的接受能力,在“课标”的基本要求之上,剔除教材中那些不必要的所谓“技巧”,传达具有广泛迁移意义的技术思想与技术方法。课堂中可以通过讲解、观察、范例模仿、组装现成模块等手段降低技术难度,使其逐步掌握程序设计的基础知识,感悟程序设计的一般流程;对于天赋好、兴趣浓的学生,教师可以通过课外引导而不是讲授的方法促使其逐步加大技术难度,探索更广泛的应用领域。
3、改革上机操作的实践环节,重视上机调试
学生编写的程序,往往含有比较多的逻辑错误。对于其中比较典型的错误,老师可以挑选出来,引导学生一起纠正。但是如果对所有的错误老师都要一一纠正,不仅占用太多时间而且很不必要。老师可以要求学生将编写的程序输入到计算机,进行上机调试。对于语法上的错误,老师可以帮助解决。对于逻辑上的错误,如得到了不正确的结果,应该让学生独立分析、修正、改进程序。以VB为例,教师可以教会学生如何设置观察变量和程序单步执行。这样学生通过观察程序执行到每一步时各个变量值的变化,分析出产生错误的原因。上机调试,不仅是学习程序设计的必要技能,也是学生修正自己错误思维的过程。教师在上机实践的环节中只是起引导、辅导的作用。通过改革了的上机实践可以巩固和提高前面的知识,不断地用所学的知识去逐步完善这些程序,并将编程的技能技巧渗透其中。
4、组织课外兴趣小组活动,培养学生的特长
在高中阶段,每周只有两节信息技术课,由于课时的限制,不可能讲得很深。为了满足对信息技术课有兴趣的同学的学习,需要组织课外兴趣活动小组,开展第二课堂活动。例如,可以开展程序封面和程序菜单的设计比赛、学校运动会运动比赛项目安排等程序设计比赛。而通过搞比赛,老师也就能辅导这些学生学习书本外的知识或深入讲解课本相关知识,从而提高这些学生的程序设计水平。同时又培养出了一部分信息技术课的学习尖子,让这些学生在上机课中或平时学习中帮助其他同学,达到教学效果的普遍提高。
程序设计是计算机这一现代工具为基础教育带来的一种培养逻辑思维能力的新方法和新手段。高中程序设计教学的主要目标是围绕着这个目标,遵循程序设计教学的基本规律和基本原则组织教学,一切可行的教学方法都可以在我们的教学过程中加以运用。
目前程序设计教学中存在的普遍问题
根据笔者以前的程序教学经验和通过与学生、同行之间的交流,得知部分学生反映上课时都能听懂讲解,可在涉及到具体的编程及上机操作时,往往会出现没有思路、无从下手或错误百出、不会调试程序等各种情况。究其原因,在教学方面可能存在以下两个问题:
1、教材重语法,轻算法
现在的教材通常先给出一般的语法格式,然后逐步讲解语法要点,再给出例子。教师钟情于举一反三地对使用语句、语法的深入教学,而不是有机地结合算法思想进行教学。贴近生活并引起学生兴趣的编程题讲得很少。这往往导致学生上机时不知道写程序的步骤而无从下手。 2、学生厌学,师生沟通少 学生对于先讲后编、先听后编这一传统的课堂教学方式有厌倦心理。同时由于高中信息技术课的课时少(据笔者了解一般学校都是两节课,而且这两节课间隔时间又长),平时课后作业又很少,师生之间缺乏足够的交流和沟通,学生没有有效、实用的学习辅助途径,也间接影响着学生的学习兴趣和学习效果。
在教学中所采取的实践尝试
那么,如何就针对现阶段程序设计教学中存在的普遍问题有效开展高中程序设计课呢?笔者做了以下几点尝试:
1、由易到难,逐步深入上好程序设计的理论课
学习程序设计的目的就是要培养中学生的结构化程序设计的逻辑思维,而这种逻辑思维又主要是通过对顺序、条件、循环三种结构化语句和过程、子程序及自定义函数的学习来获得的。要让学生学好上述三个语句,首先要理解各语句的结构、功能和框图的绘制,然后是多举例,同时举例也要由易到难。比如学习条件语句,这时可先举数学中的一些数值判断的例子,例如有这样一个关系式:当X≥0时,y≥0;否则当X<0时,y<0。通过这个例子来教学生认识条件判断语句的结构、书写规则,了解其功能和如何画流程图。在让学生循序渐进学编程时,老师应多采用程序填空、补充完整的方式诱导学生进入编程的角色。同时对于编程要用到的很多函数及其他语句,就可以在讲程序设计时,结合例子碰到一个讲解一个,使学生活学活用,解除学生学习的拦路虎,减轻学生学习的心理压力。
2、合理把握技术难度,加强思想方法感悟
技术难度的把握是程序设计教学中容易产生困惑的地方,难度过高,大部分学生无法掌握;难度过低,天赋好的学生感觉学不到知识。面向所有学生,要找到一个平衡点,须遵循奥卡姆剃刀原理:即根据绝大多数学生的接受能力,在“课标”的基本要求之上,剔除教材中那些不必要的所谓“技巧”,传达具有广泛迁移意义的技术思想与技术方法。课堂中可以通过讲解、观察、范例模仿、组装现成模块等手段降低技术难度,使其逐步掌握程序设计的基础知识,感悟程序设计的一般流程;对于天赋好、兴趣浓的学生,教师可以通过课外引导而不是讲授的方法促使其逐步加大技术难度,探索更广泛的应用领域。
3、改革上机操作的实践环节,重视上机调试
学生编写的程序,往往含有比较多的逻辑错误。对于其中比较典型的错误,老师可以挑选出来,引导学生一起纠正。但是如果对所有的错误老师都要一一纠正,不仅占用太多时间而且很不必要。老师可以要求学生将编写的程序输入到计算机,进行上机调试。对于语法上的错误,老师可以帮助解决。对于逻辑上的错误,如得到了不正确的结果,应该让学生独立分析、修正、改进程序。以VB为例,教师可以教会学生如何设置观察变量和程序单步执行。这样学生通过观察程序执行到每一步时各个变量值的变化,分析出产生错误的原因。上机调试,不仅是学习程序设计的必要技能,也是学生修正自己错误思维的过程。教师在上机实践的环节中只是起引导、辅导的作用。通过改革了的上机实践可以巩固和提高前面的知识,不断地用所学的知识去逐步完善这些程序,并将编程的技能技巧渗透其中。
4、组织课外兴趣小组活动,培养学生的特长
在高中阶段,每周只有两节信息技术课,由于课时的限制,不可能讲得很深。为了满足对信息技术课有兴趣的同学的学习,需要组织课外兴趣活动小组,开展第二课堂活动。例如,可以开展程序封面和程序菜单的设计比赛、学校运动会运动比赛项目安排等程序设计比赛。而通过搞比赛,老师也就能辅导这些学生学习书本外的知识或深入讲解课本相关知识,从而提高这些学生的程序设计水平。同时又培养出了一部分信息技术课的学习尖子,让这些学生在上机课中或平时学习中帮助其他同学,达到教学效果的普遍提高。
程序设计是计算机这一现代工具为基础教育带来的一种培养逻辑思维能力的新方法和新手段。高中程序设计教学的主要目标是围绕着这个目标,遵循程序设计教学的基本规律和基本原则组织教学,一切可行的教学方法都可以在我们的教学过程中加以运用。