教学大纲c程序设计(精选8篇)
教学大纲c程序设计 篇1
《C程序设计》教学大纲
一、课程的性质和任务
本课程为计算数学专业本科生的必修课。通过对C程序设计的基本知识、基本概念、基本技能的学习和训练,使学生掌握C语言的语法规则、开发环境以及程序设计的基本方法和技能。培养学生利用C语言进行程序设计的基本能力,并为后续专业课的学习以及在可视化环境下进行面向对象的编程打下扎实的基础。
二、课程教学与基本要求
重点介绍C语言的基本知识(如基本数据类型、表达式、数组、函数、宏定义、指针、结构和文件)和程序设计的基本方法(即:结构化程序设计方法以及顺序、选择、循环、模块等结构的程序设计方法),还介绍指针、文件等在程序设计中的应用。
三、适应专业
计算数学、基础数学、经济管理专业本科学生。
四、预修课程
计算机基础知识。
五、学时
总学时:98学时 讲授学时:68学时 实验学时:32学时
学分:4 第一、二章 C简介、算法 8学时
第三章 数据类型、运算符、表达式 6学时
第四章 顺序结构程序设计 4学时
第五章 选择结构程序设计 4学时
第六章 循环结构程序设计 6学时
第七章 数组 8学时
第八章 函数 6学时
第九章 编译预处理 3学时
第十章 指针 12学时
第十一章 结构体与共用体 5学时
第十二章 位运算 2学时
第十三章 文件 4学时
六、讲授内容
1.C语言的特点、简单的C程序介绍、C语言的编译环境
2.算法的概念、特性,三种基本结构、用传统流程图和N-S流程图表示算法。3.C的数据类型(整型、实型、字符型等),运算符和表达式。4.数据的输入和输出(printf()和scanf()函数等)、顺序结构程序设计。
5.选择结构程序设计:关系运算符和关系表达式、逻辑运算符和逻辑表达式、if语句和switch语句。
6.循环结构程序设计:用goto语句和if语句构成循环、用while语句、do-while语句、for语句构成循环以及break语句和continue语句。
7.数组的定义和使用(包括一维数组、二维数组和字符数组)。
8.函数的定义和调用,函数的嵌套调用、递归调用;局部变量与全局变量、变量的动态存储和静态存储;内部函数与外部函数。
9.预处理命令:宏定义、文件包含、条件编译。
10.指针变量的定义和使用;数组的指针和指向数组的指针变量、字符串的指针和指向字符串的指针变量、函数的指针和指向函数的指针变量;指针型函数和指针数组。
11.结构体与共用体变量的定义和使用,结构体数组和指向结构体数据的指针,枚举类型。12.位运算符和位运算,位段。13.文件的打开、关闭与读写。
七、实验内容和学时分配(34学时)1.熟悉C语言的编译环境(2学时)
2.C的数据类型(整型、实型、字符型等),运算符和表达式。(2学时)3.数据的输入和输出(printf()和scanf()函数等)、顺序结构程序设计(3学时)。
4.选择结构程序设计:关系运算符和关系表达式、逻辑运算符和逻辑表达式、if语句和switch语句。(3学时)
5.循环结构程序设计:用goto语句和if语句构成循环、用while语句、do-while语句、for语句构成循环以及break语句和continue语句。(3学时)6.数组的定义和使用(包括一维数组、二维数组和字符数组)。(3学时)
7.函数的定义和调用,函数的嵌套调用、递归调用;局部变量与全局变量、变量的动态存储和静态存储;内部函数与外部函数。(3学时)8.预处理命令:宏定义、文件包含、条件编译。(2学时)
9.指针变量的定义和使用;数组的指针和指向数组的指针变量、字符串的指针和指向字符串的指针变量、函数的指针和指向函数的指针变量;指针型函数和指针数组。(7学时)10.结构体与共用体变量的定义和使用,结构体数组和指向结构体数据的指针,枚举类型。(2学时)11.位运算符和位运算,位段。(2学时)12.文件的打开、关闭与读写。(2学时)
八、教材与参考书
教材:谭浩强, 《C程序设计》(第二版),清华大学出版社,1999年 参考书:谭浩强, 《C程序设计题解与上机指导》,清华大学出版社,2000年
教学大纲c程序设计 篇2
C / C + + 语言程序设计是计算机专业本科生的专业基础课程,也是大学计算机基础系列课程的核心课程。通过本系列课程的学习,旨在使学生掌握程序编写的基本技能,培养程序设计思想和方法,养成良好的编程风格,编制高效可靠的程序,进而具备灵活利用所学知识解决实际问题的能力。长期以来,高校都在不断地探索和实践关于C /C + + 语言程序设计课程的教学模式。传统的教学一般着重概念和语法规则,缺少学习的实用性和针对性,实验环节与课堂教学环节存在不同程度的脱节。面对繁复枯燥的语法规则和程序结构,学生也很难的有学习兴趣。因此,根据质量工程的相关要求,研究教学改革方案,找出目前C /C + + 语言程序设计课程在教学中存在的主要问题,对现有的教学方法和教学手进行现代化研究与实践,具有十分重要的现实意义。
2 C / C + + 语言程序设计教学现状
本人承担了多年的C /C + + 语言程序设计课程的教学工作,在教学过程中发现了现有教学模式的一些问题和不足,分析总结如下:
( 1) 教学中过度依赖课本,“照本宣科”现象比较普遍。受中学教育模式影响,大多数教师授课时倾向于依赖选定的教材或很少几本参考教材授课,课程章节固化,凡事以课本为主,课本里有什么就讲什么,授课内容“流程化”“格式化”。这虽然有助于教学内容的结构和完整,学生也能直接沿用中学培养的习惯获得知识,但这只不过是“填鸭式”教学的延伸。长此以往,学生学习的主动性会逐渐丧失,对课本外的东西提不起兴趣,学习也只是为了应付考试。
( 2) 过于偏重理论教学,实践教学所占比重较小。在有限的课时教学中,传统方式仅能将基本的、重要的概念、语义语法规则教授给学生,而对其应用方式、更深层次的知识点、探索及发散性的科学问题涉及较少。课程考核也大多片面强调书面成绩,对于C /C + + 语言程序设计这种实践性要求强的课程,书面考试并不能反映出学生对课程的掌握水平,反而误导部分学生靠“死记硬背”课本上的知识点和程序片段蒙混过关。
( 3) 课程衔接性差,在知识体系中,没能很好形成与“计算机文化基础”和“计算机应用基础”的衔接,也没有把C /C + + 语言知识应用于专业问题的描述和求解中。在教学中,缺少利用所学知识解决实际问题的教学引导,书本与现实隔离,很难做到“学为所用”。
针对上述问题,结合本校实际,对C /C + + 语言课程教学的主要环节教学模式、上机实践、课程考核等方面进行了研究与探讨。
3 C / C + + 语言程序设计教学改革与探索
结合C /C + + 课程的特点,针对传统教学中存在的问题,积极进行课堂教学、实验教学和考核方式的改革,具体从以下几个方面进行了一定的探索实践:
3. 1课程教学改革
( 1) 打破课本章节格式,探索“实例驱动式”和“阶梯式”教学方法针对C /C + + 语言程序设计的课程特色,强调“从实践中来,到实践中去”的教学目标。在课程教学中,注意引入具体化的实例,使得概念的抽象都来源于实际的例子。比如在C语言教学中发现很多同学上课时能听懂,看别人的程序也能看懂,但自己动手去写时却无从下手。这种情况不是个例,而是学习语言类课程时大多数学生都存在的问题。在教学中可以结合生活中的实际例子来示范,为学生“看”和“写”搭建桥梁,培养程序设计思想。例如,从做面包到C语言程序编写的示例( 图1) 。在教学中,可以引导学生分步考虑面包的制作工序,操作中需要摒除详细的细节部分,抽象出核心的流程,然后一步一步代入C语言的程序设计结构和语法规则,使得学生对课程内容有熟悉度和参与感。
通过“做面包”的例子,可以结合变量在内存中存储的方式,帮助学生掌握“变量需要先声明才能使用”的知识点,同时也铺垫了函数的概念,还可以进一步扩展加入分支结构( 面包的不同口味) ,循环结构( 制作多份面包) 等。通过动员学生逐步思考,一起动手做面包,把计算思维与有趣的课堂互动结合起来,既提高了学生学习的兴趣,也“润物细无声”地把编程思维传达到学生心中。而后在学生通过课程学习已经建立了一定的编程思维的基础上,再结合我校的卓越工程师计划,把实际项目引入课堂中来,深入引导实例教学,实现学生从“课本学习”到“实践学习”的转变,通过项目实例让学生亲身感受所学知识的用处,也为毕业后的职业发展打下扎实的基础。
另一方面,知识的获取需要一个循序渐进的过程。这就需要教师在备课时,将同类型问题找出来,将这些问题按难易程度排队上课,先让学生解决最简单的问题,再依次提高问题的难度。通过教学,学生对于同类问题的解决就有了比较深刻的认识。比如上面提到的做面包的问题,同一个问题可以分级扩展,从做一份面包到做多份面包,从做单一口味的面包到做多种口味的面包,从做面包到卖面包,进而面包分类,存货处理等等。通过与实际例子结合循序引进,反复强调知识点加深学生印象,打牢基础。C语言的开设一般在大学一年级,此时着重培养学习兴趣和规范学生养成良好的编程习惯,而C + + 的学习着重于面向对象的程序设计,一般开设于大二下学期或者大三上学期,在C + + 面向对象语言学习时,结合类和对象的概念以及继承和派生等等知识点还可以对“做面包”的问题再做进一步扩展,从做面包到做馒头、饼干等各种糕点,鼓励学生动脑思考逐渐扩充功能,可以自己编程开发一个具备制作、买卖、分类、存货处理等功能的糕点铺。教学中可以根据需要切换各种生活场合,提高学生兴趣,强调编程思想源于生活,服务于生活,学生在日常中也会经常回想起课堂所学知识,达到事半功倍的效果。
( 2) 高效利用团队教学资源,体现从计算机基础课到专业课的顺利交接
C / C + + 语言程序设计立足于引导学生建立基本的“人机互动”概念,构建编程思维理念,掌握核心程序设计方法,开发“发现问题,凝练问题,求解问题”的能力。它是计算机基础课到计算机专业课程的重要衔接,所以在课程设计上,要逐步培养学生从“使用计算机工具→理解计算机工作原理→开发计算机软硬件”的计算思维。但这个目的只通过一门课程是无法完成的,在教学过程中,需要利用院系优秀的教学资源,组建教学团队,使得课程选取→大纲制定→计划培养→落实实施形成系统化,脉络化的结构,加强课程之间的衔接和交互,增加知识的穿插讲授,使得各个课程相辅相成,相得益彰,起到事半功倍的作用。通过对不同专业需求的分析,在制定教学大纲时注重课程的衔接,在实际操作中注重教学团队中任课教师课堂情况的反馈,通过强化教学内容和学生掌握情况双重渠道,避免课程之间的脱节。针对一门课程,学生学分的获取和讲授课时的结束并不意味着本门课程的结束,在形成系统化的课程设计后,可以有效利用每门课程的信息反馈,有的放矢的对学生薄弱环节进行再强化,达到扎实学习,学以致用,而不仅仅是应付考试的良性循环机制。
3. 2上机实践改革
计算机语言类课程的学习关键在于动手实践,但即使意识到了实践的重要性,学生真正动手也往往受限于上机时间和实践平台。在传统的实验教学模式下,大多此类课程都由实验指导书作为参照,学生按图索骥的输入一些代码,完成一些任务。评判的方式也大多依赖于教师,学生实践得不到实时反馈,积极性很难调动起来,课下也不会有意识去编程实践。通过借助我校搭建的ACM/ICPC竞赛平台,学生平时有充足的题目可供练习。而且所有题目规范,输入输出格式明确,评判也由机器在后台完成,正确与否也能实时反馈。通过多组数据的测试,竞赛平台能够发现并迫使学生修正编程中存在的容易人为忽略的问题。另外,ACM/ICPC竞赛平台还可以按照班级、年级、专业等排名,学生也能实时监控自己做题的数量、成功率等,并可以通过Q&A的环节进行错误求助并与其他同学沟通。学生的学习积极性一下子就提高了起来,出错的题目,知识点通过讨论也能自己在课余时间解决。
通过与ACM/ICPC竞赛平台的结合,主要实现了以下几个 方面的探索:
( 1) 激发学生学习兴趣,创造兴趣学习小组
在ACM/ICPC的平台的辅助下,激发学生分组分队共同解决问题,成立程序编写互帮互助小组,采用不定时竞赛的方式对各小组进行考评,并辅以奖励和惩罚措施,尽量让每个学生都不落队。通过组队,同学之间也有了更好的沟通渠道,每个人成为团队的一部分,培养了学生的分享和互帮互助的团队合作精神。
( 2) 鼓励学生涉猎算法等相关知识,培养计算思维
通过ACM选拔,ACM战队的主力队员会通过集训学习数论、计算几何、动态规划、二分图、博弈论、网络流等相关知识,但竞赛选拔的队员屈指可数。这些优秀的种子选手和现有的ACM培训资源却未被大多数学生利用。C /C + + 语言类教学和大多数计算机类课程所追求目标,其核心就是培养学生的计算思维。我们采用了通过优秀学生和ACM集训队带队教师的不定期讲座和培训,以及培训资料等资源的共享来吸引更多的学生参与到程序设计的队伍中来,并已经在学生中通过口耳相传起到了一定的影响力。在上机课中适度引入部分难度稍大的,需要借助其他相关知识才能解决的问题,鼓励学生查阅资料,自己动脑,动手去分析和解决问题,养成良好的主动学习习惯。
3. 3课程考核改革
课程设置的目的不是考试,而是解决问题,特别对于C /C + + 语言程序设计类需要实践的课程尤其是这样。传统的卷面考试不仅不能反映学生对课程的掌握程度,反而诱导出诸如靠划重点、死记硬背程序企图蒙混过关拿到学分的问题。所以在对C /C + + 语言程序设计考核时,我们采用了平时成绩和期末机考相结合的方式。考试成绩分三部分组成,上课活跃度占30% ,分组实践占30% ,期末机考占40% 。其中,上课活跃度包括出勤次数和上课提问情况; 分组实践指通过小组成员共同努力分析、解决实例的情况,一般在上机时根据进度提出难度稍高的问题,鼓励学生通过团队协作,查阅课外资料等来完成; 期末机考是从ACM平台上抽取一部分题目作为期末考核,考察学生实际编程能力。
4结束语
在研究与探索C /C + + 语言程序设计教学的过程中,通过“阶梯式”“实例驱动”的教学方法,辅以ACM竞赛平台,优化配置团队教学资源,追求实用性、系统化、高效率的课程实现,全面提升学生的对程序设计的实践应用能力。通过教学改革,提高学生在学习中发现问题、分析问题和解决问题的能力,培养学生编程思维,计算思维。实践表明,本文提出的教学改进方法可以激发学生学习的热情和兴趣,有效地提高了C /C + + 语言程序设计课程的教学效果。
摘要:针对C/C++语言程序设计课程语法规则繁琐、概念抽象等特点,结合我校实际情况,通过深入分析课堂教学、上机实验及课程考核等教学环节,从教学方法、实验设计及课程考核三方面提出改进方案,提出了以培养学生计算思维为最终目标,以提高学生学习兴趣,激发学生学习积极性为目的,以“阶梯式”“实例驱动”为教学方法,整合教学团队共同促进教学的模式。通过教学改革,激发了学生对C/C++语言程序设计的学习兴趣,培养了学生的动手实践能力,提高了教学质量水平。
教学大纲c程序设计 篇3
关键词:C++;程序设计;教学方法;教学改革
0引言
C++语言运用范围非常广,在软件设计、网络通讯、游戏娱乐等等领域都能涉及到,也是当前世界上使用最广的编程语言。但是行业的发展受到多方面局限,人才的缺失是行业发展最大的阻碍,许多高校都意识到这个问题,相继的开始《C++语言程序设计》课程,主要就是让计算机专业的人才能够多涉及这方面课程,提高学生的自主学习与独立思考能力,增加就业的几率。传统教学方式,存在教学目标不清晰以及教学方式古板的问题,很多学生对这门学科的重要程度认知不足,教学方式与内容的乏味让学生对此课程并无多大兴趣。本文是根据多年来的经验总结以及市场调查,从教学目标与内容多方面进行研究,以此追求有效的教学改革。
1教学中存在的普遍问题
1.1学生学习目标不明确
教学的主要目的是为了培养学生的兴趣以及软件编程能力,提高学生的独立思考、分析与解决问题的能力,提高就业的几率。以往的课程都是由不同教师来传授,每一个教师都只关注自己本科教学,并没有从全局效果分析,学生对自己的学习目标不明确,导致学习兴趣降低。没有目标的学生犹如行驶中迷失了方向的帆船,不知所措。当学生对自己的学习有了清晰的规划,就会不断朝着目标的方向努力前进。
C++涉及的概念都是较为复杂的,在学习过程中灵活多变,出错可能性非常大,可以说想要学好此课程是相对较难,所以很多学生都产生退却念头;同时C++不仅是纯对象语言,当中还涉及到程序设计语言,面对对象并不是单一的。这种特性导致了C++语言与C语言能够兼容存在。两种语言之间有时不需修改就能够使用,所以在刚开始学习时,学生觉得相对简单。[1]。然而,这两种语言也必然存在不能共通之处,学生要真正掌握两种不同的语言,就必须对其进行对比,找到其相同之处和不同点。
1.2教学重点偏向语法,课后延伸匮乏
在语言教学中侧重与语法[2]。在传统的教学当中,不管是老师教授还是教材讲解,都是先把概念推从出去,再理解规则,最后用案例讲解。概念知识相对来说不仅枯燥,要想记住也是较难的,在教学过程中,要引起学生兴趣非常难。虽然传统教学中有案例分析,但是案例分析都是各自孤立的,只是针对某一部分的知识,学生无法从中感受到实际运用价值。枯燥无味的文字不仅不能引起学生的学习兴趣,反而会让他们觉得反感。被动地接受理论知识只会让学生很快就忘记了教学内容,只有生动的教学方式才能激发起学生的兴趣。
教材课程中有课时限制,所以教学过程基本上都是从语法、规则、案例等等形式来落实。每一堂课讲解的时间都有限,再加上教师的课前准备不足,那么这堂课的实际效用就非常低。如果在课后没有进行延伸与巩固,那么学生要掌握更深层次的知识是不可能的。在这种情况下,学生掌握的知识只是皮毛,甚至可以说有些接收能力比较差的学习是掌握不了课堂知识。如果没有进行课后巩固,基本上这堂课的知识就是一闪而过了。对于老师传授的知识,学生不可能过目不忘,因此,只有不断对知识进行巩固和复习,才能让学生牢牢记住知识。
1.3教学方式无结合企业实际需要
学生在C++语言的学习中,通常都是局限在一部分知识中,并没有顾全大局的理念。传统的教学都是采用循序渐进的形式,每一节课都给学生灌输新概念、新规则,学生没办法从所有学习的知识中进行融合使用。[3]。就算是在教学中加入了大量的实验课程,也只是围绕某一个章节某一个知识进行实验安排。这种实践课程也只是一时兴趣,学生在学习一段时间后就会产生厌倦,学到的知识进而就无法使用到企业公中。单调的教学模式显然已经让学生失去了兴趣,这对于提升学生的思考能力和动手能力毫无帮助。每一个学生在毕业后都会步入社会,因此,了解社会环境和企业对于人才的要求对于学生来说尤为重要。如果教师一味地向学生传授课本知识,即便学生能够牢牢记住这些理论知识,也不知道如何将其应用到实际操作中。因此,在教学过程中,教师应该注重理论与实际的相互结合,把学生培养成为综合型的人才。
2教学改革策略
针对上述对C++语言教学存在问题的概述,本文从以下几个方面进行策略研究,在实际使用中也取得了不错的反馈。
2.1明确学习与教学目的
学习的动机是学生能够持续进行的基础,完成整个学习与巩固过程都需要学习动机来维持。现在大学生在学习过程中会考虑到今后就业方向,如果在课堂当中能够开展与今后就业相关的内容,那么学生会非常重视这次学习,效果自然就非常明显。对于不同的教学内容,学生往往会表现出不一样的兴趣程度,因此,老师首先要了解学生在学习过程中最为关注的问题,并且针对这些问题设计和安排教学内容。学生对于感兴趣的教学内容往往会表现出更强的积极性和主动学习性,学习效果也会有所提高。结束校园学习后的学生都会走向社会,他们对于未来的就业环境和企业的人才需求表现出更强的兴趣,因此,老师在教学过程中可以适当插入这部分的内容。
2.2教学内容要结合整体与具体两个方面
教材的编排几乎都是从概念、规则、举例这样的形式,但是知识的分散导致每一个章节的内容都联系不上,学生感受不到整体的编程效果。所以,在教学当中,应该注重整体到具体的方式,让学生能够先了解整个C++编程过程,然后再在每一个程序中融入教学内容,把教学具体到每一个知识点中,巩固学生的知识能力,学生在学习完所有知识后就已经完成整个设计。这种教学思路对程序类型的课程学习有极大作用。教学首先必须具备清晰的规划,才不会显得杂乱无章。教师应当确定一个大致的教学方向,然后再对教学内容展开详细的安排,在规划教学内容时,必须充分考虑不同学生对于教学任务的完成程度,从而对教学内容的难度进行适当的调整,尽可能地让更多的学生掌握教学内容。
2.3教学方法注重同中求异、异中求同
教学当中注重同中求异,异种求同的话,能够让学生抓住事物的本质,对事物的理解加深,有利于思维拓展。为了能够让学生的学习更加深入,可以用对比学习的方式,这样的教学效果会更加好。比如说,把c++语言与C语言进行对比教学,这样学生不仅能够学习到新内容,还能够巩固旧知识,得到双收益效果。其实两种语言在设计思路上有较大差异,一种是面对程序语言,把数据与数据捆绑起来,另一种是面对整个过程的语言设计,用分块的模式教学。教学内容的不同并不是意味着教学方法也截然不同,把相似的内容集中起来教学,有利于学生更好地把握知识,采用不同的方法对相同的内容进行教学,有助于老师找到教学中的平衡点,发现更合适的教学方法。
2.4校园学习与企业联合,为就业作准备
很多计算机相关专业的学生为了能够快速就业,在校园里就会选择去外面机构培训。当然培训并不意味就是能提高就业率,主要还是看学生的态度以及掌握情况。如果在高校的C++语言学习中,可以用校园与企业合作的方式来教学,在教学当中可以加入机构培训的方式;在每一次学完知识后就加入实践活动,对于今后的就业帮助极大。同时,提高学生的学习能力以及适应能力方面也有很大帮助。学校更加注重的是理论知识的传授,而企业更加注重的是实际的操作,企业提出人才要求,学校能够更加有针对性地为学生制定学习任务,从而让学生更好地掌握相关的专业技能,让自己离开校园后尽快适应到社会的工作中。
3结语
本文提出了《C++语言程序设计》课程的教学改革思路,通过教学方法、模式的改变,来激发学生的学习兴趣与能力培养,用校企联合的方式来为今后就业奠定基础,累积学生经验的同时还能提前模拟就业。有教学实验证明,这些教学改革方式是能够在一定程度上提高教学效果,并且对编程类型的课程来说都有极大的借鉴作用。传统的教学方式显然已经不能满足人们日益增长的需求,社会环境是不断进步的,竞争是越来越激烈的,为了使学生具备更强的社会竞争力,学校必须转变教学方法,一方面要让学生掌握基础的理论知识,另一方面需要注重学生的操作能力培养。总体来说,就是要理论知识与实践操作相互结合,培养全能型的学生,对他们的知识掌握以及今后的就业都有极大帮助。
参考文献:
[1]杨庚.面向对象程序设计与C++语言[M].北京:人民邮电出版社,2012.
[2]杨杰,陈雪兆.《C++程序设计》教学中存在的问题及改进建议[J].湖南科技学院学报,2013,11(26):190191.
C语言程序设计课程教学大纲 篇4
中央电大教务处教学管理科 2007年08月29日
第一部分 大纲说明
1.课程性质、任务与目的
《C语言程序设计》是中央电大计算机科学与技术专业(专科起点本科)的一门专业基础课。主要任务是介绍C语言中的数据类型、数据表示、运算规则、语句定义、函数调用、程序结构、文件使用、编程方法等内容。目的是使学生能够利用一种计算机程序设计语言编写出解决较简单的数值计算和数据处理问题的程序,为学习后续课程奠定程序设计和算法设计的基础。
2.与其他课程的关系
学习《C语言程序设计》课程需要了解计算机基本组成,并具有对计算机进行基本操作的技能。本课程的后续课程为《数据结构》、《操作系统》、《数据库》等。
3.课程教学特点
《C语言程序设计》是一门知识性和实践性都很强的课程,必须在学习中掌握C语言的语法规则,并在上机实践中体会和加深理解,通过实际的上机操作训练,还能够学习到书本上学不到的知识和技能,提高自己进行程序设计和开发的实际能力。
4.教学主要内容
(1)介绍C语言上机操作环境、程序基本结构,系统函数的使用;
(2)介绍常用输入输出函数的作用;
(3)介绍C语言基本数据类型、常量、变量、运算符、数学函数、表达式等的表示与含义;
(4)介绍各种分支语句、循环语句的流程控制功能及相应的程序设计方法;
(5)介绍一维数组和二维数组的定义与作用,字符串数组的特殊存储格式与作用;
(6)介绍指针的定义和运算,变量存储空间的动态分配,数组名的指针含义;
(7)介绍用户函数的定义与调用,值参数和指针参数的使用,变量的作用域,递归函数;
(8)介绍结构和联合类型的定义与应用,结构链表的建立和使用;
(9)介绍文件的概念,文件的打开和关闭,字符文件和字节文件的处理操作。
(10)介绍利用C语言编写解决实际问题的程序设计思路和方法。
5.教学基本要求
本课程教学内容包括了解、理解和应用三个层次,并且逐步递进,具体含义如下:
(1)了解层次:记忆C语言中的基本概念和语法规则;
(2)理解层次:掌握C语言中的每个语法成分和语句的定义格式、含义及作用;
(3)应用层次:利用C语言,结合实际解决问题的需要,能够分析和编写程序。
第二部分 媒体使用和教学过程建议
1.课程学分和学时
本课程为4学分、72学时、第一学期开设。电视、实验和面授辅导学时各为20、27和25学时。课程中各章内容及学时分配如下表所示。
序号 一 二 三 四 五 六 七 C语言概述 数据类型与表达式 流程控制语句 数组和字符串 指针 函数 结构与联合
内容
电视学时 实验学时 面授学时 3 3 2 2 3 3 2 4 4 4 4 4 3 3 3 3 4 3 八
文件 2 3 4
2.教学媒体设计
(1)课程以文字教材为主,文字教材采用合一型。文字教材担负起形成整个课程体系系统性和完整性的任务,是学生学习的主要媒体形式。因此教材要概念准确、条理清晰、深入浅出、便于自学,并且要包含实验指导和实验内容。
(2)电视课程作为文字教材的强化媒体,配合文字教材讲授课程的基本知识以及重点和难点。
(3)面授辅导课程由面授教师系统地辅导教学内容,保证教学进度,检查学习效果,随时解答学生的问题,是非常重要的教学活动。
(4)CAI课件是利用计算机进行自主学习的重要教学手段,它能够集名师讲授、动画教学演示、作业练习、学习效果检查等为一体,不受时间、地点和空间的限制,深受学习者喜爱。
(5)网络资源媒体可以汇集有关教学文件为学生查询提供方便,还可以进行网络交流答疑活动,便于师生定期或随时开展。
3.教学过程建议
本课程的电视和面授课堂教学要把知识讲授与上机操作演示结合起来,同时要加强学生的上机操作练习和指导,使所学知识都能够得到上机运行结果的充分验证。
第三部分 教学内容和教学要求
第一章 C语言概述
(一)教学内容
1.C语言的特点
2.C语言中的基本语法成分和程序结构
3.常用输入输出函数printf和scanf的作用
4.C程序的编辑、编译、链接和运行
(二)教学要求
了解:C语言的特点,基本的语法成分,程序的结构,C程序的编辑、编译、链接和运行的过程。
理解:常用输入输出函数printf和scanf的作用
第二章 基本数据类型与表达式
(一)教学内容
1C语言中的基本数据类型;
2.整数、实数、字符、枚举等常量的表示;
3.使用#define编译预处理命令定义符号常量;
4.变量的定义和分类;
5.各种运算符的表示和应用;
6.数值、关系、逻辑表达式的求值;
7.常用数值函数的调用,如绝对值函数、平方根函数、指数函数、对数函数、取整函数等的调用。
(二)教学要求
理解:C语言中的基本数据类型种常量和变量的表示,运算符的优先级和结合性,表达式的构成,常用数学函数的调用格式与作用。
第三章 流程控制语句
(一)教学内容
1.if语句的定义格式和作用;
2.switch语句的定义格式和作用;
3.for语句的定义格式和作用;
4.while语句的定义格式和作用;
5.do---while语句的定义格式和作用;
6.continue和break语句的定义格式和作用;
7.return和goto语句的定义格式和作用。
(二)教学要求
理解:各种语句的定义格式;
应用:分析程序,按照解决问题的需要编写出相应程序。
第四章 数组和字符串
(一)教学内容
1.数组和数组元素的有关概念;
2.一维数组的定义和应用;
3.二维数组的定义和应用;
4.字符串的存储和字符与字符串函数的使用。
(二)教学要求
了解:数组和数组元素的有关概念;
理解:一维数组和二维数组的定义格式,字符串的存储格式,字符与字符串函数的调用格式;
应用:会分析含有数组和字符串应用的程序,根据数值计算和数据处理问题编写出数组应用程序。
第五章 指针
(一)教学内容
1.指针的有关概念;
2.指针的各种运算
3.数组元素的指针访问方式
4.数据存储空间的动态存储分配
(二)教学要求
了解:指针的有关概念;
理解:指针的各种运算符的含义,一维和二维元素的指针访问方式,动态存储分配与释放函数的含义;
应用:会分析含有指针操作的程序。
第六章 函数
(一)教学内容
1.函数的定义格式和各个语法成分的作用;
2.函数的调用格式以及调用过程;
3.值参数和指针参数的不同作用;
4.变量的作用域分类;
5.递归函数的概念和调用过程。
(二)教学要求
了解:函数的定义、声明、调用与返回的有关概念;
理解:函数的定义和调用过程,值参数和指针参数的使用,变量的各种不同作用域;
应用:会分析一个函数定义的功能,根据问题编写出对应的函数。
第七章 结构与联合(一)教学内容
1.结构的基本概念
2.结构的定义与初始化
3.结构成员的访问和结构变量的赋值
4.结构与数组
5.结构与函数
6.结构与链表
7.联合的定义与使用
(二)教学要求
了解:结构和联合的有关概念;
理解:结构和联合的定义格式,结构和联合成员的访问,结构作为函数参数的应用,结构作为链表中结点类型的应用;
应用:会分析和编写使用结构的函数或程序
第八章 文件
(一)教学内容
1.数据文件的概念
2.文件的打开和关闭,3.文件的操作方式
4.字符文件的访问
5.字节文件的访问
(二)教学要求
了解:文件的有关概念;
理解:文件的各种访问方式;
应用:会分析和编写使用文件的程序。
第四部分 实验
教学大纲c程序设计 篇5
一、本大纲编写的依据是《C语言程序设计》教学大纲。实验总学时:32学时
学分:1学分
二、适用专业:全院C语言公共课
三、考核方式及评定标准:
实验操作能力50%,实验报告50%
四、配套的实验教材或自编指导书:
《C语言程序设计学习指导》
五、实验项目概述与学时分配:
实验一:C语言开发环境与输入输出(4学时)
(一)实验类型:演示性
(二)实验类别:学科基础
(三)每组人数:1人
(四)实验目的和实验能力要求:
1.学习Turbo C2.0集成环境,掌握源程序编辑方法;
2.掌握在Turbo C2.0集成开发环境中编译、调试与运行程序的方法; 3.通过运行简单的C语言程序,初步了解C语言源程序的特点。
(五)实验内容:
1.设计一个C语言程序,输出以下信息: *************** Hello!
*************** 2.设计一个程序,从键盘输入一个圆的半径,求其周长和面积。
3.设计一个程序,从键盘输入一个小写字母,将它转换成大写字母输出。4.输入一个华氏温度,要求输出摄氏温度。公式是:C=(5/9)*(F-32)。5.输入一个球的半径,求其表面积和体积。(S= 4πr²,V= 4πR³/3)。
(六)主要仪器设备:
1.计算机:CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0
(七)所在实验室:计算机实验室 实验二:程序流程控制应用(6学时)
(一)实验类型:验证性
(二)实验类别:学科基础
(三)每组人数:1人
(四)实验目的和实验能力要求:
1.掌握Turbo C2.0集成环境中的单步执行;
2.熟悉if 与switch语句的格式、执行过程、使用方法及典型案例; 3.学会使用选择结构解决一般的实际问题,能编写简单的应用程序。
4.掌握循环结构while、do-while、for等语句格式、执行过程、使用方法及典型案例。
5.学习循环结构的嵌套使用。6.掌握分支与循环综合程序的编写方法;
7.学习并熟悉break、continue的区别与使用。8.学会常用数值与图形的编程方法。
(五)实验内容:
1.由键盘输入三个数,判断能否构成三角形。
2.某商店“五·一”长假期间购物打折。规则如下: 若每位顾客一次购物,①满1000元,打九折; ②满2000元,打八折; ③满3000元,打七折; ④满4000元,打六折; ⑤5000元,打五折;
编写程序,输入购物款,输出实收款。3.有下列分段函数:
编一程序,输入x,输出y的值。4.计算:S=1+2+3+4+„+n。
5.裴波那契数列的前几个数为1,1,2,3,5,8,„„,其规律为: 6.求出100~200之间的所有素数,输出时一行打印五个素数。7.编写程序用公式计算e的近似值。直到最后一项小于给定精度。8.从键盘输入任意多个整数(-999为结束标志),计算其中正数之和。9.求π近似值的公式为:
其中,n=1、2、3„设计一个程序,求出当n=1000时的π的近似值。
(六)主要仪器设备:
1.计算机:CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0
(七)所在实验室:计算机实验室
实验三:函数与宏定义的应用(6学时)
(一)实验类型:验证性
(二)实验类别:学科基础
(三)每组人数:1人
(四)实验目的和实验能力要求:
1.了解函数的定义方法,理解函数的调用; 2.初步掌握函数的递归、嵌套调用; 3.掌握函数调用的实参与形参的传递。
(五)实验内容:
1.编写一个函数,用递归的方法求1+2+3+4+„+n的值。在主函数中进行输入输出。
mc2.编写程序,输入m和n(n>m),求n的值。3.编写程序,求两个自然数m和n的最大公约数和最小公倍数。4.分别输入整数半径和实数半径,使用函数重载计算圆的面积。5.使用内联函数计算长方形的面积。6.用函数调用方法打印九九表乘法。
(六)主要仪器设备:
1.计算机: CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0
(七)所在实验室:计算机实验室 实验四:数组的应用(8学时)
(一)实验类型:验证性
(二)实验类别:学科基础
(三)每组人数:1人
(四)实验目的和实验能力要求:
1.掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法; 2.掌握求最大、小值、平均值、排序的方法以及有序数组的查找、增加、删除的编程方法;
3.初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写方法;
4.掌握数组的典型应用。
(五)实验内容:
1.应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。2.应用二维数组打印5行杨辉三角形。
3.从键盘输入两个字符串,将它们连接成一个字符串。4.编程序将输入的字符串删去空格后输出。5.编程实现将一十进制整数M转换为D进制数。(选做)6.已知一int a[20]数组,编程将值为偶数的元素移到数组前端,值为奇数的元素移到数组后端。(要求元素比较、移动次数尽量最少)
(选做)7.某班有10个学生,进行了“数学”、“语文”、“英语”、“C语言”等科目的考试,编写程序:
(1)将考试成绩输入一个二维数组;(2)求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分;(3)求每个学生的平均成绩、总分、不及格门数;(4)按学生平均成绩的高低排序并输出。
8.设计一个程序,打印杨辉三角形。(使用其它方法)
(选做)9.编写程序,实现str=str1+str2的操作,此处运算符“+”表示将二个字符串str1、str2连接成一个字符串str。用键盘将二个字符串输入字符数组str1与str2中,连接后的字符串存放在字符数组str中,并输出连接后的字符串str。
(六)主要仪器设备:
1.计算机:CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0
(七)所在实验室:计算机实验室 实验五:指针的应用(8学时)
(一)实验类型:验证性
(二)实验类别:学科基础
(三)每组人数:1人
(四)实验目的和实验能力要求:
1. 理解指针的基本概念和运算 2. 掌握指针与数组、指针与函数、指向字符串的指针的应用 3. 掌握多重指针的概念和基本应用
(五)实验内容:
1.输入3个数a,b,c,按小到大顺序输出。要求利用指针方法实现。
2.用返回指针类型函数实现字符串连接函数strcat(),通过1)输入字符串s1和s2进行测试,2)将字符串“string”作为参数与s1和s2的连接后的结果调用函数strcat()实现连接。
3.写一个函数,该函数从主程序接受一个字符串,将字符串中的数字和其它字符分开,形成二个字符串输出。
4.编一程序,实现计算器的功能,使得在操作系统下可以通过如下形式实现操作 calc 4 + 5 calc 3.7 * 7.9
(六)主要仪器设备:
1.计算机: CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0
C语言程序设计教学大纲72du 篇6
课程名称:中文名称 :C语言程序设计;英文名称:C Language Programming 课程编码:161002 学 分:4.5分
总 学 时:72学时,其中,理论学时:52学时;上机学时:20学时。适用专业:全校理工科各专业 先修课程:计算机基础 执 笔 人:李新玉 审 订 人:杜友福
一、课程的性质与任务
《C语言程序设计》是为全校所有的理工科专业的学生开设的公共基础课,也是一门重要的必修课。其目的是使学生掌握程序设计的基本方法,培养学生掌握利用计算机处理问题的思维方法与应用能力。要求学生掌握程序的三种基本结构及结构化的程序设计方法,了解并掌握几种典型的算法,并且能够熟练地运用C语言编写各种应用程序,为进一步学习其它相关课程奠定基础。
二、教学内容与学时分配
第一章
程序设计基本概念
(3学时)本章重点:
一、算法及特性;
二、结构化程序设计方法。难点:算法设计及其表示。第一节 程序和程序设计
一、程序;
二、程序设计。第二节 算法
第三节 结构化程序设计方法
第四节
C语言程序的基本结构
第二章 数据类型、运算符和表达式
(5学时)本章重点:
一、标识符的正确使用;
二、各种基本数据类型的使用;
三、算术运算符的优先级和结合性;
四、表达式计算中的类型转换。难点:
一、各种类型数据在计算机内存中的存储形式;
二、自增自减运算。
第一节 C语言的数据类型 第二节 常量与变量 第三节 整型数据 第四节 实型数据 第五节 字符型数据
第六节 算术运算符与算术表达式 第七节 赋值运算符与赋值表达式
一、赋值运算符和赋值表达式;
二、复合的赋值表达式;
三、自加、自减运算符;
四、赋值运算中的类型转换。
第八节 逗号运算符与逗号表达式
第三章 顺序结构程序设计
(4学时)本章重点:
一、printf函数;
二、scanf函数。难点:输入与输出时的格式控制。第一节 C语句概述
第二节 赋值语句
第三节 数据的输入与输出
一、printf函数;
二、putchar函数;
三、scanf函数;
四、getchar函数 第四节 顺序结构程序举例
第四章 选择结构程序设计
(4学时)本章重点:
一、逻辑值的表示、使用及其运算;
二、关系运算符的运算规则及关系表达式;
三、逻辑运算符的运算规则及逻辑表达式;
四、if语句;
五、switch语句的形式与执行过程。难点:
一、逻辑表达式求值时的“非完全求解法”;
二、条件运算符具有的自右向左的结合性及条件表达式的求解过程;
三、if语句的嵌套使用问题;
四、switch语句的执行过程及在switch语句中正确使用break语句的方法。
第一节 关系运算和逻辑运算
一、逻辑量及其在C语言中的表示;
二、关系运算符和关系表达式;
三、逻辑运算符和逻辑表达式。
第二节 if语句
第三节 条件运算符和条件表达式
第四节 switch语句
第五节 语句标号和goto语句(本节内容仅要求一般了解)
第六节 选择结构程序举例
第五章
循环结构程序设计
(6学时)本章重点:
一、while循环、do-while循环及for循环的构成、执行过程及使用方法;
二、循环嵌套的使用方法;
三、用循环结构实现的典型算法,如:累加、阶乘、穷举法、递推法等。难点:
一、for循环使用时的灵活性,如:表达式的缺省及其处理、循环体是空语句等;
二、多重循环(即循环嵌套)的使用;
三、break语句和continue语句的作用和区别。
第一节 while语句
第二节 do-while语句
第三节 for语句
第四节 循环的嵌套
第五节 break和continue语句在循环体中的作用
一、break语句;
二、continue语句。
第六节 用if语句和goto语句构成的循环(本节内容仅要求一般了解)第七节 循环结构程序举例
第六章 数组
(6学时)本章重点:
一、各类数组的定义、引用及初始化;
二、用字符数组来处理字符串;
三、数组应用的典型算法,如:求最大/最小值、排序等;
四、字符串处理函数。难点:
一、二维数组的存储结构;
二、字符数组与字符串的关系;
三、字符串的输入输出。
第一节 一维数组
第二节 二维数组
第三节 字符数组
一、字符数组的定义与引用;
二、字符数组的初始化;
三、用字符数组来存放字符串;
四、字符数组的输入和输出;
五、用于字符串处理的函数;
六、字符数组应用举例。
第七章 函数
(6学时)本章重点:
一、库函数的正确使用;
二、函数的定义、调用和说明的方法;
三、调用函数和被调用函数之间的数据传递规则;
四、函数的递归调用方法。难点:
一、函数定义、调用和说明三者的关系;
二、传值调用、传址调用的含义及使用;
三、递归的实现方法。
第一节 库函数
第二节 函数的定义和返回值 第三节 函数的调用
第四节 函数的说明
第五节 调用函数和被调用函数之间的数据传递 第六节 函数的递归调用 第七节 程序举例
第八章
用户标识符的作用域和存储类型
(4学时)本章重点:
一、作用域与生存期的基本概念;
二、局部变量、全局变量的作用域、生存期及各自使用时的特点;
三、static说明对局部变量和全局变量的影响;
四、扩展全局变量作用域的方法。难点:
一、4种存储类型变量的说明方式、特点及适用范围;
二、静态局部变量的初始化及其对程序的影响;
三、全局变量与局部变量同名时的处理。
第一节 局部变量、全局变量和存储分类 第二节 局部变量及其作用域和生存期 第三节 全局变量及其作用域和生存期 第四节 函数的存储分类
第九章
编译预处理
(2学时)
本章重点:
一、不带参数的宏定义;
二、文件包含的作用;
三、编译预处理命令在程序中的实际作用。难点:
一、带参数的宏定义的替换过程;
二、宏调用与函数调用的区别。
第一节 宏定义 第二节 文件包含
第三节 条件编译(本节内容仅要求一般了解)
第十章
指针
(4学时)本章重点:
一、指针和指针变量的概念;
二、指针变量的引用;
三、一维数组与指针;
四、指针变量作为函数的参数。难点:
一、指针与内存地址的关系;
二、指针与数组的地址的关系;
三、函数指针;
四、数组的三种引用方式(下标法、首地址增量法、指针变量法)。
第一节 指针的基本概念
第二节 指针变量的定义与引用 第三节 函数之间地址值的传递 第四节 一维数组和指针
第五节 二维数组和指针(本节内容仅要求一般了解)第六节 字符串与指针
第七节 函数与指针(本节内容仅要求一般了解)
第十一章 结构体、共用体和用户定义类型
(4学时)本章重点:
一、结构体类型与结构体类型变量的定义;
二、结构体类型变量的引用方法、“.”操作符的意义以及其优先级;
三、结构体数组的定义形式、初始化及其引用方式;
四、指向结构体的指针。难点:
一、指向结构体的指针;
二、结构体数组;
三、链表的概念及其对链表的一些简单操作;
四、结构体变量的成员与共用体变量的成员在内存中的分布形式;
五、结构体变量及结构体指针作为函数的参数。
第一节 结构体类型 第二节 结构体数组
第三节 指向结构体的指针 第四节 结构体与函数 第五节 链表
第六节 共用体(本节内容仅要求一般了解)第七节 枚举类型(本节内容仅要求一般了解)第八节 用typedef说明一种新类型名(本节内容仅要求一般了解)
第十二章 位运算
(2学时)本章重点:
一、位运算符的语义及作用;
二、位运算的应用。难点:位段的概念及使用。第一节 位运算的概念 第二节 位运算举例
第三节 位段(本节内容仅要求一般了解)
第十三章 文件
(2学时)本章重点:
一、文件指针的概念;
二、文件打开和关闭;
三、fscanf函数和fprintf函数。难点:各种文件打开方式的作用。
第一节 C语言文件的概念 第二节 文件指针
第三节 文件的打开与关闭 第四节 文件的读写
第五节 文件定位函数(本节内容仅要求一般了解)
三、教学基本要求
本课程的基本要求是掌握程序设计的基本原理、概念和方法;在介绍算法、数据结构、计算方法、结构化程序设计方法的基础上,主要介绍C语言及其程序设计方法及应用。主要内容包括:了解C语言的各种数据类型的特点及其运用方法;掌握各类语句的语法及功能;了解算法的描述方法,并掌握一些基本的典型算法;了解程序的三种基本结构,并初步掌握结构化的程序设计方法;掌握在微机中运行C程序的过程和程序调试的方法;能够阅读、理解简单的C程序,并能自己动手编写小型的应用程序。
四、上机内容与学时分配
1、顺序结构程序设计
2学时
2、选择结构程序设计
2学时
3、循环结构程序设计
4学时
4、数组
4学时
5、函数
4学时
6、指针
2学时
7、结构体与共用体
2学时
五、大纲说明
本大纲适用于全校理工科各专业。本课程宜安排在学生学完“计算机基础”课程之后的第二学期进行,教学总时数为72学时,其中课堂讲授52学时,计划内上机学时为20学时,另外需要学生多利用业余时间自主安排上机学习。本课程的课堂教学全面采用多媒体CAI技术,按照本大纲的内容进行教学。课程的重点是第三、四、五、六、七章的基本内容;难点主要是第六、七、十章的部分内容。
六、主要参考书
1、《C语言程序设计》第一版,杜友福主编,科学出版社,2004年1月。
2、《C语言程序设计导学》第一版,杜友福主编,科学出版社,2004年1月。
C语言程序设计教学探讨 篇7
当今计算机已广泛应用于社会生活的各个领域, 并向普及化方向发展。对80、90后的大学生而言, 除了掌握一般的计算机操作技能以外还必须具有一定的实际应用编程能力。C语言是一种通用性计算机程序设计语言。它兼有汇编语言和高级语言的双重优点, 运用它既能编写操作系统软件, 又能开发各个领域的应用软件。C语言的实用性使之成为编程的首选语言。学好并掌握C语言不光能够提高学生自身的计算机编程能力, 而且为将来学生的顺利就业打下基础。然而有很多学习过C语言甚至是计算机专业毕业的大学生连最基本的程序都不会编写, 针对这种现象教学之余笔者做了深入的调查和分析, 发现在当今的C语言教学中还存在一些问题, 有待我们研究和探讨。
1. C语言教学中存在的问题
1.1人才培养目标定位不准确
有的高职高专型学校太注重理论教学环节, 忽视实践教学环节。教师过分强调学习语法等理论知识, 忽视培养学生实际应用的能力。受学科型教学思维的影响, 由教师主导的教学过程呈现出以语法为主线的教学模式, 编程变成了语法学习的示例或验证。这样学生理论课听不懂, 实践课练习编程屡屡受挫, 学习C语言的积极性和主动性受到严重打击。
1.2教师教学过程中采用的教学方法不适当
有的教师在上C语言的第一堂课就采用单调死板、照本宣科的牧师讲法。先讲概念, 然后举例去验证理论的正确性, 而实际问题一点也得不到解决, 使学生陷入不断被灌入理论和不断的尝试和验证中, 使学生失去学习C语言的兴趣。
1.3实训课和实践课没有被充分重视起来
笔者多年教学发现C语言上机课安排的较少, 在相对理论课较少的C语言上机课堂上, 还有很多学生迟到、旷课, 或者上机时打游戏, 做小动作。笔者去过不同的学校听不同的
老师上课, 笔者发现在有的老师的上机课上有将近一半的学生请事假。久而久之, C语言的上机课实际上是名存实亡。学生得不到很好的上机练习机会, 编程能力也得不到提高。
2. 解决问题的方法
2.1准确定位人才培养目标
学校应面向市场, 准确把握市场对计算机编程人员的需求, 从而制定合适的人才培养计划, 依据计划由学校的资深教师编制教学大纲并选定教材。C语言是面向过程的编程语言, 即不生动有趣又不直观可见, 让初学者望而生畏。高职高专型学校和本科学校相比生源质量相对较差, 学生的起点低, 一些普招上来的学生没有学习过计算机文化基础, 甚至有些学生根本没有接触过计算机, 根据笔者多年的C语言教学经验, C语言的第一次实训课上, 往往有很多学生不会开机, 也不会关机。所以高职高专型学校应把人才培养目标定位在培养技能应用型人才上, 培养学生实际动手能力和软件开发能力。
2.2把一些先进直观的教学方法应用到C语言教学中
(一) 采用启发式教学, 激发学生学习的自主性
针对C语言概念多, 语法规则较繁的现状, 采用启发式教学可以将难理解、难记忆的概念和规则变成一系列具体直观的问题呈现在课堂教学中, 这样就能把学生的注意力集中起来, 把学生的学习积极性调动起来, 达到师生互动的效果。这种启发式、讨论式、交流式的教法, 不仅改变原来的灌输式教学, 而且增强了学生自主学习的能力。
(二) 采用任务驱动教学法
传统C语言教学总是从基本数据类型讲起, 再接着讲C语言的各种数据类型及概念, 基本上是这样一个过程:设计算法—书写程序—调试程序, 显得即抽象又复杂, 这种方式对学生来说比较枯燥, 也较难理解和掌握。在教学中, 可先给出一个任务, 然后再给出源程序和运行结果, 学生对此任务有了初步认识并对其产生了强烈的好奇心, 学生的求知欲被充分调动起来, 然后教师再具体讲解程序中用到的语句和概念, 从而让学生明白如何分析并解决问题, 逐步培养学生进行程序设计的正确思维模式, 以后再大量的做这样的练习题, 强化训练, 使学生对类似知识点达到举一反三, 融会贯通。
(三) “框架法”和“求异法”相结合
“框架法”可培养学生的全局思维和算法的整体设计能力。具体体现在两方面:一是在学生有了一点编程基础后要利用伪代码或流程图, 从算法设计的角度讲解编程思路, 而不应拘泥于语法细节, 不分主次、逐条语句的讲解代码。通过此框架, 可使初学者把着眼点放在函数的设计框架上, 体现参数设计、返回值设计等关键问题, 而无需细讲函数体的实现细节。
(四) 采用现代化教学手段—多媒体
现在大多数学校的教师都在多媒体教室上课, 但是仅仅是使用PPT教学, 没有做到真正意义上的多媒体教学。
笔者建议采用多媒体教学技术, 把枯燥的内容形象化, 使声、形、图、文融为一体。例如在讲冒泡排序时可以采用flash动画技术把排序的过程动态的演示一遍, 也可以在平时的上机训练时让学生编写简单的小游戏程序, 这样在娱乐中让学生觉得学习C语言更有兴趣了。在实训室实训时教师可以采用广播教学的方式互动教学, 逐个学生、逐一问题、逐步突破。
3. 结束语
C语言程序设计的教学要讲究方法, 通过灵活采用多种教学方式和教学手段, 提高学生的学习兴趣和学习积极性。通过这门课的学习, 不仅要使学生掌握语言的基本规则, 而且要切实培养学生分析问题, 解决问题的能力, 培养学生的创新精神, 团队意识, 为学生提供更好的展示才华的舞台。
参考文献
C语言程序设计课程的教学探索 篇8
关键词:C语言程序设计 课程教学 教学效果 教学方法
C语言是国内外广泛使用的计算机语言,学会使用C语言进行程序设计是计算机工作者的一些基本功。C语言程序设计是计算机相关专业的一门专业基础课。在计算机课程体系中,C语言程序设计是学习其他计算机课程的基础,也是引领学生进入计算机学科领域的第一门课程,学生学习C语言程序设计的效果,将对其他课程的学习积极性产生影响。因此,C语言程序设计课程的教学显得非常重要。作者根据多年从事C语言程序设计课程的实践,对该课程教学实践中遇到的若干问题进行整理,并提出一些解决思路,以供同仁们参考。
一、培养学生的学习兴趣
C语言程序设计课程是计算机相关专业学生所接触的计算机类课程的先行课程之一,学生在学习这门课程时,往往对程序设计满怀期望和好奇心。教学初期,要把握时机,对学生好奇心理加以利用,提高学生学习兴趣,提高学习效果。随着课程的深入,所学内容逐渐增多、学习难度加深,教师如不一如既往地特意培养学生学习兴趣,学生在学习中遇到的各种挫折都可能打击其学习兴趣。教学中、后期,要调用各种教学方法和手段,强化学生的学习兴趣。可以根据教学内容设计适宜的、学生感兴趣的题目供学生讨论,在讨论中以学生为中心,并进行适当的引导,使讨论富于情趣,寓教于乐,达到较好的教学效果,强化学生的学习兴趣。比如,在讲授起泡发排序时,教师先用多媒体课件将算法思想陈述清楚,然后随机抽取教室中就坐的一列学生,由全体学生根据算法思想对抽取的同学的身高进行排序,这样可以让所有学生在都参与算法的演示,以加强学生对算法思想的理解,在轻松愉悦的环境中培养学生的学习积极性。
二、授予算法思想
C语言程序设计课程的是一门专业基础课,其教学目标就要体现“专业”与“基础”两个方面。一是,使学生掌握各种C语言本身的语法与程序结构,二是,使学生通过该门课程的学习掌握一定的算法和常用子程序的编程实现,学会用C语言编写程序,实现所需处理的任务,为后续课程打下坚实的基础。
算法是程序的核心,是程序的靈魂。语法是程序的外壳,是程序的工具。教学中,要处理好算法与语法的关系。不能把重点放在语法规则上。语法是重要的,掌握不好语法就无法编写出正确的程序,但是,只学会语法,甚至把语法背得滚瓜烂熟,也不可能编写出好的程序。要把重点放在算法思想上,通过大量的实例讲解和练习使学生学会怎样设计算法,编写程序,解决实际问题。算法思想与语法知识的关系就如“授予渔”与“授予鱼”的关系。教育不是要“授予鱼”,而是要“授予渔”。因此,C语言程序设计课程“授予算法思想”最为重要。
三、改进教学方法
在教学实践中采用多媒体教学与传统教学相结合的方法。多媒体教学信息量大、变换快速、表现直观、操作简便,教学活动很容易出现课件喧宾夺主的不良倾向;教师容易忽视教学策略和教学方法,忽视教学难点和重点,忽视与学生的交流;学生忙于观看课件,无暇做笔记,无暇思考。因此,在C语言程序设计课程中一定要注重适时适当地采用一些传统的教学方法,加强与学生的交流,在课堂中注重与学生的互动,杜绝采用填鸭式教学方法。教师要从学生的主宰转变为学生学习的引导者,课堂教学要从过去的“满堂灌”“填鸭式”转变为学生自主探讨,尽可能把时间还给学生,使学生从被动的“受教育者”转变为主动的“探索者”。
此外,教师要注意在每一堂课结束之后对所学内能进行归纳小结,整理教学内容的内在联系。在整门课程的教学过程中,注重各种C语言程序结构之间及数组、函数、指针、结构体与共用体之间的比较,使学生总览全局,对各种C语言程序结构之间及数组、函数、指针、结构体与共用体之间的差异和联系有宏观的把握,促进对各种C语言程序设计知识的理解和掌握。
四、抓好实验教学
程序语言的学习最终的目标就是能够熟练地根据具体问题设计适合的算法将其转变为C语言程序,解决实际问题。所以,实验是C语言程序设计课程必学、必练的教学环节。学生对实验内容的掌握程度直接反映学生对C语言程序设计课程的掌握程度。
C语言程序设计课程是计算机相关专业学生的开设的第一门专业基础课,学生对该课程的学习思维的把握需要一个循序渐进的过程。因此,在实验教学中,教师要把握循序渐进的度。一开始,可以学生非常熟悉的问题设计实验内容,在实验中为学生给出完整的实验程序,其目的是让学生掌握C语言程序设计课程的上机环节及编程的基本方法。接下来,可以根据第一次的实验,设计一个有关语句、语法、程序结构等环节的实验内容,是学生对C语言程序的基本结构、基本的语法特点有一个总体的印象。之后便可以根据教学内容来设计实验内容。
在实验教学中,对于实验内容的设计除了要与教学内容相结合外,还要注意实验内容满足学生的兴趣。而且,一定要把握好实验预习、准备关。除了最初的两次实验之外,其他的实验,一定要要求学生做好充分的准备,严格要求学生在实验之前提交实验程序。我们的做法是将课后作业与实验内容合二为一,学生因为对布置的内容有准备,所以尽管实验内容多,但也能较好地完成,能较好地达到实验教学的预期目标。而且,学生对自己的学习目标的达成及完成情况更加清晰、明确,对于C语言程序设计课程的学习亦随着实验内容的增多和。
五、结束语
C语言程序设计课程具有鲜明的实践目标性,教学中,教师一定要结合学生实际,合理设计教学内容及教学环节,用恰当的方法方式引领学生进入更加广阔的计算机相关专业领域。
参考文献:
【教学大纲c程序设计】推荐阅读:
C语言程序设计2教学大纲10-16
C 面向对象程序设计课程教学大纲05-29
c语言程序设计课程教学大纲20107-26
c教学设计07-20
程序设计基础教学大纲07-08
图案设计教学大纲08-30
java程序设计教学大纲09-01
《面向对象程序设计》课程教学大纲05-22
面向对象程序设计实验教学大纲09-06
机械设计教学大纲要点10-19