C语言的教学方法(精选12篇)
C语言的教学方法 篇1
随着计算机技术的普及和IT行业的加速发展, 社会需要越来越多的计算机专业人才和计算机素质较高的各类专业人才。这对计算机语言教学提出了更高的要求。
本文在课程教学中引入了实例化教学的方法, 通过一个个实例来展示计算机C语言的一些应用, 在实例的设计和讲解上结合多媒体技术, 使学生对计算机语言的认识更加直观和清晰。顺序、分支、循环是结构化程序设计的三种基本结构, 所以在高级语言程序设计课程中, 掌握这三种结构是学好程序设计的基础。而循环结构是这三者中最复杂的一种结构。本文从初学者的角度, 以C语言中循环结构为例进行阐述。
一、实例化教学的概念和必要性
二元教学模式对一般初学者来说, 很难真正理解理论知识和实践操作之间的关系, 也很难解释该实践操作结果的由来。基于上述原因, 我们在教学中, 非常注重“实例化教学”的设计与运用。所谓“实例化教学”, 就是针对课程的重点、难点内容, 通过适当的方式, 如多帧演示、实际操作序列等, 把抽象的内容具体化, 以帮助学生理解掌握。因此, 整个教学活动突出了实例的作用。我们把这种授课方式归纳成三元模式。在这种模式下, 实例起到一个理论联系实践的作用。一方面, 它将理论具体化、形象化, 以帮助学生理解;另一方面, 它又能够对实践起一个指导性和解释性的作用。在“实例化”教学中, 实例的选择和设计是难点。这是因为:实例要具有代表性、完整性、可设计性和易操作性。因此, 我们在实例设计时, 十分注意知识点的选择。在整个循环结构的教学中多重循环和数组循环是居于核心地位, 理解了它们, 基本就掌握了循环结构。学生在使用循环结构时, 面临的首要问题是对循环结构代码执行顺序的理解。为此, 本文设计了以下两个实例。
(一) 用循环结构输出几何图形
输出简单的几何图形如图1, 是循环结构的典型应用之一。程序由两个循环组成, 在执行时, 通过设计断点, 程序每执行一次循环就暂停一下, 对照执行结果, 对学生进行讲解。
三角形, 每一行由若干个空格、星号和一个回车换行符构成, 将行号、空格数和星号数分别设为i、m和n, 则可以形成表1:
(二) 数组中循环结构的应用
在C语言中, 循环语句经常与数组相结合, 用于实现数组元素的赋值、输入与输出。对于初学者来说, 更习惯于用顺序结构的语句来实现 (如图2左) 。我们将图2左的几条语句作比较, 可以看出在这5条语句中, 不同的只有数组下标, 那么就可以将这5条语句合并成一条for语句, 可以很容易的写出图2右的for语句。
同样, 对于下面这个输出二维数组元素的例子, 也可以用上述办法实现:经过对比图3左侧方框中的语句, 可以发现也是只有数组下标在变化, 但是由于是二维数组, 行下标和列下标同时都在变化, 很显然我们可以3条语句为一组, 得到图3右下最终二重for循环的语句。
在上例的基础上, 我们把思路再拓宽一些, 通过分析数组行下标m和列下标n与循环变量i之间的关系, 很显然:i=m*3+n, 按照整数除法的思想, 可以得到:m=i/3, n=i%32)
从而可以写出简化了的程序代码:
这样让学生参与到新方法的设计之中, 有利于提高学生的学习积极性和探索能力, 拓宽其代码的编写思路。
二、多媒体教学在C语言教学中的特点和作用
多媒体技术是根据人类交换信息的特点, 将图形、文字、声音、图像等多种信息综合于一体进行编排处理的技术。采用多媒体的表现形式, 把教学主要内容、材料、数据、范例等显示在屏幕上, 以辅助教师的教学。1) 多媒体辅助教学能丰富课堂的教学内容;2) 多媒体辅助教学能提高学生的学习兴趣;3) 多媒体辅助教学有利于发展学生的思维能力, 增强记忆。综上所述, 我们在教学中完全可以将上文提到的“实例化教学”与多媒体技术进行结合, 对学生进行图文并茂的实例化教学, 这样既能激发学生的学习兴趣, 又能提高教学质量, 增强教学效果。
三、网络教学在C语言教学应用中的特点和作用
互联网上蕴藏着丰富的信息资源, 充分开发和利用这些信息资源已成为现代教学的重要环节。1) 网络辅助教学丰富了教学资源;2) 利用网络技术搭建沟通平台, 从而实现师生课后交流。
四、结语
经过探索和实践, 我们觉得“实例化教学与多媒体进行有效的结合”非常适合计算机教学, 尤其是配合学生在网络上自主学习, 效果十分理想。
参考文献
[1]谭浩强.C程序设计[M].清华大学出版社, 2005.
[2]贺桂英.远程开放教育中"实例化教学"探索[J].广东广播电视大学学报, 2003
C语言的教学方法 篇2
具有较强的综合性、实用性、应用范围.我们特科研中的实战经验用于教学,提高学生的`学习兴趣,改革教学内容和教学方法,优化实验和课程设计环节,以此改善教学效果.
作 者:李红军 黄少敏 作者单位:李红军(武汉科技学院机电学院,湖北,武汉,430073)
黄少敏(武汉水利水电科学研究所,湖北,武汉,430070)
浅谈C语言的启发式教学 篇3
【关键词】启发式教学 C语言 高职教育
C语言程序设计作为计算机语言中最基本的一种高级语言,有着广泛的应用。它独特的结构化程序设计方式能给学生一种崭新的思维启发。学好这门课程将使学生分析问题、解决问题能力得到提高。
C语言是高职院校计算机专业学生学习的第一门程序语言课。在实际教学过程中,笔者发现大多数职业学校学生学习C语言都有一定的困难。运用一般的教学方法很难让学生很好地理解并掌握程序设计知识。原因主要有:
(1)高职院校学生本身的学习接受能力有限。(2)一般的常规教学方式很难激发学生的学习兴趣。(3)现在职业学校使用的教材大多是谭浩强编写的C语言程序设计教程,这本教材面向的对象主要是高校的学生,许多例题对于职业学校学生来说偏难,容易造成学生的畏难情绪。为此,笔者在教学中尝试使用启发式教学方法进行C语言教学,取得了良好的效果。
一、运用启发式教学要把握三个方面
1.学生的认知能力
学生认知能力包括识记、理解、应用分析综合、创造等。在启发式教学中应该根据学生认知能力,采用相应的启发式方法。高职院校学生偏科严重,数学和英语基础不是很好,但是,学生有好奇心和一定上进心,其学习具有由简单到复杂,有感性到理性,由浅及深的特点。因此C语言教学必须采用通俗易懂的方式和生动具体的例子,有些重要内容还要在不同的知识反复出现。
2.把握教材
C语言教材很多,根据学生的素质特点,教材应有严谨而浅显的风格,丰富多彩的例题。因此选择了清华大学出版的谭浩强主编的《C语言程序设计》。教材选定后,教师首先要对教材内容了如指掌,触类旁通;其次要根据教与学的规律,把知识内容按一定顺序排列,遵循深入浅出、由易到难、循序渐进的原则,注意教材的系统性、科学性和各部分内容之间的相互关系;再次是注意与计算机应用基础课的密切配合。
3.教与学的统一
现代教育理论认为,只有教师与学生配合默契,才会教得自如,学得轻松。在运用启发式教学时,教师选择教法时要考虑学生的学法, 教法时要设计相应的学法,并使教与学优化,默契结合。
教师只有将学生认知能力、教材知识特点、教与学三者有机地融为一体,在C语言教学过程中运用启发式教学才能游刃有余,获得最佳效果。
二、运用启发式教学要抓住三个关键
1.针对学生的差异,提问要有层次性、递度性
教学提问是师生共同参与的双边活动。所以教师在问题的设置上必须考虑到学生的实际情况,合理确定问题的难度与坡度,既做到面向全体学生提出问题,以免造成“少数人表演,多数人陪坐”的现象,也需区别对待,针对学生的个别差异,用不同的方式提出不同类型、不同层次的问题。
2. 掌握发问时机,提问应该有的放矢,抓住关键点
教学需要是设计提问的客观依据。在整个教学过程中,教师随时都可以发问,但要保证提问的质量和效果,就必须要注意发问的时机及对教材的重点与难点如何发问,发问时应有的放矢,抓住关键点,以免画蛇添足。最佳发问时机既要教师敏于捕捉,准于把握,又要求教师巧于引发,善于创设。有机不发或无机而发,都会给教学带来损失。那么应该在教材的什么地方设问呢?应在教材的关键点设问,这些地方都是教材的重点和难点之处,牵一发而动全身。
3.适时提示点拨,对学生的回答及时归纳总结
在课堂提问过程中,教师应该有两个最主要的停顿时间,一是教师提出一个问题后,要等待足够的时间,为学生的回答提供思考的时间,不能马上重复问题或指定学生回答问题,二是指学生回答之后,教师也要等待足够的时间,才能评价学生的答案或者再提出另一个问题,以便他们完整地做出回答。当学生回答问题不够准确完整、流畅,甚至完全“卡壳”时,教师应根据具体情况,给予适当的语言提示,指点迷津,以助学生走出思维误区。
三、C语言启发式教学内容设计举例
在C语言授课教学安排时,首先都会讲解每章节的知识点和语法点,随后根据相应章节的知识点讲解例题。然而,挑选合适的例子是教学内容安排中关键的一项工作,它有助于学生更好的消化知识点。在进行程序设计举例时,应该尽量挑选一些可以引起学生共鸣的例子。通过比价熟悉的例子,让学生容易理解,揭发学生学习的兴趣,从而加深对问题的理解和掌握,达到事半功倍的效果。
例如,“求平均分”这样的例题对于学生来说简单亦熟悉,那么我们讲解输入输出函数知识点时,就布置给学生这样一道简单的求解变量a,b,c的平均数的题目,要求利用指定输入输出格式完成,基本上学生都能独立完成这个简单的小程序。随后讲到循环语句的知识点,要求学生分别用三种循环语句while,do while和for语句来编写求解10个数的平均值,这时学生思考的重点就会放在循环语句的使用上,同时也将领会累计求和这一技巧。当课程进展到数组章节内容时,可以利用求解平均成绩这一问题引入,每个班几十个学生的成绩如何记录下来?定义几十个变量显然不是好办法,利用之前的循环语句并不能明确记录每个学生的成绩,这时向学生引入数组这一概念,随后利用数组进行求解平均成绩的例题向学生详细讲解,而课后给学生布置利用二维数组实现每个学生的平均成绩和每门课的平均成绩求解。在随后讲解到函数、指针部分,都要求学生利用每章学习到的新内容实现平均分的求解,此时学生对于用C语言求解平均数的思路已经很熟悉,并不会无从下手,那么他们的解题重点就将集中在新知识的应用上,最后学生也将能够独立完成学生成绩管理系统的开发和设计这样的课程设计。
四、结束语
带着教学中出现的问题,需要教师不断调整和完善自己的教学安排。教师进行备、教、辅、改、考等各个环节时,应该注重启发式教学模式的应用,激发高职院校学生学习C语言的激情。
【参考文献】
[1]贾丽 启发式教学和体验式教学融入高职思政课堂教学的实践性[J].内蒙古师范大学学报,2013(9)
[2]谭浩强:C语言程序设计教程(第5版),清华大学出版社,2014年
[3]陈静,杨青,郑世珏:高级语言程序设计与应用教程,清华大学出版社,2008年
C语言教学中的方法探讨 篇4
1.1 引导学生掌握程序设计的思想和方法
程序设计的关键在于找到解决问题的方法, 即算法。因此可以说程序设计的灵魂是算法, 而语言只是具体的表示形式。[1]算法是解决问题的方法和步骤, 只要能掌握它, 那么任何一门语言的学习只是语法内容的介绍, 而不再难懂不易掌握。没有正确的算法, 计算机将不知道怎样去解决问题, 计算机也就不能拥有科学计算, 数据处理, 过程控制和人工智能等功能, 更不可能被人誉为‘电脑’了。
从算法着手学习C语言是明智的, 对于典型的算法, 如选择法、筛选法、起泡法、折半查找法等算法, 更应该进行精讲多练, 多做与例题相关的习题, 去体会这些算法精妙, 同时还要注意这些算法与算法之间的联系。除多做相关习题加深理解外, 还要与相关知识联系教学, 如选择法可以结合选择程序设计结构学习;筛选法、起泡法等算法可以结合数组、函数部分的内容进行讲解。这样学生在熟练掌握这些算法的同时, 也学习并掌握了相关其他课程内容, 在程序设计时就能做到举一反三、触类旁通了。
1.2 帮助学生培养兴趣
恩格斯说“兴趣与爱好是最好的老师”。为了使初学者能尽快地掌握计算机编程知识, 进入计算机的应用领域, 在课程讲授过程中, 要特别注意培养学生的学习兴趣。初接触计算机编程时, 很多学生感到新奇、好玩, 这不能说是兴趣, 只是一种好奇。随着课程的不断深入, 大量的规则、定义、要求和机械的格式出现, 很容易使一部分甚至是大部分学生产生枯燥无味的感觉。为了把学生的好奇转化为学习兴趣, 授课时我们改变过去先给出定义和规则的讲授办法, 而是用鲜活的事例去演绎理论。
例如学习循环嵌套时, 可以拿《算经》中的“百钱百鸡”问题为例:公鸡每只5元, 母鸡每只3元, 小鸡三只1元, 用100元钱买100只鸡, 求公鸡, 母鸡, 小鸡的只数”。问题分析与算法设计设公鸡、母鸡、小鸡的个数分别为x, y, z, 题意给定共100元钱要买100只鸡, 若全买公鸡最多买20只, 显然x的值在0~20之间;同理, y的取值范围在0~33之间, 可得到下面的不定方程:
5x+3y+z/3=100
x+y+z=100
所以此问题可归结为求这个不定方程的整数解。
由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围, 让X在0~20之间取一整数, 让Y在0~33之间取一个整数, 在满足上述两方程, 得到Z的值是一个整数即找到本题的一个解。这样通过对未知数可变范围的穷举, 验证方程在什么情况下成立, 从而得到全部解。程序说明部分略去。
把枯燥的问题故事化, 学习就会变得有趣味能引发学生主动思考产生要解决问题的欲望, 变被动学改为主动要求学, 从而达到寓教于乐的目的。针对初学语言的人, 在开始进行语言教学之前, 先要分析问题、设计算法并将算法正确表示出来, 对于更好地进行后面的学习是非常有好处的。
1.3 提高学生对C语言的重视程度
近年来, 有一些面向对象的计算机语言陆续问世, 受到欢迎。有些人认为面向过程的C语言已经过时了, 不必学了, 这是一种误解。[2]其实作为计算机类的专业基础课, 学习C语言的目的是使学生掌握程序设计的基本方法, 并逐步形成正确的程序设计思想, 能够熟练地使用C语言进行程序设计并具备调试程序的能力, 为后继课程的学习打下良好的基础。同时C语言程序设计也是国家计算机等级考试重要科目之一。历年来在国家二级, 省二级, 国家三级等考试都把C语言程序设计做为考核科目。因此我们应当给予足够的重视。
2 积极培养学生综合运用知识及自己动手的能力
程序设计课程的实践性很强, 学生只听不练根本达不到学习该课程的目的。另一方面教材的课后习题偏离实际较远, 学生在完成课后习题时积极性不高, 兴趣不大, 甚至想抄作业应付老师。只有让学生动手编写他们感兴趣的程序, 学生才会有成就感, 会对课程产生兴趣, 学起来才会比较从容。
如何让学生综合应用所学知识解决实际问题, 提高学生的综合应用能力和创新能力, 激发其学习兴趣, 提高其学习的主动性, 是我们教学过程中需要加入的内容。
课程设计时, 老师要重点设计选题, 使得选题既接近实际需要, 又能够让学生感兴趣, 能够运用所学知识解决。课程设计题目分为基本题和综合题。基本题按教学顺序设计, 尽量避免涉及后续章节的知识, 后续的课程设计题目尽量引用前面的课程设计内容, 以便加深对前面所学知识的理解。综合性题目是对一学期所学知识的总结和巩固, 应与实际生活或工作相关且具有一定规模, 可将其分成几个子项目, 由更多学生参与, 分工合作, 以期进一步锻炼学生的动手能力, 进一步培养学生分析问题、解决问题、研究和探索问题的能力和团队协作精神。
3 采用多种方式教学
在学生了解C语言的重要性, 并且逐渐产生学习兴趣的同时, 我们还可以通过一些先进科学技术手段提高教学方式的趣味性。
3.1 网络教学
电子邮件E-mail是Internet上使用最广泛的服务之一。[3]教师与学生也可以通过e-mail方式进行信息的交流, 及时解决学生在学习及生活中遇到的种种问题, 与学生有更多沟通机会, 也能更有效地指导学生的学习。还可以使用电子公告板公布信息以便于交流。
3.2 多媒体教学
直观、形象、便捷的多媒体教学可以使学生在有限时间内迅速理解、掌握、获取更多知识和信息。因此可以适当的使用多媒体教学手段, 开展多媒体教学, 组建试题库、习题库以及课件资料库等一系列的课程教学资料。
3.3 助学课件
在没有老师指导的情况下, 学生可以通过电子教案和助学课件进行自主学习, 复习学过的内容及自己课堂上没听懂的内容, 也可以预习后面的知识。
3.4 共教共学
有计划地组织学生来充当老师将自己的解题方法拿到课堂中讲解, 对的予以肯定, 错的加以纠正。这样印象会更深, 而且也锻炼了同学的讲解口才, 题的新解法通常也能得到挖掘, 同学解题思路得到拓展, 发散思维得到充分展现。
摘要:C语言是程序设计的入门级语言, 常做为学习其他高级语言的基础, 同时它也是国家计算机等级考试的主要科目, 因此C语言在计算机职业教育中占有极其重要的地位。本文从提高C语言课程教学质量、增强教学效果、培养和提高学生分析问题、解决问题能力和创新能力等方面, 谈谈在教学上的一些经验。
关键词:C语言,算法,网络,多媒体
参考文献
[1]谭浩强, 王智广.QBASIC语言程序设计[M].北京:清华大学出版社, 2000:6
[2]谭浩强.C程序设计 (第3版) [M].北京:清华大学出版社, 2005
C语言教学建议 篇5
第1章 C语言程序设计概述
1.本章学习之前一定要让学生了解课程的任务和特点,强化学生的直接学习动机,使学生自觉地训练结构化的程序设计能力,并着手养成边学边做的习惯。
2.相关链接的内容根据学生特征灵活掌握,删除后不影响后续内容的教学。特别是关于补码的内容,学生若不能理解不必强求,以后涉及到补码也可不作介绍。
3.数据存储的概念在后续内容的教学中非常重要,也比较难以理解。这里只是顺便提出几个概念。这里的地址也可以用电话号码作比喻。
4.介绍机器语言和汇编语言的目的是让学生更好地理解c程序的运行过程。
5.C语言的特点和程序构成应结合程序实例讲解,且C语言的特点需要在长时间内逐步体会,不必讲得过细。
6.C程序的执行过程的熟悉,需要让学生亲自编码写一段程序。
7.“基本训练”是在教师的指导下由学生在课内完成的,是课堂教学的一个重要组成部分,这是一种师生互动的教学过程,譬如:在数制之间的转换就是在教士的指导下有学生自主完成的,教师对学生提供的帮助信息是根据现场需要而确定的。“习题”是学生在课外自主或合作完成的。建议此课程实施时开放网络机房,并尽可能为学生提供学习需要的教学资源。条件具备时,可在校园网上建立合作学习的平台。
8.在下章开始之前,要为学生布置于习任务,这是培养学生自主学习能力的一个重要手段。
9.鼓励学生参加一些学习社区,经常浏览C语言程序设计的一些相关网站。第2章 顺序结构程序设计
1.本章在结构上与原有的教材有很大的不同,主要是采用了“任务驱动”的思想。在“2.2数据”一节,集中囊括了基本数据类型、常量与变量、运算符等重要概念。对这些概念目前只要求掌握到“必需”的程度,在以后的程序设计中再逐步加深理解。尤其是不能让学生一开始就记忆大量的“规定”。比较和逻辑运算放在了分支程序设计中。
2.本书的例题、习题都是经过精心设计的,是作者“著作”的成分。[例2-3]就是通过实例来分析和体会自加、自减运算符的运用。教师应该在课前对这些例题、习题作详细分析,体会之中的用意。必要时应亲自调试一下。
3.对格式输入输出的学习,一开始也尽可能简单一些,以保证学生便正常编写、运行程序为宜。当遇到相应问题时,可返回来查阅本节内容。
4.对初学者来说,理解顺序程序结构是理解程序结构的基础。2.5节是作者对顺序程序设计所做的一点总结。这只是一种尝试。恳切希望广大同仁共同完善这一部分内容。
5. 2.6节介绍了三段程序,目的是将学生引入程序设计的大门。学完这部分内容以后,学生就可以着手编写一些解决实际问题的程序了。学习本章时,学生对开发环境尚不熟悉,遇到的问题较多,因此,应酌情增加上机时间。
6.本章习题的第5题有两个目的:一是激发学生学习程序设计的兴趣;二是使学生学习使用C语言中的库函数,因为大量的库函数不可能都由教师讲解。下一章还要用到这些内容。第三章 分支程序设计
1.分支程序使计算机有了判断的功能。本章应该使学生练就分支程序编写的基本功,熟悉分支程序设计遇到中的一些特定问题,譬如:逻辑判断的顺序等。
2.由于传统流程图更为直观,而且已被应用到其它领域(如教学设计),因此,本书主要采用传统流程图,对N-S图仅作简单介绍。建议学生学会绘制传统流程图,学会识读N-S图。
3.学会逻辑表达式的运用是编写分支程序的关键。建议在此方面多做训练。同时应注意,逻辑表达式过于复杂会影响程序的可读性,要让学生体会程序质量的要求,学会在程序的简洁性和易读性上加以平衡。通过[例3-4]可以很好地体会这个问题。总的原则是,手段是为程序设计者带来方便的,而不能让程序设计者为手段所累。
4.条件运算符是C语言简洁风格的典型体现,应该让学生多体会一下。使用if完全可以替代条件运算,因此,条件运算的作用常常被忽视,有些教材甚至认为条件运算中不能使用格式输出函数,而事实上条件运算的功能是非常强大的。
5.在“3.1.5 if的嵌套”中,作者尝试着对嵌套情况和常犯的错误进行了归纳。授课中教师也可以根据自己的经验重新归纳,或者以“试误”的方式让学生体会这些问题。
6.61页 “基本训练”中的第2题,看似一个非常简单的问题,但事实上多数学生很难在短时内编写出正确程序。教师可以让学生在课内编写出程序雏形,在课后完成程序。
7.“3.2 switch”逻辑上比较简明,重要的是通过练习使学生熟悉相关的规定,避免出现语法错误。恰当地设计“条件”也是一个关键。
8.[例3-11]出现了while 结构,起着“毛毛雨”的作用。但不要因此使学生形成理解上的障碍,千万不要过多地介绍循环结构及执行过程。
9.如果学生能够顺利完成65页的“基本训练”,就基本掌握了switch结构的运用。
10. “3.3典型程序举例”起着引路的作用,目的是引导学生发现更多的相关问题,并尝试编程解决。[例3-13]中,使用条件运算表达式可能会更简明一些。
11. 课后作业应特别强调有学生提出问题。发现问题是主动的,与解决教师提出的问题有着质的区别。第4章 循环结构程序设计
1.循环是学生比较感兴趣的问题,也是训练编程能力的重点。在本章可以综合运用前面几章的知识。建议教师酌情加强训练,必要时增加一些课时。
2.循环控制条件是循环程序中的核心问题,需要通过训练使学生获得相关经验。
3.本章例题较多,目的达到“熟能生巧”之效。多数例题都经过了精心设计,因该让学生仔细体会作者的用意。[例4-3]和 [例4-4]让学生体会变量类型的确定,此时可返回第2章看一下关于数据类型的规定; [例4-5]与 [例4-6]、[例4-7]中的两段程序,通过对比的方法使学生了解程序设计的灵活性和创造性,要让学生在程序设计中体会到美的感受([例4-7]中的程序在后面还要用到); [例4-8]的程序非常简明,目的仍然是让学生体会一种方法。
4.第82页和86页上的“基本训练”应该让学生独立完成。
5.[例4-21]和 [例4-22]在繁简上形成的鲜明对比,但目的都是为了领会continue的作用。
6.“4.8典型程序举例”是为了进一步让学生领会“循环问题”。
7.课后作业酌情布置。最好选择其中的若干题目做一次测验,根据结果做一次小结。若教师能够确定学生已达到前四章的学习目标,也可以不再练习,直接进入下一阶段。
8.到此为止,本课程完成第一个阶段,即基本训练阶段,本阶段的特征是对单个“元件”的认识和使用。下一阶段进入“组装阶段”,即中级训练阶段,基本任务是:(1)将单个数据组合成“构造类型数据”;(2)将单个函数组装成一个完整的程序文件。
9.由于任务的变化,后续内容在学习方法上也有一些改变。教师的讲解所占比重应该加大,课堂基本训练逐步减少。上机实习也应由原来的“小周期”变为“大周期”。教师应提前让学生做好思想准备。第5章 数组与字符串
1.学习数组,让学生领会数组元素的存储是构建数组概念的关键。教师应采用多媒体手段,使学生对数组存储有一个形象化的认识。单靠语言和纸制教材教学效果可能会不理想。
2.为了增强程序的可靠性,书中较少使用a[1]++这样的运算,但在教学中教师应该适当地补充这种知识。
3.一维数组的排序是一个重点内容,掌握典型的排序算法,无论对于数据处理还是工业控制都十分重要。每一位同学应通过训练,熟练地掌握一种算法,对其它算法也就很容易掌握了。
4.[例5-7]是一个典型程序,可以扩展到其它问题。教师在使用中可以整理一些类似的问题。学会编写这类程序,也是对前面几章内容的巩固和提高。
5.二位数组繁而不难。关键是抓住元素存放顺序。对关于二位数组的大部分程序,可以有学生自行阅读。通过基本训练,巩固和检验教学效果。
6.字符数组的处理难度不大,但很重要。重点是由学生体会字符数组处理的特点,通过与数值数组处理的对比,掌握字符数组处理的规律。“5.4.4 字符串处理的标准函数”只需理解,不需强化记忆,应在实例中加深理解和记忆。
7.建议学生在课外完成程序的编辑和调试,课内只解决难度较大的调试问题。在调试过程,学生可以结组讨论。
8.习题中的最后一题已经涉及到下一章的内容,这种作业并不是真的让学生“完成”,而是让学生发现和思考相关的问题。第六章 函数
1.这一章是一个关键的章节。前面各章看到的是“树木”,本章看到的是“森林”;前面各章是“零件加工”,本章是“组装”。学完这一章,学生的程序设计能力将上一个新的台阶。教师在讲解这一章时,应引导学生提高站位,而不要只看到一些细枝末节。这里可能有一个思维习惯的问题。如果说在其它章节同学们是一个冲锋陷阵的战士,那么,在本章将为成一名指挥大兵团作战的将军。整体的协调是本章的主要任务。
2.如何处理“结构化程序设计”与“面向对象的程序设计”之间的关系,是一个非常值得探讨的课题。作者曾就此问题咨询过爱尔兰都柏林工业大学的计算机教学专家,他们也认为这是一个很有趣的问题,可以谈上三天三夜。我的意见是,让学生掌握结构化程序设计的思想和方法是有必要的,面向对象的程序设计是以结构化程序设计思想为基础的。当然,对于职业院校的学生来说,将来要做一名高级软件蓝领,可能仅有面向对象的程序设计能力也可以工作。但是,随着职业成长,软件蓝领也可能成为系统分析师,掌握结构化思想就非常必要了。况且,在控制领域,一些结构化的c语言仍在应用。
3.学习本章内容时,可以有2—3名学生组成一个小组,分别编写主函数和子函数。目的有两个:一是让学生体会函数之间参数传递级变量使用的规律;二是培养职业活动中所需要的合作能力。
第7章 编译预处理
编译预处理命令在前面几章已在使用。这一张介绍了宏定义的一些技巧和注意事项,属于较高层次的应用。条件编译命令仅作了解即可,千万不要在此纠缠不清。
第8章 指针
指针运算将数据运算深入到了系统内部,要求学生了解一些硬件知识。一些非计算机专业学生感到学习指针很难,原因就在这里。计算机专业的学生如果在入学初期阶段学习者们课程,同样也存在这个问题。建议教师多使用形象化的比喻,以“黑箱法”讲授。
本章只是介绍指针的基本概念。下一章才涉及到指针的实际应用。学习指针的目的是为了方便操作,对于某些感到暂时难以应用的部分可以暂时删去。
第9章 结构体和共用体
学习本章后,同学们才算真正了解了C语言的数据结构。建议在熟悉结构体的基础上,在对比学习共用体,而不要已开始就将二者对比学习。
用指针处理结构体,是指针的一个重要功能。指针与结构体的结合,才是C语言的精华所在。掌握了这部分内容,在学习复杂数据结构就不难了。
第10章 文件
文件是程序设计中的一个重要概念。应通过综合性实践是同学们掌握文件的操作,通过使用文件牢固树立文件的概念。
要求学生了解文件的概念,让同学知道一个C文件是一个“流式文件”,并不是由记录组成的,为以后学习其它语言文件做奠定基础;
掌握文件的基本操作函数;
宜采用计算机大屏幕投影等先进的教学设备和电子教案、多媒体课件教学。
第11章 位运算
a)本章是C语言的一个特色,也是一个相对独立的单元,这也是将这一章放在最后的原因。
b)学习本章需要有一定的数字电路基础知识。如果学生不了解这方面的知识,教师应加以适当补充。千万不要紧学习“C语言”之中的操作,而不了解这些操作的意义。教师至少让学生了解位运算的用途,在这里留下一个“接口”。
第12章 综合实例
C语言的教学方法 篇6
《C语言程序设计》教学内容枯燥抽象,学生不容易理解,加上编者对教材的处理上过于注重实践技能的培养,采用“任务驱动”法组织教材内容,通过一些实际案例阐述各章节的重要知识点,又通过案例延伸对相关知识点进行了扩展和延伸,使得各知识点都融合在各案例当中。这样虽然达到了各教学知识点的有机统一,但从知识点的连贯性和层次性上来讲,不容易被学生理解掌握。同时,该教材用学生信息管理项目案例作为主线,对于毫无编程经验的职专生来说,起点过高。
C语言程序设计的学习,主要涉及到C语言基础知识框架的建立和算法思想的培养,算法思想即是数学建模的过程,而且c语言的编写都是用英语字符来完成的,这就需要学生在数学和英语两科的综合运用能力上达到一定的要求,而职业类学校的学生恰恰在这两个科目上弱项,这就进步增大了教学的难度。在教学实际过程中,可能遇到无论教师怎么解释,学生都不知所云的情况。
同时,在c语言的学习程当中,也往往要涉及很多计算机硬件原理的知识,对于处于高二的职专生来讲,对一些计算机基础知识还不能达到融会贯通的程度,计算机知识不系统,这就更加增大了实际教学的难度。
针对以上教材的情况以及学生的实际接受能力,经过教学实践的摸索探讨,我总结出了如下“C语言程序教学”的方法 。
1.在教材的处理上,结合学生实际,做到有针对性地制定教学目标,提高学生的接受能力。
我在实际教学过程中,还是以本教材为主,但在知识结构上做了一些细化。在给学生分析完教材中的案例后,对涉及到的相关知识点进一步完善和系统,使学生整体上掌握住案例的实质。例如;在讲“变量”的过程当中,变量值的储存是一个访问内存物理地址的过程。在这里,就需要对学生扩展一些关于内存物理地址方面的知识点,让学生对整个变量值的储存过程能够清楚明亮,从而提高学生对知识点的接受能力和牢固度。
在备课过程中,在意识地在每课时的教案中穿插一些计算机小知识,以激发学生学习的兴趣,提高学生学习程序涉及的积极性。
2.把教授的专业性知识与学生熟悉的相关常识相联系。
在C语言授课过程中,可能会遇到一些专业性的术语,学生从来没接触过,不知道为何物。这种情况下,授课老师可以列举一些与之有联系的比较实际的常识来做类比。比如我在给学生讲授C语言程序的基本构成单位为“函数”时,因为C语言中的“函数”和数学中“函数”不是一种概念,而是完成一个相应功能的程序模块,学生容易混淆。所以我把C语言中的“函数”比作是人体里的各种器官,其最大的作用就是完成相应的功能,我们人体是各个器官的组合体,而C语言程序就是各个“函数”的组合体,这样,学生对函数的概念就会明了很多。
3.采用“自主——合作——探究”式的学习方式。
教材的编者在出版说明中谈到,要强调学生学习的自主性,强调以学生的团队学习为主,让学生分成小组共同就某些问题讲行探讨,使学生最大限度的自主掌握知识。当然,这是一种理想化的教学方式,但在实际教学过程中也不是不能实现,最起码在一定程度上可以实现,所以任课教师可以试着去培养学生的这种能力。
一些教師在教学设计中虽能体现出学生“自主—— 合作 ——探究”的意识,但在具体操作中形式化严重,实效性不强。
兴趣是学生的最好老师,大部分学生还是比较喜欢计算机这个专业的,我们应该充分抓住学生的这一特点,发挥他们的主体作用,让他们自主探索,自主学习。职校二年级的学生已经有了较好的判断、推理和逻辑思维能力。我在教学过程中,经常采取提取问题-探索问题-解决问题的方法。老师可以自行出个例子,设置疑问,让学生自主学习,这样的教学效果要比在课堂上死讲要好的多。比如,在讲解条件和循环语句,多配以流程图来增强学生直观性和理解性。在讲数组时,采用图例分析,让学生对数组各元素分布情况,产生准确的认识和理解。现在的高中学生,很自我,独立意识和接触新鲜事物的能力非常强,让学生自行分组设计一些小课题,即提高了学生的自主能力,也让同学之间也不由自主的互相帮助起来。最主要的是让学生自己发现问题并解决问题。这时候老师就要做好引路人,在学生自主学习的时候,给予适当帮助。
4.精讲多练,加强实践。在学生理解项目思想,确定项目的算法后,有针对性地对项目中涉及的知识点进行讲解,对于那些学生自己能完成的内容,少讲,只做提示,甚至不讲。课堂上留足够的时间,让学生多进行实践操作,同时加强巡查辅导,及时发现和纠正学生的错误。
总之,在难度较大的课程教学过程中,不仅要备好课,还需要用创新精神探究各种教学方法,培养学生的实践能力。作为年轻老师,我们应该一丝不苟地去面对学生,面对教材,面对自己这神圣的职业。
C语言的教学方法 篇7
关键词:C语言,教学方法
《C语言》是广泛流行的、很有发展前途的计算机高级语言,是高职院校计算机与电子信息专业的编程基础课,属于必修课,但它也是一门难学难教的课程。面对高职学生基础知识差,底子薄,自主学习能力相对薄弱,逻辑思维能力较欠缺的现状。如何激发学生积极性和自动性,增强学生的动手能力和学习信心,以适应高职院校高技能人才的培养目标,是目前摆在我们面前的一个难题。多年来,笔者和同事经过摸索研究和教学实践,总结出以下几点教学方法:
1 采用“模拟真实项目开发过程”组织教学
培养技能型人才职业院校的教学目标。针对这一目标,该课程的目的就是要培养一批对程序设计有基本了解,并初步掌握一定的编程技能的技能型人才,能用计算机解决一般实际问题的能力。基于此,笔者在C语言的教学过程中,采用“模拟真实项目开发过程”组织教学,以一个具有代表性的项目的开发过程为主线,构建完整的教学设计,对教学内容进行了大胆取舍和重新组合,突破原有知识的逻辑结构。对基础知识的介绍做到以满足项目开发的需要为度,够有即可,对于一时用不到的知识不讲或让学生自学,以项目进展引导知识扩展,满足社会的需要和学生个人的职业生涯实际需要。
为了突出能力教育这一职业教育的重点,笔者在教学上,以学生实训为主,教师讲解为辅,让学生在练中形成概念,在练中构建知识,在练中训练技能,在练中获得自信,在练中产生兴趣,在练中迸发学习激情,最终达到课程教学的目的。
2 采用“启发式+互动式”教学方法,培养学生自主学习能力
1)巧妙设计课堂教学环节
为了充分利用有限的课堂教学时间,教师应巧妙地合理设计课堂教学环节。笔者认为:首先,教师可以展示范例,并通过对范例的剖析和问题的归纳,让学生想到某些知识的使用,激活他们的灵感,使他们能够触类旁通地解决所遇到的问题,又能让学生明确自己通过本次课的学习能达成什么目标,怎样去达成这些目标;在明确本学习目的后,教师可以提出尝试性问题,让学生进入问题情境,主动去学习,去查找解决问题的方法,充分发挥学生在课堂教学中的主体作用,这样,学生不是被动地接受教师的灌输,而是在教师的指导下,能动自主地学习。
2)精心准备课外作业
同时教师不可能在有限的时间内将C语言程序设计中所需的知识点全部传授给学生,否则只会让学生囫囵吞枣,一知半解。为了加深学生对知识的理解,提高学习兴趣和积极性,教师可以精心准备课外作业,在课堂教学结束时布置给学生。这样既提高了教学效率,又培养学生自主学习能力。
3)预设问题,引导学生思考、讨论
教师应改变以往灌输式的教学方法,又增强与学生的互动,允许学生在课堂中随时提出疑问,根据具体情况教师或当堂解答,或引导学生讨论。在讨论中,教师以点评为辅,也可适时地引导学生,或提示,或发问,或故设疑问,引起争论,把讨论不断引向深处,营造一种热烈的讨论氛围,诱导学生大胆发表自己的见解,以收到更好的效果。
3 建立畅通的信息交换渠道,使学生的学习不受时空的限制
善用E-main、QQ、MSN等网络工具,使师生之间可以随时地进行交流,提供了不受时空限制的学习平台,将课程的学习延伸到课堂之外、校园之外,将教师的答疑空间延伸到教室之外。
4 设计灵活的实训任务,实现因材施教,引导学生的创新意识
操作实践是学生消化、吸收知识,培养实践能力和创新意识的重要阶段。因此,教师在充分考虑高职学生的基础和学习能力前提下,精心选择既突出所学理论知识的重点难点,又接近实际、激发学生的兴趣的实践任务,并可以采用多种形式的灵活的编程任务,来引导学生的创新意识。这样,不但培养了学生分析问题和解决问题的能力,而且还可以弥补课堂教学的不足之处。
规定任务:主要是一些基本技能训练,一般是验证性题目,这是所有学生必须完成的。为了避免学生只是对原程序原样输入,调试,验证结果,教师应对这些任务适当地修改后再让学生去做。比如,如对数组一章的冒泡排序问题,书中例题是对固定的10个数升序排序,上机时则可让学生对数目不定的N个数降序排序,这样既验证了重点算法,又有设计性的扩展,重要的是避免了学生盲目照抄照搬,启发了学生编程思维。
自选任务:是第二部分编程任务。为了激发那些不满足现有知识学生继续学习的兴趣和热情,教师应在完成规定任务的基础上,安排给学生一些自选任务,以进一步巩固学过的知识与技能,提高编程能力。
能力训练模块:若干单元教学完成时,布置一两个趣味性和生活化的题目给学生,以此来引导学生的自主创新能力。任务的题目、内容、所含的知识量、难度、算法均由学生自主决定。诚然,或许能设计出优秀作品的可能只有少数学生,但少数人的成功,不仅可以培养优秀编程手,而且,他们的学习热情和激情一定会传染给其他同学,使课堂呈现良好的学习氛围。
综合设计任务:为了提高学生的综合编程能力,将所学知识融会贯通,需安排1-2周时间来组织学生进行综合的设计,每个学期安排一个综合性的任务,任务选题可以是“规定的”和“自选的”相结合。对于学习能力较强的学生,鼓励自主选题,自主搜集素材,自主设计完成任务;对于学习能力一般或较差的学生,教师则提供素材、做必要的辅导,规定任务。除此之外,还应将一个班的学生分成几个小组,给每个小组布置一个大型项目,如将图书管理系统,学生成绩管理系统,一些小游戏等作为课程设计题目,并且在布置项目之前,先列举一个案例给学生讲解开发一个项目的基本过程,比如设计一个学生信息管理系统包括几个步骤:(1)、对问题进行分析描述;(2)、进行需求分析,把开发的程序要实现哪些功能描述出来;(3)、根据问题分析进行系统设计,采用自顶向下,逐步细化的方法,把系统分解成若下个子功能模块;(4)对使用的数据选择其数据结构和数据类型;(5)对各个模块设计出详细的算法并描述出来;(6)根据设计的算法进行代码设计。这样通过一个完整项目的实施,不但让学生熟悉了项目开发流程,培养其对项目管理、风险控制和流程开发意识,同时还培养了学生的组织能力和团队合作精神。在整个学生课程设计过程,教师始终以“导师”的身份出现,为学生提供技术支持,侧重检查项目完成情况并要适时为学生进行归纳,总结编程技巧和语法知识。
5“形成性考核+过程化考核”的考核方式对学生综合评价
能力是如何进行评价?根据新的职教观念,应以体现能力为核心、理论与操作并重的课程考核方式对学生应全面考核、综合评价。既课程终结性考核(期末考试)之外,还应重视过程性考核,将学生在学习过程中的主观表现,如学习态度、组织能力、团队精神、规范意识、表达能力、创新意识等也列入考核的内容。总之,要让课程考核成为学习行为引导和调动学生参与职业能力训练的积极性的重要杠杆。
总而言之,教学有法,教无定法,教学得法,就能使学生在有限的课堂学习时间内熟练掌握所学课程,适应社会的需要。
参考文献
[1]谭浩强.C语言程序设计[M].3版.北京:清华大学出版社,2005.
[2]纪滨.非理工类专业C语言课程教学措施[J].安徽工业大学学报(社会科学版),2007(4):98-99.
C语言的二义性教学 篇8
第一节自增自减运算规律
若int x=10, y;
无论是前缀还是后缀变量表达式, 单个地, 会使与此结合的变量增减数值1, 只是计算表达式和变量自增减的先后顺序不同。
实型变量和字符变量也有自增自减运算。单个的规律与上相同。
在比较复杂的表达式中, 变量的前缀或后缀的书写形式要明确, 一般要与其它双目运算符保持一个空格的间距。同时前缀或后缀均是两个符号联合表示一种运算, 必须无间隙地连写。x++不能写成x+∪+或x∪++。 (∪表示空格)
前缀或后缀只能是变量的前缀或后缀, 表达式 (非单个变量) 、符号常量、常量、函数均不能有前缀或后缀。
错误类型错误示例
表达式 (非单个变量) ++ (x*y) , (8-1.34) ++, (x+3) ++, x++++
符号常量VB++, --PI
常量3.2++, ++5
函数++scanf (“%d”, &x)
一个变量不能同时拥有前缀和后缀, ++x++或--x++;非同时时是允许的, x+++x。无分隔符或括号时, 自增自减总是与前面的变量结合而成为后缀。
x+++x相当于x+++x, x+++5表达式正确, 而5+++x是错误的。x+++++x是错的, x+++++x也是错误的, 而x+++++x是正确的。
第二节整型变量在算术表达式中的规律
在一个比较复杂的有前后缀运算的式子中, 括号能改变自增自减与变量的依附性, 但++、--是单目运算, 我们不能将其与变量脱离, 括号在计算表达式时还是有用的。
整型表达式的计算相对比较简单, 规则如下:
(1) 计算所有自增自减前缀变量的值;
(2) 根据变量变化后的值确定表达式中任何该变量的值, 而不管其是否有前后缀;
(3) 计算表达式的值;
(4) 计算所有有后缀的变量的值。
事实上, 前缀比括号的优先级还高, 而后缀的优先级比赋值号低, 但高于逗号。
下面这个式子看来十分令人费解, 其实认真把握规律也容易理解。
表达式的值由于也放于有前后缀的x中, 当计算表达式时x被赋予了表达式的值, 在计算后缀时, x自然是在表达式的值上计算了。表达式的值若没有赋值给一个变量, 它仍然是存在的。每次计算完后都要确定带有前后缀的变量的值, 以免有所遗漏。
第三节整型变量在函数参数中的规律
将具有前后缀的表达式作为调用函数的实际参数时, 该表达式的计算十分复杂, 作者至今都未能找到一条放之四海皆准的规则。
例如:int a=5;作为函数参数时, ++a+a+a与a+a+++a是值不相等的两个表达式。前者为18, 后者为16。从这个角度上讲, 十义性也不为多。
在有自增自减的表达式作为函数的实参 (这样的参数表达式以下简称为缀参) , 能正确确定缀参的值的关键有两个, 第一个, 首先从什么位置开始;第二个, 确定每个变量的值按什么顺序。下面按由简到繁逐步讨论并提示相应的规律。
假定int x=5, y=10, z;自变指有缀的变量改变变量自身的值。确值包括确定变量作为表达式的值和变量自变的值。前一个确值很可能对后一个确值产生影响, 下述讨论的焦点就是这种相关联的影响。调用的函数为int try (int) 。
1、没有缀的。因为不存在变量自身值的改变, 按优先级进行。
2、只有两个变量的。
缀参1式值量x值规律
x+++x6+6 6从有缀的开始确值, 前缀先自变, 再确定该表达式的值, 接着其它表达式。后缀先确定该表达式的值, 再自变, 接着其它表达式。
x/x++5/5 6从左到右确值, 有前缀先于该表达式自变, 有后缀后于该表达式自变。按表达式的最后一级运算符划分子表达式, 若有三个或以上, 情况就比较复杂。
若是逗号表达式, 未加括号, 传递的是第一个子表达式的值。加括号, 传递的是最右一个子表达式的值。
try (x+y, y++, x++) 则传值为 (5+1) + (10+1) =17, 注意:在函数参数中, 不加括号的多个逗号的被认为是多个参数, 多个参数的计算顺序是从右到左, 而不是从左到右。
try ( (x+y, x++, x++) ) 则传值为 (5+1) , 在内括号中, 逗号表达式的计算是从左到右, 最右的x++传递过去时, 后缀还没加到x上, 因而x=6。以下不再讨论逗号表达式。
若是逻辑表达式, 仍适应前面的短路运算规则。
try (x||++y) 传递1, ++y被短路, y仍为10。以下不再讨论。
3、若第一个缀出现在第三个子表达式或以后, 在忽略缀的情况下比较该子表达式与其左边各子表达式的优先级, 若高从此确值, 否则从左到右。
在子表达式个数的认可中, 常量表达式作为加数、乘数则不计数, 被减数、被除数则计数。虽计数, 但无优先级 (确值的先后顺序, 而不是运算符优先级) 可言。
数学专业C语言教学的探讨 篇9
目前全国以及省内各院校的非计算机专业大都开设了程序设计课程,但很多由于教师教学内容安排和教学方法选择不当,使得学生对程序设计课程感到枯燥难学,学过之后不能独立设计程序,不能将其与自己本专业很好的结合。这一问题是目前高校C语言教学中普遍存在的。为了解决这一问题,我们针对数学专业的C语言教学在以下几个方面做了尝试。取得了较好的效果。
一、教材的选择
因为是数学专业的程序设计类课程,考虑因为有一些经典教材叙述过于细致,略显繁琐。所以在选择教材时注重选择内容简单实用,实践性强的教材,通过一些简单实用的例子引入程序设计语言的知识,编程技术和基本算法。
二、教学内容
在以往的教学过程中, 大部分学生的语法细节掌握得不错, 但是涉及到实际编程问题时, 还是显得困难;还有的学生始终无法学会如何把实际问题也就是算法转化为程序语言, 他们往往心中只有一些模糊的想法, 而无法写出一行行的程序。这一问题是目前C语言教学中普遍存在的。针对上述问题, 注重在C语言教学中紧密结合本专业特点, 编选带有学生本专业特点的题目, 采用提出一个实际问题, 分析解决该问题的算法, 实现逐项转换成程序语句的方法, 放弃过度追求语言知识本身的系统化和细节化的做法, 通过一系列精心设计的案例, 让学生在编程的过程中进行学习。这样将纯粹的学习语言和真正的应用相结合, 有助于学生对计算机语言的深入理解, 同时学生也感兴趣从而培养了学生分析问题、解决问题、综合思维的能力。
在教学内容的安排上充分结合数学专业的特点,在教学内容的选取上本着“精讲多练,重实用,重算法”的原则,讲解一些实用的和数学专业知识相关的算法以及这些算法所涉及的基本理论。
三、教学过程的设计:强化实践,注重培养能力
程序设计类课程的学习有其自身的特点,听不会,也看不会,只能练会,所以在课程教学中必须强调程序设计训练。学生只有通过大量的练习,才能真正掌握语言知识,培养程序设计的能力,逐步理解和掌握程序设计的思想和方法,能利用计算机解决实际问题。对编程能力的培养,采用基本训练(自测作业和主题作业)和综合训练相结合的方式。
四、教学方法
C程序设计语言的知识体系是一个循序渐进的过程, 先后的知识点相关性很大, 语句简洁、紧凑, 语法限制不太严格, 程序设计自由度大。我们在教学过程中,所有的知识都是以一个案例引入,比如引入循环结构时,先提出如果想统计一个班60名同学的C语言成绩如何写程序,学习选择结构时,先提出如何表示数学里的分段函数,每个知识点都是以学生熟悉的问题为切入点,使学生产生浓厚的兴趣,激励他们深入的学习下去。
总体上说在教学方法上我们主要分为两个阶段:
(1)第一个阶段:案例教学
主要以数学问题为主线, 学习基本概念, 基本理论和基本设计方法。
(2)第二个阶段:项目驱动,小组互助式教学
综合运用所学知识和方法, 采取小组互助的形式分析和解决实际问题,做一些小的项目和一些功能相对完整的中等程度项目。
五、教学手段
充分利用现代多媒体技术和网络平台,激励个性化学习。
(1) 在自学、上机实践和课外辅导中,利用课程学习平台,提供丰富的教学资源和讨论、答疑园地,使用作业平台,完成自测作业和部分主题作业的发布、提交、自动批改和统计分析。
(2) 公布的教学资源包括教学大纲、教学日历、考核指南(含样卷)和实验指导手册,CAI课件,还提供一些经典的程序设计范例以及有关的国内外学习站点的链接。
六、改革考核方式
采用多种形式考核学生的知识掌握程度和实践能力,包括笔试和实验考核,两者的比例是3:1,强调实验考核的重要性。
结束语
总之,对于数学专业的C语言教学我们采用兼顾理论,重在实践;采用形式多样的教学模式,旨在培养学生的程序设计的应用能力, 培养学生程序设计好的风格,养成好的程序设计习惯, 理解程序设计的本质。
参考文献
[1]“项目驱动+案例教学”模式在C语言教学中的应用[J]。叶健华等, 济南职业学院学报, Jun.2009 No.3 (Serial No.74) .
C语言教学的实践与思考 篇10
调整教学内容, 改进教学方法, 激发学生学习兴趣
目前国内高等院校在进行C语言课程教学时, 多数仍通过教师讲解、板书和各种媒体作为教学的手段和方法向学生传授C语言中的概念、语句、语法规则等内容, 这种灌输模式能较好地保证所讲授知识的系统性, 但因为知识枯燥, 学生学习的积极性不高, 教学效果较差。同时在培养学生的实际应用能力和创新思维方面也暴露出许多弊端。我们说学习编程的最终目的是解决实际问题, 所以要理论联系实际。对程序设计而言, 重点讲授程序设计的思维、方法和设计风格, 使学生能从更高的角度认识该课程的学习目的, 不局限于对语言本身的学习和编程技巧的掌握, 更注重对语言应用能力的培养。为了更好地实现教学内容的组织思路, 在教学过程中采用案例驱动的主题式教学和基于任务驱动的教学相结合的方式。
1.案例驱动学习的积极性首先来源于兴趣。所谓案例教学就是在教师的指导下, 对案例提供的客观事实和问题, 用所学的相关理论知识进行分析研究, 教给他们分析问题和解决问题的方法, 进而加深他们对基本概念和基本原理的理解。以实例介绍语句功能、格式、特点, 分析执行过程等。在《C语言程序设计》课程教学中采用案例式教学法不是完全放弃传统的教学方式, 而是将案例教学与传统教学方式相结合, 在教学过程中将案例教学融入到教学过程中。学生在学习过程中不再是完全被动的“填鸭式”学习, 而是积极主动地参与到教学过程中, 从而增加学生学习的兴趣。
案例教学法根据所学内容对所要讲授的案例进行精心设计, 教师在设计案例时, 必须接近实际, 与实际生活或工作相关且具有一定规模, 又能让学生感兴趣, 用由易而难的C程序案例入手去组织教学。初级阶段的案例按教学顺序设计, 尽量避免涉及后续章节的知识, 后续高级阶段的案例尽可能涵盖前面的设计内容, 以加深和巩固所学知识, 此时案例不但应使学生感兴趣而且要具有一定难度。
2.基于任务驱动的教学方法。该教学方法使学生的学习活动与任务或问题相结合, 以探索问题来引导和维持学习者的学习兴趣和动机。教师运用建构主义教学理论, 把教学内容设计成一个或多个具体的任务, 让学生通过完成具体的任务, 来掌握教学内容, 完成整个教学任务。
由于C语言程序设计课程的教学课时有限, 而需要讲授的内容又比较多。在教学中应该强调突出教学重点, 要求学生掌握C语言基本知识, 以及程序设计的基本原理、结构化程序设计基本方法。在教学中, 将每一次讲课内容精心组织, 明确教学重点, 准备好课堂程序实例, 一般每一次8~10个程序, 实施“精讲精练”。老师讲解结束后, 学生在课堂内自己亲手运行程序, 调试程序, 老师随堂进行辅导。
强化实践教学环节
C语言课程的实践教学环节包首先要做到及时答疑, 精讲多练, 适当安排习题课。实际上, 在理解课程内容与能够较好完成习题之间还有明显差距。要避免这种情况, 教师应适当安排一些习题课, 及时答疑和批改作业;学生通过做一定量的习题, 可以积累一定的经验, 同时对程序设计的精髓会有所领悟, 从而重视上机实验环节。程序正确性判断的实用方法是上机进行程序调试, 而对程序调试这一艰苦工作的熟练掌握, 只有通过大量上机才能做到。因此, 加强程序设计的上机实践环节显得格外重要, 也是培养学生创造性思维的手段之一。在上机实验过程中教师要督促检查学生在调试程序时有可能会遇到各种问题, 针对出现的语法、逻辑、算法和运行等不同错误, 采用不同的方式去解决。
程序设计教学中自主学习
在当今信息时代, 知识总量以成倍速度递增, 自主学习的培养是现代教学发展的必然趋势, 是现代素质教育的灵魂。自主学习是指学习者在把握学习规律的基础上, 能够根据学习内容、学习情景、学习条件、个人学习的特点与因素, 自觉主动地选择学习方法, 组织调控学习活动, 最终表现为乐于学习、善于学习、实现自身发展的需要。实现课堂自主学习要在教师的指导下, 让学生成为教学的主体, 充分调动学生的自觉学习、主动学习、学会学习的积极性, 培养学生主动学习的意识、习惯和能力。C语言程序设计课程内容较多, 课堂教学中无法把所有内容都讲到, 这就要求我们必需在教学中努力培养学生的自主学习能力。运用问题引导教学手段来激发学生的思维, 使之达到自主参与、自觉发现、自我完善、自行掌握知识的目的。自主学习要让学生积极能动地参与教学活动, 积极主动地进行学习认知和学习实践活动。
教学是一门艺术, 它是教师的创造性、能动性、科学水平的综合体现。教师要想一个程序设计获得良好的效果, 其关键就在于对教学内容和教学方法进行合理的组合。但现实中由于教学目的、教学内容及学生情况等因素的千差万别, 没有一种教学模式或方法是普遍适用的, 惟一的原则就是根据实际情况采用合适的教学模式和教学方法。在理论与实践结合过程中传授和学习基本知识, 在动手实践中引导学生运用所学知识去分析问题和解决问题。通过课程教学方式的改变, 激发学生学习兴趣, 使学生不仅掌握高级编程语言的知识、编程技术和基本算法, 更重要的是掌握程序设计的思想和方法, 具备利用计算机求解实际问题的基本能力, 能灵活应用高级编程语言进行程序设计, 以适应社会发展的需求。
参考文献
[1]谭浩强.C程序设计 (第三版) [M].北京:清华大学出版社, 2005.
[2]陈宝贤.C语言程序设计实验指导[M].北京:人民邮电出版社, 2005.8.
[3]石志国等.C++程序设计教程[M].北京:清华大学出版社北京交通大学出版社, 2005.7.
高职C语言教学浅析 篇11
【关键词】C语言;学生兴趣;教学方法
现在计算机已普及到各行各业,深入到各级层次。在我国高职院校教育中,C语言不但成为计算机专业的必修课,而且也成为非计算机专业的学习课程。做好该门课程的教学具有非常重要而深远的社会意义,现将我在C语言程序设计课程中教学内容、教学手段、教学方法等方面的改革与取得的教学效果与大家做一探讨
一、努力培养学生的学习兴趣及正确的思维摸式
兴趣是学习的关键,兴趣决定了教学效果的好坏。初学C语言时,很多学生感到新奇、好玩,这不能说是兴趣,只是一种好奇。随着课程的不断深入,大量的规则、定义、要求和机械的格式出现,很容易使一部分学生产生枯燥无味的感觉。为了把学生的好奇转化为学习兴趣,授课时我改变过去先给出定义和规则的讲授办法,而是演示一些由前几届学生自己编写的、有趣的程序,从而吸引学生,并告诉他们学习了C语言程序设计的内容后,大家都能够编出这些小程序。努力把枯燥无味的“语言”讲的生动、活泼。
二、循序渐进
高职学生第一次接触计算机语言,“通俗性、可接受性”的教学原则同样适合于这门课的教学。在课程讲授过程中,我没有把重点放在语法规则的叙述上,而是放在算法和程序设计方法上,通常由几个例题引出一种语法规则,通过一些求解具体问题的程序来分析算法,介绍程序设计的基本方法和技巧,既注重教材的系统性、科学性,又注意易读性和启发性。从最简单的问题入手,一开始就介绍程序,要求学生编写程序,通过反复编写、运行程序来掌握语言的规定和程序设计的方法。同一个语法规则、同一种算法,在选择例题时也是由简到难,逐步呈现给学生。在学习上不要求学生死记语法规则,而是要求学生能把各个孤立的语句组织成一个有机的、好的程序。注意培养学生良好的编程风格,让学生在编制程序过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的。
三、改进授课方法、实现教学相长
(一)采用启发、引导的教学方法
(1)教师在教学过程中,应当注意设置疑难问题,引导学生思考和探索,让他们的思想活跃起来。我教学时发现,学生问不出问题的原因往往在于没有真正学好。实际上,问题是最好的老师,是学生学习的引导者,没有问题便没有深入。在教学过程中,引导学生在问题解决中学习,即提出问题,给时间让学生思考、讨论、解决问题,从而更深入地展开学习。实践证明,这种教学方法充分调动了学生学习的积极性和主动性。例如 ,在讲数组的概念时,我先设置问题:编程计算10个人的英语平均成绩。根据以前所学,学生会想到:需要说明10个类型相同的变量用于存放10个人的英语成绩。进一步要求:计`算50个人的英语平均成绩,这时候如再说明50个变量,则会将问题麻烦化,学生此刻需要讨论该如何合理说明变量。再深入一步:求100个人的英语平均成绩。此时,当教师引出数组的概念、分析数组的性质时,学生不仅能够记住数组的性质,还能够知道在什么情况下使用数组类型,达到事半功倍的效果。
(2)教给学生正确的学习方法,引导学生掌握程序设计的思想和方法。经验丰富的软件设计者都知道程序设计的关键在于找到解决问题的方法,即算法。根据软件工程的思想,当拿到一个任务时,首先应将这个问题自顶向下逐步细化,逐层向下分解,直到满足每一个要求。实现时,可以先用流程图描述出算法,进而写出合理的算法,再将之转化成程序。
(二)采用目标教学法,使学生明确目的,确立主题
学生是认知主体,是信息的主动接受者,但也并不能否定教师的指导作用,教师作为知识的先知者,自然清楚所学内容哪些是重点及难点,哪些是只需一般掌握的,如果脱离了这一点,学生有可能会不加区分地对所学内容完成认知,进而导致其知识主结构的无法确定,所以教师在进行教学设计的第一步还是要进行目标分析,指导学生确立主题。
四、校企结合,加强实践教学环节
高职教育着重培养具有实际工作能力的技术型和应用型人才。为了使学生学习到的知识与社会接轨,可以创建校企结合的课程建设方法。听取企业家对C语言程序设计教学改革的意见、由企业向学校提供实验(实习)条件、以企业作为学生的校外实习基地,通过这些方法使学生熟悉公司内的编程环境。学校还可以邀请企业家为学生开讲座,派遣青年教师到企业去实习,使教学的内容与企业的实际更为贴近。高职院校作为企业的人才培育基地,发挥技术和设备的优势,为企业提供支持,向企业输送合格毕业生,校企结合实现双赢。
浅析C语言中循环结构的教学方法 篇12
关键词:C语言,程序设计,循环
1. 前言
顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构, 一个程序的任何逻辑问题均可用这三种基本结构来描述。所以在高级语言程序设计课程中, 掌握这三种结构是学好程序设计的基础。而循环结构是这三者中最复杂的一种结构, 几乎所有的程序都离不开循环结构。在C语言中, 循环结构主要包括for、while和do-while三种语句, 其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举, 但是对于那些没有经验的初学者来说, 难度却不小。本文从初学者的角度, 阐述了C语言中如何建立循环的思想。
2. 如何设计引例
英文原版教材, 循环是这样描述的:repeatation, 重复。《辞海》上说循环是指事物周而复始的运动或变化。由这两个定义可以看出, 循环重在强调重复。
2.1 运用实例解释循环思想
在一堂课的设计过程中, 引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化, 有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。例如:春夏秋冬四季的更替, 汽车内燃机的作功过程:进气——压缩——燃烧——排气, 叉车装货、运货、卸货的过程。3个例子的共性在于, 它们都是周而复始的、重复的运动, 为了研究问题本质, 只要找出规律, 将重复频率高的相同部分作为重点进行突破, 可以为我们的研究节省时间, 提高工作效率。
比如, 我们要提高发动机效率, 并不需要要研究千次、万次的燃烧过程, 只要从研究一次进气、压缩、燃烧、排气一个周期入手;
再如运输问题, 我们可以通过一次往返运输过程的研究, 明确该从哪些环节下手实现安全、快捷、节能等问题。
2.2 编程中的循环问题
现在我们可以提出一个问题:在计算机程序设计的世界里是否也有类似的这种相同操作重复出现的问题呢?我们又当如何提高程序设计的工作效率呢?
利用最简单累加求和的例子。
例:求1+2+3+4+5+…+10的和。
利用所学知识学生很快能写出这个问题的程序:
接下来把题目改成:求1+2+3+4+5+…+100的和。同样学生可以利用上面的方法实现:
在编写的过程中学生会发现此种方法虽然可行, 可是写起来麻烦费时。我们如何对其进行改进呢?
首先, 复杂操作简单化——将一个复杂操作化为多个简单操作;
经过改进之后会发现, 虽然每一行变简单了, 但是行数却增加了, 在工作量上并没有减少。经过观察可以发现, 被框起来的部分虽然不同但已经十分相似。下面引导学生如何利用常量与变量的关系把不同的行变成相同的, 也就是第二步变化。
接下来, 简单操作相同化——多个简单操作整理成相同操作;#include
经过第二步之后会发现原本不同的语句变成了相同的语句, 我们在整个过程中都做着重复的、相同的事情, 也就是前面所说的循环。下面就可以引出本节课的重点循环结构。
最后, 相同操作重复化——设计控制相同操作执行多次。
通过实例总结, 循环结构程序设计的思想:
(1) 复杂操作简单化——复杂操作化为多个简单操作;
(2) 简单操作相同化——多个简单操作整理相同操作;
(3) 相同操作重复化——循环控制相同操作重复执行
经过这几步变化可以将循环的思想简单明了的呈现在学生眼前, 学生只有真正理解掌握了循环的本质, 才能在以后的学习过程中很好的去运用。这种方法在日常教学中得到了很好的效果, 也得到了学生的认可。
3. 循环本质
循环结构程序设计的任务就是设计一种能让计算机周而复始地重复地执行某些相同代码的程序。换句话说就是:相同语句程序员只编写一次代码、并让计算机多次重复执行。将程序员从大量重复编写相同代码的工作中解放出来, 计算机的工作量并没有减少。
利用循环的好处是:节省编程的书写时间, 减少程序源代码的存储空间, 减少代码的错误, 提高程序的质量。
这就是程序设计过程中循环的本质。
了解掌握了循环的本质接下来讲解循环的三要素、三种循环语句的结构及执行过程就很容易被学生接受了。
4. 结束语
此方法较以前的教学学法有了很好的改进, 对于循环问题学生不再有畏惧感, 也为以后数组及其他知识的学生打下了基础。
如何让一名初学者尽快摆脱日常的思维定式, 更加透彻地理解和掌握程序设计中的基本思想, 领会程序设计的精髓, 总结出程序设计中每一种程序设计结构的本质及适合解决的问题, 是高级语言程序设计这门课程在讲授过程中, 应该时刻注意的问题。
参考文献
[1]谭浩强.C语言程序设计 (第二版) [M].北京:清华大学出版社, 1999
[2]苏运霖译.计算机程序设计艺术第1卷基本算法[M].北京:国防工业出版社, 2002
【C语言的教学方法】推荐阅读:
C语言中指针的教学05-29
C语言教学方法09-26
C语言教学网站09-04
C语言教学中指针07-13
C语言教学改革10-08
《C语言程序设计》双语教学的实践与思考06-15
单片机C语言教学06-30
C语言专业教学探讨09-01
C语言程序设计2教学大纲10-16
c语言程序设计课程教学大纲20107-26