[摘要] c语言程序设计是计算机专业主要的基础课程,属于教育部提出的高等学校计算机基础教育三个层次的第二层次——计算机技术基础的一门主要课程。本文针对本课程的特点,对教学方法、教学过程、以及教学中需要注意的事项,并结合教学实例,做了较为详细的阐述。
[关键词] 计算机c语言程序教学方法 一、引言
《c语言程序设计》课程非计算机专业学生的一门重要公共基础课,属于教育部提出的高等学校计算机基础教育三个层次的第二层次——计算机技术基础的一门主要课程,此外,还是学生考计算机等级考试二级时所选择的一种考试形式,因此,在整个课程体系中占有重要地位。教好这门课程,不仅能够使学生掌握知识、具有分析问题解决问题的能力,还能使得学生在计算机等级考试复习中取得先机,并在考试中能够取得较好的成绩。
c语言功能强大,表达能力强,但其丰富的功能所带来的繁多的数据类型和复杂的语法结构,给初学者产生了不少困难。在教学过程中,它不但要求教师具有良好的教学水平和教学方法,也要求学生具有良好的逻辑设计能力,因此,教师在教学过程中必须找到适合学生学习特点的教学方法,使学生在短暂的课堂学习时间内,学到尽可能多的c语言概念和c语言编程技巧。 二、重视第一节课
通常教师认为c语言第一节课非常好上,只要简单介绍一下什么是c语言,以及c语言的开发环境,举几个简单的例子就可以了。笔者认为,第一节课是本门课程最为重要的一节,第一节课上不好,没有给学生留下深刻的印象,会直接影响学生接下来学习的积极性。 使学生对本门课感兴趣是第一节课的最为主要的一个作用。非计算机专业的学生对程序设计没有一个具体的概念,笔者认为可以首先要以实例入手,简单展示几个最为流行的游戏,并且告诉学生这就是程序,只是比较复杂的程序。接下来再介绍c语言 三、编程思路与解题思路并重
c是一个结构化语言,它的重点在于算法和数据结构。教师对c语言基本语法的讲解,只是使学生手中有了解题的工具,而编程思想的培养可以使学生学会使用c语言这个工具实现程序。
非计算机专业的学生学习c语言程序设计课程,不仅仅希望能够锻炼逻辑思维能力,学会编写程序的方法,而且从实际需要出发,他们更希望通过这门课程的学习,能够通过国家计算机等级考试中二级中的vb科目考试,在就业过程中多一个筹码。在考试中,很大一部分题目,学生要去读懂别人的程序去答题,而通常在课堂中,学生只是学习、练习怎样用c语言去实现练习题目,而对于像等级考试中出现的比较复杂、异类的程序,九无从下手。按自己的思路一步步实现程序,与从已实现的程序中找出程序结构,理解实现的方法,是一个相逆的过程,这就是编程思路与解题思路的区别,因此在实际教学中,应该既要加强对学生解题思路的培养,也要加强解题思
路的培养。
在课堂教学中,解题思路主要体现在程序填空题和程序阅读题,应适当加强这两种题型的的讲解。讲解过程中,既要在数量上,增加这两种题目的比重;同时,在讲解的过程中,也要注重培养学生对程序的理解方式。
四、先易后难、循序渐进、前后呼应
与其它课程类似,c语言课程的教材大部分大部分采用是先易后难、循序渐进的章节安排,相对应的教师的整个课程内容安排也要采用这种先易后难、循序渐进的方式。同样,在同一节课的讲解过程也需要按照先易后难、循序渐进的方式,这样才便于学生非常清晰理解掌握课程内容。
在课堂上学习本节课的内容时,并不是每位学生都对前面课程的知识掌握的非常牢固,教师在讲解本节课程内容时应有一段时间来复习,特别是这节课要用到的知识。复习的过程中采用方法可以多种多样,既可以采用随堂提问,也可以采用小测验的形式。这样学生才可以在课堂中做到“温故而知新”。同样在,本次课结束的时候,留有预习内容,让学生在课外了解下节课的知识点。采用这种方式,c语言课程内容会非常连贯,衔接流畅,学生也可以将知识点串联成知识面、知识体。
五、对于不同内容,采用不同的教学方法
c语言课程内容非常多,知识点的难度、特点也不一样,因此在整个课程内容上,对于不同的内容,应采用不同的教学方法。笔者在实
际教学中主要以下的教学方法,取得不错的效果。
(1)对于基本语法,如数据类型、运算符、表达式,采用讲解法; (2)对于基本语法的应用,如顺序结构语句、循环结构语句,采用演示法;
(3)对于难点重点,如函数、数组、指针,采用启发式教学; (4)对于综合程序设计采用融入式教学方式等。 六、一题多解
c语言中一个题目的解题方法多种多样,通常教师在课堂中只是讲解一种解题方法,并且在实际的教学过程中,比较快的进入题目的讲解过程,学生只能惯性的理解教师的解题思路,没有时间思考。在给出题目之后,教师应留给学生足够的时间去思考,往往学生会举出几个解答思路,教师再给与一定的分析引导,这样学生就能够深刻的理解解题的思路、方法。
笔者在实际的教学过程中,曾经遇到这样的情况:当举出题目“打印出由*组成的菱形结构”,给学生5分钟的考虑时间去考虑,大部分同学都认为应该用循环结构去做,但是有部分同学提出,也可以用五条printf语句去实现。这时,指导其中一名学生到多媒体计算机上用vc实现,并且将结果展现在大屏幕上。 #include “stdio.h” void main() {
printf(“ *\\n”);
printf(“ ***\\n”); printf(“*****\\n”); printf(“ ***\\n”); printf(“ *\\n”); }
其他学生自然而然的认识到,此种方法也可以实现此题,同时也提出“如果是1000行的菱形结构,是否也可以采用这种方法去实现?需要时间是不是太长?”。然后再讲解如何用for语句来实现,与前面的方法做一个比较,学生就会明白为什么这种类型的题目提倡采用for语句去实现而不采用连续的printf语句实现。 七、合理安排上机实践
在布置实验内容时,教师要注重实验例题潜在的价值。好的实验例题能够澄清学生模糊的知识点,有助于知识的理解及掌握。 教师实验课程中不应该给出题目的解决办法和思路,在学生实在没有解题思路的情况下,至多只能提示一下思考方向,完全让学生自己通过问题求解的手段来解决问题。当他们通过自己的努力编出程序以后,他们会觉得非常有成就感,学习的兴趣和信心也会大增。 在实验课程中可以采用比赛的形式:将学生10人分为一组进行讨论,看哪一组能够先解出相应的题目,让已经解出题目的小组组长讲程序展现在大屏幕上,讲解采用怎样的思路解出题目,并且运行展现结果,最终在记录在平日成绩中。教师在此过程中只是引导主持的角色,学生在竞争中也能够更加集中注意力,努力去思考,更好
的理解课堂内容,并且还能够锻炼学生的口头表达能力。 八、加强网络课堂的建设
网络课堂应是教师讲解与学生参与相结合。学生在课余时间参与实验报告和作业的批改、上机辅导、出考题和参加课题研究等教学活动,与教师面对面的互动过程太过复杂,浪费了学生与教师的大量时间。而网络课堂可以显现出强大的异地异时互动的强大功能,节约时间成本。
教室课堂也可以与网上课堂相结合。网络是不容忽视的重要学习媒体,充分利用网络资源,在网络上将整个课程的教学录像、电子教案、多媒体教学演示系统和项目案例都放在网络课堂中上,供学生随时进行复习和自学,培养学生的自学能力。
网络课堂中的答疑功能是教师学生异地异时互动的最显著体现。孔子云:“思而不学则罔 , 学而不思则殆”。而师者,传道授业解惑者也。疑问是学生继续学习和程序设计的瓶颈, 定期进行面对面答疑可以及时解决学习和程序设计过程中存在的问题。为了方便学生随时提问,开发了网上答疑系统,学生利用网络答疑系统可以随时提出疑问,教师也可以随时解答 , 提高学习效率。
实验课的分组讨论应与网上bbs相结合。根据课程讲授内容的重点和难点布置与实际问题相关的思考题目和实验题目,并安排时间组织学生进行讨论。通过网上bbs,学生可以随时各抒己见,增强学生的参与意识,使学生的学习由被动变为主动,激发了学生的学习积极性, 培养了学生发现问题、分析问题和解决问题的能力。在教
师的指导下确定、完成具体的项目,使学生感觉到学有所用,使学生的学习由被动变为主动,激发了学生的学习积极性,培养了学生发现问题、分析问题和解决问题的能力。 参考文献:
[1] 谭浩强.c程序设计(第二版).北京:清华大学出版社,2001,6.
[2] 尹俊华. 教育技术导论 [m] . 北京: 高等教育出版社, 1996.
[3] 易凌峰. 案例研究: 登天的阶梯 [j ] . 教育发展研究, 2000 , (7) : 42243.
[4] 袁运开. 现代教育技术 [m] . 北京: 中国科学技术出版社, 1991.
[5] 黄筱调. 模块式教学法的理论及实践 [j ] . 辽宁高等教育研究, 1998 , (1) : 324.
[6] 赵建华, 李克东. 协作学习及协作学习模式 [j ] . 中国电化教育, 2000 , (10) : 526.
因篇幅问题不能全部显示,请点此查看更多更全内容