《高级语言程序设计案例教学模式的探讨.doc》由会员分享,可在线阅读,更多相关《高级语言程序设计案例教学模式的探讨.doc(8页珍藏版)》请在三一文库上搜索。
1、高级语言程序设计案例教学模式的探讨 针对计算机专业高级语言程序设计课程的教学中存在重语法、轻程序设计,以及初学者感到概念抽象难懂,学习效果不佳,动手能力不强的现状,根据程序设计的特点,结合C语言程序设计的教学体系,本文提出了在程序设计教学中引入案例教学法的观点,案例教学不同于教学案例,本文分析案例教学的真正含义,给出C语言案例教学模式的思路,并以实例说明在C语言教学过程中如何实施案例教学,在高级语言程序设计课程中取得了良好的教学效果。 C语言具有丰富的运算符和数据类型,便于实现各种复杂的数据结构,而且通过位运算和指针还可以直接访问内存的物理地址,既可以开发应用软件也可以开发系统软件,由于其强大
2、的功能和优点,成为计算机及相关专业首选的高级程序设计语言之一。然而,由于C语言涉及的概念和规则繁多,指针使用灵活,初学者普遍反映概念抽象、学习困难, 期末考试不及格率高,实际掌握的情况并不理想。因此如何改进教学方法,以激发学生的学习兴趣和自主性,增强动手能力和编程能力,是计算机教育工作者值得思索的问题。 1案例教学法的含义 传统的程序设计教学过程中也通过使用各种例题来讲解和说明语法和知识点,但教学方法还存在诸多不足,例如“老师讲、学生学”的单向式教学模式,以及重语法、轻程序设计能力,或者把案例教学等同于教学案例,没有掌握案例教学的本质,学生学完该课程以后知识点零散,缺乏系统性,不具备良好的软件
3、开发能力。因此我们必须转变教学观念,进一步研究面向研讨型课程的案例教学模式。 案例教学是目前国内外比较流行的一种教学方法,被普遍应用于医学、法学和管理学等学科的教学1。所谓案例教学模式是一种互动式的教学方法,以对案例的分析解决为主线,教学内容围绕案例的讨论、分析逐步展开,通过对案例中的问题进行分析,激发学生的求知欲,调动学生的积极性,使学生主动地思考,掌握其原理和方法,教师适时引导和评判,让学生充分讨论并发表各自的见解,最后推导出结论2。通过案例教学法在C语言教学中的应用可以实现启发式教学,更好地激发学生的学习兴趣和参与的积极性,同时,有利于学生掌握理论知识,并运用知识解决软件开发中的实际问题
4、,提高编程水平和能力。 2设计C语言案例是案例教学的基础 在传统的C语言的教学方法中,教师通常是先讲解语法规则,再举例说明。而案例教学法则要求先设计案例,然后教师和学生一起分析讨论,由案例引出新的知识点,教师再根据案例的情景要求讲解新的知识点1。因此教学案例是实现案例教学法的前提和基础,教学案例并不是简单的举例,要求案例所涉及的知识点要能涵盖该课程的绝大部分知识,并且具有目的性、系统性、针对性、可实践性和启发性。以下从三方面介绍如何选择案例进行教学。 2.1选择小型经典案例,掌握算法思想 程序设计的关键是算法设计,C 语言课程的根本目的在于使学生掌握程序设计的基本方法。因此,教师要培养学生以算
5、法为中心的思维方式。很多C语言教材大多注重于语法规则、语句的介绍,缺乏生动、实用的例题。我们知道,兴趣是最好的老师,为了使学生能尽快地掌握C语言的语法,进入计算机编程领域,在教学过程中,应当选用具有趣味性、实用性的例题,如“鸡兔同笼问题”、“求水仙花数”,吸引学生的兴趣,使学生体会到编程的成就感。教学内容的进度安排应当采用循序渐进的方式,围绕数据类型、运算符、表达式、输入和输出函数、常用库函数、选择和循环控制语句、数组、函数、指针、结构体、共用体、文件这条主线来开展教学,通过案例来阐述理论和常见算法。在C语言中常见算法有1)连加与连乘,对于连加/连乘的问题, 常采用循环实现,可用1+2+100
6、或n!的例子进行说明。2)数的算法,如素数、同构数、水仙花数、最大公约数等。3)排序,排序是一维数组很重要的应用之一。常见的有冒泡排序和选择排序,通过双重循环分别控制比较的趟数和每趟比较的次数。4)找出一维或二维数组的最大值、最小值及其下标,也是通过循环来实现的。5)与字符串有关的算法,例如从字符串中删除某指定的字符;字符串的合并;比较字符串的大小;计算字符串的长度;将字符串中的内容逆置等。通过这些案例,使学生熟练掌握各种常见问题的解题方法和步骤,即掌握编程的核心算法,增加学习信心、提高学习兴趣,并为以后软件开发奠定基础。 2.2选择常见出错案例,提高上机编程能力 任何一门编程语言的学习,都离
7、不开上机实践操作,上机实践是培养程序设计能力和程序调试能力的重要途径,只有通过大量的编程实践才能逐步提高编程能力。C语言的教学目标就是使学生掌握C语言的语法,掌握结构化程序设计方法, 能够编写、调试和运行规范、可读性好的C程序3。离开了上机调试, 程序设计将成为“纸上谈兵”。只有在不断地改正程序错误的过程中才能充分掌握语法知识,领悟算法思想,培养出结构化编程的思维方法。因此,加强上机实践,提高学生的实践能力是改善教学效果的主要途径之一。 然而初学者由于对C语言的语法以及编程的逻辑思维方式还不熟悉,往往检查不出程序中的错误。一个源程序中的错误分为语法错误、逻辑错误、算法错误、和运行错误。通过编译
8、可以排除语法错误,其他三类错误,可以借助C语言的调试工具来查找。为了提高学生调试程序的能力,可以选择一些上机经常遇到的错误案例,让学生自己调试程序并改正错误,然后分析和总结错误类型和原因,从而不断提高学生的算法设计能力。例如求数组中的最大值及最大值的下标。 main() int a4,max,i,m; for(i=0;imax) max=ai; m=i; printf(“%d %d”,max,m); 这个程序仅当最大值为第一个数运行结果不对,让学生分析出错原因,若第一个数就是最大值的话,则if语句的条件从未成立,因此m=i;没有被执行过。而下标变量m没有赋初值,系统随机赋了初值,导致结果错误。
9、因此应当在循环外首先给m 赋初值0。再例如int a=5; printf(“%f”,a);会出现运行时错误。因为a是整形变量,但输出格式说明符%f却是实型数据,正确的写法是int a=2; printf(“%d”,a);通过让学生调试运行这个错误案例,分析出错原因,学生可以总结出 在输入/输出函数中,输入/输出参数的个数与类型必须要与格式说明符一致。 通过分析、调试错误案例, 有利于学生在问题的切磋、琢磨中明辨是非,加深对知识的理解,从而使学生的程序设计能力螺旋式上升。由此可见,案例教学正是从实践中的问题出发,启发和引导学生去积极思考,经过分析讨论,最后又重新归结到问题的解决之上,这种主动获得
10、知识的方式完全不同于“填鸭式”的被动学习。 2.3选择综合性案例,将知识转化为能力 在教学案例的选择上还要注重系统性,要能够体现知识点之间的联系。例如要处理多个相同类型的变量,就引入了数组的概念,通过计算班上某一门课程10位同学的平均分的程序引入一维数组的知识点, 再用通过实现10位同学3门课程计算每个人的平均成绩来引入二维数组的知识点; 若每个学生都有学号、姓名、性别和多门课程的成绩,要处理这些类型不相同的数据项,就需要引入结构体,逐渐增加问题的难度,编写函数,实现成绩查询、成绩统计、求平均值、利用结构体链表实现学生记录的添加、删除、插入、查询等操作; 学习文件时, 通过将学生的信息保存到磁
11、盘文件中的程序或者从磁盘文件中读入学生信息进行处理的程序,使学生掌握有关文件打开与关闭、读写等函数的使用4。通过这样循序渐进设计教学案例,最终设计出一个简单的学生信息管理系统程序设计,使学生很容易地掌握案例所涉及的知识点。 在案例教学过程中,通过提出“怎样才能使程序更完善”的问题,不断引出新的知识点,激发学习的求知欲和进一步深入学习的兴趣。并且通过案例教学,使学生体会到各章知识的连贯性,深刻认识到后续章节的内容是前面章节知识点的深化与扩充,达到学以致用的目的,才能有效地将知识转变为能力。 3C语言程序设计案例教学法的实施 案例教学法就是根据教学目标,设计有代表性的典型案例,通过学生和教师一起参与案例的分析、讨论, 从中找出解决问题的方法和途径,因此案例教学本质上是研讨型教学。在实际教学过程中, 案例教学法的执行步骤大致可以分为以下三个步骤,下面用一个例子来说明案例教学法的实施过程5。 3.1精心设计教学案例 为说明数组的用法,设计一个案例求10位学生的某门课程的平均分,最高分和最低分,供学生讨论。 程序一 main() int x,i=0, max,min, sum=0; float ave; scanf(%d, &x); max=min=x; for(i=1; imax) max=x; if(xmax) max=xi; if(xi第 8 页
链接地址:https://www.31doc.com/p-1864447.html