C语言教学方法
C语言教学方法(精选12篇)
C语言教学方法 第1篇
学习的目的必须明确, 目的不明确就没办法学好, 学习起来就没有动力。
C语言是目前被广泛使用的教学语言, 功能强大、应用广泛, 集高级编程语言和汇编语言的特点于一身, 既可以用来编写系统软件, 也可以用来编写应用软件, 例如要进行一个嵌入式项目, 或者需要进行服务器端开发, 或者写一个性能相关的组件等等, C语言都是比较好的选择。目前市面上的许多软件也是在C语言的平台上开发出来的, 因而学好C语言具有很重要的意义。另外C语言是工程实践性很强的语言, 是实实在在从项目需要中产生的, 伴随着Unix的兴起而流行, 语义简明清晰, 功能强大而不臃肿, 简洁而不简单。另外也可以在C++的使用过程中使用C语言的思考方式, 汲取C语言简洁明快清晰的设计思路, 对编程设计水平会有很大的提高。
C语言简洁紧凑、灵活方便、可移植性强, 程序的书写比较自由, 语法限制不严格。C语言相比C++的优点之一就是不会在私底下产生一些莫名其妙的额外产物, 这点在编写操作系统这类要求优化性能的情景下尤为重要。C语言本身只提供必要的语言特性, 复杂一点的功能如文件处理、数学计算等等都以库函数方式提供。这种简洁性也让C语言的可移植性、便携性特别优秀, 也使得很多嵌入式系统依然使用C语言作为主要编程工作语言。
C语言运算符丰富, 功能强大, 应用广泛。它是一个比较少见的应用领域极为广泛的语言。在编程过程中可以使用各种运算符, 可以实现其他很多高级语言无法实现的功能。另外还具有强大的图形功能。
C语言程序层次分明, 设计思路清晰。结构式的语言特点使代码和数据分割, 层次清晰, 便于使用和维护。
由于C语言的这些特点和优势, 使其成为理工科必修公共课之一, 也是编程者首先学习的程序设计语言。
二、如何学习C语言
学校十分重视C语言的学习, 越来越多的人想掌握这门语言, 但是大部分人反应C语言抽象难以理解, 枯燥难以掌握, 经常是一个学期下来毫无收获, 对C语言没有一个整体的认识, 连一个简单的小程序也写不好。其实初学者认为C语言复杂难学是人之常情, 况且C语言又需要一定的数学基础, 这对高职高专的学生来讲, 是有些困难。然而只要具备一定的编程经验, 再掌握一些编程技巧, 就可以有效的提高编程的效率和能力。
1、多看书, 看懂理解基本知识
教材一般都涵盖了C语言的方方面面, 从基础知识到应用实例都讲述的非常全面, 举例也都很经典。不要小看一本教材, 其实教材是学习的第一步, 是基础, 只有从基础开始, 才能进一步提高能力, 若无基础, 何谈提高和技巧。
C语言涉及的主要内容包括:运算符及数据结构;变量的作用域和存储类别、函数及函数的调用、数组及数组的应用、指针、文件、链表等。学习C语言应首先较好的掌握好这些重点难点内容, 以及一些细节、易错的地方。这会使对C的运用更加得心应手。
2、多动手, 在实践中提升能力
C语言是实践性很强的课程。只有通过大量的上机练习, 亲自动手试一试, 才能消化理论知识, 加深对理论知识的理解, 像基本数据类型, 三种基本结构 (顺序结构、循环结构、选择结构) 这些东西不能死记硬背, 亲自动手编写一些简单实例更好。
一开始的练习, 可以亲自动手把教材上的例子打一打, 运行一下程序是否正确, 有什么问题自己亲自调试。在这一步要基本掌握C语言编程设计的基本方法, 包括新建、打开、保存、关闭C程序, 熟练地输入、编辑C程序, 养成良好的C语言编程风格。
之后可以在老师的指导下, 编写一些小程序, 这类任务一般是在第一步输入的C程序的基础上进行一些修改, 扩充其功能而来的, 相对来说是比较简单的任务, 基本是模仿教材范例编写, 举一反三。编写好之后运行一下程序, 看一看程序结果发生了什么变化, 分析结果变化的原因, 加深对所学知识点的理解。事实上这和验证教材上的实例是同步进行的, 照搬教材实例可加深知识的记忆, 改造教材实例可加深对知识的理解, 二者相辅相成, 相互促进。
无论是编写怎样的程序, 都要多调试程序, 以增强自己调试程序的能力, 教材中都有C语言初学者易犯的错误, 按照易出错的类型, 将教材中的正确的程序改成错误的程序, 运行一下程序, 看出现的错误信息提示, 并记下错误信息, 再将程序改成正确的, 运行一下程序。这样反复修改, 就能够学习C语言程序发生错误的原因和修改错误的能力。修改C语言语法错误时要注意以下两点:
(1) C语言简洁紧凑、灵活方便, 程序的书写比较自由, 语法限制不严格。因此错误信息定位不是特别精确。例如, 当提示第50行发生错误时, 如果在第50行没有发现错误, 从第50行开始往前查找错误并修改之。
(2) 一条语句错误可能会产生若干条错误信息。只要修改了这条错误, 其他错误会随之消失。一般情况下, 第一条错误信息最能反映错误的位置和类型, 所以调试程序时务必根据第一条错误信息进行修改, 修改后, 立即运行程序, 如果还有很多错误, 要一个一个地修改, 也就是说, 每修改一处错误要运行一次程序。
调试程序是一种实践性很强的事, 光纸上谈兵是永远学不会调试程序的。面对错误提示, 能快速发现错误并改正错误, 是需要实践、实践再实践积累出来的。
3、多利用网络资源
毕竟老师讲授的知识有限, 课堂学习时间有限, 自己可以在课余时间通过网络获取更多更广的资料。比如想全面了解C语言的来龙去脉, 比如想弄清很多编程术语的解释, 都可以在网上获取答案。也可以注册一个编程者论坛或是编程者联盟的账号, 当你对某个函数或者关键字不是很理解的时候, 就可以去搜索资料, 与其他程序员交流经验, 看看别人是怎么使用的。当你遇到无法调试的问题时, 可以在网上找到问题的解决方案, 获取到别人的帮助, 这对于学习非常便利。
4、多看代码, 研究典型的C语言程序
学习编程也需要大量阅读名家经典代码, 在看代码的时候, 要注意分析别人是如何运用编程技巧的, 看懂别人是如何解决问题的, 研究它的实现方法和程序设计技巧, 提高自己的程序设计能力。要对程序中数据结构的运用和算法进行总结和分析。初学编程者, 多读、多编、多模仿, 熟悉了, 便能编出自己的程序了。
C语言教学总结 第2篇
2013至2014学年第二学期我从事了13级计算机科学与技术专业(1)班和(2)班《C语言程序设计》课程的教学工作,该课程分为实践教学和理论教学两个部分。下面就本学期本人的备课情况和这两个班学生理论和实践的学习情况作如下总结:
一、本人教学情况
每节课上课之前,本人都做了充分的准备。
该课程理论部分安排在多媒体教室教学,对于多媒体教室教学,首先,教学课件的质量直接影响着教学效果。在总结以前教学经验的基础上,本学期我制作课件的原则是在囊括所有需要掌握的知识点的情况下,课件的内容尽量简洁,力求做到言简意赅,并将程序的执行流程制作成动态的效果。一方面是避免学生看到大量文字的幻灯片而产生反感情绪,另一方面动态幻灯片不仅能够帮助学生理解同时也能够提高学生的学生兴趣;其次,为了防止学生长时间看着幻灯片听课而走神的情况,在教学中尽量引导学生互动,引导学生思考、回答问题、动笔解决问题、上黑板等;
实践教学安排在机房,在机房上课通常会出现两种主要情况。一种是学生无所事事,为了防止这种情况的发生,本人每次实践课之前都布置了充足的实践内容,让学生有事可做;另一种情况是学生层次不同,有些学生因为不会做而无所事事,针对这种情况,每节课布置的实践任务都分为基础和提高两个部分,对于特别需要提醒或提示的内容,实践之前我会进行讲解、分析 并演示,这样就满足了不同层次的学生的学习要求。
二、学生理论学习情况
这两个班都是本科班,但学生的基础和学习能力与想象的存在一定的差距,因此教学中需要根据学生的掌握情况不断调整。学生在理论学习的时候,由于C语言这门课是程序设计的第一门课,也是专业课的起点,新知识点较多,再加上由于课时的限制,学习进度较快,所以学生掌握起来有点吃力。其中一班学生纪律方面松散一些,上课迟到现象比较严重,所以学生效果相对于二班来说要差很多。二班学生上课积极性较高,听课也比较认真,能够大部分学生,尤其是女生能够积极的和老师互动,学习效果良好。
三、学生实践学习情况
该课程开始安排的机房由于机器陈旧和机器数量的限制,教学效果受到的一定的影响,但很快调整机房后,教学条件良好,教学效果有了明显的提高。实践教学中,同样二班学生积极性较高,遇到问题能够积极主动的问老师或相互讨论,实验报告完成情况良好,而一班气愤比较沉闷,学生不能够主动的问问题,实验报告相对来说不够认真。
四、意见和建议
高职C语言教学浅析 第3篇
【关键词】C语言;学生兴趣;教学方法
现在计算机已普及到各行各业,深入到各级层次。在我国高职院校教育中,C语言不但成为计算机专业的必修课,而且也成为非计算机专业的学习课程。做好该门课程的教学具有非常重要而深远的社会意义,现将我在C语言程序设计课程中教学内容、教学手段、教学方法等方面的改革与取得的教学效果与大家做一探讨
一、努力培养学生的学习兴趣及正确的思维摸式
兴趣是学习的关键,兴趣决定了教学效果的好坏。初学C语言时,很多学生感到新奇、好玩,这不能说是兴趣,只是一种好奇。随着课程的不断深入,大量的规则、定义、要求和机械的格式出现,很容易使一部分学生产生枯燥无味的感觉。为了把学生的好奇转化为学习兴趣,授课时我改变过去先给出定义和规则的讲授办法,而是演示一些由前几届学生自己编写的、有趣的程序,从而吸引学生,并告诉他们学习了C语言程序设计的内容后,大家都能够编出这些小程序。努力把枯燥无味的“语言”讲的生动、活泼。
二、循序渐进
高职学生第一次接触计算机语言,“通俗性、可接受性”的教学原则同样适合于这门课的教学。在课程讲授过程中,我没有把重点放在语法规则的叙述上,而是放在算法和程序设计方法上,通常由几个例题引出一种语法规则,通过一些求解具体问题的程序来分析算法,介绍程序设计的基本方法和技巧,既注重教材的系统性、科学性,又注意易读性和启发性。从最简单的问题入手,一开始就介绍程序,要求学生编写程序,通过反复编写、运行程序来掌握语言的规定和程序设计的方法。同一个语法规则、同一种算法,在选择例题时也是由简到难,逐步呈现给学生。在学习上不要求学生死记语法规则,而是要求学生能把各个孤立的语句组织成一个有机的、好的程序。注意培养学生良好的编程风格,让学生在编制程序过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的。
三、改进授课方法、实现教学相长
(一)采用启发、引导的教学方法
(1)教师在教学过程中,应当注意设置疑难问题,引导学生思考和探索,让他们的思想活跃起来。我教学时发现,学生问不出问题的原因往往在于没有真正学好。实际上,问题是最好的老师,是学生学习的引导者,没有问题便没有深入。在教学过程中,引导学生在问题解决中学习,即提出问题,给时间让学生思考、讨论、解决问题,从而更深入地展开学习。实践证明,这种教学方法充分调动了学生学习的积极性和主动性。例如 ,在讲数组的概念时,我先设置问题:编程计算10个人的英语平均成绩。根据以前所学,学生会想到:需要说明10个类型相同的变量用于存放10个人的英语成绩。进一步要求:计`算50个人的英语平均成绩,这时候如再说明50个变量,则会将问题麻烦化,学生此刻需要讨论该如何合理说明变量。再深入一步:求100个人的英语平均成绩。此时,当教师引出数组的概念、分析数组的性质时,学生不仅能够记住数组的性质,还能够知道在什么情况下使用数组类型,达到事半功倍的效果。
(2)教给学生正确的学习方法,引导学生掌握程序设计的思想和方法。经验丰富的软件设计者都知道程序设计的关键在于找到解决问题的方法,即算法。根据软件工程的思想,当拿到一个任务时,首先应将这个问题自顶向下逐步细化,逐层向下分解,直到满足每一个要求。实现时,可以先用流程图描述出算法,进而写出合理的算法,再将之转化成程序。
(二)采用目标教学法,使学生明确目的,确立主题
学生是认知主体,是信息的主动接受者,但也并不能否定教师的指导作用,教师作为知识的先知者,自然清楚所学内容哪些是重点及难点,哪些是只需一般掌握的,如果脱离了这一点,学生有可能会不加区分地对所学内容完成认知,进而导致其知识主结构的无法确定,所以教师在进行教学设计的第一步还是要进行目标分析,指导学生确立主题。
四、校企结合,加强实践教学环节
高职教育着重培养具有实际工作能力的技术型和应用型人才。为了使学生学习到的知识与社会接轨,可以创建校企结合的课程建设方法。听取企业家对C语言程序设计教学改革的意见、由企业向学校提供实验(实习)条件、以企业作为学生的校外实习基地,通过这些方法使学生熟悉公司内的编程环境。学校还可以邀请企业家为学生开讲座,派遣青年教师到企业去实习,使教学的内容与企业的实际更为贴近。高职院校作为企业的人才培育基地,发挥技术和设备的优势,为企业提供支持,向企业输送合格毕业生,校企结合实现双赢。
C语言教学方法 第4篇
关键词:C语言,教学效果
1 C语言教学中存在的问题和面临的困难
《C语言程序设计》是高校计算机专业及非计算机专业的一门重要的基础课程,整门课程的掌握情况对于后续课程有着至关重要的作用。但是,教学实践表明,C语言这种基础入门类语言课程往往是教学中任务重,付出的精力多而收到的教学效果并不一定十分理想的课程。主要遇到的问题及其产生原因归纳如下:
1)学生学习初期经常会产生厌倦情绪,对编程语言的学习方法不能适应。
C语言这门课程,一般是在新生入学不久就开设,是学生接触的计算机编程的入门课程。学生沿用旧的学习方法对于这门新课程有很大的不适应性,需要记忆以及注意的语法点经常让他们感觉很抽象、枯燥。学习中经常会有厌倦感;对于这种情况,学生对C语言课程的学习方法在初期就需要任课教师专门指导。可以随着课程的深入不断地去扭转学生的学习方法。
2)课堂教学中教师讲授的口干舌燥,学生却注意力不集中。
在课堂教学中,学生面对大量的理论内容以及琐碎的知识点就会有注意力不集中的现象,而且经常抱怨跟不上老师的思路。这个问题一方面可能是教师的课堂信息量安排过大,用“满堂灌”的错误教学方法;另一个方面,也可能是部分教师缺少使用与日常生活相关的有兴趣的问题作为导入和内容设计,吸引不了学生的注意力。这样,在不了解学生的需求以及掌握程度下盲目教学,会挫伤学生的学习热情,只能是事倍功半。
3)学生在上机实践中缺乏积极主动,心理经常由挫败感转为畏惧感。
在实践上机环节,学生往往会因为编程编了老半天,一个小程序错误一点儿就运行不出结果而感到非常沮丧;还有的学生在编程中,看到一些问题感觉提不起精神,找不到思路,一旦没有动手解决问题的欲望,干脆就偷偷玩起游戏。这些情况的出现,首先是学生对上机的实验目的没有明确,其次就是教师可能对实验需要的编程题目的安排缺乏典型性分析,以及缺少吸引力。太简单和太难的题目,不是精心设计的,就很难引起学生的兴趣,长久下去,让学生产生了畏惧情绪,更谈不上拓展学生的思维能力了。
2 解决对策以及改革措施探讨
要改变教学中出现的以上状况就要针对问题产生的原因进行分析,需在课堂教学和实践教学中不断地吸引学生的注意力,激发和培养学生的兴趣。那么,怎样创设效果较好的课堂教学以及实践教学,让学生产生兴趣去主动学习,并且将兴趣得到培养和延续呢?笔者根据自己的教学实践和探索,阐述了自己总结出的系统性的解决方案。这几种策略都是以提高学生的学习兴趣,调动学生的积极性作为核心目的,教学中如果教师采用这个系统性的方案,在教学中充分将C语言的“实用性和趣味性编程”进行到底,就会大大提高理论和实验教学效果。
2.1 趣味性展演领入门,兴趣作学生最好的引路人
“知之者不如好之者,好之者不如乐之者。”只有“好之”、“乐之”,学生才能有高涨的学习热情和强烈的求知欲望,方能以学为乐[1]。学生只有对所学课程最开始有浓厚的兴趣,才能积极主动地去完成任务。
在C语言课堂教学过程中,从绪论部分,就可以向学生介绍“C语言能做些什么?我们为什么要学C语言”;这时教师可从最简单的C能解决的问题入手,举例并演示运行部分小的程序结果。例如:大一的同学刚学习掌握的高数中的定积分,求解方程的根,计算机基础中的进制转换等,让学生体会,利用C语言编写的简短几行的程序,就可以实现解,感受学习C后可以现学现用。除此之外,还可指出有关C语言的历史,与VC++及C#等的关系、C语言在系统软件和应用软件设计方面的应用;把C语言实现的功能向学生展示:如,用VC实现的“图书管理系统”,“五子棋游戏”等带界面的完整系统;演示C或者VC对于图形图像程序设计的支持,例如“VC实现的数字图像边缘检测”或“汽车牌照分割与识别系统”;网络编程的应用,比如“小聊天工具的开发”等。这些强大功能,光用口头强调和板书描述是不足以让学生振奋和信服的。在演示的时候,学生对程序中的语句不能理解,但这些程序运行后实现的功能却能让学生一开始就对这门课产生浓厚的兴趣。这样就使学生对该门课程感兴趣而学习。这样比从第一节开始就开讲语法关键词的使用要效果好的多。
另外,还可向学生介绍他们所听过的一些编程语言,如C++、Java、C#、J#、perl都是衍生自C语言,掌握了C语言,可以说你就掌握了很多门语言。所以教师要从一开始就作学生的思想准备工作。这样学生自然就很重视这门课程了。
2.2 问题导入式教学法与趣味化情境设置教学方法相结合,充分调动学生的积极性
在课堂教学中,完全可以由某个实际问题的解决而引入需要学习的本节内容,比如,在开始部分的“C程序语句设计”中,讲到“循环结构”的时候,可以先抛出一个实际问题,用问题导入式方法和兴趣化教学方法结合的方式,一步步启发学生。
举一个实际的案例来简单说明:
要对循环语句的应用有好的掌握,一个好的方法就是问题导入式,引入如“百钱百鸡”问题。教师可先向学生抛出这个中国古代数学家提出的著名问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁,母,雏各几何?”这个古人的题目一出现,学生马上感觉就很新颖,于是教师可以马上这样引导学生,“这个问题你们应该可以很快作答吧?”然后让学生们马上手工算一下,看手工能做出来么?结果学生发现,看似简单的题目,还真是用手工不好解答。因为这个问题如果用列方程组的方法去解,得到了的是一个三元一次方程组,可是只能根据题目列出两个方程。不能由此马上求得答案。这时教师可以再问学生,“如果我们自己假设一组数据,共3个数值代入方程组,若满足方程就可以视为一个解,这样是不是能很快得到全部解?用你们手工算,是不是很费解呢?所以工欲善其事,必先利其器’,我们就要利用我们学习的语言工具编程实现”。用三个嵌套的循环语句,用穷举法只需要确定循环的范围,也就是对穷举的范围作个界定,就可以求出满足方程组的全部解的组合。接着,就可以讲解循环语句的具体用法。这样用问题导入的方法和兴趣化教学方法相结合的方式,可以更好的激发学生的兴趣,他们在课堂就有了主动性,而不会出现注意力不集中的现象了。
2.3 从易到难创设学习题目,让学生收获自信,培养长期兴趣
学生对学习C语言有了兴趣,并非就完事大吉了,因为兴趣有可能被磨灭,所以作为教师就必须想办法延续学生的兴趣。这个过程,教师所采用的教学方法是最为关键的。
教师可以做如下改革工作:学习完流程结构,函数以及数组之后,就可以对教学内容做适当调整补充,在后期教学中将分单元兴趣化教学引入课堂和上机练习题目设计中,增强学生乐学兴趣,让学生在学习的同时,享受动脑子的乐趣。
具体的,可以先由教师作分析归纳,找出有特色的,贴近学生生活的,充满趣味性的题目或者案例给学生做。其实,在许多教材中,例如使用最多的谭浩强的《C语言程序设计》教材中,不少例题和习题,有趣和贴近现实生活的很多,只是没有被系统的归纳而已。教师正好可以下功夫,在备课时充分挖掘这些教材上与教材外与学生生活相关题目和案例,从简到难,分单元进行总结典型问题的类型以及求解方法,引导学生逐步掌握知识点和解决问题的方法。
经过笔者总结,可以将很多趣味性的问题拿出来,做出归纳,然后由简到难分成几个单元,在教学的中后期,让学生进行分单元体验学习。部分如图1和2所示。
例如,有关“数的家族”这个单元,又可以分为“整数家族”和“素数家族”两个小的单元,教材和习题中没有专门对其一一梳理,比如“求数的逆序,求水仙花数,回文数,完数”等,这些在学习循环结构和数组的时候,比较典型。教师可在每个单元中着重讲一个典型例子,其它要求学生分组讨论,并在上机实验结束后,以小组为单位把单元中的题目结果打印出来,这样寓教于乐,在上机实验时也不会感觉无事可做。
同样,在教师作了系统总结之后,还可以进一步引导学生对曾经做过的题目,自己分析总结,比如有关“方程的根的求解”,可以用三种方法求得解,如“二分法求方程的根”,“梯形法或者牛顿迭代法”等,每种方法又和他们学习的高数知识联系在了一起,并能体会到编程的实用效果。
2.4 针对教材中出现或者应用到的主要算法在后期进行集中讲解介绍,使学生做到心中有数
除上述趣味题目的归纳设计选择外,在教学中,教师还必须集中对程序设计中常用算法进行讲解,虽在后续的《算法设计》等相关的课程中也有讲解,但既然C编程当前必须要用到,而学生对采用什么算法并没有一点先前的概念做铺垫,如果只就题目论方法,势必会更引起学生的逆反心理,题目见了不少,可是遇见一个新题目,又无从下手。所以在教学的后期,学习指针之前,就将这些算法集中介绍下,这样让学生在编程时就知道心中有数,还可以起到举一反三的良好效果[2]。
有几大常用算法,掌握了这几种算法,就可以给学生提供解题思路,遇到问题后能心里有底,而不是盲目下手编程。例如,常用数值问题算法,各种常用的数值问题一般都具有其本身特定的算法,需要教师进行讲解。还有用到很多的“排序的方法”,要求学生必须掌握的主要有两种,“冒泡法排序和选择法排序”,在后面出现的类似问题,不管是用指针实现还是前面学了数组函数后去实现,都可以保证降低难度,也增加了学生的自信心。还有就是“穷举法”,“递推法”等,前面提到的些趣味性问题,如“8除不尽的自然数,捕鱼和分鱼”等都可用上述的某个算法解决。
在教学中发现,学生对算法中的“模拟人工法”表现极大的兴趣。比较有意思的题目如魔术师的猜牌术,常胜将军等,这些题目的设计和实现,让学生感到兴奋不已。
2.5 趣味化设计贯穿教学始终,开发学生潜能,培植学生的思维。
在兴趣化教学的实际应用当中,不仅要增加题目的趣味性,还要适当加深难度。设计题目时不光要有广度还可以根据一定情况增加深度。教学时增加难度可以刺激智力发展。
太容易的知识激不起学生的学习兴趣。在前面的策略实施之后,教师可以相应提出更深难度的题目,由学生当主角,让学生自己解决问题,锻炼他们综合运用知识的能力[3]。如像图1中难度较深的单元,有关智力游戏类的问题,虽然很有趣味,但是要实现,光凭兴趣是不行的。所以要适当增加难度,让学生在克服难题的同时,刺激智力和编程能力的提高。例如有关汉诺塔的问题,用递归法和非递归法两种方法都可以解决。教师可以先讲解一种解题方式,让学生实现另外一种方法。
难度较高的应用中,选取和学生生活贴切的问题:比如电梯算法的模拟实现,实现本年度的年历打印等,这些综合性编程题目较复杂,涉及的技巧也很多,在学生有余力的情况下,也可以让学生作为探索性、提高性的题目来进一步拓宽编程思路,能很好的锻炼他们的思维能力。
3 本方法的实际效果应用评价以及今后的改进设想
实际教学中,笔者采用了上述步骤,较传统的教学方法相比,教学效果得到了明显的提高。虽然提出了创新性的趣味化教学方法,以及问题导入式教学和趣味化教学相结合的方法,但并不是说可以不注重“基本功的扎实”,那就是成了“空架子”和“花架子”;寓教于乐,也不能缺少科学的严谨性和知识的严密性掌握。
在实际的教学当中,趣味化教学方法并不意味着学生就可以光做感兴趣的,要强调并要求学生,对于部分应该注意掌握的知识也不能马虎对待。例如在上机实验中,要强调:C语言语法结构是很简洁精妙,但要想最终用好它调试出最终结果,就一定要按照规定来,否则它肯定会“罢工”。也就是说很大部分的细节性概念是必须让学生强化理解,并加以记忆的。例如初学C语言的同学应该首先了解C语言关键的核心概念(结构化、三个执行流程、优先级、指针、文件、共用体、函数、作用域等),只有弄明白了这些才能在今后的学习中游刃有余的把握C语言的精髓。同时,在实际教学中,就要培养学生良好的学习态度和编程的认真精神,告诉他们学习和写代码的过程要认真,不要想当然。这样,在培养学生的兴趣的同时,还可以在教学中培养他们的注意力和思维能力,更重要的是,不怕挫折,坚持到底的意志力的培养。这样,就将传统的理论和实践教学模式推进到一个更加大有作为的广阔天地。
参考文献
[1]卞孝丽.提高计算机课堂教学效果之我见[J].科技咨询导报,2006(1).
[2]郭慧敏.在C语言教学中培养学生举一反三的能力[J].雁北师范学院学报,2004(5).
c语言学习方法 第5篇
时间:2007-1-5 17:23:03 作者:梁肇新
某天,你需要完成一个求100的阶乘的作业,于是你搬来一个最新的电脑,为它安装了最新的windows vista操作系统,然后坐在它的身前,喊“喂电脑,给我计算100的阶乘”,电脑说“ok, wait a moment”; 过了一会,一盘香菇小白菜端了上来!呵呵,电脑不是waiter, 你喂它它是不会有反应的,如果你真的wait a moment, 恐怕你就需要wait one more moment了!一万年后,人们就把你命名成“望夫崖”。
既然电脑不是伺应生,听不懂我们的话,那么我们要怎么控制它呢?如果你们给我装聋作哑,我会告诉你期末挂了你,哦,你立马老实了!对于电脑,我要怎么才能使唤它,让它为我工作呢?不错,我们有个强力工具,C语言!
好,我们把上面的场景复习一下:
你要我算100的阶乘,于是我去机房上机,编写了一个程序:
(参加ppt......)
运行程序,哦,结果出来了!
有人认为,现在是java和.net的时代,有谁还需要C以及汇编呢?孰不知,java和.net是建立在软件之上的,是为了垄断市场而建立起来的体系,犹如挖好一个金壁辉煌的坑,请你往下跳,还自以为站在巨人的肩膀上,事实上成了坑底之蛙。要成为一个真正的程序员,并期望成为一个程序员高手,必须从机器出发,从cpu到操作系统,再到软件体系,高手的境界就是悟道后的明镜灵台,软件设计出神入化,我就是程序,程序就是我。
听完我讲高手的境界,于是乎你很受感动,说:我要努力学习,向高手学习!隔天就买了一堆MFC, VB, JAVA以及.NET的书回来,早上五点钟起来背书!这样是不行的,正确的入门方法只有一个,要证大道,唯有此法!同学们,从C语言入手,努力学好C语言!旁观者李四说:此人大笨也!我用鼠标随便拖几个控件,就是一个xxx管理系统了,你用C语言恐怕是一年也写不出来吧!好吧,我要承认,讲这话的都已经是mS的奴才了,别的我不了解,MFC本身就是一个封闭的架构,从MFC入手学习,你只会形成一种封闭的思维模式,因为MS希望很多人只学会表面的东西,不致成为高手,所以它大力推荐所谓的可视化的程序开发工具,也真有很多人愿意上他的当,最后真正迷失方向。说他坐不了程序吧,他也可以作,但是如果程序复杂一点,出现问题时,问题出再哪里就搞不清楚了,反正是不清楚!
梁肇新,大牛啊,他说:“我就搞不懂了,用鼠标怎么写程序呢?在我的公司里,高手的键盘响个不停,鼠标偶尔响一下,新手是鼠标响个不停,键盘偶尔响一下,他们的薪水相差的就不是一倍那么多了!”
C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),君不见Windows API都是C语言函数的接口?Unix/Linux绝大多数应用都是C语言开发的;Windows应用程序用纯API开发已然不多,大多都是依靠某种Application Framework,比如所谓的VC++,其实就是指VC IDE + C++语言 + MFC(现在重点已转向ATL、WTL),但是Windows服务、网络、驱动程序等底层软件,还是C语言开发的。各种语言的编译器,包括java虚拟机,都是用C语言开发的。各种嵌入式设备,如手机、PDA也都是C语言开发的。C语言历史悠久,其内容也绝非谭浩
强老师的《C语言程序设计(第二版)》所描述的那么简单——那本书只是针对中国国情的教学入门书而已。
学生总喜欢问:那种语言好?学那种语言有前途?这种问题天天在讨论,永无休止。其实我觉得大家所关心的,无非是那种语言更有“钱途”,学习那种语言毕业后能够轻松找到高薪的工作——当年我也是这么想。那么,我告诉你,如果你精通C语言,请你去华为,不要在小池塘里浪费青春了!
OK, 听了我苦口婆心的劝告,你准备从C语言入手,开始攀登程序员高手这座山峰了,在你出发之前,你的行囊中需要准备什么呢?
第一个要装进行囊和你一起前进是“规范的格式”,有很多教科书,参考书,不太注重程序的格式的问题,写出的程序就象一堆堆的垃圾一样,这也导致了现在很多人写的程序中有很多的废码,垃圾代码,这和那些入门的书有非常大的关系,要把那些作者都拿来打打PP。真正的商业程序绝对是规范的,张三写的程序和李四的程序格式大致相同,各种标识符的命名规则一样,否则谁也看不懂你写的程序。如果写出来的代码谁也看不懂,那绝对是垃圾。如果要把那些垃圾翻半天,勉强才把金子找出来,那这样的程序不如不要,还不如重新写过,这样,思路会更清楚一点。所以说,规范的格式是入门的基础。那这个规范的格式包括什么呢?不少啊,要坚持才能做到!长标志符命名,代码缩进,一对大括号范围不超过一屏幕,等等。
第二个要装进行囊的是耐心,所谓工欲善其事,必先利其器。要想成功,没有一个相对平淡的过程是不可能的。这不仅仅指你在学习过程中要有耐心,要循序渐进,而且也说的是另一个重要的方面:调式程序。调试是写程序过程中一个重要的方面,如果有人能一次写成程序,牛啊,而且是大牛,不光是大牛,还是老子骑的那头青牛,凡人是做不道的!调试是每个程序必定经历的历程。经常有同学问我:老师,我的程序完全没错误啊,都是照书抄的啊!怎么就运行不出来呢?对于这个问题我也看不出来!你们有问题可以找我,找其他的老师,老师找谁啊?李师父?那是很荒谬的!我就只好坐下来调试,这个说实话,调试是很枯燥的,所以有同学抱怨说我操作太快,不理解为什么要这样,为什么要那样,我的脾气不太好,一烦躁就会骂人地,所以,这个就需要你们自己修炼内功了!
有了这两个就可以了,可以出发了,估计有人说了,英语和数学不要了?大家都说大学生了,这种问题就不要问了嘛!你已经用早晨和傍晚的时光学习了英语了,我这个没有要去,计算机专业英语超简单,小学水平而已,记住一些专业词汇就可以了!关于数学,说数学好,写程序就好是没有科学根据的!我就有个同学,数学回回100分,写程序也就是hello world的程度,不过人家现在是数学博士了!惭愧啊!做为的大学生,而且是我们这个专业的大学生,已经完全具备了写程序所需要的数学素养了!所以这个不是我们要担心的,Ready? Go!
第一招,学什么呢?打狗棍法!呵呵
有一个伟人说过:“重复权威是成熟的必经之路”,这是站在巨人的肩膀上的做法,习武之人首先要学的都是各种套路,比方说辟邪剑法,然后才能融会贯通,开宗流派;我们学习写程序也要这样来,这是一个捷径,帮你走得更远得捷径。
看书,看好书!书中所写,是前人数十年经验所写,看十本书,就相当于汲取了前人数十年的功力,那么你的内功也会迅速上升1甲子。:)书当然要看好书,只有好书才营养丰富。要做到读书破万卷,编程如有神;枯燥的看书是很郁闷的,很容易变成化石!现在很多是书都是用源码说明问题的,源码就像是动画、就像是幻灯片,把书中的招式一一演练给
你看。可以说高手的经验大都是源自代码,最后也都化成源码展现在大家面前,把书上的程序一个一个的输入(用键盘,用你的手指)到电脑中,编译运行。自己手工输入这一步不能省略,现在很多书有配套源码,很多同学或者成年人学习的时候都耍小聪明,直接把源码复制过去编译运行,hoho, 这是没有效果的。
自然,我让你输入程序不是让你练习盲打,你在输入的过程就可以品出程序的好坏来了,如果发现自己输入了很多重复代码,那至少这个程序的结构就不好了,穷则变,变则通嘛,你就想改进它啊,这不是很好吗?
当然,程序输得多了,盲打功力也上了一个台阶,键盘敲得快了,薪水也跟着涨上去了!^_^不过,键盘敲得快不代表你的程序就写得好,否则学校只要每个学生发一份盲打联系软件,四年毕业后,个个都是程序高手了!
好了,你输了一个程序进电脑了,锻炼了手部肌肉,也运行出了结果,愉悦了身心,就此满足了?那离高手还远呢,要变成高手,你还要锻炼一下你得脑部肌肉!拿起你得笔,拿起你得纸,用你得大脑,这号称世界上最精密的机器来运行你输入的程序,记录下不同运行时刻变量的值,记录下程序的运行分支,最后发现,这个程序被你解剖到了纸上,我相信也解剖到了你的心里!这是捷径的核心,一定要记住,输入的程序不是说正确运行就完事了,要去阅读一下代码,利用笔和纸做辅助工具,做一下笔记,这就是重复权威,当然,如果你是天才,那请你塞上耳朵,你不在我们讨论的范围之内!
为什么这一步很重要呢?
大家刚开始学习的时候,是不是有种感觉,如果让你写一个程序,你从哪里下手呢?前面?后面?上面?下面?为了解决这个问题,我的程序该如何写呢?抓耳挠腮,好烦啊,于是乎干脆睡觉去,不写了,你看,这种行为是要打PP的!
练武功,总是先重复师父的动作,才能有自己的动作,所以也让我们重重复别人写的程序开始,然后再写自己的程序吧!
遵循这个方法,你们就跟着组织走上了通往罗马的大路了!
接下来,你得走啊,不走怎么到罗马呢? 把你学会的程序设计方法应用到你写的程序中去啊!
某天,你看到这里有个问题,你有了想法,怎么办?上机去,和键盘奋战去!stop, stop!暂停一下,上机之前,不要忘记了你的笔和纸,勇敢地把你的想法写下来,如果写不出来,就不要去机房浪费爸爸妈妈的血汗钱了!
当然,你不能乱写啊,写出来的东西怎么样才叫不是乱写的呢?实践是检验真理的唯一标准!用你的大脑去运行一边啊,不是叫“人程序合一”嘛?,这就是了!学武功就要学绝世武功!虽然号称最精密,实际效果上,人脑还是没有电脑的准确度的,如果你的大脑能马马虎虎地运行出来之后,那么OK,带上规范的格式和耐心,去上机吧!
自然,我们说一天到晚面对字符界面的TC是有些郁闷,大家都习惯了windows,微软的客户体念设计中心可不是吹出来的!windows多好,色彩斑斓的。当你修炼到我这个程度的时候,非要听这京剧才文思泉涌的写程序的时候,当然要用windows下的集成开发环境了。但是对大家来说,不是现在,windows是很危险地,程序员还是回到TC中去吧!TC至少有一个好处,可以锻炼我们使用组合键的习惯,可以锻炼我们使用键盘编程的习惯,回想我们刚刚说的梁某说的话“用鼠标怎么编程呢?”有同学不免要提出疑问了,我是80年代甚至是90年代生人,你还让我面对那么枯燥的输入输出界面?我跟你有代沟!我期
待有更丰富更吸引人的交互手段哦,这个问题问得好,C语言中也有图形啊,完全可以满足大家寓教于乐得心理!让我们来看这个程序,很简单,就是在屏幕上话一个周期得正弦波!(参见ppt......)
运行效果是不是很好?你学数据结构的时候,树啊,图啊,你都可以这样输出啊,很多地方你都可以做的更好呢!
好了,到这里,我们基本解决了在学习C语言程序设计时的一些方法论的东西,关于具体的学习过程,如果你要我在这里给你们讲指针要如何学习?函数要如何学习?那我讲的内容也不会多于任课老师的内容,或者开个专题叫“如何学好指针”,当然,如果你愿意和我探讨一下指针的本质和高级应用的话,课后,课后啊!
现在,我们要谈最后一个问题!我们这个专业的女生的比例较其他的工科专业还是要高一些的,不知道为什么经常到如下的说法:1,我是女生,我不适合写程序啊;2,我的性格比较外向,不适合坐下来安静的写程序呢!
性格外向不适合写程序?你们看我啊,觉得我是性格内向的任吗?程序员也非常需要发散的外向型思维,老比,地球上最富裕的人说,他招程序员更愿意招原来是学物理的人,因为学物理的人的思维可以从极大(宇宙)到极小(原子)。所有,说性格外向不适合写程序的话是懒惰的借口,是要掩盖他不可告人的目的的接口!狂打PP!
C语言教学改革探索 第6篇
关键词:c语言 程序设计能力 教学改革
C语言程序设计课程是白城师范学院计算机科学与技术、计算机应用和软件工程等专业的一门专业基础课,是数据结构、操作系统等专业课程的先导课程,因此占有举足轻重的地位。C语言程序设计课程的教学目标是以C语言为平台,使学生全面了解程序设计的总体思路、程序设计的基本算法、并能使用C语言进行构化程序设计,为今后使用C语言解决实际问题打下良好的基础。由于C语言比较灵活,而且是学生学习的第一门程序设计课程,所以如何让学生在较短的时间内迅速掌握新知识,真正有效培养学生的实际编程能力、分析和解决问题的能力并能够加以应用,是当前迫切需要解决的问题。
1 C语言教学中存在的问题分析
目前,传统的C语言教学普遍存在着以老师理论讲授为主,先介绍语法规则,再举例验证和说明,仅从语言的使用进行教学,忽视了知识的综合运用,缺乏对学生学习兴趣的培养,学生容易感到枯燥乏味,不能充分调动学习的积极性和动力,很多学生上课能够听得懂,自己编程时却无从下手,造成学生由于不能独立完成教师布置的任务,而使学生产生恐惧和厌学心理。C语言教学中还普遍存在重理论,对课程的实践性重视不够的现象。以往学生的实验内容大部分是验证性的,较死板和枯燥,实际知识运用的训练较少,学生兴趣不大,实践项目的设计没有充分考虑能力目标的培养而过多关注程序语言本身。针对C语言教学中存在的问题和现象,作者积极进行教学改革和探索,以求提高学生的编程能力和分析、解决问题的能力。
2 C语言教学改革措施探讨
2.1 C语言理论教学改革措施
由于传统的教学内容和方法枯燥,学生学习没有兴趣,缺乏主动性,如何激发学生的学习热情呢?
兴趣是最好的老师,创造一个学生乐学的环境。首先要建立良好的师生关系,学生喜欢老师,做学生的知心朋友,与学生建立起信任、友爱关系,学生会从心理上愿意学习老师讲授的课程。其次,教师应精心设计教学内容,改变过去单一的“满堂灌”的注入式教学。在课堂中引入大量经典的、趣味性浓的、联系生活实际的案例,在教学过程中,注意设置疑难问题,通过耐心的引导使学生渐入佳境,设置问题让学生自主探讨解体之道,让他们的思想活跃起来,并提高其学习编程的兴趣,从而更深入地展开学习。同时,各章节教学案例的设计兼顾知识结构的连贯性,由前一个实训项目为基础开展下一个实训项目的研究。各项目的实训内容接续紧密,循序渐进,知识结构螺旋式上升,教师主导课堂进度,真正突出学生的主体作用,使学生在轻松活跃的教学氛围中拓展思维,自主探索。这套教学相长的教学模式突出了学生的主体地位,极大的激发了学生的主观能动性,教学氛围非常活跃。在教学过程中不断对学生强化学习算法是为了解决实际问题,并引导学生进行算法分析和设计实践,真正做到学以致用。第三,将多媒体教学与传统教学有机结合,能给传统教学方式注入新的活力。现代化多媒体教学手段是基于传统讲学模式发展而来,多媒体在课堂教学中的应用,使刻板的讲学变得生动形象。并不是所有教学内容都适合采用多媒体,教师可以有选择地进行融合和重组,进行多媒体课程设计时,注意将多媒体与板书两种教学手段相互融合,使教学节奏更加紧凑。通过图文、声像与板书的融合运用,使讲学内容更加形象、具体,以活跃学生的思维,激发其求知欲望,从而形成学习动机。
2.2 C语言实验教学改革措施
实践课程是C语言程序设计教学中的重要组成部分。单向灌输式理论讲学只能丰富学生的理论知识,但无法培养其实践技能。这恰恰与C语言课堂的教学目标背道而驰。实践教学需要辅以有效的上机操作。在C语言实验教学中,普遍存在实验题目枯燥单一,且与实际脱节现象。造成实验教学课程机械,学生没有兴趣,学习主动性差,学生写程序能力不能得到实际提高。所以在实验教学过程中,我们应该多设计一些跟实际生活相关的实验。设置必做与选做题,以满足各个层次学生的需要。上机操作前,教师须明确教学内容和上机任务,课前要求学生编好要调试的程序,为上机做好准备。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。上机内容除了调试程序外,还要要求学生分析程序算法结构。调试成功后,逐步引导学生基于理论知识进一步优化算法,锻炼其实际应用能力,课后要求学生完成实验报告。本课程结束后安排一次综合性实验,旨在要求学生综合利用所学的程序设计知识,编程解决实际问题,提高分析、解决问题的能力。
2.3 C语言课程组全体教师共同设计和开发了C语言网络课程平台,该平台为学生提供了课程简介、课程教案、教学大纲、考试大纲、实验教学大纲、教学日历、习题、开放实验项目、在线测试、在线交流等网络教学资源,为教师和学生开辟了一个开放式的辅助教学空间,能引导学生自主性学习,为开展教学和课程辅导提供了有利条件,弥补了课堂和实验教学的不足,大大活跃和丰富了教学活动。实践证明可以进一步调动学生的学习积极性,培养学生的自主学习能力和问题求解能力。
2.4 以ACM竞赛为依托,开发在线评测系统(简称OJ),培养学生实际动手能力与团结协作精神。ACM国际大学生程序设计竞赛已经成为最具影响力的大学生计算机竞赛。旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。白城师范学院计算机科学学院学生每年都组建几支队伍参加省大学生程序设计竞赛的选拔。为此,我系教师共同研制开发了在线评测系统,学生可以在在线评测系统上挑选各种题目,挑战自我,提高自我,学习各种数据结构和算法;同时还可以模拟比赛的环境,培养学生团结合作能力,真正实现“以任务为驱动,教师为主导,学生为主体,强调自主学习,客观评价,培养协作能力,创新能力和探究能力”的实验教学新平台。
3 结束语
程序设计能力是理论和实践相结合的具体表现,作者根据多年的教学经验,对C语言理论和实验教学的改革措施进行了深入探讨,并通过开发网络课程平台和ACM在线评测系统,进一步提高了学生学习的积极性和主动性,增强了学生的实际编程和问题求解能力,真正实现了C语言程序设计课程的教学目标。
参考文献:
[1]李豫颖.C语言教学改革浅见[J].贵州教育学院学报,2008(09).
[2]张敬.关于C语言教学改革的若干思考[J].电脑知识与技术,2012(09).
[3]李玺,李亭升.大学C语言教学改革探索[J].中小企业管理与科技(下旬刊),2012(03).
C语言教学初探 第7篇
为了改善C语言的教学状况,使学生能真正掌握这门课程的知识,有必要依据学生的层次及所选的专业对《C语言程序设计》的教学做出一定的改革和探索。
1 从基础做起,引导学生接触算法思想
C语言程序不是一门纯理论课程,所以应当注意培养学生分析问题、构造算法、编程和调试程序的能力,这些都是目前学生比较欠缺的。就拿我上课的班级来说,好些学生连题目都不能完全理解,根本抓不住题目的要求,更谈不上让他们去独立编写程序。这样的情况下如果我们只是一味的讲解,是根本不起什么作用的,有时你辛辛苦苦讲解了半天,换个题目,换个问法,学生又不会了。就算有些学生懂了,也是“迷迷糊糊”的。
针对这样的情况,我们切不可一开始就忙着去教授什么理论知识、讲解什么例题,这样只能让学生一头雾水。我们可以通过生活中生动的例子,培养学生的情感能力,让生活和程序设计结合起来,例如在讲解IF选择结构语句时,我们可以先让学生理解生活中一些判断的例子 :1、如果你在家,我去拜访你 ;(需要判断你是否在家)2、如果遇到红灯,要停车等待(需要判断是否为红灯)等等,这些例子都是学生生活中经常遇到的例子,不难理解,学生很快能做出判断。这时候老师可以引入本节课要讲解的语法知识IF(表达式) 语句1 else语句2。其中表达式的判断就类似于生活中需要做出的判断一样。我们在教学过程中引导学生去理解算法,因为算法是程序设计的灵魂,而算法可以结合生活中的例子,这样算法也就不枯燥,加入了算法思想,程序也不会再没有灵魂。在教学过程中,进行知识的迁移,顺带复习讲授用到的语言基础知识,比如什么是表达式,表达式的构成等等。
2 重点放在解题思路上,结合算法思想,解决编程问题
算法是灵魂,不掌握算法是无米之炊,语言是工具,不掌握语言,编程就成为空中楼阁,二者密不可分,作为中职、高职生来讲,我们不可能专门研究算法与逻辑的理论,毕竟学生还达不到这个层次,然而,算法是不是一点不讲,直接过渡到如何解题?通过对中职和高职两个班级的实验对比,发现,没有讲算法的高职班级和讲了算法的中职班级,在解决同一条题目的编程上,有很大的区别,讲解过算法思想的中职班级虽然能力基础不如高职班级,但是编写的程序,结构性,逻辑性要好很多,而没讲解过算法的班级,好多学生连简单的问题都编写不出来,或者编写出来的程序错误百出,无法运行。
由此可见,在教学过程中,介绍典型算法,引导学生思考构造算法是学习C语言的一个关键。当然算法也要从最简单的入手,切忌眼高手低,尤其对于初学C语言的中职,高职学生来说。
3 转变学习方式,采用“探究式”教学方式提高学生学习兴趣
转变学习方式,实际上是改变一种习惯,即由过去的传授式学习变为自主、合作、探究式学习。为了达到这个目的,就要求教师在讲授知识的时候根据教学内容和学生的实际情况采用多种教学方式进行教学,将教师的“主体”性逐渐削弱,向“主导”过渡,创设和谐的学习氛围。
“探究式”教学,是以探究为主的教学方法。具体说它是指教学过程是在教师的启发诱导下,以学生独立自主学习和合作讨论为前提,以现行教材为基本探究内容,以学生周围世界和生活实际为参照对象,为学生提供充分自由表达、质疑、探究、讨论问题的机会,让学生通过个人、小组、集体等多种解难释疑尝试活动,将自己所学知识应用于解决实际问题的一种教学形式。比如在讲解算法时,我采用了“小组探究式”教学。将学生分成若干小组,每一个小组作为一个独立的任务单位,然后给出一系列由浅入深的题目,让每一小组采取讨论的方式从最简单题目入手用N-S结构流程图将算法表示出来。通过这种方式,学生在两个小时的学习中很快掌握了算法的表示,学习效率得到了很大的提高。通过这种方式,学生在学习过程中不但体验到获得知识的乐趣,而且使学生在学习过程中加强了集体参与的能力及与他人沟通合作的能力。
4 注重上机实践,增强学生的动手能力
C语言程序设计本身是一门实践性很强的课程,上机实践也是整个教学的重要组成部分,因此必须抓好实验教学环节。对于中职学生来讲,他们大多还是比较喜欢动手操作的,但由于动手过程中不得要领,动手前没有很好的准备,导致上机实践的效果并不是很好,久而久之,上机实践课变成学生抄程序调试课。许多学生只是把书上的或者老师讲解的例题调试一下就完事了,根本没有动脑筋去自己编写。更不要说自己去解决问题了。
针对这一情况,首先教师在上机实验开始前要让学生对实验作充分的准备,预习实验内容,明白实验原理和实验目的。实验前应该将实验所涉及的知识点的重点和难点告知学生。在实验过程中针对不同的学生有侧重点的加以指导,在指导的过程中要注意锻炼学生独立思考问题的能力,启发学生的想象力。实验完毕后,每个学生都应对实验用到的知识点进行回顾,总结实验过程中遇到的问题和问题的解决方法。
5合理安排考试考核,注重学生知识的全方位掌握
C语言课程的考核应分为理论考试和上机考试,重点考核学生的程序阅读能力和编写能力。闭卷考试主要考查学生的基本知识、阅读程序和编程能力。
上机考试主要让学生在规定的时间内完成给定的上机题目,重点测试考生调试程序、程序改错、编写程序等综合能力,偏重实际应用性强的题型,重在考核典型算法的应用。平时成绩也要在总成绩中占一定的比例,这样有利于学生对平时作业的重视。
6结束语
C语言教学方法探讨 第8篇
《C语言》是一种目前比较流行的一门高级语言,C语言有以下一些主要特点[1]:1)语言简洁,紧凑,使用方便,灵活,C语言的运算符包含的范围很广泛,表达式类型多样,C语言提供了丰富的数据类型,包括整型,浮点型,字符型,数组类型,指针类型,C语言具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化。2)C语言语法限制不太严格,程序设计自由度大,C语言允许程序编写者有较大的自由度,放宽了语法检查。C语言中具有大量的数据类型,并且可以使用指针来进行程序设计。通过学习本门课程,学生应该能够熟练的编写和调试C语言程序,熟悉一些算法的使用,掌握一些程序设计的思路和方法,能够使用C程序来解决一些问题。
C语言主要包括四个方面的内容,第一个是算法,也就是为了解决一个问题而采取的方法和步骤。第二个方面是程序设计的三种方法,顺序程序设计,选择结构的程序设计,循环结构的程序设计,顺序结构还包括数据类型和数据的输入输出。选择结构适用于需要进行判断和选择的情况,比如从北京出发上高速,就有2个选择,一个选择是去上海方向,一个选择是去沈阳方向,可以先进行判断再来进行选择。循环结构用于需要重复处理的问题,比如求从1到100这100个数的和,循环结构有多种形式,比如while ,do while ,for等,这些循环结构在处理同一问题时候,一般情况下它们可以互相代替。第三个是数组和函数,使用数组和函数可以把一些比较复杂的问题简单化,数组中的每一个元素都属于同一个数据类型,不能把不同类型的数据放在同一个数组中。每一个函数用来实现一个特定的功能,函数的名字应反映其代表的功能。第四个部分是指针,地址形象化地称为指针,通过它能找到以它为地址的内存单元[4]。
2 C语言教学方法
对于初学程序设计的学生来说,存在着不少困惑,可以从如下几个方面去提高C程序设计的教学效果:
2.1 开阔眼界,从基础学起
对于大多数学生来说,中学阶段都没有接触过程序设计,在最初学习C语言的过程中,很多概念,语法,数据类型让学生迷惑,前面的基础语法,数据类型没有搞懂,后面的程序结构设计等就更加不容易学好。有些学生在学习C语言的时候有好高骛远的情绪,认为现在应用的比较多的是面向对象的程序设计,对C语言的认识不够深刻,觉得C语言学习起来难度大,没有信心去学习。因此在教学的第一步应该让学生对学习这门语言树立信心,由于C语言对后续的课程起到一个打基础的作用,因此学好这门课程是很有必要的,学好了C语言,后续的很多专业课程学起来会轻松很多。
2.2 在教学中,应该注意理论和实践相结合
在教学过程中要注意教学内容和教学方法的使用,不能只是枯燥的讲授C语言的语法,而应该把教学内容进行有序的组织起来,否则学生会因为讲授的内容比较沉闷而提不起兴趣,如何激发学生的兴趣成了教学过程中的一个大问题。在课件的准备上也要下一些功夫,在课本的基础上可以加入一些自己的想法和见解,使学生更能接受。结合现在社会的需求,可以讲解现在企业,公司的需求和待遇,现在计算机程序人才的需求量还是比较大,而且薪水也比较客观,一方面让学生在课堂上就能了解社会工作的需求,更加坚定学生学习的信心,当学生想到自己通过学习程序设计语言,可以找到高薪的工作,有了学习的动力。
2.3 通过解决实际问题来组织教学
C语言是一门实验性很强的课程,教材上的例题以及课后的习题都需要通过实验来实现,设计合理的实验对整个教学有很重要的意义。刚刚接触程序设计的学生往往动手能力不强,对于程序设计很陌生。为了培养学生的动手能力和创新能力,我们采取循序渐进的方法,把一个复杂的程序分成几个小的程序来讲解,先做基本的实验,然后逐步提高,这样符合认知的习惯,通过一段时间的实验和学习,学生的动手能力和理解能力都会有不同程度的提高。采用启发式的教学方法,比如在讲解循环结构时,[2]举例s=1+2+3+4...+100,当学生了解程序设计方法后,再提出一个例题[3]s=1-1/2+1/3-1/4+...1/100,从而引导学生逐层深入的学习循环结构的程序设计思想。在程序设计中还可以通过一些趣味性的程序来调动学生的学习兴趣,比如猴子吃桃问题等,让学生通过编写这些程序来提高实际解决问题的能力,通过课堂上的讲解,课后的作业能很大程度的提高学生的程序能力。学生做实验时,如果通过程序设计能得出最后正确的结果,学生也会有一定的成就感。
2.4 采用多种教学方法来进行教学
要使教学达到比较好的效果,我们采用了灵活多变的教学方法,充分调动学生的学习积极性,把学生吸收到程序设计中来,我们通过下面两个方面来进行:
1)在做有些程序的时候,不一次性的把程序写出来,只写出程序的一部分,其余的部分让学生自己去补充,从而引导学生去思考这个程序,或者故意把程序的一部分内容写错,当运行出一个结果的时候,让学生去检查修改这个程序,对于在课堂上主动发言或者修改程序的学生给予一定的分数奖励,比如可以平时成绩加3分,学生通过上课修改程序可以提高自己的平时成绩。
2)针对上课时候有些学生开小差的问题,可以布置一些习题让学生去解答,如果学生能设计出正确的思路或者算法,给予学生每次2 分的奖励,让学生对后面的学习充满信心,这样学生的创造性也能激发出来,有些学生的思路是很开阔的,只要采用正确的教育方法,就能产生很好的教学效果。在实际教学中,我们发现有些学生能解答出很复杂的程序,通过这样的教学方法可以丰富教学手段[5]。
2.5 在教学实验过程中培养学生的程序能力
C语言这门课程比较强调实验,只有把C语言的实验做熟练了,才能更好的掌握c程序,理论和实践要结合起来学习,在考试的这个环节,也可以安排上机操作的环节,上机实验成绩占20%,在上机的过程中,每个学生做几道题目,让学生写出相应的代码,然后调试成功能运行才行。采用这种上机考核的方式,可以提高学生上机写代码的积极性,当程序出现错误的时候,能自己把错误找出来,并调试正确是程序设计的一种基本能力[6]。通过上机考试可以看出学生的程序能力,与理论考试想结合,能更好的了解学生的程序设计能力。如果要培养应用能力强,素质较高的学生,可以在平时的上机学习时,增加一些难度稍大的题目,让学生有更多思考的机会,最后通过自己独立编写程序来解答问题。
3结束语
管窥中职C语言教学方法 第9篇
一、C语言的教学目的和特点
C语言是中职学生接触的第一门程序设计课程, 该课程的教学目的不但是要学生掌握该门课程的本身知识, 更要培养学生在学习程序设计等内容的逻辑思维、程序设计类知识尤其自身的语境和逻辑。C语言是第一门带领学生进入程序设计逻辑的课程, 所以该门课程的教学不但要让学生了解C语言本身的语言知识, 更应该引导学生学习程序设计的思维方法。C语言这门课程的特点是: (1) 使用广泛, 是适合学生学习的简易程序编译方法。 (2) 良好的跨平台性, 所以C语言具有程序设计类知识的通用逻辑, 学生学会C语言之后, 可以通过培养的逻辑性更好地学习其他编程类语言。
二、中职C语言教学方法初探
C语言对于培养学生日后的动手能力, 是非常重要的一门课程, 其开展的好坏关系到学生未来的学习成效。所以笔者认为C语言教学方法可以从以下几个方面入手:
(一) 教师认真备课, 尤其对第一堂课的内容进行精心设计, 引起学生对C语言这门课程的重视和兴趣。心理学有首因效应, 也就是说对一件事情的第一印象能够影响人对这件事情的判断, C语言这门课程逻辑性强, 难度高, 加上学生的学习能力参差不齐, 所以教师的第一堂课尤为重要。
(二) 通过C语言培养学生关于程序设计类知识的逻辑的了解和熟悉。程序设计是计算机的语言, 有计算机本身的语法、逻辑, C语言作为程序设计类的入门课程, 教师培养学生进入语言程序的逻辑观对学生以后的学习很重要。只有学生熟练地掌握这种程序语言的逻辑性, 才能驾驭这门语言为以后的学科服务。
(三) 重视C语言教学的实践教学, 培养学生的兴趣。C语言这门课程是具有一些难度的, 对于刚入门的学生而言, 如果在计算机操作中通过使用C语言的程序段做出一些事情那么将获得成就感, 从而觉得该门课程具有挑战性, 产生学习的兴趣。教师为了培养学生的兴趣, 应该努力在教学中加入实践教学内容, 通过提高学生的动手能力, 来培养学生对C语言这门课程的兴趣。
(四) 利用多媒体教学技术辅助C语言教学。笔者大学时期学习C语言这门课程, 很多内容都是教师在黑板上书写, 之后去计算机实验室进行实践, 这种教学方式耽误教学时间, 程序段过多, 容易出现错误。如今互联网技术发展迅速, 可以在课堂上引入多媒体教学设备, 这样能够有效地利用课堂教学时间, 也能够减少错误, 还能够在计算机中直接演示C语言程序段编写的结果, 一举多得。
(五) 培养学生合作学习和解决问题的能力, 鼓励学生把学习中自己独立解决不了的问题, 大家一起来讨论, 教师再进行有意识的引导, 加以点拨, 既节约时间, 又让学生巩固知识。自己在编程过程中遇到不能解决的问题不要死钻牛角尖, 可以参考一下已做出的同学的, 也可以几个同学共同探讨协同解决。
中职学校培养的学生动手能力较强, 而C语言这门课程是程序设计类课程的基础课, 直接影响到学生的后续课程学习。笔者从C语言课程的教学目的和特点出发, 让学生从C语言入手更好地掌握该门语言的逻辑性。一是培养学生的兴趣和重视, 二是了解和掌握程序设计语言的逻辑性, 三是通过实践教学培养学生的学习兴趣, 四是利用多媒体设备来达到事半功倍的教学效果, 五是培养学生合作学习和解决问题的能力。
参考文献
高职院校C语言教学方法探析 第10篇
一、教学过程注重学习习惯的培养, 激发学习积极性
高职院校的生源大多来自于三职生, 以及高考成绩不高的学生, 其中很多是文科生。这些学生大多学习习惯较差, 没有很好的学习能力。但随着经济发展和科技进步, 社会却对人才培养提出了更高要求。所以在教学中要求进一步加强实践教学, 加强实践能力及创新能力的培养。
(一) 注重能力培养, 强化实践教学
C语言程序设计课程, 以熟练性、实用性为基本要求, 结合学生不同专业, 加大对分析问题和解决问题能力的培养。通过一定数量的练习, 掌握编程技巧, 理解和掌握程序设计的思想和方法;采用项目训练的授课方式, 帮助学生掌握运用语言解决实际问题的思想和方法;教学以培养学生自主学习能力为主, 使学生在学习能力上得到充分的培养, 培养综合运用能力、问题分析和编程能力, 还能够培养学生的探索创新的能力。
职业院校学生因为知识基础薄弱, 对理论课感觉吃力, 但相对动手能力较强, 所以在教学过程中应加大上机实践的比重。上机实践是C语言程序设计语言学习中的重要环节, 编写的程序上机调试, 通过改正出现的错误, 可逐步提高对C语言的语法的理解。实训以前, 应熟悉所用版本的开发环境, 在运行过程中理解C程序的编辑、编译、连接和运行的过程;课程教学中, 上机穿插阶段性的实训项目, 将阶段知识进行小结性的贯穿和提高, 将相关的知识贯穿到程序编写中, 进而巩固所学并将零散的知识点做一整合;在学期结束前, 安排为期一周的集中实训课, 内容是涵盖基本知识点的几道编程题目, 通过实训课的锻炼, 学生普遍反映编程能力有了较大提高, 通过自己努力体会到了编程的成就感, 收到不错的成效。
(二) 注重方法创新, 激发学习兴趣
教学过程中, 职业院校学生由于没有接触过程序设计, 普遍认为c程序设计课程抽象、不易理解。为了使学生能尽快掌握, 教师要采取适当的教学方式, 从而激发学生的学习兴趣。
教学初期, 应多举简单的实例, 以及结合课程进度布置简单的编程作业, 让学生在上机实践中进行训练。通过完成简单的编程让学生产生成就感和学习的信心。激发学生的兴趣, 要让学生懂得C语言编程在生活中的实用性。可以利用如学生成绩排序、比赛记分等生活中遇到的问题, 或者学习其他课程时, 如数学中的一些例子等等, 来达到激发学生的学习兴趣。
例如数组, 指针等重要的知识点, 课件制作尽量生动, 以提高学生学习兴趣和学习主动性。例如讲解数组的冒泡排序法时, 可以请五名同学, 给每位同学手中拿一个数据, 模拟气泡排序的过程, 通过现场模拟以及学生的亲自参与, 使课堂教学充满乐趣, 并且最大程度地掌握冒泡排序的过程。再比如说:在讲解两数交换时, 可以请两位学生现场演示, 交换时第一位学生必须先离开自己的位置站在其他地方, 这个位置就是两数交换是增加的另一个变量——“空杯变量”, 另一位学生才能站到第一位学生以前的位置, 然后第一位学生回到后一个学生的位置, 从而实现了交换操作。在教学过程引入的现场模拟, 使学生更易理解这些抽象内容, 进而提高触类旁通的能力, 慢慢培养编程兴趣。
二、合理安排教学内容, 加强对学生程序设计思维的训练
C语言程序设计课程是涵盖多学科知识的课程, 基本概念较多, 信息含量较大, 对于从未受过设计训练的职业院校学生来说, 可能会感到无从下手。因此, 职业院校的教学人员应该有意识加强编程思维的训练, 通过一些常用算法、典型算法的讲授, 如累加、记数、连乘、求最大 (小) 值、两数交换、排序、迭代、分类等算法, 为以后编写程序、软件设计奠定基础, 同时对典型算法熟练掌握, 也可增加学生学习信心并提高学习兴趣, 培养学生程序设计的思维能力。
C语言程序设计课程不仅是知识传授, 还要通过对学生进行逻辑思维能力的培养, 从而让学生掌握程序设计的基本方法。在实际教学过程中, 不难发现有学生平时学习认真, 对语法、语句等知识也很熟悉, 但碰到稍有难度的编程则无从下手。教师在教学中应加强学生程序设计思维的训练, 帮助学生顺利实现思维方式的转变, 将语法知识分解到生动实用的程序实例中。在教学中引导学生多读程序, 在读的过程中领悟、提高。对于程序设计, 编码, 调试, 运行这几个过程, 可以通过设计实例来体现, 以培养编程中工程思想。教学中以提出问题、分析问题、解决问题、拓展问题、再解决问题, 然后对问题进行评价和优化设计的螺旋式上升的方法, 可以收到不错的教学效果。
三、改进上机实践形式及时效性, 培养学生程序设计能力
(一) 实现实践教学形式的多样化
上机操作, 教师通常要求学生按照课本的例子进行验证, 这样的验证不但无法增加学生的成就感和学习兴趣, 反而会使学生感到无聊, 对程序设计产生厌倦。在C语言程序设计上机实践教学中, 除上述传统的课堂验证实验外, 应该多开展课程设计、典型程序分析与设计、项目实训等实践环节, 有利于培养学生创新能力和动手能力。
(二) 增加上机实践时效性
在完成课内的基本实验外, 还可以由教学人员设计一些具有综合性、实用性、创新性的上机实践题目。这些上机实践题目可以不向学生具体提出要求, 只提出需实现的功能, 在学生上机完成的过程中, 教师可以提供必要的辅导。上机实践可以提高学生创新思维, 加强学生实践训练, 拓宽学生知识面, 提高学生创新设计能力与动手实践能力, 提高学习兴趣与教学质量, 适应社会对人才的需求。
摘要:就C语言程序设计课程的特点以及高职院校学生的具体情况, 探析教学方法的改进和实践:教学过程注重学习习惯的培养, 激发学习积极性;合理安排教学内容, 加强对学生程序设计思维的训练;改进上机实践形式及时效性, 培养学生程序设计能力。
C语言程序设计教学方法探究 第11篇
摘要:在应用型本科C语言程序设计教学实践中,对课程合理定位,改进课堂教学方法,以案例引导为教学核心,激发学生的学习积极性。
关键词: 教学方法 案例引导 程序设计
【中图分类号】TP312.1-4
应用型本科人才培养是遵循本科人才培养教育规律,突出实践应用的一种人才教育培养模式。“C语言程序设计”是我国应用型本科院校中计算机、电子、通讯等专业学生在跨入大学校门后接触的第一门专业基础课程,提高这门课程的教学质量,对于增加学生对计算机语言的浓厚兴趣以及培养大学生的计算机应用及开发能力都至关重要。
一、现状及其教学中存在的问题
1、由于学生刚接触计算机语言,同时C语言作为结构化程序设计语言,它具有较强的抽象性, 常规教学内容重在讲解C语言的基本语法,所选编程实例大多用于语法规则的验证和说明。因此,对初学者来说比较难于接受,也容易出现一些问题。
2、传统的实验教学内容简单、枯燥,学生多按实验教材和教师指导的程序一步一步完成,课下很少相互间进行交流,学生虽然有一定收获但是也束缚了手脚。从而导致一部分学生在开始的前几次上机过程还饶有兴趣后又感觉枯燥无比,逐渐对程序设计语言的学习产生较大误区,觉得C语言没有多大用处,从而放弃认真学习C语言的机会。
3、在教学方法上,由于传统的“填鸭式”教学方法只是简单地按照课本顺序循序渐进地教学,每一节课都要记住许多语法细节而实践环节少,学生不知综合起来解决实际问题,始终处在被动的学习状态中,从而吃不透、用不活所学语言知识,在开发综合应用程序时,软件设计能力较差。
二、C语言教学方法探究
1、学生学习兴趣的提高
90后大学生思维活跃,个性十足,他们对自己的学习活动、学习内容与其未来的就业和发展的影响都是十分关注的,同时,他们对于课程知识的适用性了解很少。如果课堂教学能从教育心理学出发,通过有意义的学习内容来激发学生的这种学习动机,让学生感觉到计算机编程很奇妙,很有趣,并愿意在编写出来后通过不断修改完善,相互分享,从而增加他们完成一个程序后的成就感,进一步激起他们深入学习C语言程序设计课程的欲望。
2、改进教学方法,把编程解题思路和程序测试等放在首位
在《C语言程序设计》的教学过程中,注重由整体到具体,由设计算法到书写程序并进行调试的整个过程,培养学生对语言的兴趣及正确的思维模式。课堂教学组织过程重在从一个较完整的程序例子开始,该例子包含了该语言中的主要语句,目的是使学生先对程序有个初步的印象,再简单介绍该例子中用到的语句,让学生对该语言的学习有一个大概的了解。整个教学过程中应该把解题思路、方法和步骤当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。
在《C语言程序设计》的实践教学中,学生的另一个拦路虎就是程序调试中遇到的种种问题。学生在上机输入程序后,编译时还会出现各种问题,加之学生的英语基础较差,看不懂message窗口中的英文提示信息,导致大多数学生面对机器不知所措,而这种情形又降低了他们学好这门课的信心以及学习这门课的主动性。因此,教师要做的就是找到一种好的方法使学生少出现这种问题。从而提高学生解决问题的能力,增加学习这门课程的信心。
3、将算法教学融入到语言教学中
在教学过程中,始终以程序设计为主线,每道题的讲解者从构造算法出发,着重于讲解算法的逻辑,以训练学生的实际编程序能力为目标。C语言学习过程中,学生感到困难的一般不是在于语法,而是如何根据算法编写程序问题。一题多解,注重算法是程序设计的灵魂,是教学重点,也是教学难点,而语言只是形式。没有正确的算法,计算机将解决不了任何问题。因此在算法教学中可以通过实例进行,从最简单的例子入手使学生在解决具体问题的过程中学习一些基本逻辑结构和语句。同时让学生知道根据同一个问题可以提出不同的从易于理解到精简的算法,从而比较这些算法之间的优劣。了解算法的优化。通过对算法的优化练习,可以在无形中提高学生写算法的水平。使得学生真正了解到算法是程序的灵魂。
4、以实例为引导,讲解语法规则
《C语言程序设计》中很多知识比较抽象、枯燥,不容易被学生接受和理解,教师在课堂教学中应该巧用生活中的实例化繁为简,将深奥的理论讲得通俗易懂。比如,在介绍程序控制结构时,我们可以从简单的猜数游戏入手,从而对分支结构做重点阐述,再进一步增加难度过渡到条件的嵌套和循环的学习中。所以教学中案例的选择非常关键,以这几点做为案例选择的基准:1)选择的案例能够包括已学过的知识和即将要学的知识;2)案例的选择要与学生的兴趣相关,能激励学生收集有关资料,激发学习自觉性,引发学生的相互讨论;3)案例的内容有助于增加学生的学习编程语言的信心。
5、循序渐进的课堂实施
在课堂教学中以案例分析为第一教学阶段,利用与生活相关的实例激发学生对这个功能程序的兴趣和求知欲望,引发学生自我讨论,分析结果和问题,最后归纳总结;以自主训练为第二教学阶段,引导学生能过由简单到复杂的训练,达到快速、准确掌握技能的目的;以总结评价为第三教学阶段,通过引导学生的交流体会,进一步归纳尚待解答的问题或提出新的问题,引发全面思考并建立自主学习的能力。
三、结束语
随着社会计算机领域的发展,计算机相关科目的教学目标也随之有了深远的影响与改变。对于学生来说,掌握好C语言的语法并不完全是这门课程的学习目标,而让学生学会用C语言来解决各种实际问题,并让学生对学习编程这条道路上体会到更多学习乐趣,尝试成功的喜悦才是这门课程的基本学习目标,从而让《C语言程序设计》真正成为学生喜爱的一门课。
参考文献:
[1]谢竞博.《C语言程序设计教学中的问题及改革建议》[J].重庆邮电大学学报:社会科学版,2008(2):137-140.
[2] 胡艳华.《独立学院非计算机专业C语言程序设计教改简论》[J].计算机教育,2011(2):107-109.
[3] 第惠多斯.《德国教师培养指南》[M].袁一安,译.北京:人民教育出版社2001.
C语言课程的教学初探 第12篇
C语言程序设计是过程性程序设计语言,它的发展贯穿于计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,同时,它又是一门十分优秀而且重要的计算机语言,已成为当今世界上应用最广泛的计算机语言。目前最著名、最有影响、应用最广泛的Windows、Linux和UNIX三个操作系统都是用C语言编写的。从狭义而言几乎所有的系统软件和应用软件都能用C语言编写。因此很多高校计算机专业和大部分的理工类专业都开设了。大学生学会运用C语言编写程序解决实际问题,既有利于提高学生的思维能力,也有利于相关课程的学习。然而尽管教师和学生都付出了努力,教学效果却总是不太理想。
2 存在的问题
笔者通过多年的教学研究,发现了一些问题:1)学生不知道为什么要学习C语言程序设计,很多教师也没有让学生清楚的知道学习C语言的目的;2)学生对学习C的信心不足,有一部分学生未开始学习就已放弃;3)由于教师要在有限课时内完成教学任务,课堂教学基本上仍然是教师满堂灌,师生互动性差,学生学习的主动性未能调动起来;4)现有实验大多注重语句、语法、流程、结构等概念性的基础知识,没有把编程解题思路、算法和程序测试调试等运用知识放在首位,对学生分析问题和解决问题的能力训练不够。
3 方法和对策
3.1 明确目的,激发兴趣
首先,教师应该让学生明确C语言课程在计算机专业课程中的地位,让学生清楚C语言的作用,从而激发学生的学习兴趣。程序设计语言的学习对学生来说很陌生,从未接触过,所以他们会认为计算机语言是很难于理解,很难学的,所以有许多人对计算机语言的学习缺乏信心。在这个时候,任课教师应该及时告诉大家,许多软件开发公司都采用C语言来编写应用软件和系统软件,比如现在的华为公司,对于就业形势不容乐观的现在,掌握一门语言可以增加将来就业时的筹码。告诉他们之前学院毕业的师兄师姐都哪些现在在软件公司工作,编程非常厉害,从而激发学生的学习积极性。教师可以在上课过程中讲述当今IT行业的分类及发展的历程、其中出现的重要人物,比如可以讲讲微软公司的创始人比尔.盖茨的创业史。教师在讲授每一节课以前,必须清楚、明白这堂课的目的要求,通过形象生动地操作或有目的的激趣提问,诱发学生的求知欲;也可根据内容讲明教材在程序设计当中的作用和意义,以及它在知识体系中的地位,引起学生对知识的重视,并形成学习的动机。
3.2 因势利导增强信心
在开C语言课程之前,很多同学都没有接触过编程,甚至许多来自农村的同学都没有接触过计算机。为了消除程序语言对学生的神秘性,教师可在课堂上当场编写一些小程序,并当场上机调试和运行。在接下来的上机操作课中,让学生在自己的指导下完成了程序的输入、调试过程,并运行得到了程序中设定的操作,使他们产生兴奋感。此时趁势告诉他们说,像这样的程序,只要大家认真学习,以后你们自己也能设计出来。这样,学生消除了对程序设计的神秘感,产生了兴趣,并增强了学好程序设计的信心。
3.3 灵活运用教法激发学习潜能
为培养学生逻辑思维和创新能力,在教学过程中,通过各种教学方式和手段激发学生的学习欲望,使其积极投入到学习活动中,积极思维,发现问题,提出问题,并逐步解决问题。例如,在讲解程序设计举例时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序,编译、链接、运行到测试与单步调试的整个过程,特别是调试中增加输出,变难为易,环环紧扣。而在这一过程中,较关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。为培养学生综合应用知识的能力,通过对完整的项目的系统分析,培养学生良好的编程习惯,善于获取他人经验的能力以及掌握综合运用所学知识的能力,从而真正提高编程水平。充分合理地利用多媒体课件,可以达到事半功倍的效果:课件上要合理选择教学内容,制作要突出中心,避免从书本上摘抄大量文字或图片。课件中可适当加入Flash动画等,吸引学生注意力,让学生对课件上的内容产生兴趣,有利于知识的掌握。
3.4 合理组织教学,突出重难点
由于C语言牵涉到的概念比较复杂,规则繁多,而学习C语言的课时十分有限,因此教师在教学过程中应该结合学生学习实际和以往的教学经验,对课程内容进行科学分析,确立课程学习上的重点、难点。对于重点内容,对于简单的问题或C语言语法规则规定的内容,教师则可以采用引导式的教学方法,通过特定的题目和练习,使学生掌握这些知识点。在教学过程中,应多引用一些针对性较强的小程序引导学生理解语法规则和编程习惯。比如教材中一道例题:请将小写字母转换成大写字母。教师可以先引导学生理解ASCII码在C语言中的作用,通过查ASCII表可知a’的ASCII码为97,而A’为65,b’为98,B’为66。从表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。C语言允许字符数据与整数直接进行算术运算,即A’+32会得到整数97,a’-32会得到整数65,知道了大写和小写字母的ASCII值相差32,那么这道题目的编程思想也就迎刃而解了。对于难点和重点,像循环语句、函数调用、指针等内容,教师应突出其对整个课程体系内容掌握的重要性,以重点内容为突破口,带动相关知识点的掌握。运用现代教学手段,借助于演示、实例分析等功能,简化教学过程,突出重点、突破难点,达到化繁为简、化难为易、化抽象为具体的目的。避免了学生因无法深入知难而退、甚至丧失学习信心的现象,从而唤起学生学习的兴趣,提高学生创新激情。在开始学习指针的概念时,为了更好地理解“间接存取”的概念,就借用了这样的比喻:将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这就是“间接存取”。借助这种形象化的比喻,使学生很快就能理解指针的概念。比如在C语言中的自增自减运算符,其作用是使变量的值加1或减1,有++i,--i,i++,i--,对于前两者,自加自减符号在变量之前,可以理解为前自加前自减,变量i在当前就要变化(即自加一次或自减一次);对于后两者,可以理解为后自加后自减,变量i在下一次出现时变化(即自加一次或自减一次),那么在分析时把这4种情况放在一起进行讲解,并引用几个例题加以说明,学生就能很好地掌握这个概念。
3.5 强调实践环节,加强创新能力培养
C语言程序设计是一门实践性很强的课程,通过上机操作才能使学生真正理解、消化课堂上的理论知识,因此要以应用为目的,注重培养应用能力,大力加强实践环节,激励学生创新意识。教学中坚持指导与辅导、投影演示与上机操作相结合。具体措施如下:
1)要合理的安排上机实验课时与理论教学课时的比例(至少为1:1);使教学实验与理论教学协调同步,特别是时间、内容上要衔接好,讲完课要及时上机并保证上机效果。增加实验教学的学时数,是提高C语言教学效果的一个前提保障,没有充足的学时数,其他的改革措施无从谈起。
2)要明确学生上机目的和步骤,这要求教师课前写好含有实例和习题实习指导书,指导书的内容要尽量紧扣教材,学生实习结束要上交实习报告由教师批阅。实验教学的目的:一是让学生掌握基本的程序设计算法,能够编程实现我们课后练习的一些题目,当然这是对学生的最基本要求,也是最低要求;二是让学生真正掌握C语言这样的一个软件开发的工具,为学生以后走向工作岗位,奠定良好的基础。因为对于计算机专业的学生,通过课程设计或者综合性实验能够用C语言开发一个小的软件,对于他们来讲,会有一种成就感,能够给他们学习的信心和兴趣,或许一名优秀的软件设计人员会因此而产生。
3)实验分组,老师跟踪答疑。学生单独完成实验易导致基础偏差的学生动作慢,不容易按时完成任务,跟不上进度,而基础较好的学生实验时间过剩。对此,教师可以根据学生实际情况,按组划分,每组安排一个基础好的学生负责。通过这种协作学习的方式,学生为了达到小组学习目标,个体之间可以采用讨论的形式对问题进行充分论证,以期获得达到学习目标的最佳途径。教师应随时解答学生的问题,及时了解学生上机操作的情况。
4)举一反三,加强综合性实践,开展第二课堂活动。C语言教材中的课后习题非常丰富,许多题目的针对性也很强,教师应该对其进行归纳、整理和分类。针对同一类问题时不要逐题练习,应该在重点练习典型题目的基础上,拓展学生思路,引导学生归纳和总结求解一类间题的基本算法,达到举一反三的效果。综合性练习可以巩固所学知识。课程结束后,布置一项软件开发课题,该课题力求既结合实际,又能涵盖课程教学的要求,由学生自学和开发。学期结束前完成该项目,其成绩记入综合设计分。通过课题的开发过程,促使学生将所学的知识融会贯通。第二课堂活动强调对学生综合应用能力和创新能力的培养。我们每年进行一次院内程序设计大赛,选拔优秀的同学参加省ACM程序设计大赛,老师给予全程指导。
3.6 改善考核制度
多年来,许多高校对C语言的考试以笔试为主,其它考试为辅,这样学生实际操作能力差,考试及格率偏低,而程序设计使一门实践性非常强的课程,根据这种情况,我们改进了考试方法,开发了C语言上机考试系统,以笔试和机试相结合的考试方式,笔试考察学生对基础知识、基本概念的掌握程度,上机考试主要考核学生熟练调试程序的能力,成绩评定也由过去的“平时成绩+笔试成绩”改为“平时+笔试成绩+机试成绩+实验成绩”,比例分别为2:3:3:2,同时为了正确反映教学质量,采取考教分离,集体阅卷的方式,这种考核方法,不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到很好的教学效果。
4 结束语
程序设计教学的目的,不仅要使学生掌握语言的基本规则,更要切实提高其编程解决实际问题的能力和实现算法的能力。在c程序设计的教育中,应以程序设计和实践为主,通过课程教学方式和方法的改变激发学生学习的兴趣,使学生不但掌握高级语言的知识,编程技术和基本算法,更重要的是掌握设计的思想和方法,具备利用计算机求解实际问题的基本能力,适应社会发展的需求。
摘要:C语言作为一种重要的编程工具,越来越受到计算机专业基础教育的重视。该文根据《C语言程序设计》课程的教学实践,分析了当前程序设计课程教学中存在的若干问题,针对性的提出了几点教学建议,让学生明确学习目的,保持学习信心,教师采用有效的教学方法,达到理想的教学效果。
关键词:C语言,程序设计,上机实践
参考文献
[1]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.
[2]方红萍,陈和平.C语言课程改革与实践[J].电气电子教学学报,2007(5):11-13.
[3]王江涛.浅论C语言实验改革[J].电脑知识与技术,2008(33).
C语言教学方法
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。