C语言程序设计教学反思

C语言程序设计教学反思

职业院校的计算机专业大多数都开有c语言程序设计这门课程。C语言的学习不仅有利于提高学生的编程能力、思维能力,培养学生的实际动手能力和创新能力,也将对学生日后深入学习计算机专业知识有很大的帮助。

可是,在本学期的教学中,该课的教与学的效果很不理想。我通过对课堂的观察、与学生的交流、发现部分学生上课时都能听懂,可到自己动手编程时却脑子却一片空白,无从下手,出现了听得懂、编不出的现象。我反思其中的原因:

首先,学生在初学C语言时,最先接触的是c语言错综复杂的语句语法,而在做前几次习题课上,学生出错率高,在我讲授之后才恍然大悟。但是,最初较多的C语言语法让学生措手不及,也让学生对C语言产生了畏难的情绪。但是学生开始还算是积极的,但随着项目内容的深入,有的内容需要记忆、思考,难度增大了,兴趣就减退了,调动不起积极性,觉得学习C语言很难。

其次,相当多的学生的自觉性不够,在课堂上讲过的东西不会主动在课下复习和巩固,学生对于一些基本语句的使用、语法的规则,掌握不够,也不会主动问我。加之随着学习的深入,在旧知识还没有掌握牢固的基础上,学习新知识,新知识掌握了,但是旧知识却遗忘了。通过期中考试发现少数同学对基本的标准输入输出函数仍然不能熟练应用。 再次, C语言强调的是模块化的思想,而学生习惯于顺序编程的思维方式,加之职业学校学生理解能力普遍偏差,学生对于选择和循环语句理解稍有欠缺,对于数组、函数和结构体,理解上更是一次不如一次。而有的学生比较比较依赖老师,老师讲多少就学习多少,不会主动思维,主动试着编程,这样会使学生的编程思想嵌入固定的模式中,更加的不开放。 第四,学生之前学过VB,可C语言不像VB或VF那样直观,可视化。大部分控件在VB,VF中可以直接在窗口中进行拖拉,但是C语言做不到这一点,学生在编程时,获得成就感就不会特别高,这样在一定程度上也影响学生对C语言的学习兴趣。

针对学生在学习中出现的以上问题,在教学的过程中,尤其是在从灵石二中学习归来后,我不断的改进自己教学的方式方法,还是取得了一定效果:

1.适当地降低难度

针对学生实际的理解能力,在讲解时对教材的知识适当地降低难度,对一些课后习题也可以适当地删除。比如,在学习三种结构(顺序,选择,循环)时,要求学生对常见和稍难

的问题都能编写程序,在讲解数组时,重点要让学生理解数组的含义,对一些简单问题进行编程,而对函数和结构体,只要求学生能看懂程序,掌握函数形参和实参之间的传递,掌握函数的语法规则以及结构体的定义和赋值,能看懂结构体程序即可,对于这两类知识的编程,可不做过多要求,对学有余力的同学可提出较高的要求。

2.分析式教学

在课程教学过程中,通过对程序题目的分析,引导学生应用已学知识,根据我引导的分析进行设计算法。在分析过程中,一定要让学生动手亲自编程,让学生尝试错误,培养学生的程序思维意识,让学生在不断解决问题的过程中,不断纠错改错的过程中,更有效地掌握知识。

3.赏识教育

在编一个程序时,对于学生中在编程过程中好的算法,要及时给予肯定和表扬,渐渐地学生会觉得自己能行,自己也可以编好程序。这是对他们能力的一个肯定,他们会心里产生成就感,对很有可能去挑战下一个难题,并逐渐获得成功。杜冉就是一个很好的例子,从最初的不会不懂不想学C语言,在我的鼓励下,逐渐地愿意看,愿意学,并能主动学。他们甚至在一些问题上能提出自己不同的看法,质疑我的分析和答案,对一些较难的程序也能编的干净利索。

4.分组讨论学习

一直以为职高的学生是讨论不起来的,从灵石二中学习回来后,我抱着试试看的心态在班里开展讨论学习。当然根据职高的实际情况,这里的分组讨论是在教师讲解分析之后的讨论。每节课讲一个知识点后,我都会留一些时间让同桌之间及前后左右的同学讨论学习(我们班的座位是按成绩一高一低平均分布的),学生会对我讲过的内容中不懂的地方相互之间讨论,尤其是在程序分析时,这种方式带来的效果最为明显。学生之间的交流和比教师和学生之间的交流要好很多。

5.有选择性地回答学生问题

对于学生学习时遇到的问题,只要学生能够通过自己的努力和学生之间的讨论解决的问题,只给学生提示一下错误的地方,尽量学生自己解决;对于学生确实解决不了的问题,提示知识点,再给予解答,这样培养了学生自主探究问题、合作学习、解决问题的能力,还教给他们学习的方法而不是仅仅传授给他们知识,要让他们学会学习,发掘学生自身潜能。

6.一题多解

对于编程的习题,在课堂中,由于时间关系,讲解的只是适合大部分同学的算法,但是,

