KM教学理论下C程序设计课程改革论文(共9篇)
KM教学理论下C程序设计课程改革论文 篇1
摘要:21世纪是信息化大发展的时代,任何一个领域和行业都离不开计算机信息技术的帮助,在市场竞争日渐激烈的今天,已然发展成为人才的竞争,因此随着KM教育理论的问世,为计算机课程教学提供了新的改革思路。文章以“C#程序设计”课程为例,探讨在KM教学理论的指导下,其改革方法,以期克服以往“C#程序设计”课程存在的不足之处,引起学生学习的兴趣,提高学生的编程能力,改善教学效果。
关键词:KM教学理论;C#程序设计;课程改革方法
自从第三次工业革命结束后,计算机开始逐渐出现在人们的生产生活中,提高了工作效率,为国家和社会创造了大量的财富,促进了国家经济的发展,社会的进步以及为国家的安全提供了一个坚实的堡垒。C语言程序设计是计算机技术中一个重要的分支,它既具有高级语言的特点,又具有汇编语言的特点。自1972年,C语言被D.M.Ritchie发明后,由于其强大的数据处理能力就被广泛应用在各个行业和领域中[1]。随着社会的发展,对C语言人才的需求越来越大,因此各大高校纷纷把“C#程序设计”课程加入到学校教学中,希望学生能掌握一门生存技能,在将来的就业竞争中占据优势,但是由于C语言程序设计涉及的内容众多,且难度较大,学生掌握起来很困难,再加上受中国传统应试教育的影响,在课程安排,教学内容,讲课模式上都使得学生对C语言的学习缺乏兴趣,甚至在对C语言课程产生畏惧感,以致完全无法达到教学目的和教学效果。因此急需对“C#程序设计”课程进行改革。而随着KM理论的兴起,为其课程改革提供新的改革思路。KM教学理论是将知识的逻辑结构和思维导图相结合的一种教学理论,其中K是指“知识逻辑结构”(KnowledgeLogicStructure),M是指“思维导图”(MindMap)[2]。KM教学理论的宗旨是在教师的帮助下,以学生为主体,发挥教师“传道受业解惑”的本职,让学生快速掌握知识,提升其创新能力,从而提高教学质量。本文针对传统C语言教学课程中存在的问题,探讨在KM教学理论的指导下,“C#程序设计”课程的改革方法,以期引起学生学习的兴趣,提高学生的编程能力,改善教学效果。
一传统“C#程序设计”课程存在的不足
受我国传统教学思想、教学观念和教学方法的影响,“C#程序设计”课程的教学效果并不理想,许多学生缺乏学习兴趣。
(一)教学重点错误
中国自古以来奉行科举考试制度,发展到现在形成了中国的应试教育模式。受这种传统教育模式的影响,我国的教育重点放在了学科知识的学习上,“C#程序设计”课程也不例外。因此教师在教授C语言时,也是按照一般教学流程来教授,课堂讲授、布置作业及实验,最后把学生期末考试成绩看作评判学生能力的标准[3]。这种把理论知识学习当作学习重点,从而忽略学生实践操作能力的做法,使得大部分教师的教学模式存在问题。教师习惯以自我为中心,站在讲台上口若悬河的讲解对学生难以理解的C语言知识,忽视学生的主体性,让学生的学习始终处于被动状态,师生之间缺少互动,无法发挥学生的主观能动性,削减了学生的学习兴趣。而且更严重的是学生“高分低能”的情况,学生对C语言的学习只停留在知识点学习以及问题的解答上,无法把学到的知识运用到实际操作上,使得学生一旦踏入职业生涯就会发现自己几年来辛苦的学习无法满足自己的工作需求,帮助自己实现人生价值,会带来极大的心理落差,影响自己的心理健康。
(二)教材选用不当
一场教学活动包括教师、学生、以及教学内容,而教学内容主要是通过教材获得的,可以说教材是学生获得知识的主要途径。教材中的内容是教学重点的直接反应,在C语言教材中,如果理论多于实践,那么相对的,教师也会把教学重点放在理论知识的介绍上,反之则会重点关注学生的实践应用能力[4]。受中国传统教学模式的影响,学校及教师历来重视理论知识的传授,且理论知识还不能顺应时事的发展,落后于时代的发展需求,最终影响到学生能力和兴趣的培养。
(三)教学方式落后
随着我国人口数量的持续增长,每年进入学校的学生人数必然有所增长,造成一个班级人数过多,且课堂教学学时有限,为完成学习进度,使得老师无暇关注每个学生的学习情况。此外,无论是什么样的课程,大多数教师的教学方式都是在讲台上讲解,不管这科是否需要学生更多实践,学生在考试制度的影响下,也习惯了重点关注理论知识的学习,因此无论老师在强调什么,学生把注意力都集中在记笔记上面,认为这些理论知识是考试的重点内容。长此以往下去,学生的C语言实际编写能力自然不会提高,理论知识也会毫无用武之地。
二“C#程序设计”课程的改革方法
(一)正确认识教学重点
针对教学重点错误的问题,首先我们要做的是明确教学重点,但在此之前,我们要先确定一个“C#程序设计”课程教学目标,即通过该课程的教学,使学生掌握C#程序设计的一些基本概念和语法规则,程序设计的一般方法,过程化程序设计与面向对象程序设计方法,进一步培养学生的软件开发能力[5]。在这个大的教学目标指挥下,学习模块众多,内容复杂的C语言设计必须找准它的要点和关键点,然后围绕重点内容进行扩充和丰容,最后再把理论知识应用到实践中去,突出实用性。
(二)正确选用教材
针对教材选用不当的问题,我们在明确教学重点的基础上,选用符合C语言特点的教材,且对教学内容进行合理科学的安排。对C语言程序设计感兴趣的学生,教师在帮助学生掌握C语言基础知识的基础上,更多的应该是鼓励他们尝试进行程序设计。“授人以鱼不如授人以渔”,因此在C语言程序设计教材的选择上,要选择内容更偏向实践与理论相结合的教材,这样有利于加强素质教育,从而提高教学质量。此外在C语言教材内容的讲解上,教师可以根据教材内容创设一个情景案例,在解析C语言程序设计案例的同时,把理论知识自然而然的融入其中,让C语言设计的相关知识通过一个案例都串联起来,在学生脑海中形成一个大的理论框架,方便学生在编写程序时,更灵活的运用。最后教师还要向学生推荐适当的参考资料和文献,作为教材的有益补充。让教材为教学服务,最大程度地提高学生的理论水平和实践能力。
(三)改变教学方式
针对教学方式落后的问题,我们首先要做的是转变教师传统的思想观念,把学生作为教学的主体。在C语言程序设计课堂上教师可以多进行一些以学生为主体的活动,给学生思考问题、提出问题、讨论问题的时间,鼓励学生自己尝试用C语言设计程序,充分调动学生的主观能动性。例如以小组的形式设计一个程序,小组成员之间相互交流自己的设计想法,让每个学生充分发挥想象力,表达自己的观点,老师在旁进行辅助,解决学生在程序设计中出现的实在难以解决的问题,例如比较难的数组、指针、继承、多态性等问题[6]。这种以学生为主体的教学方法,不仅可以帮助学生很好的掌握C语言程序设计的理论知识,还能有效锻炼学生的实践操作能力。
三结语
综上所述,在现代飞速发展的社会,计算机技术在人们的工作、学习、生活中发挥了极大的作用。而作为其中一个重要的分支——C语言程序设计在许多领域得到应用,但由于受中国传统教育模式的影响,以及C语言本身特点的影响,使得在“C#程序设计”课程的安排设置上存在很多问题,导致大部分学生对其学习缺乏兴趣。因此在KM教育理论的指导下,改革课程设置,具体方法有要正确认识教学重点,要正确选用教材,要改变教学方式,以期提高学生的编程能力和应用能力。此外,教师在今后的教学工作中,还要继续关注课程的发展方向和趋势,选择适当教材,更新知识体系和教学手段,使学生适应编程的实际需要。
参考文献
[1]周颖,李葆萍,马超,等.基于KM教学法的知识图开发、教学及评估研究——以《C语言》为例[J].中国电化教育,2016,14(8):87-92.[2]程钢,杨杰,吴志强,等.SAKAI平台下程序设计与开发课程混合式学习的研究与应用——以测绘工程“C语言程序设计”为例[J].测绘通报,2016,19(9):133-136.[3]蒋宁.基于混合式教学的计算机“C#程序设计”课程教学改革研究[J].职教通讯,2016,35(3):11-15.[4]秦桂英,朱葛俊,朱利华.翻转课堂教学模式在高职C#程序设计课程教学中的实践研究[J].常州信息职业技术学院学报,2015,14(1):36-40.[5]曹晓丽,邢玉娟,贺元香,等.多元交叉教学模式下《C语言程序设计》课程教学改革与探讨[J].兰州文理学院学报(自然科学版),2015,29(3):106-111.[6]马海峰,秦桂英.基于MOOCs的混合教学模式在高职C#程序设计课程教学实践研究[J].常州信息职业技术学院学报,2016,15(1):50-53.
KM教学理论下C程序设计课程改革论文 篇2
教学是根据特定目标培养人才的主要形式和手段。C程序设计实验教学一般分为如下三部分:布置实验内容、学生自主实验、教师剖析讲解, 这是教师“教”与学生“学”的有机结合, 学生在教师有目的、有计划的指导下, 积极、主动的掌握学科相关知识。我们往往将这样的教学过程界定为传统教学[1]。近年来, 伴随着各门各科课程改革的深入实施, 传统教学过程中许多教学理念已经不能完全适应时代的要求[2], 譬如以知识传授作为学生学习的主要途径, 在教学效果评价上重结果轻过程, 这种凡事以教师为中心的方法, 扼杀了学生的主观能动性, 学生成为知识的被动接受者, 不利于学生创造性思维及学习兴趣的培养, 因此有必要对传统的教学过程进行改革[3]。本文针对传统C语言程序设计教学过程中存在的问题, 将“有效教学理论”引入到C语言实验教学过程中去, 对教学方法及教学内容作出一系列的改革, 并进而形成一个完整的C程序设计实验教学体系。
2 有效教学理论的立足点
有效教学理论要求教师遵循教学活动的客观规律[4], 以促进学生的学习与发展为目的, 以尽可能少的时间、精力和物力取得尽可能多地教学效果, 从而实现特定的教学目标[5]。根据上述目标要求, 教学过程的设置应当考虑到如下几点内容。
(1) 设计出教者与学者均能安心的人际关系和学习环境, 营造出人性化的理解和相互信赖的班级气氛, 培养学生团队合作的精神, 团队中的同学之间彼此信任, 彼此依赖, 为团队而战, 不再是单打独斗;
(2) 学习的内容、方法和评价方式均适于学生, 研究教学过程, 注重教法的选择和学法的指导。所选教学案例要符合学生的实际情况, 内容要涵盖理论课所有知识点, 对学生的作业要做正确的评价, 不能完全根据参考答案来, 对进步大的同学要给予鼓励;
(3) 在活动性的学习过程中, 学生能够积极主动地参与。每个学生在锻炼的过程中能够充分发挥自己的想象力、创造力, 教师要给学生创造展示自我的空间, 使学生在练习的过程中真正发挥主体作用。同时, 根据每个学生的性格特点, 让其参与到团队实践中去, 扮演不同的角色, 从而提高学生的学习兴趣和解决问题的热情。
3 C语言实验课程中的有效教学设计
C语言程序设计是一门实践应用性较强的学科, 在日常的教学过程中需要不断强化实验环节, 让学生在操作实践过程中不断地发现、分析和解决新问题。为了实现上述目标, 教师在教学过程中必须要结合有效教学理论的要求, 努力改进教学方法。
3.1 上好第一堂实验课
教师在课前设计好一个用C语言开发的软件, 该软件应该包括C语言程序设计的主要知识点 (如一个简单的学生管理系统) 。在上第一次实验课的时候, 教师向学生展示该功能软件, 并简单介绍实现该软件所用到的程序设计知识点, 让学生充分理解到“通过学习这门课程可以实现这样的软件”。最后向学生详细介绍本学科的实验课程设置。这一举措将会激发学生浓厚的学习兴趣, 同时也将克服长久以来植根于学生心中“程序设计学为何用”的心里障碍。
3.2 选择合适的教材
教材的选择是教学改革的关键, 良好的教材能唤起学生的学习欲望、引导学习方法、巩固所学知识等。C语言程序设计是一门以培养学生程序设计基本方法和技能为目标, 以实践能力为重点的特色鲜明的课程。为此, 其教材内容需要能够反映本学科的基本原理、技术和方法在相关现实领域中的典型应用。经过多年的课程建设, 由本校王创伟教授所撰写的教材《程序设计基础———从问题到C语言程序》在教学内容、教学方法上作出新的改进, 以学生成绩管理系统的程序设计为主线, 以编程应用为驱动, 通过实例和问题引入内容, 重点讲解程序设计的思想和方法, 并穿插讲解相关的理论知识内容。本教材侧重培养学生从实际问题空间向程序设计空间转换的能力, 让学生领会到C语言知识是一种工具, 利用这个语言工具进行有效的“程序设计”才是本课程设置的核心理念、
3.3 采用“2+2”教学模式
传统的教学过程以“教师教”为主要方法, 学生鲜有机会主动参与到教学实践中去。为了充分激发学生的学习兴趣, 自2009年9月起, C语言程序设计课程全部教学环节被安排在实验室中进行, 每个教学阶段均采用“2+2”模式 (即2节理论+2节实验) 。前2节课主要是教师结合案例讲授相关的理论知识点, 后2节让学生编程实现相应的功能。由于C语言程序设计课程主要面向本专业一年级学生, 其专业基础相对比较薄弱, 对于程序设计的概念还没有十分深入的理解, 所以在理论知识讲解中, 教师要注意突出语言特色, 充分运用形象思维讲授知识点。教学中应该尽量用一些直观形象的比喻来解释一些抽象的概念。例如, 在讲解变量的时候, 可以将变量比喻成一个“房间”, 变量的值就相当于“房间”中的东西, 而指向某变量的指针就相当于房间的门牌号, 通过这些形象直观的比喻, 学生理解起来就比较容易了。在实验环节中要求学生利用所掌握的知识点分阶段的实现学生成绩管理系统, 对于部分与管理系统联系不是十分密切的知识点, 教师可以布置一些常用项目案例让学生来实现, 从而充分调动起他们的学习主动性与积极性。
3.4 加强实验环节管理, 注重学生团队合作能力培养
目前, 国内软件企业需要的计算机专业人才, 除具备熟练的专业素质外, 更重要的是拥有良好的沟通能力, 在传统教学过程中, 这一点被绝大多数教师所忽略。
实验环节是考查学生是否能够熟练运用C语言语法解决实际问题的一个重要途径。传统的实验过程以教师为主导, 一位教师辅导几十位学生, 教师为学生实验过程中出现的问题进行解答。这样的模式存在许多的弊端, 譬如由于课堂时间有限, 教师无法即时解答每个学生提出的问题, 这样会导致部分学生不能继续进行实验, 长此以往会让他们产生厌学的情绪, 并对程序设计这门课程彻底丧失信心。针对这样一些情况, 在实际的实验教学课程中, 采用分组进行的方法, 每4位同学组成一个小组, 对于程序设计过程中某位同学不能解决的问题, 先让其进行小组内讨论, 如果小组内无法解决, 再由教师为小组成员讲解。在此过程中, 还要求小组内成员做好必要的实验笔记, 对于实验过程中遇到的典型问题做相关的记录。这一举措既能及时解决问题, 提高实验效率, 又能培养学生之间的团队协作能力。
4 结束语
基于本校计算机专业C语言程序设计教学的实际情况, 立足于有效教学理论, 对C程序设计实验环节的教学方法进行了一系列的改革。实践表明, 上述改革措施对加深课程理解、培养学生兴趣和提高教学质量有着显著的效果。随着计算机专业基础课程群改革的深入开展, 基于能力和素质培养为基本目标的有效教学理论必将体现出其极大的优势, 作为高校教师的我们必将竭尽全力地为培养高素质的优秀人才而努力。
参考文献
[1]王希杰, 王瑞庆.C语言教学改革的几点建议[J].中国科技信息, 2006 (24) :213-214.
[2]宋楚平, 李少芹.C语言教学改革的思考[J].职业教育研究, 2005 (2) :84-85.
[3]李丽萍, 王冬梅C语言教学改革的探索与实践[J].辽宁工业大学学报, 2009 (58) :114-115.
[4]余文森.论有效教学的三大理论基础[J].课程教材教法.2012 (32) :15-21.
C语言程序设计课程教学大纲 篇3
中央电大教务处教学管理科 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.字节文件的访问
(二)教学要求
了解:文件的有关概念;
理解:文件的各种访问方式;
应用:会分析和编写使用文件的程序。
第四部分 实验
KM教学理论下C程序设计课程改革论文 篇4
C++ Object Oriented Programming
课程代码:
课程性质:专业基础理论课/必修
适用专业:信息计算、信息安全、统计
开课学期:
2、3 总学时数:10
4总学分数:6.5
编写年月:2000年3月
修订年月:2007年7月 执
笔:刘伟、高学军
一、课程的性质和目的
《面向对象程序设计》是信息与计算科学专业本科生的一门必修课程。面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化的程序数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性。本课程主要介绍面向对象程序设计的方法和C++语言的基本概念。以C++语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C++的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。
二、课程教学内容及学时分配
第一章 面向对象的程序设计方法和C++简介(6学时)
了解面向对象程序设计的基本思想及基本概念;了解面向对象语言的分类和C++中支持面向对象的特点;了解面向对象的软件开发环境;了解Visual C++开发工作台的主要功能。
主要内容:面向对象程序设计的基本思想及基本概念:对程序的的质量要求;程序的模块化和结构化;为什么要面向对象:从面向过程到面向对象C++语言发展的历史:面向对象语言分类;C++中支持面向对象的特点面向对象的软件开发环境与Visual C++。
第二章 程序设计基础(8学时)
通过实例掌握C++程序的程序结构和执行机制;掌握简单的终端输入输出方法;掌握:C++的数据类型、常量和变量的概念;掌握数组类型及数组类型与指针类型的 1 关系;掌握用typedef自定义类型的方法;了解表达式的构成、求值顺序和表达式中的类型转换;掌握常用运算符的使用;了解程序设计风格并在试验中运用。
主要内容:C++的程序结构;C++的数据类型:基本数据类型、复合数据类型和引申数据类型;常量和变量;表达式与操作符;程序设计风格。
第三章 语句与程序流程(1
2掌握程序执行的流程;掌握C++语句结构,包括复合语句、分支语句、迭代语句和转移语句;了解各种迭代语句之间的关系和相互转换的方法;了解转移语句对程序结构的影响。
主要内容:模块化程序设计介绍;函数的一般形式;函数的参数;函数的返回值;递归函数;内联函数;函数和变量作用域;函数重载;函数指针;函数原型与强类型检查。
第四章 类与对象(10学时)
掌握类定义的方法和存取级别;了解结构的概念和结构作为类的定义的方法;了解联合与位域的概念和联合作为类的定义的方法;掌握类的成员变量和成员函数的定义和使用,以及对象的定义;了解友元函数和友元类;掌握构造函数和析构函数;掌握静态类成员变量和成员函数的定义和使用方法;掌握内联函数的定义和使用方法;了解嵌套类与局部类的定义;掌握在函数中对象传递的机制。
主要内容:复合数据类型;类的定义、类的成员变量和成员函数,存取级别,作用域分辨符;对象和类的关系;类的构造函数和析构函数;构造函数的定义;析构函数;类/对象数组;静态类成员:静态成员变量;静态成员函数;内联函数;友元类;this指针;嵌套类与局部类;在函数中对象传递的机制。第五章 数组、指针和引用(10学时)
掌握对象数组及创建初始化和未初始化的数组的方法;掌握指针的概念,包括指针变量、指针表达式、指针数组;掌握指向对象的指针;了解指向函数的指针;掌握引用的概念,包括引用参数、向对象传递引用、返回引用等;了解有关C++的动态存储分配的机制;掌握利用new和delete进行动态空间的申请和释放。
主要内容:对象数组的初始化;数组与指针;数组赋值;对象数组指针的定义、初始化;指针运算;指针数组;指向对象的指针;字符串指针引用;向对象传递引用;返回引用;引用与指针的关系;引用的常用方法;C++的动态存储分配:动态空间的申请与释放。
第六章 继承性与派生类(8学时)
了解类层次的概念及如何将概念和实现转变为类的层次的方法;掌握单继承的 2 定义格式、成员存取控制和向基类构造函数传递参数的方法;了解多继承的定义方式、虚基类和二义性问题。
主要内容:类的层次概念;成员的继承;将概念和实现转变为类的层次;单继承;成员存取控制;受保护基类的继承;向基类构造函数传递参数;多继承;虚基类;二义性问题;多继承的应用。
第七章 多态性和虚函数(8
掌握函数重载的概念;掌握运算符重载的概念;掌握使用friend重载运算符的方法;定义重载某些特殊的运算符的方法;掌握虚函数和纯虚函数的概念;了解抽象类的概念;了解早期和后期联编的概念;
主要内容:函数重载与二义性;重载构造函数;求重载函数的地址;运算符重载;引用在运算符重载中的应用;运算符重载的限制;使用friend重载运算符;虚函数
第八章 C++的I/O系统(8
了解C++的流;掌握格式化I/O的定义格式和定义方法;了解一般I/O流和文件流的关系;了解文件与文件流的关系;了解文件系统的概念;掌握文件类的定义和相关操作的定义、使用方法;掌握利用常用函数进行文件的打开、关闭、读写、定位等操作。
主要内容:流的定义;C++的预定义流;格式化的I/O;创建自己的提取符;创建无参数的操纵符;创建带参数的操纵符;文件与文件流;文件打开和关闭、文件的定位与随机存取、文件的读写。
第九章 面向对象的程序设计环境(6应用程序框架及交互界面的开发。
主要内容:面向对象的软件开发环境;Visual C++开发工作台简述;MFC的结构层次;MFC分层概述
应用程序框架及交互界面的开发;控制类及其编程实现;实现菜单和对话框控制;文档和视;单文档界面;多文档界面。
第十章 用面向对象方法设计应用程序(4学时)
掌握根据给定应用系统的设计要求用面向对象的方法设计实现应用系统;掌握利用Visual C++的界面生成器生成应用程序界面;掌握利用消息机制实现对象之间的交互。
主要内容:综合利用前面所学的内容设计两个具体的应用程序。
了解Visual C++的消息机制;了解Visual C++的基本类库MFC;掌握Visual C++ 3
学时分配:第二学期:72学时,理论课56学时,实验课16学时;
第三学期:32学时,理论课24学时,实验课8学时。
三、课程教学的基本要求
1.了解面向对象的基本概念和使用面向对象技术进行程序设计的基本思想; 2.能比较熟练地用C++语言进行一般面向对象的程序设计; 3.初步掌握面向对象编程环境Visual C++的使用。
该课程实践性较强,需要学员多作练习;主持教师需要有比较熟练的编程经验,对Visual C++环境比较熟悉;针对所留习题,可以组织两到三次讨论,以便学员掌握面向对象设计思想。
总评成绩:平时作业占30%,闭卷考试占70%。
四、本课程与其它课程的联系与分工先修课程:计算机基础训练 后续课程:软件工程
五、建议教材及教学参考书
[1]郑莉、傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出版 [2]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版 [3]李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版
KM教学理论下C程序设计课程改革论文 篇5
适用专业:计算机科学与技术、软件工程,网络工程,计算机相关专业
(电气,电子科学,工业工程,数字媒体,电力,电商,信管)学 时 数:1.5周 执 笔 者:陈云华
学 分 数:1.5
编写日期:2006年6月
一 课程性质与任务
C语言课程设计是配合计算机专业的主干课程《C语言程序设计》开设的课程设计。要求学生在学习C语言程序设计的基础上,独立完成一个具有一定难度的程序设计题目。通过本课程设计的训练,学生应具备一定的利用C语言进行程序设计的能力,为学习后续专业课程打下良好的基础。
二 课程教学内容
本课程为实践性教学环节,学生独立完成相关的程序设计和调试任务,属设计型实验。1.实验设备要求
(1)计算机及操作系统:PC机,WindowsXP(2)编译器:Turbo C 2.0/Turbo C++3.0 2.题目参考:(1)编辑器(2)标准化考试系统(3)通讯录管理系统(4)学生成绩管理系统 3.设计和调试过程规范化要求
(1)需求分析:分析系统功能需求以及用户操作流程。
(2)概要设计:在需求分析的基础上,确定系统总体框架(系统功能结构图)。
(3)详细设计:定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。
(4)代码设计:根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。
KM教学理论下C程序设计课程改革论文 篇6
《机械设计》课是高等工科院校机械类专业的一门专业技术基础课,其主要研究一般工作条件和常用参数范围内的通用机械零件的工作原理、结构特点、基本设计理论和设计计算方法,以及机械系统方案的设计与选择。主要目的是使学生掌握机械设计的基本理论和方法,培养学生工程实践能力和创新意识。相对于传统的创新方法,比如试错法,头脑风暴法等,TRIZ理论具有鲜明的特点和优势[1,2]。它成功地揭示了创造发明的内在规律和原理,着力于澄清和强调系统中存在的矛盾,而不是逃避矛盾,其目标是完全解决矛盾,获得最终的理想解,而不是采取折衷或者妥协的做法,而且它是基于技术的发展演化规律研究整个设计与开发过程,而不再是随机的行为。实践证明,运用TRIZ理论,可大大加快人们创造发明的进程而且能得到高质量的创新产品[3]。它能够系统的分析问题情境,快速发现问题本质或者矛盾,它能够准确确定问题探索方向,不会错过各种可能,而且它能够突破思维障碍,打破思维定势,以新的视觉分析问题,进行逻辑性和非逻辑性的系统思维,还能根据技术进化规律预测未来发展趋势,帮助开发富有竞争力的新产品。因此,在《机械设计》课教学过程中,合理利用TRIZ理论来分析问题和解决问题,可以促进学生能更好理解产品设计,有助于提高大学生的创新意识和实践能力。
1TRIZ理论主要内容及解决问题的过程
1.1TRIZ理论主要内容
1) 创新思维方法与问题分析方法
TRIZ理论中提供了如何系统分析问题的科学方法,如多屏幕法等;而对于复杂问题的分析,则包含了科学的问题分析建模方法,即物-场分析法,它可以帮助快速确认核心问题,发现根本矛盾所在。
2) 技术系统进化法则
针对技术系统进化演变规律,在大量专利分析的基础上TRIZ理论总结提炼出八个基本进化法则。利用这些进化法则,可以分析确认当前产品的技术状态,并预测未来发展趋势,开发富有竞争力的新产品。
3) 技术矛盾解决原理
不同的发明创造往往遵循共同的规律。TRIZ理论将这些共同的规律归纳成40个创新原理,针对具体的技术矛盾,可以基于这些创新原理、结合工程实际寻求具体的解决方案。
4) 创新问题标准解法
针对具体问题的物-场模型的不同特征,分别对应有标准的模型处理方法,包括模型的修整、转换、物质与场的添加等等。
5) 发明问题解决算法ARIZ
主要针对问题情境复杂,矛盾及其相关部件不明确的技术系统。它是一个对初始问题进行一系列变形及再定义等非计算性的逻辑过程,实现对问题的逐步深入分析,问题转化,直至问题的解决。
6) 基于物理、化学、几何学等工程学原理而构建的知识库
基于物理、化学、几何学等领域的数百万项发明专利的分析结果而构建的知识库可以为技术创新提供丰富的方案来源。
1.2解决问题的过程
如图1所示,TRIZ解决发明创造问题的一般方法是:首先将要解决的特殊问题加以定义、明确;然后,根据TRIZ理论提供的方法,将需要解决的特殊问题转化为类似的标准问题,而针对类似的标准问题总结、归纳出类似的标准解决方法;最后依据类似的标准解决方法就可以解决用户需要解决的特殊问题了。
2 《机械设计》课特点及教学手段
2.1 《机械设计》课特点
在教学过程中要综合运用先修课程中所学到的有关知识与技能,结合各种实践教学环节,进行机械工程技术人员所需的基本训练,为学生进一步学习有关专业课程和日后从事机械设计工作打下基础。因此在机械类专业的教学计划中占有重要地位和作用,是高等工科院校中机械类专业一门主干课程。本课程主要从研究常用机构及一般机械传动装置的设计出发,对涉及联接、传动、轴系零部件的通用机械零件的特点、结构及工作原理进行研究,了解其选用原则、使用及维护、设计和计算方法、以及介绍有关的国家标准和规范。本课程如同工程制图、电工学、工程力学一样是高等学校工科有关专业的一门技术基础课。通过本课程的学习和作业实践,可以培养学生初步具有选用、分析以及维护保养简单的机械传动装并能进行设计的能力,为学习专业设备中的机械部分提供必要的基础。在学习本课程以前,已具备必要的基础课理论和金属加工工艺知识,这需要通过工程制图、工程力学、金工实习等先修课程学习才能获得。它综合运用工程图学、工程力学、机械工程材料与热处理等先修课程的知识和生产实践经验,解决通用机械零部件的设计问题,使学生在设计一般机械传动装置或其他简单的机械方面得到初步训练,为学生进一步学习专业课程和今后从事机械设计工作打下基础。机械设计一般流程如图2所示。
2.2教学方法和手段
由于《机械设计》课是高等工科院校机械工程类专业的一门专业技术基础课,其主要研究一般工作条件和常用参数范围内的通用机械零件的工作原理、结构特点、基本设计理论和设计计算方法,以及机械系统方案的设计与选择。主要目的是使学生掌握机械设计的基本理论和方法,培养学生工程实践能力和创新意识。在教学过程中要结合不同的讲授内容采用不同的讲授方法,将讲授式、启发式、讨论式、案例式等多种方法有机的结合起来,充分调动学生的学习积极性,使他们将被动听课变为主动参与,充分激发学生的创造性思维,促进学生个性的发展,培养其创新意识和创新能力,达到预期的教学效果。在教学手段上,结合多种现代教学手段,充分利用实物、模型、多媒体动画、教学录像片等进行教学内容演示,直观、形象地展示课堂教学的内容,不仅提高了学生的学习兴趣和理解程度,而且也省去了教师许多的板书时间,增加了课堂教学的信息量,提高了课堂教学的质量。
3TRIZ理论在《机械设计》课程中的应用
在《机械设计》课程中,加强学生创新能力的培养,可以安排在调查研究阶段开展TRIZ理论教学。在产品的调查研究阶段,按传统的设计方法,冲突并没有得到彻底解决,只是降低冲突程度。TRIZ理论提出用39个通用工程参数描述冲突见表1。在实际应用中,首先把组成冲突的双方内部性能用该39个工程参数中的2个来表示[4,5]。目的是把实际工程设计中的冲突转化为一般的或标准的技术冲突。并提出解决技术冲突的40条发明创造原理见表2。
从工业设计的角度讲,新产品的产生是为了满足人们生活和工作中的需求。而从人的角度提出需求,恰恰是建立在“物”场上需要解决的问题。即找到现有的“物”中存在着的问题,通过对这个问题的准确定义和解决问题的矛盾来发明或发现新的产品,进而解决人们的需求,提高人们的生活质量。也就是利用TRIZ理论,在旧的产品上找到需要解决的问题,并且准确地描述和定义这个问题中的矛盾,从而利用TRIZ的矛盾解决方法消除矛盾,从根本上解决问题,进而产生新产品。在设计过程中,TRIZ理论提出利用冲突矩阵解决见表3。该矩阵将描述技术冲突的39个工程参数与40条发明创造原理建立对应关系,很好地解决了设计过程中选择发明原理的难题。
针式打印机有以前打印机不能比拟的优势,但是为了提高打印清晰度,要求增加打印指针的数量,并且要求指针更细一些。但指针过细易折断和会穿破纸。在不减小打印指针直径的情况下,增加打印密度,这是一个矛盾。解决它用了一个折衷的办法,一行打两次。但又出现了新矛盾:在提高打印品质的同时不能提高打印速度。这个新矛盾在TRIZ理论中用了“机械系统替代法”和“压力法”得到了解决,即出现了喷墨式打印机。但新型的打印机又出现了新的问题,墨水的品质要求很高,要求墨水不能堵塞喷嘴,即不易凝固,但在纸上又必须得快速风干。所以新的矛盾是:在提高打印品质的同时不能增加墨水的成本。新的矛盾仍然用了“机械系统替代法解决”。出现了激光打印机。
4结束语
TRIZ理论以其良好的可操作性、系统性和实用性在全球的创新和创造学研究领域占据着独特的地位。实践证明,在《机械设计》课教学过程中运用TRIZ理论,能够帮助大学生系统的分析问题情境,快速发现问题本质或者矛盾,它能够准确确定问题探索方向,不会错过各种可能,而且它能够突破思维障碍,打破思维定势,以新的视觉分析问题,进行逻辑性和非逻辑性的系统思维。有助于在学习方法上应尽快完成由单科向综合、由抽象向具体、由理论到实践的思维方式的转变。更好更快地掌握设计零部件的设计规律,不断修正、逐步完善的设计方法,进一步培养和提高大学生的创新能力和解决工程实际问题的能力。
参考文献
[1]C.Halliburton.Giving your students’technologica1 foresight[C].The 2004 annua1 conference of the internationa1 technolo-gy education association in Kansas City.
[2]檀润华.创新设计—TRIZ:发明问题解决理论[M].北京:机械工业出版社,2002.
[3]张卫国,等.运用TRIZ理论解决复杂机电产品的创新设计问题[J].机械设计与研究,2005,(03).
[4]龚益明,丁明芳.TRIZ—解决创造性问题的理论[J].研究与发展管理,2004,(01).
KM教学理论下C程序设计课程改革论文 篇7
C语言程序设计作为一门基础课程, 是计算机专业学生的一门必修课程。该课程教学目标是使在掌握一种高级语言的基础上, 初步掌握程序设计的方法, 训练程序设计和逻辑思维的能力, 培养学生学会分析问题和解决问题。但我们必须明确, 《C语言程序设计》课程必然包含三方面的重要内容, 即:一是高级语言知识;二是程序设计方法;三是具体的算法。这三方面的内容之间, 即相有联系又有区别, 表现在:
(1) 语言处于程序设计的最底层, 是程序设计的工具语言和基础, 是掌握编程技术的关键。
(2) 程序设计方法处于程序设计的中间环节, 是在开发正确可靠软件的前提下, 缩短软件开发周期, 进而延长软件使用寿命的重要手段。
(3) 具体算法处于程序设计的最顶层, 是分析和解决问题的规则, 是程序设计的核心。当代著名计算机科学家D.E.Knuth定义:“一个算法, 就是一个有穷规则的集合, 其中之规则规定了一个解决某一特定类型的问题的运算序列”。即解决问题确定的方法和有限的步骤。
基于以上的认识, C语言程序设计课程要把语言知识作为一种技能来培养, 把程序设计方法作为一个规则来遵循, 把算法作为科学方法来传授, 这样才能适应技术的发展, 时代的需要。因此, 我们要把算法贯穿于教学的始终, 以启发式方法引导学生, 不同方面内容采用不同模式教学, 培养学生程序设计和逻辑思维能力、分析和解决问题的基本能力以及自学能力。
1 加强语言内容的教学, 打好扎实的基础
大部分学生入学前没有任何编程基础, 入学后掌握的计算机知识水平参差不齐, 不敢用、不会用计算机的学生还是屡见不鲜。学习高级语言对于他们而言, 免不了有畏难心理。其实计算机语言的学习, 真正要记忆的知识并不多。针对C语言而言, 有其特定的工具语言特点, 只要是学好数据类型、标识符、运算符与表达式、顺序、选择、循环结构程序设计和基本算法结构, 在此打下扎实的基础, 后面的学习就会容易许多。在实际教学中, 我们可以通过讲解例子, 采用自问自答方式教学。
2 掌握规律, 提高程序设计能力
所谓程序设计, 就是用某类计算机语言对所要解决的问题中的数据及处理问题的方法和步骤所做的完整而准确的描述。但很多学生在学习程序设计时, 有种畏难心理, 这主要是因为他们在学习重点和学习方法上的偏差, 只注重基础知识而忽视逻辑思维, 只掌握读程序能力而忽视实际的编程能力。任何学科问题的解决都有其一定的方法, 也有其特定的规律, 就程序设计能力来说, 其逻辑思维方法与数学逻辑思维方法有其很相似之处, 但也有它独特的地方。著名计算机科学家N.Niklaus Wirth教授对程序设计提出了著名公式:数据结构+算法, 算法是程序设计的灵魂。这个公式说明了程序设计的主要任务。因此, 在C语言程序设计教学过程中我们要坚持以程序设计为中心, 掌握规律, 可采取以下步骤引导学生在认识上逐步提高:
(1) 分析问题, 建立数学模型。使用计算机解决具体问题时, 首先要对问题进行充分的分析, 确定问题是什么, 解决问题的步骤又是什么。针对所要解决的问题, 打出已知的数据和条件, 确定所需的输入、处理及输出对象, 将解题过程归建立起解决问题的数学模型。
(2) 确定数据结构和算法。根据建立的数学模型, 对指定的输入数据和预期的输出结果, 确定存放数据的数据结构。针对所建立的数学模型和确定的数据结构, 选择合适的算法加以实现, 以使学生逐步由形象思维过渡到抽象思维, 同时在程序设计的实践中进一步熟悉计算机语言知识。
(3) 编制程序。根据确定的数据结构和算法, 用自己所使用的C语言把这个解决方案严格地描述出来, 即编写出程序代码, 这阶段主要采用抽象思维的教学方法。
(4) 调试程序。在计算机上用实际的输入数据对编好的程序进行调试, 分析所得到的运行结果, 进行程序的测试和调整, 直至获得预期的结果, 使学生初具开发简单实用系统的能力。
3 采用“多样式”的教学方法相结合, 充分调动学生学习程序设计的自觉性和积极性
(1) 采用启发式课堂教学, 提高学生学习效率。
在教学过程中, 教师应遵循启发式教学原则, 通过各种教学方式和手段激发学生的学习欲望, 使其在学习活动中, 积极思考, 发现问题, 提出问题, 并逐步解决问题。例如, 在讲解程序设计举例时, 不是简单地给出程序清单, 而是从分析问题入手, 继而找出解决问题的方法, 再给出算法, 最后编写出完整的程序, 而在这一过程中, 最关键的是每一步都采用与学生一起探讨的方式, 让学生在启发下思考, 在思考中解决问题, 从而掌握独立分析问题、解决问题的方法。
(2) 重视实践教学, 注重能力培养。
C语言程序设计课程的学习有其自身的特点, 听不会, 也看不会, 只能练会, 所以在课程教学中必须强调程序设计训练。学生只有通过大量的练习, 才能真正掌握语言知识, 培养程序设计能力, 逐步理解和掌握程序设计的思想和方法, 能利用计算机解决实际问题。通过大量反复的自测作业练习, 使学生熟练掌握基本的语言知识, 具备基本的编程能力。在此基础上, 通过完成一些难度稍大的作业, 将语言知识和程序设计的内容串成两条相互呼应的主线, 加深对语言的全面理解和掌握, 培养综合应用语言能力, 提高编程水平,
(3) 采用网络教学, 培养学生的自学能力。
随着计算机技术的迅速发展, 网络在我们的生活中起着举足轻重的作用。当今社会是信息时代, 网络是我们实现信息传递, 信息交换的最便捷工具, 充分发挥网络教学的优势, 教师可以将做好的课件放在网上, 毕竟课时有限, 课外辅导学生不多, 学生必须学会自学和自我消化, 对有疑难问题, 可随时从网上给予解答。另外还可将有代表性的实例和习题上传网上, 可以给学生课后提供更多的实践机会, 学生可以根据老师讲课的进步, 同步训练, 随时消化和掌握老师的讲课内容, 充分调动学生的学习积极性。
(4) 适当使用多媒体教学, 提高教学效果。
直观、形象、便捷的多媒体教学可以使学生在有限时间内迅速理解、掌握、获取更多知识和信息。C语言不仅仅要教会学生语法知识, 更要通过课程教学, 培养学生抽象思维和逻辑推理能力, 掌握程序设计的思想和方法。教学过程中, 我们有选择地使用多媒体教学, 将C语言语法中非深奥理论和逻辑推理的内容 (如数据类型、运算符、语句及部分语法规则) , 运用多媒体教学直观、形象地讲授给学生, 加深其对问题的理解。这样的多媒体教学, 收到了将抽象问题形象化、枯燥问题生动化的效果。对于多媒体教学不易实施的程序设计方法的讲解, 我们采用传统的教学方法, 教会学生如何思考、推理, 如何用语句实现算法, 培养了学生的抽象思维、逻辑推理能力。这样, 将传统的教学方法与多媒体教学相结合, 大大提高了学生的综合思维能力。
4 结语
要学好《C语言程序设计》课程, 对学生而言, 首先要克服畏难心理, 在教学过程中, 要使学生在学习中得到快乐, 尝试成功的喜悦, 提高学习的积极性和学习动力是十分重要的。其次, 课程的实践性决定了学习方法, 而不是死记硬背各种语法规则和语句格式, 而是在解决实际问题的过程中掌握程序设计的方法并提高逻辑思维的能力。因此, 教学方法在教学中起着重要的作用, 不能脱离课程的教学内容和教学目标, 不能脱离学生的知识水平, 采用符合学生所能接受和理解的科学教学方法, 必然会提高教学效率, 取得事半功倍的效果。
参考文献
[1]谭浩强.C程序设计[M].北京:清华大学出版社, 2002, (6) .
[2]张书云, 姜淑菊.程序设计语言课程教学方法探析[J].计算机教育, 2005, (5) .
[3]沈军.C程序设计语言课程的教学新思路[J].电气电子教学学报, 2000, (4) .
[4]张敏霞, 程序设计语言课程教学方法改革的探索与实践[J].中国高教研究, 2004, (2) .
谈《C语言程序设计》课程教学 篇8
1 激发学生的学习兴趣
要想学生学好C语言,提高学生的学习兴趣,首先必须让学生对课程有个全局的认识。学生在接触一门新课程前,最关心的问题就是这门课程是学什么、学完之后可以做什么[1]。因此,在教学之初,教师应首先使学生明确学习这门课程的目的、要求以及目标,使学生初步了解该课程在本专业中处于什么位置,为什么要学习该课程,学好该课程对于个人的专业发展有什么作用,教师可以结合程序设计在本专业中应用的实例,使学生明白学习该课程的重要性和必要性,从而激发学习兴趣。另外,由于C语言的概念比较抽象,在每一章初期概念讲解阶段,可以多举一些与生活密切相关的例子,为概念的引入做准备,以激发学生的学习兴趣。例如,在介绍数组这个概念时,由于数组是一种新的数据类型,为加深学生的理解,可以提出一个问题让同学们思考:一个班学生的学习成绩应该如何存储呢?并提示学生这些数据有何特点,从而引出在C语言中如何存储,从而引出数组这个概念。这种方法能够发展学生的探索能力,避免了直接的理论说教,不仅能激发学生的学习兴趣,还能加深学生对新知识点的理解。此外,在教学过程中,布置一些有趣味性的编程题目,积极鼓励有能力的同学参加软件设计大赛,使学生通过独立或团体完成一个软件设计,增强他们的学习自信,调动学习热情,提高学习兴趣。
2 注重知识的归纳总结
和自然语言一样,许多字词可能是相近的、相反的或者是相同的,字词间存在着内在的联系[2]。在C语言中,涉及到此类的知识点时,可以采用归纳总结的方法进行教学。例如,循环结构中的while语句,dowhile语句和for语句。在学生充分掌握三种语句的基础上,教师对这三种循环语句进行归纳总结,归纳三种语句的异同点,并针对同一程序详细介绍如何用这三种语句分别实现。便于学生对循环结构的灵活掌握。另外,C语言中学到的知识点都是零星、片面的,有些甚至是容易混淆的,比如说运算符的优先级和结合性,教师在课堂中对此类知识点进行归纳总结,方便学生的比较与记忆。并且在新的一章开始学习之前,对上一章的内容进行重点、难点以及小结的归纳总结,便于学生温故而知新,避免学生边学边忘,前后知识不衔接的问题。
3 注重算法思维的培养
算法是程序设计的灵魂,在程序设计中要设计一个好的程序首先要对程序的算法有较详细的了解,其次才是采用编程语言对算法的实现。但很多学生学完C语言课程后不会编程,甚至不知道从何下手。造成这一现象的主要原因是由于程序设计的思想与学生传统的思维方式不一致,学生缺乏对算法的抽象思维能力,因此不会分析问题,无法写出算法,这就需要教师在介绍程序范例时注重学生算法思维能力的培养。教师首先提出问题,可以选择一些与实际生活贴近的小例子,如鸡兔同笼问题,引发学生进行思考,然后详细分析问题,启发学生用现有的思维方式去思考如何解决,得到解决问题方法后再启发学生将其转化为算法,并可以改变现有条件,使学生在对新问题的思考过程中,培养学生对算法举一反三的能力,最后教师对算法进行总结归纳,加深学生对这类问题的理解。将具体问题和学生的现有知识联系起来,有利于克服学生的畏难情绪,也有利于使学生快速掌握算法。
4 认真上好实验课
《C语言程序设计》是一门实践性很强的课程,“边学边练”是掌握这门课程的最好方法。因此,我们根据理论教学进度安排了实验课,并制定了专门的实验指导书,实验指导书明确了上机实验目的和要求,制定了实验内容和详细的操作步骤,并为程度较高的学生设置了选做题目。在实验过程中,注重以学生为主体,教师为主导,安排的实验内容循序渐进,采用模仿-改正-编程的实践训练思路来培养学生[3],使学生在运行程序和调试程序中锻炼分析问题和解决问题的能力,对于实验过程中学生提出的疑难问题,教师首先加以引导或者提示,启发他们独立思考解决问题,经过自己思考解决问题往往印象比较深,也能激发学生的学习热情,对于实验中存在问题比较多的题目,教师及时进行总结,并在课堂中统一进行指导,不仅节约时间,满足同学们的需要,而且对知识的掌握起到巩固加强的目的。
5 提高教师素质
由于《C语言程序设计》课程教学任务较重,所以计算机专业老师难以承担所有的课程教学任务,造成许多任课老师都是各个院系的非专业老师,缺乏系统的程序设计思想。针对这一情况,学校每学年都多次组织计算机学院多年从事课程教学并且经验丰富的专业老师对任课教师进行培训,针对课程内容进行串讲,在串讲过程中,任课老师可以对在教学过程中的疑难问题以及教材中出现的问题进行讨论。促进教师之间的教学交流,并创建了QQ群以及网络平台,便于老师们之间的信息共享以及交流,努力提高教师素质。另外,学校每学年组织《C语言程序设计》教学竞赛,教师教学的积极性显著提高,使教师不断扩充自己的知识水平和能力,不断学习新的教学方法和手段,从而提高课堂教学效果。
6 改革考核方式
为了扎实推进学校教学改革,切实提高《C语言程序设计》课程教学质量,对《C语言程序设计》课程考试环节进行了改革,在传统的考核方式理论成绩(70%)和平时成绩(30%)基础上,新增了上机考试环节,课程成绩由平时成绩(15%)、理论成绩(70%)、机试成绩(15%)等3部分组成。理论考试重点考核学生的C语言基础知识、编程思想和算法分析能力,上机考试重点考核学生的动手编程操作能力和程序调试能力。机试的考试系统由学校自主开发,学生考试时由系统自动从100套试题库中随机抽题进行考试,做到了严格的公平公正。实践后表明,这种考核方式能够更加客观地反映学生的知识掌握程度,同时能够促进学生主动学习,提高学生的动手操作能力。
实践证明,C语言的教学改进可以提高学生的学习兴趣,有利于学生对相关概念的理解以及编程能力的培养,使学生逐步掌握分析问题、解决问题的思维能力,同时也为非计算机类专业学生将程序设计思想灵活运用到自己的专业领域打下了基础。
参考文献
[1]胡丹.非计算机专业《C语言程序设计》教学探讨[J].电脑知识与技术,2011,7(34):8983-8985.
[2]邓静.C语言程序设计教学方法的探讨[J].教育教学论坛,2010(9):88.
KM教学理论下C程序设计课程改革论文 篇9
C语言作为一门在计算机软件和硬件领域通用的计算机语言,是许多高校计算机专业与非计算机专业的必修课[1]。但在C语言程序设计教学实践活动中,学生普遍反映知识点多、零散,语句语法要求繁琐、不易上手学习等问题。因此,对于着重学生实践能力培养的独立学院而言,C语言程序设计课程改革已刻不容缓。笔者根据长期以来的教学实践经验,从学生对象心理分析、理论环节设计、实践过程项目化等方面对C语言程序设计课程进行了改革探索。
1教学改革内容
1.1传统教学存在的问题
C语言程序设计课程传统教学中突出存在以下两方面问题:
(1)教学过程枯燥。传统的C语言授课开篇即是常量、变量、命名构成、类型等大量概念[2],枯燥而且知识点多,着重强调语法细节,容易使初学者产生茫然、畏难甚至反感情绪,而且课程例题与实际应用脱节。填鸭式的教授方式无法提高学生学习兴趣,达不到好的教学效果。
(2)程序设计思想传授不足。传统教学模式注重学生的基础理论知识、基础程序设计能力培养,学生为了应付期末考试和等级考试,书面做题能力强,但在实际面对具体问题进行程序 设计时,其设计思 路、规范性都 很欠缺,这种状况将不利于学生学 习后续课 程与从事 相关工作。
1.2授课对象分析
由于独立学院的特殊性,多数学生理论基础较差,逻辑思维能力不强,而且学院的C语言程序设计课程普遍安排在第一学年,学生的学习思路还没有从高中的教师全程讲授、题海战术中转变为教师讲解方法、课后自主学习的方式,有的学生开课前甚至从未接触过计算机。因此,在学习《C语言程序设计》时,学生普遍反映难度大。其次,学生普遍自学和实践能力不强,掌握知识进度慢,影响后续课程学习[1,3]。因此,《C语言程序设计》需要根据课程特点,并结合学生的知识掌握能力进行有针对性的教学改革。
2具体改革措施
2.1理论环节:强调讲解深入浅出
C语言程序设计课程存在知识点多、零散,学生理解起来较为抽象的情况,需要将知识点串联起来以形象化的例子进行讲解,以让学生更容易理解。在实践中,笔者从以下几个方面进行了尝试,学生反馈效果良好。
(1)以自然语言学习过程类比计算机语言学习过程,使用知识类比法降低入门难度。程序语言即和计算机打交道的语言,和自然语言相比具备一些共通性:1两者都是用来进行沟通的语言,从本质而言,学习方法都包括从基本的词法、语法构成到具体语句实现的过程。因此,初接触C语言的常量、变量时可类比 学习。在教学 之初不需要讲解所有知识点,在最常用的整形和实型讲解后,再辅助程序实例讲解即 可;2借助自然 语言描述 来理清思路,给学生灌输一个重要理念:解题步骤、解题思想才是核心,任何程序语言只是实现问题的工具。在程序设计例题讲解过程中,多借助流程图让学生清楚问题解决的思路,要求学生在实际做题过程中同样形成先用自然语言写清楚步骤,再考虑程序实现的习惯,从而降低学生的理解难度,提高学生学习兴趣。
(2)以学生熟悉的实例对比学习知识点,使学生能快速理解概念和知识点本质,也更容易提高学生兴趣。以下几个实例在讲解一些较难理解的知识点时效果较好。
例1:在讲解循环中的break和continue时,有些学生始终无法分清两者区别,可以设定情境:以学生出早操为例,每周从周一至周五都出早操,从第1周延续至20周,break场景可类比学校出现新规定,16周起为复习周,不参加早操,退出循环出操过程,而continue可以类比为某一周学校出操场地被占用,则不出早操是从占用起至当周周五,下周还是需要循环出早操。
例2:函数讲解中 很多学生 无法理解 实参和形 参传递,以及函数调用的本质。利用工科学生容易理解的搅拌机为例,搅拌机功能就是实现将入口1和入口2接收的材料进行搅拌,最后将混和物在出口给出。入口1和入口2的材料具体内容未知,混合物内容未知,此可以理解为形式入参,不分配具体内存。一旦到真正使用搅拌机时,即相当于函数调用过程,具体的材料1可能是水泥,材料2可能是沙子,就有了实际内容,类比实参,出口内容则是实际的混凝土,也即是函数中的出参。
例3:在讲解复杂的指针概念时,以学生熟悉的学院行政办公楼为例进行讲解。行政楼房间编号依次是1-01、1-02、1-03,二楼编号依次是2-01、2-02…,现在学校一楼的3个房间1-02~1-104被分配给了教务处,并且在102门上挂着教务处门牌,学生一般 涉及教学 问题都会 找教务处,而不会找1-02~1-04。为了方便校外人员办事,一般还将行政楼的楼层及 办公地点 安排存档 一份在门 卫处。该情况可以类比于C程序定义变量分配内存,内存即房间,指针变量里存放的相当于地址号,类比门卫处保存的房间号,门卫处即理解成指针变量。
通过这些理论讲解方式的改革,尽量让知识点浅显易懂,使学生能够快速理解。因此,学生对于理论知识的掌握程度相比改革前得到了普遍提高。
2.2实践环节:强调与具体项目结合
C语言是一门实践性较强的课程,独立学院更是以技术型人才培养为导向。C语言课程的实践课时占据了整个课程50%的课时量。因此,对于教学实践环节也进行了深化改革。
C程序设计的实践课程以开发一个小型点菜项目为背景展开,此项目的开发能将选择、循环、函数、数组和指针等多个知识点串联起来,以达到锻炼学生综合程序设计能力的目的。该项目主要功能包括:新录入和显示菜品价格、点菜、结算,以日为单位统计最高消费和最低消费额度与营业额,分段显示最受欢迎菜品以辅助菜品采购人员采购。具体实施过程包括以下环节:
(1)教师带领学生理清项目需求。由于学生对项目本身很熟悉,比较容易上手,教师辅助讲解功能需求中可以应用的知识点,给学生提示一些好的设计思路。例如,尝试使用二维数组存储菜品及其对应价格比单独定义数组更为合理等。
(2)教师进行操作示范[4]。以菜品录入为例,讲解基本的数据结构设计、函数体设计中录入菜品过程中需要考虑的问题。要求学生以4~5人为一个学习小组,组队完成所有功能实现。在具 体实施过 程中,要求学生 积极讨论,充分发挥每个组员的能力,分工协作共同完成任务,最终集成出一个比较系统的模块化程序。
(3)组和组之间交叉测试,进一步完善代码,教师在此过程中完成学习评价。交叉多轮测试、对比代码可以让学生学习其它组的代码风格,并发掘代码设计过程中存在的不足,最后给出测试报告,提出改进建议。由于学生自己参与了整个设计过程,因此,该测试报告具备可实施性,可以进行有效改进。教师在此过程中根据学生的参与程度、测试报告质量以及最终的项目系统完成整体教学评价。
学生通过参与一个完整的小项目,从最初的代码数据结构设计、模块化功能设计,到最终代码完成、模块集成,到最后的项目测试,学生除了可以对软件开发过程更熟悉以外,对于开发中涉及的C语言知识点也更能融 会贯通地使用。
3结语
以上教学改革措施在实施之初,也曾遇到如教学实验环境限制、理论与实践课时分配不当等问题,但多个学期实施下来,学生的整体理论水平和实践动手能力较改革前得到了很大提高,学生对于程序设计的兴趣也大大提升,主动要求参与到各项软件大赛中一试身手。该措施同时辅助了后续课程的学习,提高了学生的自主学习能力。
【KM教学理论下C程序设计课程改革论文】推荐阅读:
艺术设计理论课程教学09-06
一体化课程教学理论论文10-22
高职教学中理论考试方式的改革探讨论文08-18
后现代教育理论及英语教学改革论文09-09
课程理论教学09-03
激励理论下体育教学10-12
军事理论课程教学10-25
专业理论课程教学11-14
新课程教学理论06-15