第一篇:“C程序设计”实验教学与实践(大全)
“C程序设计”实验教学与实践
胡科
(电子科技大学应用数学学院,四川成都 610054)
摘 要 本文从实验教学角度,结合作者多年从事“C程序设计”教学经验,以典型实例对该课程的实验教学环节作了初步探讨,指出了运用现代教学手段,促进实验教学的若干可行途径。
关键词 实验教学;教学质量;程序设计;多媒体
“C程序设计”是一门重要的计算机基础课程,通过本课程的学习,使学生在程序设计和应用软件的开发两个方面都得到锻炼。C是学习高级语言编程的首选语言,通过对C的基本特点、语法规则、程序设计等内容的讲解,使学生逐步掌握程序设计的基础知识和面向过程的结构化程序设计方法,培养良好的程序设计风格,为进一步学习计算机相关课程或从事软件开发奠定基础。
“C程序设计”是一门实践性很强的课程,只有通过大量的上机实验,才能真正掌握C。因此,除了注重课堂教学外,重视和搞好实验教学,加强学生的动手能力培养,是提高课程教学质量的关键。在实验教学中,学生应是在教师事先设定好的“实验任务驱动”下进行上机操作,这样,学生的实验目的性强,有利于培养学生的计算机实际操作能力。注重实验环节,锻炼编程能力
[1]
通过有针对性的上机实验,逐步加深学生对课堂讲授内容的理解,培养学生灵活运用所学知识分析、解决一般问题的能力,真正了解程序在计算机中的执行过程以及计算机软件的基本开发过程。要求学生能使用程序控制的三种基本结构(顺序结构、选择结构、循环结构)和相关语法熟练编写应用程序,掌握常用的典型算法和编程技巧。实验应涉及数组、函数、指针、结构体、文件等核心知识点。
⑴ 前期准备
上机前的准备工作包括复习和掌握与本次实验有关的教学内容。对实验问题进行认真分析,设计相关算法,编写纸上代码,给出初步解决方案。
⑵ 实验过程
在Turbo C 2.0(TC)的集成开发环境中编辑和调试程序,使用多组数据对程序进行测试,使输出数据与预期结果相符。若条件许可,打印程序和运行结果,以备检查。
⑶ 实验报告
编写与整理实验报告是上机实验的基本要求,也是培养严谨科学作风的重要途径,实验报告的主要内容包括:
① 实验目的
实验之初,必须明确实验目的,以保证达到所指定的基本要求。在撰写实验报告时,要进一步确认是否达到预期目的。
② 实验内容
根据教学进度、上机学时、学生基础等因素,选择与课堂讲授内容相关的多个实验题目。在每一个实验题目中,均提出一些具体要求。特别值得一提的是,这些实验题目应具有一定的知识性和趣味性。
③ 程序设计
程序设计应包括算法设计、必要的N-S流程图、根据算法或流程图编写的源程序、函数模块说明、代码注释等。
④ 调试运行
采用各种测试数据,特别是可能导致程序产生错误结果的数据调试程序,以检查程序的“健壮性”。经调试正确的源程序应具有良好的“可读性”,并符合结构化程序设计原则。
⑤ 实验总结
实验过程中的大量工作是程序调试,在调试过程中会遇到各种各样的问题,每解决一个问题都将有益于编程能力的提高。因此,对实验的总结,最主要的是程序调试经验的总结。分析实验中遇到的问题,并给出合理的解决方法。确认本次实验是否达到实验目的。针对知识结构,精心策划选题
学习C,算法分析与设计是核心,而新颖的选题又能促使学生主动地探寻问题的求解算法。因此,针对实验环节,精心选题对培养学生的编程能力、激发学生的编程热情是极其重要的。如果单纯列出几个复习相关语法的练习题,学生势必感到编程的枯燥无味,从而产生消极、甚至畏惧的心理,长此以往,必将挫伤学生的学习积极性。这里精心编选了供教学同行作为上机参考内容的两个典型问题(程序均在TC下调试通过),每个问题由题目、选题背景、主要语法、算法描述、程序清单、运行结果、上机指导组成。
[题 目 一] 求以下定积分的近似值[1][2]:、、。
[选题背景] 数学与计算机是联系十分紧密的两门学科,许多数学问题需要借助计算机来解决。求定积分是“微积分”的一个重要内容,选择这一题目可以将数学知识与计算机编程有机地结合起来,培养学生利用C去解决数学问题的能力。
[主要语法] 函数、函数指针
[算法描述] 连续函数f(x)(假设f(x)>0)在[a,b]上的定积分等于x=a、x=b、y=0及y=f(x)所围成的曲边梯形面积。典型的定积分近似计算方法有梯形数值积分法(梯形法)和Simpson法(抛物线法)。从数学知识得知[3],对梯形法,面积近似值为((f(a)+f(b))/2+f(a+h)+ f(a+2*h)+...+f(a+(n-1)*h))*h 其中,h=(b-a)/n。
对抛物线法,面积近似值为
h/3(f(a)+4f(a+h)+2f(a+2h)+4f(a+3h)+2f(a+4h)+...+2f(a+(n-2)h)+4f(a+(n-1)h)+f(b))其中,h=(b-a)/n。(n为偶数)我们可以编写一个可共用的函数f,接收来自主程序的实际参数(积分下限、积分上限、被积函数)即可求出对应的面积近似值。这里,函数指针作为形式参数,函数名作为实际参数。[程序清单] double f1(double x1){ double g1;g1=1+x1*x1;return(g1);} double f2(double x2){ double g2;g2=1+x2+x2*x2+x2*x2*x2;return(g2);} double f3(double x3){ double g3;g3=x3/(1+x3*x3);return(g3);} double f(double a,double b,double(*p)())/* 梯形法 */ { int n,i;double s,h,y;s=((*p)(a)+(*p)(b))/2;n=100;h=(b-a)/n;for(i=1;i [题 目 二] 1)删除字符串中的指定字符[1][2]。 2)键入两个串,从第一个串中删除所有与第二个串中相同的字符,并输出第一个串。 [选题背景] 代码重用是一种重要的程序设计技术,可以避免不必要的重复编码,提高程序设计效率。面向对象的C++,主要通过继承实现代码重用[4]。而面向过程的C,我们可以通过自定义的头文件实现代码重用。这里的两个类似问题都涉及了删除串中指定字符这一共同操作,因此,可以将这一操作独立出来,以函数形式包含在自定义的头文件中,这样,两个问题都可以调用头文件中的函数,从而实现代码重用。[主要语法] 自定义头文件 [算法描述] 对第一个问题,设计两个下标指示在串中待比较和待移动的位置,利用循环结构即可实现删除字符串中的指定字符,这个操作以函数形式包含在自定义的头文件(user.h)中。对第二个问题,利用二重循环,针对第二个串中的每个字符,在第一个串中进行扫描,找到后,并不急于删除这个字符,而是将其替换为字符“*”,最后,通过调用user.h中的函数,一次性删除所有“*”,即可巧妙解决问题,提高运行效率。[程序清单] f(char str[],char ch)/* 自定义头文件user.h */ { int i,j;for(i=j=0;str[i];i++)if(str[i]!=ch)str[j++]=str[i];str[j]=' ';} #include “user.h” /* 问题1 */ main(){ char str[80];char ch;printf(“str=?”);gets(str);printf(“ch=?”);scanf(“%c”,&ch);f(str,ch);puts(str);} [运行结果] str=?abcdefgc ch=?c abdefg #include “user.h” /* 问题2 */ main(){ char *p=“a1b11cd513e”,*q=“135”,*r,*s;for(s=q;*s;s++)for(r=p;*r;r++)if(*r==*s)*r='*';f(p,'*');puts(p);} [运行结果] abcde [上机指导] 首先编写删除指定字符的函数,并以文件名user.h存盘。通过调用user.h中的函数,编写第一个问题的源程序。类似地,通过调用user.h中的函数,编写第二个问题的源程序。从中体会自定义头文件,实现代码重用的优越性。3 运用现代教学手段,促进实验教学改革 实验教学手段的改革是提高计算机课程教学水平的重要途径。随着教育信息化的不断深化,多媒体技术已广泛应用于教学实践之中。多媒体技术以其动态多样化的图、色、声、影等元素,突出信息的形象性及感染力。将多媒体技术应用于教学过程,已成为教学手段现代化的重要标志之一。多媒体教学具有很多优点。第一,它使得教学内容形象、生动、直观地展示在学生面前,给学生以极大的吸引力。第二,大大增加了教学的信息量,提高了教学效率。第三,利用多媒体教学可以集中教师的智慧与教学经验,使教学内容更加规范有序。第四,可以充分利用计算机网络的优势。 我们应当不断探索和改进教学方法,采用先进的多媒体实验教学模式,以促进教学质量的提高。这些教学模式可以大致归纳为如下几个方面。 ⑴ 基于计算机字表处理平台的直接投影教学 这是指利用Word等字表处理软件作为教学平台,将上机实验的教学文档直接投影用于教学。这种方法具有简单易行、图文并茂、动态修改、适应性强等优点。 ⑵ 基于课程课件操作平台的多媒体投影教学 这是指利用PowerPoint等演示文稿软件制作出CAI实验课件,然后通过投影进行教学。这种方法具有整体页面规划紧凑,页面链接方便,学习界面美观生动、多媒体元素的组织功能强大等优点。 ⑶ 基于课程内容软件平台的投影教学 这是指通过对课程内容软件平台(TC)的实时投影操作进行教学。其优点是通过集中式的现场教学,使学生掌握上机编程解决各种问题的基本方法。 ⑷ 基于课程内容软件平台的实验教学 这是指通过教师示范操作,学生同步进行实验。其优点是学生可以在老师的引导下,实时解决上机编程中可能出现的各种问题。 ⑸ 基于网络平台的多媒体资源发布和课后辅导教学 随着网络技术的成熟和Internet的普及,利用网络平台进行多媒体教学已成为一种发展趋势。网络可以作为一种多媒体资源发布平台,各种多媒体资源(CAI课件、电子文档、授课视频等),都可以发布于Internet上,教师和学生可以随时随地共享这些资源进行教、学,因而极大地延伸了教学空间,增大了学生的学习自由度。实验教学的课后辅导可以通过网络平台来实现,其主要方式有三种,一是建设教师个人网站,在网站中发布信息,建立留言板或论坛,上传作业或下载资料。二是借助Internet上的诸多公共论坛和个人留言板实现简易的辅导教学。三是通过电子邮件进行针对性的辅导教学。若条件允许,可以充分利用校园网平台,发布电子课件、教学资料,并向学生推荐优秀的程序设计网站,供学生课外自主学习使用,以拓展知识面,激发编程热情。结束语 随着现代教育技术的不断成熟,“C程序设计”实验教学改革必将引向深入,并在实践中完善。只有重视和深化实验教学,才能取得良好的整体教学效果,促进教学质量的提高。 参考文献 [1] 谭浩强.C程序设计题解与上机指导(第三版)[M].北京:清华大学出版社,2005. [2] 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005. [3] 赵树源主编.微积分(修订本)[M].北京:中国人民大学出版社,2004. [4] 吕凤翥.C++语言基础教程[M].北京:清华大学出版社,2004. 收稿日期:8月9日 修改日期:8月14日 作者简介: 胡 科(1964---),男,副教授,研究方向:软件工程、理论计算机科学。 浅谈《C语言程序设计》教学与实践 为了有效改善当前C语言程序设计教学方法的诸多问题,本文提出了一种互动式和启发式教学方法,从实际出发,制定出切实可行的教学案例。通过测试结果表明,本文提出的方法在实际的教学实践中取得了良好的效果。 随着现代信息技术的发展,计算科学与信息科学相结合更加紧密,计算机编程能力已经成为非计算机专业学生的一门重要的必修课[1]。目前,许多高校都开设了《C语言程序设计》课程。由于C语言的功能强大和应用广泛,已经成为许多高校课程首选的编程语言。与其它语言相比,C语言涉及的概念更加复杂、规则更多,如果按照传统的教学方法,对于非计算机专业大多数学生来说,在规定的课堂教学时间内,较难掌握C语言的程序设计思想和方法。因此,传统的教学方法需要改革与实践。 目前,C语言教学存在的问题较多,本文归纳如下(1)计算机基础存在很大差异。目前,我国非常重视信息和计算机科学的普及教育,大多数高级中学都开设信息技术等课程,在进入高校前,大多数学生就已经掌握了一些计算机相关的基础知识。由于不列入高考范围,不同地区存在很大差异,尤其是经济欠发达地区的学生在计算机知识的掌握方面存在很大的差异;(2)教学案例。C语言涉及许多知识点,现有教材大多数都通过例子讲解每个知识点,通过例子可使学生更好的理解知识点,但问题在于往往不同知识点对应的例子不同,导致学生误认为知识点之间是孤立的,使学生无法将不同的知识点综合起来,学到最后,大多数学生会出现无法将各个知识点串联起来。因此,在教学过程中,选择合适的案例来贯通多个知识点是非常重要的;(3)学生的积极性没有得到充分调动,创新意识没有得到体现。在C语言教学中,大多数的学生都是被动的学习,被动的接受教师课堂授课。这种教学方法,不但不能真正反映教与学的相互性,也不能调动学生学习C语言的积极性,更不能提倡和培养学生的创新精神。 为了解决上述问题,本文提出了一种互动式和启发式教学方法,从实际出发,制定出切实可行的教学方法和教学案例,以程序设计的思想和方法为主线,充分调动学生学习的积极性和持续性。通过测试结果表明,本文提出的方法在实际的教学实践中取得了良好的效果。教学案例 刚开始对于学生要求不能过高,初学时,只要求看懂程序,编写简单的程序就可以了,然后逐步深入,通过长期的学习和积累就能熟练掌握C语言。对于学时有限或者基础较差的学生来说,有些较为难懂的内容可以通过选学或自学,把精力放在最基本、最常用的内容上,学好基本功。因此,案例的选择至关重要。对于案例的选择不但要有代表性,而且要有趣味性,不仅与教学内容和目的密切相关,也要能激发学生学习能动性,让学生掌握每个知识点。如果学生养成了正确的学习方式,掌握程序设计的思想和方法,便于以后学习其它编程语言,其基本规律和方法都是一样的。在传统的教学过程中,教师的思维与学生思维存在较大差异,导致学生被动的学习教师的理念,很容易将理论与实践脱离。相反,案例教学更注重激发学生学习的积极性,能够举一反三,掌握规律,引导学生解决实际问题的能力[4]。对于抽象的概念,往往使学生失去进一步学习的欲望,然而教学案例所引入的知识点,通过教师与学生之间的相互作用,共同分析和研究问题,使教师能够充分调动学生的积极性和兴趣,不会出现学生被动的学习情况。 通过这种方式,学生很容易接受各章知识点,对知识点的理解又进一步加深。学习程序设计,只要掌握程序设计的思路和方法,就能学活用活,举一反三。另外,在考虑教学案例时,我们应该根据学生的实际情况来选择案例,案例的选择不能太易,也不能太复杂,需考虑学生的接受和理解能力。因此,教学案例可提高学生的主动性、培养学生分析和解决实际问题。互动式教学方式 传统的教学方式,往往都是以教师为中心,学生是被动的接受知识,而现代教学方式偏向于主张学生参与到教学过程中[5]。教学本身具有两面“教”与“学”,两者紧密相连,教师教的过程也能总结出如何教好学生的方法。因此,教师的教学与学生的学密不可分。然而,旧的教学观念总是强调教师的教学,以为教的越多,学生学的越多,往往会忽视学生实际掌握知识的情况,甚至没弄清楚学生是如何学习的。因此,学生一直以来都处于被动状态。实际上,“教”只是外部因素,“学”才是内部因素。教师的“教”是创造学生“学”的条件,学习过程就是一种认知的过程,学生“学”的动力取决于“教”。 在C语言教学过程中,教师通过互动式教学法帮助学生回顾知识,采用回答问题方式引入新的知识,然后讨论和演示验证指导学生解决问题,最后,通过新的启发式问题引导学生进一步思考。最好这些问题从学生的背景知识中考虑,能启发学生,让学生从不同方面思考和解决问题。 编程思想和方法 如今的信息技术发展迅速,计算机编程语言层出不穷,对于学生,掌握一门编程语言至关重要,在教学48课时和实验16课时,共64课时内,很难精通一门编程语言。因此,编程语言教学应该集中在使学生掌握编程思想和方法,培养他们的逻辑思考能力。只有采取这种方式,学生今后就能以同样方式迅速的掌握其他编程语言。计算机编程语言的教学是语言学习的基础和关键环节,程序设计的关键是如何找到问题和解决问题,俗称算法。算法是程序设计的灵魂,是计算机进行操作的步骤。语法是编程的基础和程序设计的工具,培养学生编程能力,我们应该集中在算法设计和分析上。算法分析可以帮助学生开放思想,开拓新思路,归纳逻辑规律。在传统教学中,教师只要求学生看懂程序,当他们单独编写程序时,往往不知道从哪里开始[4]。 C语言程序设计课程教学要求学生掌握基本语法、申明、控制结构、基本思想和自上而下的结构化程序设计。同时,也要培养学生使用C语言解决实际问题。在讲完C语言基本知识教学时,例如数据类型和变量声明,我们可以使用三种基本结构程序设计、函数、数组和文件作为主线进行教学,这样学生就可以掌握编程的基本技能。即使不同的编程语言实现代码不同,但它们的思想和方法非常类似。当我们在C语言教学时,我们应该淡化语法教学,为了培养学生解决问题的能力应把教学的重点放在算法上。语法规则不是通过孤立的学习而是在学习编程的过程中学到的。随着编程难度的逐步提高,算法和语法的学习同步趋于深入。学生在富有创意、引人入胜的编程中,学会了算法,掌握了语法,把枯燥无味的语法规则变成生动活泼的编程应用。 结束语 通过采用本文提出的互动式和启发式教学方法考察类型题包括选择题(占总成绩的20%,涵盖整个教学大纲,下同)、填空题(10%)、编程填空题(30%)和编程题(40%)。学生最后的成绩信息表见表1。 综上所述,教学与改革不仅能够激发学生学习的动力,且能培养学生分析问题和解决问题的能力。随着信息技术的不断发展,我们应该不断的完善我们的教学模式。 综合实践大作业 任务1 课题名称: 学生顺序表的处理 课题内容: 在一个数据文件中存放若干学生数据记录,每条记录都有如下数据项:学号,姓名,性别,成绩。 编一个程序,采用顺序存储结构存储这批数据,并对该数据进行排序。要求:数组前部为女同学,后部为男同学,并且男女同学都按成绩递减排序,分别计算男生合格率、女生合格率、全班的成绩平均分,并把排序后的学生数据记录及计算结果存入另一个数据文件中。 任务2 课题名称: 学生成绩的管理(顺序存储) 课题内容: 某班级学生C语言第一次正考的成绩存于数据文件score.dat中,记录了学生学号、姓名和考试成绩,bk.dat文件中记录了补考学生的学号、姓名和补考成绩,编写程序以顺序存储结构实现以下要求: 1、对该班级按成绩降序排序并统计成绩平均分及每个分数段的人数,结果写入到result.dat中。 2、再根据补考成绩修改原成绩,修改成绩后仍按成绩降序写在result.dat的后面。成绩修改原则: 1)补考成绩大于等于60,原成绩以60分记;2)补考成绩小于60,取两次成绩中最高值记。 任务3 课题名称: 学生基本信息的管理(顺序存储) 课题内容: 已知学生的信息包括:学号,姓名,性别,出生年月,地址,电话,E-mail等。以顺序存储结构设计程序能实现以下功能:(1)学生信息录入:可随时增加学生信息到数据文件中(2)学生信息浏览:学生的信息输出到屏幕(3)查询:按学号查询、按姓名查询(4)修改:修改指定学生的信息(5)删除:删除指定学生的信息 (6)排序:按指定的关键字排序后输出到屏幕。(7)系统以菜单方式工作 任务4 课题名称: 图书顺序表的处理 课题内容: 在一个数据文件中存放若干图书数据记录,每条记录都有如下数据项:书名,作者,出版社,ISBN,出版时间,价格,类别。 编写一个程序,采用顺序存储结构存储这批数据,并对该数据进行排序。要求:按出版社进行分类存取图书信息,同一出版社中的图书信息按照出版时间降序排列。分别统计每个出版社出版的图书数量,并把排序后的图书记录及计算结果存入另一个数据文件中。 任务5 课题名称: 旅游信息顺序表的处理 课题内容: 在一个数据文件中存放若干旅游信息数据记录,每条记录都有如下数据项:线路编号、目的地、旅游天数、旅游类别、出行月份、价格。 编写一个程序,采用顺序存储结构存储这批数据,并对该数据进行排序。要求:顺序表按旅游目的地进行分类存取,同一目的地的旅游线路按照月份升序排序。分别统计每个月、每个目的地的旅游线路总数。把排序后的旅游记录及旅游线路总数存入另一个数据文件中。 《C程序设计实践》课程设计指导 一、课程设计目的1、通过课程设计,熟练掌握Visual C++ 6.0 开发环境的使用,提高程序调试能力; 2、通过课程设计,提高学生分析问题、解决问题的能力; 3、通过课程设计,复习巩固C语言的循环结构、指针、数组、结构体、文件等方面的知识,并在实践中加以运用。 4、通过课程设计,提高学生查阅资料、吸收和运用新知识的能力。 二、课程设计要求 每个学生在下列课题中至少选一题,并独立完成。 1、学生成绩管理系统 2、学生档案管理系统 3、同学通信录管理系统 4、职工档案管理系统 5、职工工资信息管理系统 6、小型图书信息管理系统 7、超市商品信息管理系统 8、实验室设备信息管理系统 9、试题(选择题)信息管理系统 10、列车时刻表信息管理系统 每课题均须具有以下功能: 1、信息录入,包括记录的追加和插入; 2、信息删除; 3、信息修改; 4、信息排序和查询; 5、信息的保存和装载; 6、简单的帮助。 三、设计方法及过程 1、问题分析 包括系统所要完成的功能、数据结构分析,如问题处理过程中使用的结构体及包含的成员等,文件的类型、存储的内容等,输入/输出的格式等。 2、系统功能设计及模块(函数)划分 根据分析结果,画出系统结构图,确定系统的功能模块,包括模块的名字、接口(即函数的参数、返回值)及功能,模块间的调用关系。 3、模块的算法设计 设计每个功能模块的算法,可以用伪代码或流程图表示。 4、编码 代码的编写要符合规范,程序中对各个模块的功能、模块主要实现部分都需要加上注释,以增加程序的可读性,便于软件维护。 5、调试 四、设计报告 课程设计完成后,每位同学要写出《程序设计及C语言》课程设计报告,打印并上交(同时上交源代码),作为成绩的评定依据之一。报告的内容包括:问题分析、系统功能设计及模块(函数)划分、模块的算法设计、源代码及设计总结五个部分。 关于《C语言程序设计》课程的教学改革与实践 日期: 2010-5-12 1:24:52 浏览: 8 来源: 学海网收集整理 作者: 佚名 【摘 要】C语言是我国高校普遍开设的一门课程,本文根据实际教学经验,介绍了在C语言程序设计中进行的一些改革与实践。其中对提高学生的学习兴趣,发挥多媒体教学的优势,提高课堂生动性及学生能动性提出了一些行之有效的方法。 【关键词】C语言程序设计; 教学改革;网络多媒体教学 Abstract :C language is a course generally set up by China’s colleges and universities, this article introduced some of the reform and practice in the C programming language in accordance with the actual teaching experience.Threre are number of effective methods which can increase the students’ interest in teaching,play the advantages of multi-media teaching and improve classroom liveliness and students’activity.Key words:C language programming design;Teaching reform;Network multi-media teaching 现在计算机已普及到各行各业,深入到各级层次,而学习C语言程序设计是提高人们计算机知识水平的重要步骤。在我国高等学校教育中C语言不但成为计算机专业的必修课,而且也越来越多地成为非计算机专业的学习课程。做好该门课程的教学具有非常重要而深远的社会意义,现将我在C语言程序设计课程中教学内容、教学手段、教学方法等方面的改革与取得的教学效果与大家做一探讨。 一、仔细领会教学大纲,全面深入教材改革 教师深入分析教学大纲,在全面了解学生的数学基础知识状况的前提下,根据大纲制定好教学计划。将教材中涉及到学生未掌握的数学知识方面的例题进行更换,避免因数学知识问题形成教学障碍。 在选取教材时,要选择“精讲多练、案例应用”为主的教材。C语言程序程序设计本身比较抽象,学生在刚开始接触的时候很难理解,所以兴趣并不很大。根据这门课程的一般教学顺序,在前几周讲授的内容往往是变量、数据类型、运算符、表达式、语句、函数等定义、使用说明等。这些理论知识中概念多、难以理解和记忆,会使一些学生失去学习C语言的兴趣。为了避免这种现象的出现,应该采用“理论精讲,够用就行”的教材,教师在讲授具体程序和案例时再将涉及到的未讲知识补充讲解。通过这种讲解方法可以减少学生的学习压力,保证教学进度和教学效果。 在教学过程中,以“案例驱动,兴趣引导,自身实现”贯穿整个教学过程。以学生感兴趣的某种游戏为案例,通过用C语言编程来实现游戏的过程引起学生的兴趣,再讲解具体的C语言知识。引起学生兴趣的案例除了游戏案例外,还可以是其他学生感兴趣的内容。最后让学生自己建立一个开发项目,用所学的C语言知识来实现。这种方法避免进行枯燥的语法训练,学生不会觉得课程枯燥无味,能提高学生的学习积极性,更重要的是学生能感受到C语言的结构化编程思想,并进行一定的实际编程获取编程经验。 二、应用网络多媒体教学模式的 C语言教学 1 世纪人类社会全面进入信息化的世纪,信息技术的广泛应用将极大地改变人们的生产生活方式,教学也不例外,网络技术的应用必将改变传统的教学方式。C语言教学中重点与难点内容用FLASH软件制作成动画演示教学,能够把抽象的过程以真实的、直观的方式展现出来。把动态的图象和学生的抽象思维活动密切地结合起来,教师可以重点突出的讲解程序算法,教师演示课件时的速度、次数,以及前后顺序等都可以根据教学需要灵活地控制和改变,使得教师易于把握教学的进度。根据FLASH软件的特点,可以让学生动手控制动画的执行步骤,在观看或者参与动画的过程中加深理解C语言的执行过程。利用几何图形、色彩变化及闪烁等效果,再现程序执行过程的动态及变化过程,例如C语言课程中的汉诺塔问题、杨辉三角形问题,还有许多排序和比较的程序,能够通过动画把完整的过程演示。 在网络教学方面可以把教学内容做成课程网站。上课时讲解网站上的理论内容和相关练习题。学生可以通过计算机访问网站中每次课讲的内容,在编写程序时遇到问题可以先通过网站查找相关资料先自己解决问题。这种方式便于学生整理学习笔记,培养学生解决问题的能力。还可以在网站上布置课后作业和收取学生的作业,便于教师的作业批改。 在网络教学方面还可以采用局域网内的网络教学管理软件进行教学与指导,例如极域教学软件。这种教学软件可以在教师机上给学生做同步演示与讲课,在学生做练习时可以把学生做练习的过程用广播形式在局域网内演示给其他学生看,这样增加了互动效果、方便对学生的练习进行讲解。 三、创造条件加强学生能力的培养 学生编程能力的提高,不是听来的,不是看来的,而是练出来的。机械的练习老师布置的作业只能完成对知识的认识,还不能完成对知识的理解与运用。利用比赛、项目任务的方式给学生以压力,让学生充分动脑在短时间内提高自身运用C语言的能力。比赛能给学生一种荣誉感,能激发学生的学习主动性、创造性,可以充分展示学生的学习能力。在教学过程中,可以根据以讲完的教学内容进行专项应用比赛,也可以在学习完C语言后进行班级内、学校内的大型比赛。比赛完成后树立学习的榜样,给学生以学习动力。 在学生C语言的编程能力方面,“授之以鱼,不如授之以渔”。程序设计是一种具有创造性的工作,程序设计具有一定的抽象性,它用数学的方法去描述一些问题。一般的程序设计要建立数学模型,要进行算法设计,这样才能将实际问题的解法表达成计算机所能表达理解的形式。在教学的过程中不能单单满足于授予学生多少知识内容,而是要加强学生独立分析问题、解决问题能力的培养。因此,课堂教学要摆脱呆板、生硬的灌输,应着力于激发学生的学习兴趣,帮助学生树立正确的学习动机,培养学生的学习能力。例如以一个成熟的项目展示完整的C语言代码,向学生讲解代码中算法、建模的过程,培养学生的良好编程习惯。 四、采用综合考核法评价学生的成绩 对C语言程序设计的考试是衡量这门课教学情况与学生学习的好坏的标准,不是看学生“知不知道”,而是“会不会干”。C语言程序设计考试是一门考察学生的逻辑能力、C语言语法掌握能力、编程能力的综合考核。不能只用主观题和客观题来评价,而应当把重点放在编制程序和调试程序上。所以对学生学习成绩的评定,采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法,不但能更客观地反映学生的学习情况,同时也能促进学生学习起到很好的教学效果。 单一的考核方法并不能体现学生的学习效果和教学效果,需要用多种方式来评价。在采用上述方法后,还可以试行反复考试法。反复考试法就是当学生对自己成绩不满意,认为没有考出自己实际水平时,可以给学生一次或多次重新考试的机会。高校教学的目的并不是考试,而是培养学生的学习能力与实际动手操作能力,通过这样多方式考核的办法可以充分评价出学习的学习能力与实际动手操作能力。 五、校企结合面向社会培养学生的编程能力 为了使学生学习到的知识与社会接轨,可以创建校企结合的课程建设方法。听取企业家对C语言程序设计教学改革的意见、由企业向学校提供实验(实习)条件、以企业作为学生的校外实习基地或者企业为学生提供就业岗位,通过这些方法使学生熟悉公司内的编程环境,尽快进入工作状态。学校还可以邀请企业家为学生开讲座,派遣青年教师到企业去实习,使教学的内容与企业的实际更为贴近。学校作为企业的人才培育基地,发挥技术和设备的优势,为企业提供支持,向企业输送合格毕业生,校企结合实现双赢。 总之,在“C语言程序设计”课程中,我们要努力提高学生对课程的兴趣和学习热情,在教学手段上充分利用多媒体、网络软件等手段,使得学生充分掌握C语言的基本理论知识,同时加强学生自身的学习能力和实践能力的锻炼,使学生更好地掌握C语言程序设计方法符合现代社会对人才的要求。 【参考文献】 [1]孔垂柳.田地.基于程序设计思想的C语言教学方案.吉林大学学报(信息科学版),2005,23(8):5-6.[2]陈东.计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版),2004,20(3):98.[3]李明等.C语言程序设计教程[M].上海:上海交通大学出版社,2007,26-32.第二篇:浅谈《C语言程序设计》教学与实践
第三篇:《C语言程序设计实践》课题
第四篇:《C程序设计实践》课程设计指导
第五篇:关于《C语言程序设计》课程的教学改革与实践.