要估计学生在理解程序的基础上,自己设计程序,用自己的思路来进行编程,对提出不同算法的同学要及时给予肯定和鼓励。

这门课在这学期已经结束,整体来看,学生掌握效果不很好,即使我在课堂教学中采取了很多的方法,但是也仅仅只是学生不随着知识的加深而退步,学生仍然说这门课很难,学的很吃力。要教好任何一门课,关键在于激发学生的学习兴趣,让学生主动、愉快地学习,这样才能取得良好的学习效果,而这一点恰恰是我没有特别关注的,也是我以后教学工作的一大目标。

 

第二篇:浅谈C语言程序设计教学的实践与心得

浅谈《C语言程序设计》教学的实践与心得

庞师铎

【摘 要】 在21世纪的大环境下,各种实践性学科都将面临着强大的冲击,而作为计算机软件开发等的入门语言,更显得尤为关注。强调实验的重要性,可以促使学生在学习C语言的基本知识之外加强编程实践,使学生在掌握C语言语法知识的同时,也掌握程序设计的思想和方法,这样才能引导和督促学生多编程序,编出优秀的程序,增强学生的动手能力。

【关键词】 C语言 可移植性 应用性 程序调试

C语言是一门高级程序设计语言,使用广泛,表达能力强,目标代码运行效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。因此《C语言程序设计》课程在教学中占有重要地位。

《C语言程序设计》是高职高专院校计算机专业的一门核心专业基础课程,同时也是多数非计算机专业的主要选修课。该课程是一门实践性与应用性较强的课程,目的是培养学生算法设计的基本思想和程序设计的基本技能。课程的内容主要涉及C语言的基本概念、基本语法以及C语言程序设计的基本方法,在教学中既要重视严谨的系统理论教学,又要重视实践性环节和案例的讨论与分析,为以后有关课程的学习和从事软件开发奠定基础。以下是本人在《C语言程序设计》课程教学过程中的一些经验和体会,与大家共勉 。

一、提高教师自身素质

教师首先要提高自身的政治素质和业务水平,及时了解最新的科技成果并掌握C语言应用技术的发展方向,要不断拓宽知识面,具备一定的知识高度,同时不断研究与改进教学方法,理论联系实际,提高自身的教学水平。

二、合理选择教材

高职教育是针对岗位一线培养应用型、技能型人才的,而目前高职教育的C语言教材普遍存在的问题是结合岗位的针对性不强,技能训练的实践性不够。教材是提高教学质量的基础和前提,是学生系统学习知识的依据,一本好的教材应能培养学生的自学能力和独立思考能力,使学生能够依据教材理解课堂教学内容,深入了解本学科各个领域的知识。在选择教材方面应注重以下几个方面:(1)充分考虑高职高专教学的特色,理论知识要够用,注重理论联系实际,突出实用性。(2)语言表达要通俗易懂,在内容编排上尽量符合初学者的要求。(3)注意点与面的结合,注重基础与新技术的结合,

使教材不仅是师生教与学的媒介,还是能够培养学生编程能力的工具。(4)在选择好的教材的同时,教师应积极编写符合实际教学需要的高质量的教材。

明确C语言课程的教学目标,培养学生模块化程序设计的逻辑思维能力,掌握程序设计的基本语法规则和程序调试方法,具备初步的分析问题与解决问题的能力。主要的教学目标包括:掌握C语言语法,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能针对复杂问题进行合理分解,掌握基本算法分析与设计知识。

1.作为计算机专业的基础课,目的是使学生掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练地使用C语言进行程序设计,具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。学生要在理解C语言的基础上更加专注于理解《算法》或者《数据结构》等课程,而不至于被语言本身的复杂语法现象干扰,要强调C语言的实用性。另外,在掌握C语言的基础上,比较容易学习其他主流编程语言,学生通过对C语言的学习,可以获得针对基本程序结构的程序编写与程序调试知识。

2.学生对C语言的熟练掌握可以在一定程度上降低后续计算机硬件技术基础课程的学习难度。计算机硬件技术基础课程中有很大一部分内容是对汇编语言的学习,同样作为面向机器模型的程序设计语言,C语言仅仅是抽象程度更高一些,其程序结构与汇编语言具有一定的相似性,C语言的编程经验对学生学习汇编语言会有很大的帮助。

3.对于非计算机专业理工类学生而言,该课程有比较强的工业基础应用前景,C语言为用计算机解决实际问题提供了方法,是后续理论与实践教学的基础和重要工具,同时也是计算机二级考试所统一要求的课程之一。教学内容的改革应本着突出基础理论知识的应用和实践能力培养的原则,以应用为目的,以“必需、够用”为度,加强针对性和实用性。

三、注重教学过程,优化教学方法,把握教与学的关系

