如何上好程序设计类课程

来源 :考试周刊 | 被引量 : 0次 | 上传用户:maotou528
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文在算法基础上,提出了编程和调试的章法理念。结合汇编语言综合编程练习内容,从讲授和实验两个方面专门安排了章法训练练习,强化了学生对程序设计方法的能力训练,取得了显著效果。
  关键词:程序设计课程 教学方法 章法
  
  引言
  程序设计类课程的主要教学内容是算法、数据结构、程序设计方法及语言运行环境。语言环境学生都能掌握,算法解决问题的细节和编程思路,数据结构和算法密不可分。一般程序设计教材中都对典型问题的算法及其数据结构提供丰富的示范程序,学生也比较容易理解和掌握;而程序设计方法是解决复杂问题的宏观编程思路。目前各种程序设计教材中,在介绍了程序三种基本结构和典型算法例题后,都会给出几个综合例题,但普遍缺少详细、具体的分析设计过程,特别是缺少上机调试步骤的具体介绍。学生普遍反映“例题程序老师讲时明白,例题也看得懂,但自己一做题就感觉无从下手”。上机调试运行时一旦出错就束手无策,不知从哪查起,只好等老师帮忙。我认为之所以出现这种普遍现象,是因为学生没有掌握程序设计及上机调试的章法,应在教学过程中加强培养和训练。
  
  一、基本方法
  
  我在教学过程中主要从以下几个方面入手:
  1. 明确学习目的、培养学习兴趣告诉学生学好编程不仅可以解决在软件使用中所遇到的问题,改进现有软件,还可以为自己找到一份理想的工作添加重要的砝码,有利于在求职道路上谋得一个好的职位;学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身就是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,有所作为,具有一定的编程能力是一个基本条件和要求。
  2. 培养学生的主动探索意识讲完每个例题,引导和鼓励学生进行拓展延伸的思考,例如讲完求“给定100个数中正数的个数”例题后,特别是在上机实验的时候不要只满足于把给定程序运行通过,更要敢于和善于进行局部改动,观察效果,加深理解。例如程序改为“求负数的个数”、“求小于60的数的个数”如何改动?
  3. 强调算法的一般性讲授完每个典型算法,都要以类比的形式列出几个同类型的问题。比如C语言课程中讲完自然数1~10的累加算法例题以后,引导学生思考:要实现1~100的累加应该改动哪里?1~10的累乘如何实现?提醒学生不要死记硬背具体的程序,要重视掌握算法思想,学会举一反三。
  4. 学会总结归纳积累要求学生在笔记本上进行典型算法的归纳总结,对例题中展示的处理技巧(根据合法性判断、回车的判断、输出格式的控制)收集整理。特别提醒大家要把算法的设计表达和算法用某种语言实现区分开来。提出掌握算法的标准,能用自然语言把处理步骤表达清楚。
  5.课程进行到综合例题阶段,在课堂上要拿出专门时间进行编程和调试方法的章法讲解示范,并安排相应的实验内容进行体会和巩固。
  本文主要介绍我在最后一个方面所做的尝试,以和大家交流。
  
  二、综合编程训练中的章法训练
  
  课程进行到综合练习题阶段,要向学生强调掌握章法的重要性:“做什么事都要有章法,书法家写字有章法、画家绘画有章法、编写和调试复杂大程序也是有章法的。不会编程的人面对复杂大程序无从下手,而掌握了编程章法的人则能从容应对,有条不紊。”
  所谓编写程序和调试程序的章法,其核心就是“逐步”二字。告诫学生,编程和调试千万不可追求一步到位、幻想一气呵成,而是要学会对题目要求的功能进行分解或简化,化整为零、化繁为简,各个击破,逐步完善。综合编程题其实就是简单算法的综合运用:有的是简单算法并列;有的是简单算法嵌套;或者是既包含简单算法的并列、又包含简单算法嵌套。简单算法并列的题目适合采用自下而上、逐步完善的章法,就是把题目中并列的功能分开考虑,从一个功能做起,实现后增加新的功能,最终实现全部功能。简单算法嵌套的题目适合采用自顶向下、逐步细化的章法先忽略细节要求实现整体轮廓,然后补充细节,最终达到题目要求。上机调试,也提醒学生采用与编程相同的思路,分步编程和调试,这比整体调试更便于发现出错的环节和原因,效率更高。
  有了以上认识上的重视和统一,就可以结合实例进行编程和调试的讲解示范。可以选择一两个典型习题,为学生演示如何对题目的总体要求进行分解或简化,具体指出第一步先实现什么功能、第二步补充到什么程度、第三步……最终实现全部要求(在这里可以顺便介绍一些有关电子电路、工业流水线的安装调试过程,使学生了解程序设计思路其实也是工程上普遍采用的)。
  采用這样的方法以后,学生在一次实验课上(95分钟)基本上都可以完成一个难度较大的综合性练习题,而且普遍反映这样的实验收获很大,不仅知道了复杂大程序是如何逐步完善出来的,同时程序调试能力也有了一个飞跃。总之学生对编程有一种豁然开朗的感觉,同时信心增强、兴趣提高。
  
  三、综合练习题实例
  
  下面以笔者在汇编语言程序设计教学中的一个综合习题说明讲解过程。在学完分支和循环结构之后,同时已经讲解了以下基本例题:
  1.把一个百分成绩按五级分,统计在哪级的程序(分支的典型例题);
  2.把BL寄存器的内容转换为ASCII码(十六进制数转换为ASCII码);
  3.显示一个字符的功能调用(强调回车符和换行符的特殊性);
  4.显示字符串的功能调用。
  这时给出题目:将我班汇编语言的百分成绩,变成按5分制(优、良、中、及格、不及格)形式并统计每级人数,同时将结果显示为如下表格形式。(其中XX表示该段的人数)
  
  这个题目属于分支统计、数据转换和字符显示等简单算法的并列。讲课时采用先把题目分解为以前讲过的几个简单问题,依次逐个实现每个功能,最终实现题目要求。向学生展示自下而上、逐步完善的过程和思想。可以引导学生思考以下问题:
  1.以前我们学过“把一个百分成绩按五级分,统计在哪级的程序”,现在是统计我班(50人)的汇编成绩,如何统计分级?学生立刻意识到只要把统计一个成绩的代码循环50次即可(提示:要预先在数据段中成绩变量中定义50名同学的成绩)
  2.要想将每级的人数显示出来,需要调用字符显示功能。提示学生思考:字符显示只能显示什么?学生立刻意识到这首先要把十六进制数转换为ASCII码才能正确显示。(转换方法我们前面介绍过了,是固定的)我们只要依次把统计得到的优、良、中、及格、不及格的人数传给某寄存器(如BL),转换后显示即可。
  3.如何实现每级人数单独显示在一行?学生根据前面所讲,大部分知道,应该用显示1个字符的功能调用输出回车符和换行符,实现换行目的。对于每级的提示(如A=),只要在显示优的人数前先显示字符“A”和字符“=”,显示完优的人数后显示字符“H”。
  4.对于表格的行线,怎么实现?(提示:可以先用减号构成字符串,通过字符串功能调用实现。)
  在以上详细引导和提示之后,进一步说明完善的思路:通过显示空格使数据居中对齐,每级人数前后用“|”作为表格的列线等。
  通过对题目的分析,学生已经对该题心中有数,可以进一步说明,程序写出来可能比较长,但都是简单代码的“罗列”,大程序其实都“不过如此”。
  最后告诉学生,这个题目是下次实验课的练习内容。要求学生严格按照讲课示范的一个成绩统计——50个成绩统计——显示统计结果——控制显示格式——显示提示字符——显示表格线等步骤进行实验预习及输入调试,教师在实验课上按步骤检查结果。实践表明,90%以上的同学都能在规定的时间内顺利完成题目要求,表示收获很大。
  
  结束语
  程序设计方法的训练,应该贯穿程序设计课程的全过程。实践证明,在课程进行到一半左右的时候,专门突出进行一次编程和调试章法的讲解和训练,能够使学生的编程调试能力显著提高,使学生的学习兴趣和自信心显著增强,对整个课程的顺利进行将起到重要作用。
  
  参考文献:
  [1]沈美明,温冬婵.IBMPC汇编语言程序设计(第2版).北京:清华大学出版社,2005.
  [2]李兰.如何提高学生的编程能力[J].职业教育与研究,2004/08.
  [3]朱勇,王桂红.论培养学生综合编程能力的几点思考[J].农业网络信息,2005/09.
