您好, 访客   登录/注册

高中程序设计课教学体会与反思

来源:用户上传      作者: 顾志方

  新课程改革后,信息技术课程中除必修课“信息技术基础”外另有五门选修课,“算法与程序设计”就是其中之一。在所有选修课中,相比之下“算法与程序设计”这一门课的教学难度和深度均高于其他几门课程,我省学业水平测试的结果也印证了这一点。即便如此,仍有一定比例的高级中学却选择“迎难而上”,如苏州市市区的大部分四星级高中开设该课程。选择并给予算法与程序设计教学以充分重视,逐渐成为各校的共识。这其中的缘由也并不难理解:高中生学习“算法与程序设计”,有助于锻炼并提高其逻辑思维能力,对其今后的学业、人生都非常有利;此外,课改后的高中数学中引入了算法的内容,开设“算法与程序设计”选修课,对帮助学生更好地掌握高中数学课中相应内容、从容应对高考效果显著。
  笔者一贯支持开设程序设计选修课,并多年从事该课程的教学研究,积累了一些经验、教训,在此从几个方面谈谈对“算法与程序设计”教学的思考和体会。
  关于算法部分的教学
  对于算法部分,计算机选修课教学要尽量与数学中的“算法初步”教学相配合,协调进度,各自把握好本学科的教学侧重点。至于如何相互配合、把握重点,已不乏文章著述,笔者也曾在另一篇题为《也谈信息技术与数学中的算法教学》的文章上详细阐述了自己的观点,在此不再重复。
  在本选修课开始教学中,应按教材顺序,遵循先“算法”,再“程序设计”的顺序依次进行,理由很简单,“算法与程序设计”的主要任务是程序设计,即进行某种程序设计语言的教学。如果在此之前学生不了解算法这一基础知识,就容易过早地涉及、纠缠于大量的编程技术(如语法规则、编程技巧等),而忽视算法在程序设计中的“灵魂”地位。事实上,学习程序设计语言,就是学习掌握一种将算法转换为计算机程序的工具。因此在本课程教学的初期,让学生了解算法非常关键,理应放在首位。
  在算法部分的教学中,应让学生明白要用计算机解决问题,就得先考虑算法,然后根据算法编写程序。学生可能产生诸如此类的疑惑,即为何在接下来的编程实践中,并未要求或没有必要先写算法再编程实现呢?的确需要及时讲清这一问题,原因在于,作为程序设计的初学者,所编程序一般都较为简单短小,程序算法也自然相当简单,此时不一定需要将它描述出来,只要在编程前形成在头脑中就行了。应告诉学生,其实各种算题都能概括为三大部分,即:输入什么?如何处理?输出什么?在编程前,将具体算题简化为这三个步骤,这就是算法。比如用计算机求三角形面积的算法,就是输入三角形的底和高,经过底乘以高并除以二的处理,形成了面积,最后输出面积。学生在编程实践时,依照以上三步将一个个实际问题转化成算法,再通过编写程序实现算法从而解决实际问题。在此过程中,使学生逐步从算法的“算理”中体会算法在编程中的重要性,会产生事半功倍的效果。
  程序基本结构的教学
  程序三种基本结构(顺序、选择、循环)的教学中,应该把流程图作为描述算法的主要工具,以使学生易于理解不同结构各自的特点。
  一般情况下,学生对顺序结构的理解没有障碍,但一旦实际编写程序代码时,就可能忽略语句按顺序执行的道理。例如:在编写求三角形面积的程序时,经常出现学生将底和高的变量赋值语句写在计算面积的语句之后的情况,导致输出面积为零。教师在辅导时应抓住这一时机,帮助学生理解顺序结构的真正意义。
  在初次进行循环结构教学中,教师应将“累加器”及“累乘器”的编程方法尽量解释清楚,同时,巩固前面已学习的设置变量和给变量赋值语句,理解在程序设计中一些惯用的做法。例如,在“求前100个正整数的和”的编程事例中,所包含“sum=sum+n”、“n=n+1”两条语句,都是“累加器”语句,借机讲清它们的赋值过程,避免再使学生陷入视其为等式的误区。
  教学中的规范问题
  教师在实际教学中应尽量做到规范操作,身体力行地去影响学生。如教学中现场绘制或呈现给学生的流程图,要准确规范。关于算法流程图的规范有很多,甚至有专著对此加以专门阐述,但作为信息技术教师,至少应注意以下几点:(1)任何一个算法流程图都只用一个“开始”框和一个“结束”框,符合结构化的程序设计方法;(2)在描画各种框图的流程线时,应尽可能沿着图的中轴线走,使图显得美观沉稳,也体现了自顶向下、逐步求精的算法思想或程序自顶向下执行代码的重要特征;(3)遇有分支或循环结构时,在可能情况下,流程线的分支线向上跳转时,应从图的左边向上画,向下跳转线应画在中轴线的右边,遵循顺时针原则。
  同样,教学中示例书写程序也要注意规范整洁。在书写分支和循环语句时,应利用Tab键将执行语句组向右缩进,这样既达到美观的效果又增强了程序的可读性,便于调试程序。另外,还有对象命名、变量命名的前缀约定等,都是规范编程、提高程序可读性的必要措施,在教学中要多注意加以引导。
  当然高中阶段对上述方面并无特别要求,但笔者以为,作为教师应该严格要求规范律己,教学中不必花更多时间刻意从以上几个方面训练学生,但应尽可能地提倡这样做,亲身示范,使学生在潜移默化中养成规范操作的良好习惯。
  勤于归纳,善于总结
  每一教学课时告一段落后,都应及时地归纳总结主干内容,将离散的知识点有机地串联成一个整体加以巩固强化。譬如在讲授Print输出方法后,就要及时地与学生一起回顾总结已学过的所有输入和输出(I/O)方法。对于初学程序设计的高中学生,目前大纲仅要求掌握文本框TextBox和函数InputBox两种输入方法,标签Label、文本框TextBox和窗体打印Print三种输出方法。学生在编程时,除非有要求,需要输入时就考虑选用两种输入方法中的一种,输出时则考虑选用三种输出方法中的一种。布置上机实践题时,要有意让一部分题目有输入输出方法的要求,另一部分题目自由选择I/O方法。如此一来,学生很快就能在编程中掌握I/O的几种编程方法,学习效果更加显著。


转载注明来源:https://www.xzbu.com/9/view-1032376.htm