高职高专C语言课程理论性强,概念性强,抽象而且复杂,在教学过程中要注意的问题主要有:培养学生对C语言的兴趣;教给学生正确的学习方法;加强实践教学环节;有效地组织课程设计;培养学生分析和解决实际问题的能力。教学过程是教师和学生的双边活动,只有既注重教,又注重学,才能真正做到教为学服务。教师所要做的就是传道、授业、解惑,开阔学生的思路,激发学生学习的积极性和主动性,激发反思,调动潜能,引导学生讨论,帮助学生解决遇到的问题,寓教于学。只有把握好教与学的关系,才能优化整个教学过程。

1.将案例带到教学中来。C语言是应用性很强的一门课程,既有理论,又有实践,既讲方法,又讲动手能力。采用案例教学法可以改变“满堂灌”的做法,将学生的眼、手、脑全部调动起来,培养学生的学习兴趣。本人在上课过程中,将课程内容分为若干个主题,以程序设计作为贯穿各主题的主线,每个主题的教学过程由“要点讲解”、“自学/上机实践”和“疑难解答”三个阶段组成。通过案例分析,重点讲解程序设计的思

想和方法,辅以语言知识的介绍;然后通过上机练习,包括基本训练(自测作业和主题作业)与综合训练(大型作业),教师针对学生暴露出的问题答疑解惑,结合案例教学,努力将C语言作为解决实际问题的工具,强化学生的编程能力,在分析程序与程序设计的过程中使学生逐步熟悉语法,应用语句,提高学生分析问题、解决问题的能力,由浅入深、由易到难、循序渐进地使学生在实践中掌握知识,培养程序设计能力,逐步理解和掌握程序设计的思想和方法。最终在课堂上教师扮演“和方法,运主导”角色,而学生真正地成为“主体”。

例如:《C程序教程》(谭浩强主编)中有一题为:用循环语句结构判断整数m是否为素数。

/* ex5_5.c */

#include"stdio.h"

main()

{

int m,c=2;

scanf("%d",&m);

while(m%c)

}

书中介绍了三种循环语句结构均可以作出判断结果,这时我们就应该利用“比较法”,将三种循环语句结构进行对比,使学生有一个较为深刻的理解与记忆。

2.切合实际的分组教学。要真正掌握程序设计的思想用语言解决实际问题,综合训练势在必行。整个过程以学生独立完成为主,教师提供相应的理论辅导。经过这样的模拟实际软件开发的演练,不但提高了学生的学习兴趣,培养了学生问题求解和编程能力,还有利于培养他们探索与创新的能力,更加有利于激发学生学习的积极性。

3.分层次教学。即标准化教学与个性化教学相结合,结合不同专业、不同班级学生的具体情况,制定各有特色的教案、讲稿和教学课件。既发挥群体智力优势,又充分发挥教师个体的教学风格特长,有利于提高教学水平。

4.加强实验课与理论课的联系。在理论课上将上机实验任务题目进行讲解,也可以将案例算法作为实验内容。实验课程可以分为两部分,实验任务问题作为理论课的内容在课堂上讨论、讲述,确定实现算法。对于同样的题目,可以确定若干不同的算法,比较其优劣,分析其原因。上机实验的任务是完成已确定算法的编码实现和运行。这种c++; printf("%d is a prime number.\n",m); printf("%d is not a prime number.\n",m); if(c==m) else

做法相当于在教师带领下,对实验内容做了集体预习,贯彻了“算法重于语法,语法重于编码”的课程指导原则,综合运用学过的知识,加强实践教学。学生只有通过大量的练习,才能真正掌握语言知识,培养程序设计能力,逐步理解和掌握程序设计的思想和方法,学会利用计算机解决实际问题。

5.充分利用多元化、现代化的教学手段。在教学过程中应多方位应用现代教育技术手段,尤其是多媒体辅助教学手段与网络化辅助教学手段。在课堂教学中采用多媒体教学课件,加强直观教学,可提高学生的空间想象力。教师应从最简单的C语言程序的调试入手,详细演示C语言程序的调试过程与调试细节,同时让学生参与进来,实现教师与学生、学生与学生的双向交流和互动,提高学生的学习兴趣,加深学生的理解与记忆。使其检验自己本阶段的学习成果,加强对所学知识的吸收和消化。

总结:

改革考核方式,强化应用能力《C语言程序设计》的考核应采用多种形式考核学生的知识掌握程度和实践能力,包括卷面考试与实验考核,要强调职业技能。实验考核可采用上机考试与平时训练相结合的方式,上机考试可以使用能自动组卷和评分的考试平台;平时训练包括作业和综合编程训练的完成情况。该评价方法可以提前让学生体验全国计算机等级考试的过程,也可以促使学生在学习C语言的基本知识之外加强编程实践,使学生在掌握C语言语法知识的同时,也掌握程序设计的思想和方法,这样才能引导和督促学生多编程序,编出优秀的程序。

介于本人的能力有限,在实践及教学环节中还存在着许许多多的问题与不足,今后将会更加关注自身能力的提高,以便取得更好的教学效果。

【参考文献】

[1] 张陵山 《C语言程序设计教程(修订版)》 湖南大学出版社

[2] 杨起帆 《C语言程序设计教程》 浙江大学出版社

[3] 谭浩强 《C程序设计(第二版)》 清华大学出版社

相关推荐