其他文献
课堂观察教学法是一种新兴的教育教学研究方法,其应用是提升课堂教学的一种有效手段.本文主要研究的是高中生物实验课的课堂,通过应用观察教学法,针对实验课程进行记录、分析
随着教育的不断发展,初中数学教学模式也越来越多样化.目前,很多教师都在运用微课进行教学,并且取得了显著的成果,微课教学也在实际应用中不断地完善和发展,渐渐成为提高初中
网络资源的优势十分突出,主要表现在种类丰富、可共享、不受时间和空间限制等,在高中英语教学中利用网络资源,可以拓宽学生的学习渠道,开阔学生的视野,调动学生的学习积极性,
《美術课程标准》指出:“美术课具有人文性质,是学校进行美育的主要途径,是九年义务教育阶段全体学生必修的艺术课程,在实施素质教育的过程中具有不可替代的作用。”  世界的真善美是一个统一的整体,由爱美而求真是发展人类认识的一条重要途径。火被人类利用,首先并不在于它给人群带来暖和,也不是因为它能烤熟兽肉以饱口福,而是因为跳动的火苗吸引了原始人群的眼球,给人带来视觉上的美感。围棋高手能凭借棋形的美感来预估
夕线石(Al_2O_3SiO_2)是蓝晶石族高铝矿物,耐火度1850℃,高温下一次性膨胀并转变为富铝红柱石。它具有高温下机械强度 Sillimanite (Al_2O_3SiO_2) is a kyanite-type high
在小学阶段的语文教学中开展语文阅读教学对学生来说意义重大.但是由于多方面的原因,使得阅读教学中存在了许多问题,导致小学六年级的语文阅读教学无法顺利施行.因此,本文分
摘要:本文主要阐述的是按照《普通高中地理新课程标准》对培养现代公民必备的地理素养的要求,在地理教育的过程中,根据地理思维的特性,培养学生运用地理的思维方法去分析问题和解决问题的习惯和能力,从而提高学生的地理素养。  关键词:地理教育 思维习惯      地理教育,从根本上讲不仅仅是传授地理知识,更重要的是培养学生运用地理的思维方法去分析问题和解决问题的能力。地理思维是地理素质最本质的东西,只有把握
一、世界无烟煤贸易市场由于无烟煤资源赋存分布没有烟煤广泛,生产和经营无烟煤的国家较少,同时也由于无烟煤的应用结构所限而消费少。据不完全统计,无烟煤的贸易量只占世界
地理是一门具有极强综合性的学科,初中地理学科既有社会科学的特点,也有自然科学的特点,所以教学中务必要能够清晰地展现出学科特点.以图导学就是一种很好的教学方式,地理图
摘要:正确认识科学技术与意识形态之间的关系,不仅有助于揭露当今社会普遍存在的科技异化的根源,还可以对人们在现实的实践生活中如何利用科学技术有重要的指导作用。  关键词:科学技术 意识形态 异化 人化    科学技术的迅猛发展,使得当今社会日新月异,它不仅是一种推动社会不断进步的生产力,而且还影响着当今人们的生活方式、观念方式,具有影响人类精神世界的巨大作用,甚至通过物质力量发挥着其政治效应。因此,