论文部分内容阅读
摘要: 程序设计语言课程的一个最基本目的是:使学生既掌握程序设计语言的语法知识、编程技术和基本算法,又掌握程序设计的思想和方法,更具备利用计算机求解实际问题的能力,能灵活运用程序设计语言进行程序设计。本文从编程方法和风格出发,在重视算法教学、注重多媒体教学的运用的基础上,提出了如何提高程序设计语言的课堂教学质量。培养学生的实际动手能力,从而掌握解决实际问题的程序设计思想。
关键词: 编程方法;编程风格; 多媒体教学; 能力培养
中图分类号:G 434 文献标识码:A 文章编号:1673-8454(2008)04-0021-02
程序设计类课程是计算机科学与技术及相关专业的基础课程,在计算机专业课程体系中占有十分重要的地位。该课程的教学目的是使学生掌握程序设计的基本方法和理论,编写程序来解决具体问题。
由于程序设计语言的逻辑性强,语法、句式结构抽象。在教学方法上,沿袭传统的教学模式,即以一种高级语言的语句体系为脉络展开教学,详细地讲解其语句、语法,甚至一些细节内容,没有注重程序设计的方法和算法的设计思想。这样不仅使课程枯燥无味,而且造成学生的理论基础差,动手能力不强和缺乏创新思想。鉴于此,本文从以下几个方面来浅谈程序设计语言的教学方法。
一、注重结构化编程方法引导
结构化程序是由顺序结构、选择结构和循环结构三种基本结构组成。而每一种结构又可作为程序的一个单元,这样,结构化程序就是由若干个单元组成,而每个单元又是由若干个执行语句组成。在教学过程中,根据程序设计语言各种基本结构的特点,创设问题情境,鼓励探索与发现,加强对学生的思维训练,要求对每一个程序的设计都要按照结构化的程序设计方法:自顶向下,逐步求精,模块化进行处理。画出N-S结构流程图,最后再根据流程对每一个程序构成部分进行编程技巧分析,明确每个部分的细节,写出思路和相应的可执行语句,编写出各个模块,经过组合后即得所要的结构化程序。这样可以使学生养成良好的程序设计书写习惯,调动学生思维和激发学习兴趣。
二、注重良好的编程风格引导
在培养学生良好的程序设计书写习惯时,良好的编程风格也是学习程序设计语言必不可少的因素。例如我们知道,free 和 delete 都可以把指针所指的内存给释放掉,比如:
char *p=(char*)malloc(50);
strcpy(p,"hello");
free(p);
这段程序运行一定没问题,但如果在其后加上这样一段代码:
if(p!=NULL)
{
strcpy(p,"world");
}
我们会发现出错了!这是因为,p所指内存被释放,但是p 存放的地址值仍然不变,即P成了“野指针”。尽管尝试用if(p!=NULL)来判断p的可用性,我们却发现出错处理并没有起作用。所以,良好的习惯是在 free 和 delete 后,都要对指针作置空处理,即 p=NULL。有人会说如果要这种情况出现在程序结束时,一切指针也会消亡,动态内存也会被操作系统回收,所以P置空是多余的。但是如果有人将这段程序取出来用到其他地方会怎样呢?结果不是我们想见得到的。
三、注重算法设计概念的引入
程序=算法 数据结构。这就提出我们在进行程序设计教学过程中,不仅要重视语法的讲授,也要重视算法的讲授,甚至是要将算法提到更为重要的地位。程序设计是要解决问题,语言只不过是为解决问题而使用的工具,真正解决问题的是算法。如在 C 语言程序设计课程教学中,当完成分支结构程序、循环控制和数组,进入内容较多的算法设计教学后,我们将教学内容分为以下几个方面。
一是一般数据组织算法,查找、排序、字符串处理、求素数、筛选、迭代、穷举等。
二是函数调用,函数嵌套、递归算法等。
三是指针算法,动态内存分配,链表等。
四是用矩形法、梯形法计算定积分、模拟算法的随机抽样、蒙特卡罗法等算法。
五是文件数据处理。线形表、堆栈、队列、二叉树以及基于运筹学的动态规划等。
在课堂上增加算法设计的分析和讨论,强调算法设计的优化和程序的优化,是提高学生分析问题能力的有效方法。同时通过依据问题的分析形成算法,编制程序,可以培养学生抽象思维能力,解决生活中的问题。
四、注重多媒体教学的运用
直观、形象、便捷的多媒体教学可以使学生在有限时间内迅速理解、掌握、获取更多知识和信息,如字处理 Word、电子表格 Excel。
我们认为,程序设计语言不仅仅要教会学生语法知识,更要通过课程教学,培养学生抽象思维和逻辑推理能力,掌握程序设计的思想和方法。
教学过程中使用多媒体教学,将程序设计语言语法中非常深奥理论和逻辑推理的内容(如数据类型、运算符、语句及部分语法规则),运用多媒体教学直观、形象地讲授给学生,加深其对问题的理解。
如在C语言中讲解变量a与b互换,可运用CAI课件生动的展示为:一个瓶中(A)装有油,一个瓶中(B)装有水(瓶代表内存,油、水代表变量),要想将瓶中的油和水互换,需另一个空瓶(C)来过渡:将A瓶中的水倒入到空瓶C中,然后将B瓶中的油倒入到A瓶中,最后将C瓶中的水倒入到B瓶中。
取指针中的数据,可以展示生活中的例子:若将A抽屉的钥匙放在B抽屉中,那么要取A抽屉中的东西,就要开B抽屉、再开A抽屉、再取东西。可把指针比喻为抽屉号码,这样不照本宣读,学生很容易理解。这样的多媒体教学,收到了将抽象问题形象化、枯燥问题生动化的效果。
五、 注重学生能力培养
学习程序设计,是为了培养学生用所学的语言在实际生活中解决具体的问题的能力。
在授课的过程中,通过任务驱动式和启发式教学,学生通过教师教授、师生探讨、上机实验等环节培养分析解决问题的能力,达到学以致用的目的,潜移默化当中培养学生的动手和创新能力。为了更好的培养学生的创新和科研能力,通过开展程序设计技术方面的系列讲座,引领学生进人的更高层次,激发学生进行科学研究的兴趣并给与指导。为进一步加强学生的实际动手能力和创新能力,对一些对程序设计感兴趣的同学提供进一步深造的机会,吸纳其参加由老师指导的课外实习团队。加入实习团队以后,通过磨练,学生的实际动手能力、创新能力和团队协作能力都得到进一步提高。并且,学生逐渐掌握如何查阅资料、怎么进行科学研究,使其具备初步的科研能力。
六、结束语
以上是笔者在学习、讲授程序设计语言中的一些粗浅的看法和经验,由于计算机语言与其它课程相比,逻辑思维较强,因此比较枯燥,但只要我们注重课程本身的特点和教学过程中出现的一些问题,考虑学生理解、接受程序设计语言的难度,可以达到良好的教学效果。
参考文献:
[1]谭浩强.C语言程序设计教程[M].北京:高等教育出版社,1997:1-25.
[2]张书云.程序设计语言课程教学方法探析[J].计算机教育,2005,(5):16-18.
[3]陈开社.算法与程序设计教学初探[J].中国教育信息化,2007,(169).
[4]陈金华,黄荣怀.中小学校园网应用效果的评测工具研究[J].中国教育信息化,2007,(157).
[5]李向龙.东北师范大学无线校园网络解决方案[J].中国教育信息化,2007,(169).
关键词: 编程方法;编程风格; 多媒体教学; 能力培养
中图分类号:G 434 文献标识码:A 文章编号:1673-8454(2008)04-0021-02
程序设计类课程是计算机科学与技术及相关专业的基础课程,在计算机专业课程体系中占有十分重要的地位。该课程的教学目的是使学生掌握程序设计的基本方法和理论,编写程序来解决具体问题。
由于程序设计语言的逻辑性强,语法、句式结构抽象。在教学方法上,沿袭传统的教学模式,即以一种高级语言的语句体系为脉络展开教学,详细地讲解其语句、语法,甚至一些细节内容,没有注重程序设计的方法和算法的设计思想。这样不仅使课程枯燥无味,而且造成学生的理论基础差,动手能力不强和缺乏创新思想。鉴于此,本文从以下几个方面来浅谈程序设计语言的教学方法。
一、注重结构化编程方法引导
结构化程序是由顺序结构、选择结构和循环结构三种基本结构组成。而每一种结构又可作为程序的一个单元,这样,结构化程序就是由若干个单元组成,而每个单元又是由若干个执行语句组成。在教学过程中,根据程序设计语言各种基本结构的特点,创设问题情境,鼓励探索与发现,加强对学生的思维训练,要求对每一个程序的设计都要按照结构化的程序设计方法:自顶向下,逐步求精,模块化进行处理。画出N-S结构流程图,最后再根据流程对每一个程序构成部分进行编程技巧分析,明确每个部分的细节,写出思路和相应的可执行语句,编写出各个模块,经过组合后即得所要的结构化程序。这样可以使学生养成良好的程序设计书写习惯,调动学生思维和激发学习兴趣。
二、注重良好的编程风格引导
在培养学生良好的程序设计书写习惯时,良好的编程风格也是学习程序设计语言必不可少的因素。例如我们知道,free 和 delete 都可以把指针所指的内存给释放掉,比如:
char *p=(char*)malloc(50);
strcpy(p,"hello");
free(p);
这段程序运行一定没问题,但如果在其后加上这样一段代码:
if(p!=NULL)
{
strcpy(p,"world");
}
我们会发现出错了!这是因为,p所指内存被释放,但是p 存放的地址值仍然不变,即P成了“野指针”。尽管尝试用if(p!=NULL)来判断p的可用性,我们却发现出错处理并没有起作用。所以,良好的习惯是在 free 和 delete 后,都要对指针作置空处理,即 p=NULL。有人会说如果要这种情况出现在程序结束时,一切指针也会消亡,动态内存也会被操作系统回收,所以P置空是多余的。但是如果有人将这段程序取出来用到其他地方会怎样呢?结果不是我们想见得到的。
三、注重算法设计概念的引入
程序=算法 数据结构。这就提出我们在进行程序设计教学过程中,不仅要重视语法的讲授,也要重视算法的讲授,甚至是要将算法提到更为重要的地位。程序设计是要解决问题,语言只不过是为解决问题而使用的工具,真正解决问题的是算法。如在 C 语言程序设计课程教学中,当完成分支结构程序、循环控制和数组,进入内容较多的算法设计教学后,我们将教学内容分为以下几个方面。
一是一般数据组织算法,查找、排序、字符串处理、求素数、筛选、迭代、穷举等。
二是函数调用,函数嵌套、递归算法等。
三是指针算法,动态内存分配,链表等。
四是用矩形法、梯形法计算定积分、模拟算法的随机抽样、蒙特卡罗法等算法。
五是文件数据处理。线形表、堆栈、队列、二叉树以及基于运筹学的动态规划等。
在课堂上增加算法设计的分析和讨论,强调算法设计的优化和程序的优化,是提高学生分析问题能力的有效方法。同时通过依据问题的分析形成算法,编制程序,可以培养学生抽象思维能力,解决生活中的问题。
四、注重多媒体教学的运用
直观、形象、便捷的多媒体教学可以使学生在有限时间内迅速理解、掌握、获取更多知识和信息,如字处理 Word、电子表格 Excel。
我们认为,程序设计语言不仅仅要教会学生语法知识,更要通过课程教学,培养学生抽象思维和逻辑推理能力,掌握程序设计的思想和方法。
教学过程中使用多媒体教学,将程序设计语言语法中非常深奥理论和逻辑推理的内容(如数据类型、运算符、语句及部分语法规则),运用多媒体教学直观、形象地讲授给学生,加深其对问题的理解。
如在C语言中讲解变量a与b互换,可运用CAI课件生动的展示为:一个瓶中(A)装有油,一个瓶中(B)装有水(瓶代表内存,油、水代表变量),要想将瓶中的油和水互换,需另一个空瓶(C)来过渡:将A瓶中的水倒入到空瓶C中,然后将B瓶中的油倒入到A瓶中,最后将C瓶中的水倒入到B瓶中。
取指针中的数据,可以展示生活中的例子:若将A抽屉的钥匙放在B抽屉中,那么要取A抽屉中的东西,就要开B抽屉、再开A抽屉、再取东西。可把指针比喻为抽屉号码,这样不照本宣读,学生很容易理解。这样的多媒体教学,收到了将抽象问题形象化、枯燥问题生动化的效果。
五、 注重学生能力培养
学习程序设计,是为了培养学生用所学的语言在实际生活中解决具体的问题的能力。
在授课的过程中,通过任务驱动式和启发式教学,学生通过教师教授、师生探讨、上机实验等环节培养分析解决问题的能力,达到学以致用的目的,潜移默化当中培养学生的动手和创新能力。为了更好的培养学生的创新和科研能力,通过开展程序设计技术方面的系列讲座,引领学生进人的更高层次,激发学生进行科学研究的兴趣并给与指导。为进一步加强学生的实际动手能力和创新能力,对一些对程序设计感兴趣的同学提供进一步深造的机会,吸纳其参加由老师指导的课外实习团队。加入实习团队以后,通过磨练,学生的实际动手能力、创新能力和团队协作能力都得到进一步提高。并且,学生逐渐掌握如何查阅资料、怎么进行科学研究,使其具备初步的科研能力。
六、结束语
以上是笔者在学习、讲授程序设计语言中的一些粗浅的看法和经验,由于计算机语言与其它课程相比,逻辑思维较强,因此比较枯燥,但只要我们注重课程本身的特点和教学过程中出现的一些问题,考虑学生理解、接受程序设计语言的难度,可以达到良好的教学效果。
参考文献:
[1]谭浩强.C语言程序设计教程[M].北京:高等教育出版社,1997:1-25.
[2]张书云.程序设计语言课程教学方法探析[J].计算机教育,2005,(5):16-18.
[3]陈开社.算法与程序设计教学初探[J].中国教育信息化,2007,(169).
[4]陈金华,黄荣怀.中小学校园网应用效果的评测工具研究[J].中国教育信息化,2007,(157).
[5]李向龙.东北师范大学无线校园网络解决方案[J].中国教育信息化,2007,(169).