高职《C语言程序设计》课程教学方法的实践与探索(精选10篇)
C语言程序设计是计算机、数控维修及机电类专业的基础课程.本课程的教学目标是培养学生模块化程序设计的逻辑思维能力,掌握程序设计的.基本语法规则和程序调试方法,并具有初步的分析问题和解决问题的能力.通过对本课程在教学中积极进行教学模式改革,突破传统教学思路,发挥学生的主体作用,整合教学内容,采用实践一体化教学手段,以便培养学生解决实际问题能力.
作 者:周钦 王艳秋 作者单位:周钦(沈阳航空职业技术学院,辽宁,沈阳,110043)
王艳秋(抚顺职业技术学院,辽宁,抚顺,113006)
自上世纪九十年代初开始, C语言逐渐成为国内高校计算机相关专业的必修课, 时至今日已经二十余年了。即便是我们已经进入了以移动互联网技术飞速发展为特征的后PC时代, C语言在底层软件开发、驱动程序编写、嵌入式系统开发和动画软件设计等方面依然具有不可替代的重要作用。因此, 不断进行C语言教学改革的探讨和实践, 从而提高学生C语言编程能力, 不仅仅具有教学意义, 对于学生提高就业竞争力和获得未来职业生涯的可持续发展能力也同样具有重要的作用。
1 在C语言教学中应积极采用任务驱动的教学模式
在传统的C语言教学中, 教师将主要精力着重于培养学生掌握C语言基础概念、语法规约、语义描述、算法分析与设计的一般方法, 而在C语言如何解决实际问题方面没有太多关注, 这往往导致课程教学较为枯燥。特别是对于高职学生, 他们中有一些同学更乐于接受与实际接轨的技能性较强的内容, 如果我们一味注重理论灌输与传统例题的练习, 容易使学生逐渐缺乏学习兴趣, 而难以达到应有的教学效果。比如, 我们再讲授C语言分支结构时, 总是按照语句的一般形式、语义、程序流程图、简单例题和复杂例题等内容的先后顺序, 逐渐展开教学环节的, 最后引申到实际问题的解决方法。
我们对此传统教学过程稍作调整, 在授课之初请学生分析如下例题:
某企业发给员工的薪水由两部分组成 (底薪加提成) , 设员工的底薪为800元, 对于某位员工而言, 若其生产的产品所产生的利润低于1000元 (含1000元) 没有提成, 利润在1000~2000元 (含2000元) 的提成为10%, 利润在2000~5000元 (含5000元) 的提成为15%, 利润在5000~10000元 (含10000元) 的提成为20%, 利润超过10000元的提成为25%, 请编写C语言程序, 完成该企业薪水发放计算软件的设计工作。
我们请学生以企业工作人员的身份观察并寻求解决该问题。显然, 学生认知系统中仅有的顺序结构内容无法进行程序设计。因此, 为了完成企业提出的要求, 必须寻求新的编程手段。而这种思考结果也就顺利的将学生的思路引导到分支结构的定义和应用中来。以这样的具有应用背景的问题作为课程的开端, 为学生设置了构建算法模型、、掌握选择分支结构、完成流程图设计和程序编写等工作任务的方式, 并通过将教、学、做环节融为一体的教学方式, , 将课程单元设计中的各个知识要求、技能要求有机地衔接为一个整体。
长时间的教学实践表明, 如果以具体的实际工作中需要解决的问题为着手点, 引导学生掌握为解决这样的问题所应该具备的C语言相关知识与技能, 将会使教学目标更为明确的定位在服务学生未来的就业岗位、授课内容更有针对性地着重于培养学生解决实际问题的能力。更为重要的是, 以企业实际问题作为授课引例和参照物, 提高了学生的学习热情, 使学生成为课程教学过程中的主动参与者、共同解决问题的合作者, 从而极大地提高了C语言教学效果, 在起到专业人才培养方案中C语言的基础性服务作用的同时, 也增强了学生通过专业学习打造自身就业竞争力的信心。在C语言授课过程中主动创设用以解决实际问题的教学情境, 并将在此情境中学生所需掌握的知识与技能归纳为若干实际的工作任务, 确实构建起在虚拟的企业工作环境下, 工作任务驱动的教学模式, 应该是今后C语言课程教学的重要发展方向。
2 在C语言教学中应重视教学内容方面的恰当选材
学生在学习过程中, 浅尝辄止、不求甚解, 难以深入到较为复杂的编程环节中, 以至于在工作岗位上面对实际问题凸显能力不足, 是当前高职院校计算机相关专业C语言教学中面临的重要问题。在教学中, 我们感到, 仅仅通过大量浅显孤立的个案来对学生开展C语言编程训练是导致这一问题的重要推手。在教学中采用具有问题深度的例题和实训内容对于循序渐进、深入浅出地培养学生解决复杂问题的能力具有重要意义。比如, 在进行循环结构编程训练时, 引入矩阵乘法算法程序设计作为重要案例, 就收到了较好教学的效果。首先练习两个三阶方阵的乘法函数的编写, 再练习m×n矩阵与n×p矩阵的乘法函数编写, 此后, 可以练习任意两个矩阵的乘法函数问题, 这就需要先进行判断, 以决定是否可以相乘, 从而将分支结构与循环结构相联系。在此单元实训的后期, 针对数据量比较大的矩阵乘法, 还可以练习在数据输入过程中临时中断并保护数据, 而后通过密码输入环节重启数据输入并计算和输出, 这也就实现了将多个功能模块有机整合的目的。再如, , 我们进行字符数组的教学过程中, 往往使用字符串查收程序作为案例来展开教学。我们将此例分为四个层次来对学生进行编程训练, 它们分别为在一个长字符串中查找某个单一字符第一次出现的位置、在一个长字符串中查找某个单一字符出现的所有的位置、在一个长字符串中查找某个短字符串第一次出现的位置、在一个长字符串中查找某个短字符串出现的所有的位置。
通过以上案例的实训过程, 我们不难发现实操环节的问题呈现出循序渐进、由浅入深的特点, 引导学生不断地去完成更为复杂的程序设计, 但学生每一次新的训练, 又都是建立在他们已经掌握的知识与技能的基础之上的。在这个过程中, 学生亲身体验着自己所处理的问题由简单到复杂、由局部设计到系统整合的变化, 也感受到自己正在努力向着解决实际问题的方向发展。因此, 他们会更加自信、更加热情地投入到新的实训环节中去, 不会因为畏难情绪和缺乏兴趣而止步不前。
3 在C语言教学中应着力调动学生的主观能动性
枯燥是很多计算机专业初学者对于C语言课程的评价, 特别是当今的大学生从孩提时代就开始接触以GUI环境为代表的各种软件平台, 包括观看视频、制作动画以及参与网络游戏等活动, 所以当他们面对经典的行编辑环境, 并需要通过代码与计算机沟通时, 确实会有很多不适应, 甚至内心中会对C语言课程有些许的枯燥感。
在后PC时代教授C语言课程确实更需要调动学生的主观能动性, 我们有责任让学生在体会到自己向职业IT人迈进的同时, 感受到学习中的快乐和C语言的魅力。那么除了C语言授课内容的改革与创新能提高学生的学习兴趣以外, 加大学生参与课程教学互动环节的强度、增强学生的成就感也对提高学生的学习积极性具有重要意义。在教学过程中, 我们要为学生提供探讨问题的空间, 鼓励同学们将自己的思路和实践环节中的收获与全体同学们分享, 并引导学生在实践环节中通过分配不同模块的代码编写任务来加强团队合作与沟通;我们要为学生搭设展示才华的舞台, 请在学习中表现优异的学生个人或是团队代表走上讲台在课上展示他们的代码设计、讲解程序设计思路并接受同学们的掌声和赞许;我们要为学生提示克服困难的路径, 每次授课结束难免会有一些因为遇到困难而感到学习效果不佳的同学, 面对优秀同学光鲜的变现, 他们往往会选择沉默, 作为教师, 要积极与这些同学进行沟通, 了解他们所遇到的困难, 并拿出时间和精力帮助他们迎难而上, 取得进步。此外, 通过展示一些具有良好视觉效果的优秀的C语言程序、强调C语言在当今IT领域的重要作用以及C语言未来的发展方向等方式, 也有利于调动学生的学习热情。
在计算机发展史上, 有很多曾经风光无限的编程平台都已淡出人们的视线, 而C语言在三十余年的发展中, 历久弥新, 直至今日仍然在底层控制、计算机教学等方面扮演着重要角色。我们这些讲授C语言课程的教师, 在大学时代都曾是C语言的痴迷者, 都曾彻夜守在计算机旁不断调试程序或在图书馆、书店中专注地查找资料。今天, C语言仍然在续写传奇, 而不经意间我们其实也是这传奇中的一部分, 让我们拿出对于C语言的所有收获与热情来感染我们的学生吧, 使他们在C语言课程教学不断改革和实践中受益, 是我们的责任。
参考文献
[1]孟祥双, 刘永宽, 郭瞻.C语言教程[M].北京师范大学出版社, 2009.
[2]张福祥.C语言程序设计[M].辽宁大学出版社, 2007.
【关键词】C语言程序设计 教学改革
【中图分类号】G71 【文献标识码】A 【文章编号】2095-3089(2015)05-0228-01
一、《C语言程序设计》课程的作用及特点
《C语言程序设计》课程在计算机类专业人才培养方案中占有重要地位。C语言的学习,对学生编程思维的建立,把现实问题转化为程序问题的能力培养,具有至关重要的作用。C语言又是学好其它专业课程的基础,如何提高课程的教学效果,调动学生的学习兴趣,对学习其它相关程序类课程具有非常重要的意义。[1]
C语言功能强大、应用广泛,这是它从上世纪70年代到现在经久不衰,被人们追崇的主要原因。C语言是一门实践性、操作性很强的课程[2],集抽象性、逻辑性、实践性于一身。在教学过程中怎么把这门课教好、学好,是对教师很大的考验。
二、《C语言程序设计》课程教学改革措施及成效
根据《C语言程序设计》的课程特点,以及高职学生的自身特点,在我们多年教学经验的基础上,我们对该课程进行了以下教学改革。
1.让学生充分了解这门课程,提高学生学习的主动性。
上第一节课的时候,就把该课程的性质、作用以及它在专业培养中的地位,它对应哪些工作岗位,能解决哪些实际问题,给学生做详细说明,让同学们充分了解这门课,对它有理性和感性的认识,才会有进一步学习它的欲望和兴趣。
2.应用“项目导入、任务驱动”的教学方法,增加学生学习的兴趣。
总听人们说,C语言是一门深奥、枯燥又难学的课程,如果采用传统的教学方法,确实给人这样的感觉。我们在多年的教学过程中不断探索、创新、改革,采用了“项目导入、任务驱动” 的教学方法,取得了较好的教学效果。我们积累了好多综合性的教学案例,在刚开课时,不着急讲解理论知识,选择一个综合案例作为项目,展示该项目的功能,并要求学生学完这门课后,在实训环节必须完成此项目。让学生了解学习目标、学习任务,以及学习成果,从而调动学习兴趣,增加学习动力和压力。在教学过程中,以此项目为依据,采用“任务驱动”的方法展开教学。把项目分成若干模块,比如输入模块、数据处理模块、输出模块等等,每个模块都是一个任务,每个任务又包含若干子任务,每个子任务的完成都涉及若干知识点。这样以项目引导、任务驱动的方式带动知识点的学习。学习是为了完成任务、实现项目。这样,学习变得更加有目标、有动力,使学生的学习兴趣、学习主动性和积极性、学习效率有了很大提高,效果显著。
3.“以赛促学”,增强学生自信心。
组织学生参加各种大赛,是督促学生学习、提高学生自信心的很好途径。我们组织学院级的ACM程序设计大赛,同学们都很积极、踊跃。赛前同学们争先恐后地在机房练习做题,遇到困难时彼此讨论得热火朝天、争执得面红耳赤,运行成功时兴奋得欢呼雀跃,学习气氛空前高涨。同学们在分析问题、解决问题过程中,锻炼了他们的能力、提高了他们的素质、增强了他们的自信。通过比赛选拔优秀学生参加自治区级ACM程序设计大赛,通过备战比赛进一步提高了他们的编程能力。去年,我们的学生取得了自治区三等奖的好成绩,比一些本科院校的学生表现得都好。通过比赛,同学们增加了学习C语言的兴趣,夯实了C语言编程基础,为以后的学习和工作起到了很好的促进作用。
4.以在线学习与测试系统作为常态化学习工具。
我们利用杭州电子科技大学开发的ACM在线学习与测试系统进行教学和练习,同学们网上注册用户名和密码,可以随时随地登录做题,编程提交后等待测试结果,若通过则显示红色的 “accepted”,同学们做题积极性很高。我们还利用北京大学在线裁判系统录入了自己的题目,有针对性地训练和测试同学们的学习,收到了很好的教学效果。通过在线学习与测试系统,同学们可以随时随地在线做题、测试,还可以在编程论坛上与志同道合的朋友们一起探讨、研究、分享,同学们学习积极性和学习效率得到了很大的提高。
三、总结
C语言教学改革是很多老师研究的课题,怎么增强学生学习兴趣、提高教学效率,也是我们每个老师关心的问题。本文依据我院实际情况,就高职学生学习C语言的一些问题和解决方案进行了阐述。要想教好这门课,需要教师从学生实际出发,改变教学理念,采用适合的教学方法和手段,与时俱进,整合各种教学资源,建立全方位、立体化的教学环境,想方设法调动学生学习的主动性、积极性,才能收到好的教学效果。
参考文献:
[1]蔡志荣.高职程序类课程教学效果量化管理的思考——以《C语言程序设计》课程为例[J].职教论坛,2014(26)
《C语言程序设计》实践,作为一门计算机基础课程的实践,它不仅有利于提高学生的编程能力、思维能力,培养学生的实际动手能力和创新能力,也将对学生日后深入学习计算机专业知识有很大的帮助。
通过对课堂的观察、与学生的交流、实践总结的填写、及完成项目的情况,发现部分学生上课时都能听懂,可到自己动手操作时却脑子却一片空白,无从下手,出现了听得懂、编不出的现象。其原因不外乎以下几方面:
首先,对语句语法的理解不够深刻。学生对于一些基本语句的使用、语法的规则,掌握不够,随着学习的深入,把新知识掌握了却把旧知识遗忘了。比如,少数学生对于使用频率高的自定义函数仍不能正确的定义与调用;学生完成了难度较大的贪食蛇,再做通讯录时,却不能正确运用标准的输入输出函数。
其次,C语言强调的是模块化的思想,而学生习惯于顺序编程的思维方式。而有的学生比较依赖老师,老师讲多少就学习多少,这样会使学生的编程思想嵌入固定的模式中,学生也减少了思考的机会。
再次,学生在学习C语言时,开始是积极的,但随着项目内容的深入,有的内容需要记忆、思考,难度增大了,兴趣就减退了,调动不起积极性,觉得学习C语言很难。
针对学生在学习中出现的以上问题,在教学的过程中,我不断的改进自己教学的方式方法,吸取小组内其他成员的教学方法,取得了一定效果:
1、思路式教学方法:
在课程教学过程中,通过项目的讲解,引导学生应用已学知识并结合本项目的新知识,分析项目,设计算法。在分析项目,设计算法的过程中,适当地、有重点地让学生尝试困难,甚至是错误,培养学生正确的思维方式,让学生在自己探索解决问题的过程中,全面、有效地掌握知识;
2、精讲多练,加强实践能力
在学生理解项目思想、确定项目的算法后,有针对性地对项目中涉及的知识点进行讲解,对于那些学生自己能完成的内容,少讲、只做提示,甚至不讲;每次课留足够的时间让学生尽可能多地实践操作,同时加强巡查辅导,及时发现和纠正学生的错误。对于出现率高的,适时进行集中讲解。
3、提问式教学方法:
根据教学内容和学生的实际水平,在教学的过程中,适时地根据项目演示结果,提出问题,启发引导学生去分析问题,解决问题,提问以达到理解、掌握知识,提高思想觉悟的目的。在新旧知识的衔接点上提出问题,以旧知识引出新知识,引导学生思考,回忆旧知识,并在旧知识基础上理解新知识;在分析项目的实现过程、项目的重点、难点时提出问题,就像导游将游览路线、游览对象的精华描述给游客。
4、赏识教育:
实践课重在培养学生的实践能力,学生只有勤于动脑,亲自实践,才能真正体会到其中的奥妙。在开始设计一个项目时,同学们普遍觉得比较难。对于学生在编程过程中好的算法,及时给予肯定、表扬,并鼓励学生,有难度才有挑战,把完成项目当作学习,也当作对自己能力的培养。完成一个项目,同学们都有这样的体会:原来这个项目是这么简单。虽然开始有点难,但是只要自己跟着老师的步伐,多思考,多看书,对自己的程序反复调试,都可以做出来。
5、有选择性的回答学生问题:
对学生在程序调试过程中出现的的问题,只要学生能够通过自己努力解决的问题,只是给学生提示一下错误出现的哪个位置,尽量让学生自己去解决;对于学生确实不能解决的问题,提示知识点,再给予解答,这样培养了学生自主探究问题、合作学习、解决问题的能力,1还教给他们学习的方法而不是仅仅传授给他们知识,要让他们学会学习,发掘学生自身潜能。
6、一点多解:
对于一个程序的运行结果,可以有不同的实现方式。在课堂上,讲解的只是一种适合大部分同学的算法。因此,鼓励学生在理解程序思想的基础上,自己设计算法,创造性的完成项目。课后反馈:
中央电大教务处教学管理科 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.字节文件的访问
(二)教学要求
了解:文件的有关概念;
理解:文件的各种访问方式;
应用:会分析和编写使用文件的程序。
第四部分 实验
【课程代码】
0770105
【学
分】【参考学时】
【讲授学时】
【实验学时】
【实习学时】
0 【课程性质】
专业必修课
【参考教材】1.谭浩强 《C程序设计》(第三版)清华大学出版社
2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)
3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社
【课程基础】
在学这门课之前,学生最好对计算机基本结构、软硬件概念和上机操作知识有一定的了解,但不是必须的。本课程和“计算机导论”课程同时开设,可以互学互用。【适应对象】
本课程适用于计算机科学与技术-计算机科学与技术专业、软件工程-软件工程专业、电子信息科学类-电子信息科学与技术专业以及数学专业的学生学习。【教学目的】
通过对C语言的语法规则、数据类型、数据运算、语句、系统函数、程序结构的学习,使学生了解结构化程序设计基本思想和方法,并养成良好的编程风格,培养出扎实的软件开发基本技能;使学生初步掌握利用计算机处理问题的思维方式和程序设计的基本方法和编程技巧,熟练地应用C语言编写简单的程序,掌握基本的程序调试方法和步骤,为进一步学习后续课程和将来从事应用软件开发奠定良好的基础。【内容提要】
C语言的各种数据类型,运算符,表达式;结构化程序设计语句;数组;函数的概念和用法;编译预处理命令;指针运算及其使用;位运算;文件的操作;算法的基本表示方法及结构化程序设计方法。
第1章 C语言概述
第一节C语言出现的历史背景 第二节C语言的特点
C语言的特点 第三节 简单的C程序介绍
简单C程序的结构 第四节C程序的上机步骤 【基本要求】
了解C语言的历史; 掌握C语言的特点;
掌握C语言的运行环境,初步了解运行一个C语言程序的过程。【参考学时】2学时
【参考资料】[ 1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社 ]
第2章 程序的灵魂-算法
第一节 算法的概念
算法的定义。
第二节 简单算法举例
第三节 算法的特性
算法的特点。
第四节 怎样表示一个算法
用自然语言表示算法;用流程图表示算法;三种基本结构; N-S图;用伪代码表示算法;用计算机语言表示算法。第五节 结构化程序设计方法 【基本要求】
1、掌握算法的概念,算法的特性;
2、掌握结构化程序设计的三种基本结构;
3、掌握用流程图、N_S流程图和伪代码等算法描述方法来描述具体的算法的方法以及结构化程序设计的方法。重点:结构化程序的三种基本结构,顺序,选择,循环;结构化程序设计的方法,自顶向下,逐步细化,模块化设计,结构化编码。难点:用流程图、N_S流程图和伪代码算法描述方法来描述具体的算法。【参考学时】4学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社] 第3章 数据类型、运算符与表达式
第一节 C的数据类型
第二节 常量和变量
常量和符号常量;变量的定义和使用。
第三节 整型数据
整型常量的表示方法;整型常量;整型常量的类型。第四节 实型数据
实型常量的表示方法;实型常量;实型常量的类型。第五节 字符型数据
字符常量;字符变量;字符数据在内存中的存储形式及其使用方法;字符串常量。第六节 变量赋初值 变量赋初值的方法。
第七节 各类数值型数据间的混合运算
运算规则和实例。
第八节 算术运算符和算术表达式
算术运算符;算术表达式。
第九节 赋值运算符和赋值表达式
赋值运算符;赋值表达式。第十节 逗号运算符和逗号表达式
逗号运算符;逗号表达式。【基本要求】
1、掌握C语言所提供的数据类型以及基本数据类型常量的书写方法和变量的定义、赋值和初始化方法;
2、掌握基本运算符的运算规则及优先级别;
3、了解C语言的数据类型体系和运算符体系;
4、能正确构成有基本数据类型组成的基本类型的表达式。
重点:基本数据类型常量的书写方法和变量的定义、赋值、初始化、使用方法;基本运算符的运算规则及优先级别;表达式的构成规则和计算。难点:运算符的优先级别;混合表达式计算;逻辑值的表示方法。【参考学时】4学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社] 第4章 最简单的C程序设计-顺序程序设计
第一节 C语句概述
C语言中的语句类型。第二节 赋值语句
赋值语句的用法。
第三节 数据输入输出的概念及在C语言中的实现
输入、输出概念;输入/输出实现方式。第四节 字符数据的输入输出
putchar函数的使用;getchar函数的使用。第五节 格式输入与输出
printf函数的使用;scanf函数的使用。第六节 顺序结构设计程序举例 【基本要求】
1、了解C语言所包含的语句;
2、熟练掌握赋值语句以及字符输入输出、格式输入输出函数的使用方法;
3、学会按照一定的格式输出相应的数据类型,能正确设计顺序结构的程序。重点:赋值语句的格式和功能;字符和格式输入/输出函数的调用格式和功能。难点:格式输入/输出函数中格式控制字符的使用。【参考学时】4学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第5章 选择结构程序设计
第一节 关系运算符和关系表达式
关系运算符及其优先次序;关系表达式。第二节 逻辑运算符和逻辑表达式
逻辑运算符及其优先次序;逻辑表达式。第三节 if语句
if语句的三种形式;if语句的嵌套;条件运算符。第四节 switch语句
swtich语句的用法。第五节 程序举例 【基本要求】
1、掌握关系运算符、逻辑运算符的运算规则以及关系表达式和逻辑表达式的使用;
2、掌握条件运算符、条件表达式的使用;
3、熟练掌握条件选择语句if语句的使用;
4、熟练掌握多分支语句switch语句的使用。
重点:关系运算符、逻辑运算符、条件运算符的使用,混合运算时的优先级别; if语句的语法格式;if语句的嵌套;使用switch语句实现多分支结构的程序设计方法。
难点:运算符混合运算的优先级别;if语句的嵌套;switch语句的使用。【参考学时】4学时
【参考资料】[1.谭浩强《C程序设计》(第三版)清华大学出版社2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第6章 循环控制
第一节 概述
C语言中实现循环的语句类型。第二节 goto以及用goto语句构成循环
goto语句的用法。第三节 while语句
while语句的用法。第四节 do-while语句
do-while语句的用法。第五节 for语句
for语句的用法。第六节 循环的嵌套
循环嵌套的种类;嵌套语法。第七节 几种循环的比较
第八节 break语句和continue语句
break语句;continue语句。第九节 程序举例 【基本要求】
1、熟练掌握循环结构的控制语句:while语句、do_while语句、for 语句的用法;
2、掌握三种循环控制语句的区别和联系;
3、掌握break、continue、goto语句的功能和语法格式;
4、能够根据循环结构的要求正确选取循环语句来实现循环,掌握循环程序的执行过程。
重点:三种循环语句while、do_while、for的使用;break、continue、goto语句的使用;循环程序的执行过程;嵌套的循环程序。
难点:循环程序的执行过程;嵌套的循环程序。【参考学时】4学时
【参考资料】[谭浩强 《C程序设计》(第三版)清华大学出版社2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第7章 数组
第一节 一维数组的定义和使用
一维数组的定义;一维数组元素的引用;一维数组的初始化;一维数组程序举例。第二节 二维数组的定义和使用
二维数组的定义;二维数组的引用;二维数组的初始化;二维数组程序举例。第三节 字符数组
字符数组的定义;字符数组的初始化;字符数组的引用;字符串和字符串结束标志;字符数组的输入输出;字符串处理函数;字符数组的应用。【基本要求】
1、掌握数组的概念、一维数组、二维数组和多维数组的定义和使用;
2、掌握字符数组、字符串的区别和具体应用;
3、掌握处理字符串的系统函数的使用方法。
重点:一维数组、二维数组和多维数组的定义和使用;字符串的处理函数的使用。难点:字符数组、字符串的区别,存放若干字符和存放字符串的字符类型数组的差别。【参考学时】6学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第8章 函数
第一节 概述
函数的作用及分类。第二节 函数定义的一般形式
无参函数的定义形式;有参函数定义的一般形式;空函数;形参声明的方式。第三节 函数参数和函数的值
形式参数;实际参数;函数的返回值。第四节 函数的调用
函数调用的一般形式;函数调用的方式;对被调函数的声明;函数原型。第五节 函数的嵌套调用
函数嵌套调用的含义及其方式。第六节 函数的递归调用
递归;函数递归调用的方式。第七节 数组作为函数参数
数组元素作为函数实参;数组名作为函数参数;多维数组名作为函数参数。第八节 局部变量和全局变量
局部变量;全局变量;局部变量和全局变量的使用。第九节 变量的存储类别
动态存储方式和静态存储方式;auto变量;用static声明局部变量;register变量;用extern声明外部变量;用static声明外部变量;变量的声明和定义的区别。第十节 内部函数和外部函数
内部函数;外部函数。
第十一节 如何运行一个多文件的程序
在Turbo C集成环境下编译连接多文件结构的方法。【基本要求】
1、熟练掌握函数的结构、设计方法和调用方法;
2、掌握函数调用中数据传递的两种方式——值传递和地址传递的区别;
3、掌握C程序中变量的存储类型以及使用;
4、掌握嵌套调用函数、递归函数的使用并能正确使用各种常用的系统函数。
重点:函数的定义和调用方法;调用函数时数据传递方法;常用系统函数的使用。难点:值传递和地址传递的区别;编写递归函数。【参考学时】8学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第9章 预处理命令
第一节 宏定义
不带参数的宏定义;带参数的宏定义。第二节 “文件包含”处理
“文件包含”命令及其使用。第三节 条件编译
条件编译命令及其使用。【基本要求】
1、掌握宏定义和宏替换的一般方法;
2、掌握文件包含的处理方法;
3、了解条件编译的作用和实现方法。
重点:无参数的宏定义和宏替换;带参数的宏定义和宏替换;文件包含处理。难点:带参数的宏定义和宏替换。【参考学时】1学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第10章 指针
第一节 指针和地址的概念
内存地址及其访问方式;指针。第二节 变量的指针和指向变量的指针变量
变量的指针;指针变量的定义;指针变量的引用;指针变量作为函数参数。第三节 数组和指针
指向数组元素的指针;通过指针引用数组元素的方法;数组名指针变量作为函数参数的用法;指向多维数组的指针和指针变量。第四节 字符串和指针
字符串的表示形式;字符串指针作为函数参数;使用字符指针变量与使用字符数组的区别。
第五节 函数的指针和指向函数的指针变量
用函数指针变量调用函数;用指向函数的指针作为函数参数。第六节 返回指针值的函数
返回指针的函数的定义及其使用。第七节 指针数组和指向指针的指针
指针数组的概念;指向指针的指针;指针数组作main函数的形参。第八节 有关指针的数据类型和指针运算的小结
指针数据类型;指针运算;void指针类型。【基本要求】
1、掌握地址和指针的概念及二者之间的关系;
2、熟练掌握定义指针变量和访问该变量的方法;
3、掌握指针变量的各种使用方法。
重点:指针变量的定义、初始化和赋值方法;利用指向变量、数组、字符串的指针变量来正确引用变量、数组、字符串;指针变量作为函数参数的情况;
难点:指针变量作为函数参数的情况;指向多维数组的指针变量和多维数组的地址。【参考学时】9学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第11章 结构体与共用体
第一节 概述
结构体类型的作用;结构体类型的定义。第二节 定义结构体变量的方法
定义结构体变量的三种方法。第三节 结构体变量的引用
结构体变量的引用原则。第四节 结构体变量的初始化
结构体变量的初始化方法。第五节 结构体数组
结构体数组的定义;结构体数组的初始化;结构体数组的应用。第六节 指向结构体类型数据的指针
指向结构体变量的指针;指向结构体数组的指针;用结构体变量和指向结构体的指针作为函数参数。
第七节 用指针处理链表
链表的概念;链表的结构;处理动态链表的函数;动态链表的建立;链表的输出;链表的删除操作;链表的插入操作;链表的应用。第八节 共用体
共用体的概念;共用体变量的引用方式;共用体类型数据的特点。第九节 枚举类型
枚举的概念;枚举型数据的定义和使用。第十节 用typedef定义类型
typedef定义类型的方式。【基本要求】
1、熟练掌握结构体构造数据类型的定义、初始化和使用;
2、掌握链表处理的过程以及共用体数据类型的定义和使用;
3、了解枚举类型的定义和使用和typedef自己定义类型的方法。
重点:结构体、共用体、枚举类型的特点和使用;结构体型变量、数组、指针变量的定义、初始化和成员引用方法;链表的建立,插入和删除等操作。
难点:嵌套的结构类型数据的处理;链表处理。【参考学时】8学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第12章 位运算
第一节 位运算和位运算符
“按位与”运算符;“按位或”运算符;“异或”运算符;“取反”运算符;左移运算符;右移运算符;为运算赋值运算符。第二节 位运算举例 第三节 位段
位段的概念;位段的使用。【基本要求】
掌握位运算符和位运算的基本操作。
重点:位运算符的功能;位段的概念及使用。难点:位段的使用。【参考学时】2学时
【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]
第13章 文件 第一节 C文件概述
文件的概念;文件的类型和处理方式。第二节 文件类型指针
文件指针的定义方法。第三节 文件的打开与关闭
文件的打开;文件的关闭。第四节 文件的读写
fputc函数及其使用;fgetc函数及其使用;fread函数和fwrite函数及其使用;fprintf函数和fscanf函数及其使用;其他读写函数。第五节 文件的定位
rewind函数;fseek函数和随机读写;ftell函数。第六节 出错的检测
ferror函数;clearerr函数。第七节 文件输入输出小结
【基本要求】
1、要求掌握缓冲文件系统中有关文件操作的系统函数的使用方法;
2、掌握设计并编写对文件进行处理的实用程序。
重点:缓冲文件系统中“文件型”指针的概念;有关文件操作的系统函数的使用。难点:文件处理系统函数的使用,掌握各个函数中参数的功能和区别。【参考学时】4学时
2007年, 教育部颁布两个重要文件, 教高[2007]1号和教高[2007]2号, 即教学质量与教学改革工程简称质量工程, 通过质量工程实现信息技术与手段在人才培养中的广泛应用, 改变现有人才培养模式, 实现课程优质资源的全国共享。通过开展自主学习、研究性学习和对实践教学改革, 提高学生的学习和研究兴趣, 培养学生动手能力和创新精神。因此在这种形势下就要求教师不再仅仅是传道授业解惑, 而应顺应时代潮流, 更新教学理念, 将多媒体、网络等信息技术引入教学中, 能够娴熟地运用网络多媒体技术作为教学的辅助手段, 改变传统的教学方法和教学模式。目前, 基于网络技术的计算机辅助教学已成为教育科学和现代教育技术的重要组成部分, 网络教学因其互动性、在线性和更新的及时等优势成为教育学科的发展方向。
在实际应用中, 目前越来越多的学校都在采用网络教学平台作为辅助教学手段进行课程改革。Blackboard教学平台 (简称BB平台) 是以课程为中心在网络上实现"教"与"学"的环境。教师可以在平台上开设网络课程, 学生可以自主选择要学习的课程并自主进行课程内容学习。不同学生之间以及教师和学生之间可以根据教和学的需要进行讨论、交流。Blackboard教学平台为教师、学生提供了强大的施教和学习的网上虚拟环境, 成为师生沟通的桥梁。
2. 基于BB平台的公共课的建设模式
"C语言程序设计"是我校第五批重点课程, 是全校非计算机专业的计算机公共课, 是一门实践性很强, 有一定难度, 同时又极易令学生感到很枯燥的一门课程, 教学中涉及到的很多知识较抽象和难于理解, 因此需要学生课下对课程的重点难点进行进一步消化和理解。因此, 我们应该采用行之有效的办法来帮助学生解决在自主学习中可能遇到的一些问题, 比如学生需要进行自主学习的一些学习资源, 需要一个进行问题探讨交流的空间, 以及教师需要及时地掌握学生自主学习的情况等等, 而这些都可以通过BB平台得以轻松实现。
我校的"C语言程序设计"由于是计算机公共课, 因此由多名教师同时授课, 因此该门课程的网络课程建设, 我们采取"课程网站+教师的个性化教学网站"模式, 具体实施就是课程网站中的用户包括所有任课教师以及每个老师所教的学生, 这样所有教师都有权限对课程的公共资源部分进行建设与实时更新, 当然这些资源的建设是需要事先规划与分工, 然后每个教师负责建设自己所承担的任务;教师个性化的教学网站中的用户只有教师本人及其所教班级所有的学生, 这样教师可以方便的对自己学生平时在网上的作业完成情况以及在线学习情况方便的进行追踪了解, 以便对学生的学习进行个性化的指导。
3."C语言程序设计"的课程资源建设
在课程网站的建设过程中我们非常强调, 网站建设不是教学资源的简单堆砌, 长期不变, 重要的是这些资源如何整合、如何设计分布, 以及不断的及时更新;在此基础上更重要的是通过何种方式来引导学生充分利用这些资源, 从而激发学生的学习兴趣, 提高教学效果。我们的基于BB平台的课程网站建设主要包括以下几个模块:
1) 课程学习模块
主要包括包括课程介绍、学习目标、课程安排、知识结构、难重点、知识点, 学生可以下载相关教学资料, 对课程的总体要求以及课程的重点难点有个初步的了解, 按照课程安排事先知道每节课要讲的内容, 提前做好预习, 使得课堂学习更有目的性和针对性, 提高了教学效率及学习的主动性。
2) 在线练习及在线测试
利用BB平台的题库建设功能, 根据C语言程序设计课程的特点, 建设单选题、填空题、程序阅读题、编程题四种类型的题目, 然后以章为单位发布在课程网站中, 这样课程网站内的学生可以随着课程的进度随时进行有针对性的练习, 以帮助学生及时的、更好的消化和理解各章所学的内容。教师在发布在线练习试题的时候要给出学生答题后生成的答题报告, 指出学生答题的情况, 并给出各题的参考答案, 以利于学生对自己所学情况有所了解。
在教师的个人教学网站中, 也可以对题库中每一章的题目筛选出一部分, 对学生进行测试, 并在发布这部分试题的时候, 将学生的得分情况计入BB平台中的成绩册, 学生交卷后也可以看到自己的得分情况。通过在线练习及在线测试可以帮助学生及时的对所学的知识进行消化, 并根据自己答题的情况了解自己对课程的掌握程度, 使得学生可以有目的的进行自主学习, 从而极大的提高了学生自主学习的意识。
3) 学习资源建设
主要包括教学课件、常见问题解答、重点难点动画演示、教学录像等。教学课件是多媒体教学必备的资源之一, 在平台上提供供学生课后学习使用。常见问题解答以章为单位, 由课程组老师共同建设, 不断的加以充实, 逐年积累。重点难点动画演示将课程中涉及的比较难于理解的算法以及知识点通过Flash动画的形式, 使得抽象枯燥的知识变得更加生动形象, 易于理解, 帮助学生更好的掌握课程的这部分知识。这里教学录像是指课程的知识点录像, 而非课程实录, 这部分录像的目的是将课程的一个个知识点以三分屏的形式制作成视频录像, 使得学生课堂上没有完全理解的, 带着问题在课下再继续进行自主学习。学习资源部分为学生课下自主学习提供了非常有针对性的资源, 对课堂教学的是一个很好的补充。
4) 参考文献资料
在平台上除了给学生提供有助于学生课堂内知识的消化和理解的一些资源外, 还提供给学生一些课外的拓宽学生学习知识面的一些相关的知识, 比如经典编程案例, 小游戏编程, 编程网站以及精品课程网站等, 使得有兴趣有能力的同学可以通过这些资料学到更多的编程知识, 编程能力得到更大程度的提高。
5) 教学论坛
利用BB平台提供的留言板功能建立课程的论坛, 这一模块是网络教学平台重要的组成部分, 教师可根据自己的教学内容方便地在其中创建话题 (发帖) , 学生也可以在上面针对自己的所有的疑问创建话题, 针对这些话题学生被允许在话题后面发表自己的看法并与教师或其他同学进行交流。这一功能消除了传统教学中教师只能当面答疑的时空限制, 学生能够随时在讨论板上提出自己的问题, 而教师可以对具有代表性的问题做出统一解答, 避免重复解答;在这样的教学互动中, 活跃的讨论气氛能开阔学生思维, 使学生对所学知识理解的更加深刻, 教师可通过总结学生提出的问题对教学内容做出适时调整。
在论坛的组织上, 可以划分成几个大版块, 比如不同的问题发表在不同的版块上, 这样有助于同类问题的集中讨论。另外论坛有一个积累的过程, 随着时间的推移发表的问题会越来越多, 因此利用留言板的关键字查找功能, 建议学生在发表话题之前, 首先先查找一下看是否已经有人发表过这个问题, 如果已经存在, 可以直接查看问题的解答, 或者继续就该话题进行讨论。这样问题的讨论不仅仅局限在本班或本届的师生之间, 更有一个延续性, 使得交流的对象更加广泛。
课程网站上的资源总体来讲主要分为两大部分, 一部分是自行建设的资源, 一部分是一些与课程关联度比较高的参考文献资源, 无论是哪部分资源在建设与发布的时候都需要事先规划好, 以方便学生使用, 访问一个资源的超链接深度不要过深, 最好不要超过三级。
4. 充分利用课程统计功能, 提高网络课程的作用
优秀的资源建设固然重要, 但是要采用适当的方法和机制引导学生有效的使用这些资源, 才能真正发挥资源建设的作用。因此我们利用BB平台的课程统计功能, 对每一部分教学资源的访问情况做追踪, 从而获得学生对课程掌握情况的反馈信息, 这样就可以清楚哪一部分资源是学生最关注的, 从而了解学生自主学习的重点, 也就是学生学习过程中比较薄弱的环节, 据此可以对课程的教学内容作出适当调整, 另外也可以通过统计功能掌握每个学生在线学习的情况, 对于在线学习不积极的学生给予关注, 必要的时候给予个别指导, 使得学习较弱的学生也能通过课外自主学习有较大的提高, 较好的完成课程的学习, 使得网络课程发挥最大的作用。
5. 课程评价的改革
在教学评价方面, 我们将过程性评价和总结性评价相结合, 建立了一套完整的课程教学评价体系, 以理论教学、实验项目、自主学习三大模块作为考评依据。在过程性评价环节我们主要结合实验项目的完成情况以及在BB平台上记录的学生在线自主学习的情况来考评;而总结性评价我们采用网络考试平台进行考试, 在平台中根据我们自己的教学计划进行试题库建设, 设定合理的组卷方案, 并根据制定好的组卷方案从试题库中随机抽取试题进行考试, 使得考试更加公平、公正、合理。
摘要:本文提出了基于BlackBoard平台的公共课建设模式, 详细阐述了《C语言程序设计》课程在BB平台的建设情况, 以及如何充分利用平台上建设的教学资源辅助教学, 达到提高教学质量的目的。
关键词:师资队伍建设;高职生;学习兴趣;教学的有效性
中图分类号:G712 文献标识码:B 文章编号:1002-7661(2014)01-017-01
如何打造一支强大的教师队伍,如何充分利用先进的教学设施、教学方法与手段来提高高职院校《C语言程序设计》这门课程的教学水平呢?哈尔滨工业大学王宇颖教授及其教学团队成功的《C语言程序设计》教学经验给了我们很大的启迪。
一、建立一支凝聚力强、团结协作的师资队伍
王宇颖教授是《C语言程序设计》精品课程组的负责人。王教授通过她认真负责的工作精神,丰富渊博的知识,及其个人魅力,获得了教研室各位老师的尊重,建立起了一支强有力的教师队伍。工作中,大家齐力协力,发挥各自才能,在精品课程建设方面取得了巨大成绩。王教授曾说过这样一段话:在精品课程建设中,每位教师都是相当的投入与配合,以工作为主,以工作为重,努力开拓思路去做好每一项工作。因此,建设一支强有力的团队是做好一切工作的开始!每位教师要认识到教书育人工作的重要性,正确处理好社会、家庭与工作之间的关系,以满腔地热情投入到教学工作中。
二、充分利用多种教学手段
多媒体教学的优点不言而喻,但是对于学习缺乏自控力的高职生来说,却有着其不可避免的弊端。教师在讲课时注意力放在了多媒体上,对学生关注的减少,给了学生思想抛锚的机会,教学反而达不到预期的效果。因此,在对高职学生讲课时,应将多媒体教学与课堂讲授结合起来。课堂讲授,教师的眼光具有威慑力,高职生会有约束感,从而将注意力放在教师的讲授上。课堂讲授便于教师全面掌控每一个学生的状态,并及时做出调整。
三、注意教学的有效性
教学的有效性是一个很重要的问题。哈工大孙志岗老师总结的很好,教学中教师单纯性的传授效率很低,知识的留存率只有百分之五。而给他人传授知识的学习效果却非常地好。教学中应充分注意教学的有效性。例如,实训课上机,教师可通过对个别反应快学生的特殊指导后,带领这批学生一起去辅导其它的学生。学生辅导学生会起到意想不到的效果。那些经常参加辅导的学生,一方面因为反复讲解,以及对各种问题的处理,对知识掌握地更透彻;另一方面因为辅导,解决了其它学生的问题,有了小成就感,激发了学习兴趣。因此,指导带领一批学得好的学生去指导其它的学生是一个很好的学习提高的方法。
四、教学的趣味性
知识的学习难免枯燥,在这方面孙老师与苏老师做的很好!他们通过与实际生活的联系,能过网上例题的搜集,增加教学的趣味性与实用性,这尤其适合高职生。高职生注意力意分散,对学习兴趣不大,通过增加学习的趣味性,通过一些经典例题的反复讲解,让学生熟练的掌握一些程序设计题,能增加学生的成就感,并且举一反三达到更好的学习效果。
五、兴趣是最好的老师
任何一门课程的学习,都要从调动学生的学习积极性开始。兴趣是最好的老师,只有把学生的学习兴趣调动起来了,学生才能学好这门课。因此,做为教师教书首先要从做人开始,教师要通过个人的人格魅力,通过对学生真诚的关心、交流,甚至是做朋友,来帮助学生认识学习的意义。记着每一个学生的名字,了解他们的性格特点,这样更容易走近学生,学生接受了这位老师也就会喜欢甚至爱上这门课程。而传统的教条说教不仅得不到好的学习效果,反而让学生产生逆反心理,甚至厌恶这门课程的学习。因此,充分调动学生的学习兴趣,是教学中很重要的一项工作。
六、充分利用学校网络教学平台
目前各高职院校都拥有较为完善的网络教学平台,充分利用网络教学平台会取得很好的教学效果,而且它能完整的记录每门课程每个学生的学习过程,并保留资料。实训课上,利用网络教学平台可以根据所学内容为学生布置相关实训任务,并且在教学资源栏为学生提供相关材料,学生完成实训内容后提交作业。学生在提交作业后,通过上平台可以看到老师给予的评价及其分数,这些都能极大的激发学生的学习兴趣。
为了更好地发挥网络平台的作用,任课教师要及时地完成相关教学资料信息的输入与整理工作,为学生的学习提供便利条件。
七、注重学生的学习过程
高职学生缺乏学习控制力,注重学习过程就显得尤为重要。因此在课程教学中,教师要让学生意识到平时学习中,学习的参与,作业的完成情况,上机练习都是很重要的考察环节。当学生充分注重学习过程之后,其实学习成绩也就不言而喻了,而由此所获得的学习习惯会让每个学生终生受益。
八、注重作业布置
孙志岗老师总结出了一个很好的作业教学经验,很值得推广。作业教学是对课堂教学一个很好的弥补。作业教学具有留存率高,学生完成后印象深刻等诸多优点。同时作业教学对教师的教学能力要求也特别的高,不是很熟练的人就需要在网上搜集好的题材,只有这样才能很好地发挥作业教学的优势。传统教学中,教师所布置的作业都是课堂上讲过的内容,其实,在作业的布置上不要完全拘泥于讲过的知识,有些内容让学生先做,再去听,能达到更好地效果。当然这里的前提是,学生有足够的学生主动性,因此,前面曾提到过,培养学生的学生兴趣是一项很重要的工作,它是有效实现一切教学手段与方法的保证。
参考文献:
[1] 曹好顺,吴绍兵,刘仁菲.C语言程序设计课程的教学探索[J]教育教学论坛,2011(21).
[2] 朱立才.汤克明.C语言程序设计研究型教学实践[J].计算机教育,2010(08).
(一)优化教学手段与方法
主要教学手段合理利用学院优越的教学条件是提高课程教学质量的基本手段。在本课程教学中,我们充分利用学院完善的多媒体教学资源、电视显微镜设备组织教学,通过多媒体课件、视频、标本与即时的实验操作进行形象、直观的教学。同时,加强与本地区制药企业的联系,与企业一线生产人员共同探讨课程教学内容。
教学方法探索在教学方法上,我们依据高职类学生文化基础、思维特征,针对不同的具体内容选择采取了项目教学法及案例导入法等多种“教学做合一”的形式开展教学,从而实现了将过去以教室为中心的学习形式向以实验室工作过程为中心和“边教、边学、边做”形式的过渡。例如,将基础知识部分组织成多个承前启后的项目,微生物应用部分(如微生物与发酵、食用菌栽培与药品的微生物污染检测等)采用案例法组织教学。通过启发与讨论、理论密切联系实际等方法引导学生加深对所学知识的运用、提高学习的兴趣与积极性。提供适量学时,鼓励有积极性的学生自选教学内容,采取合作或独立查阅资料和制作多媒体课件进行授课的形式实现了师生主体角色的转换,从而使学习以形成综合能力为目的而非单纯的知识摄取。同时鼓励学生在实验教师的指导下,根据自身兴趣进行微生物实验的设计与操作。
在有了一定的手段与方法基础上,我们认为利用适当的幽默或英文等教学技巧也是提高教学效果的良策。比如在要求学生列举已知的病毒时“特意提醒”不要自作聪明地制造“人瘟病毒”。在课堂中偶尔适时地穿插一个英语单词或简单的句子能够起到很好的调节作用,往往能让喜欢或不喜欢英语的学生激发兴趣。
(二)认真整合教学内容
内容的选取与组织下半年,在长期从事企业生产实践的“双师型”教师共同参与下,我们编写出了一本较为符合当前高职教育理念的湖北省“十一五”规划教材――《微生物及其应用》并获湖北省高职高专优秀规划教材奖。本教材根据当前高职院校生物制药专业的.培养目标及湖北省示范院校生物制药专业人才培养方案建设要求建立课程教学标准与内容,按照“教学做合一”模式进行教学内容的合理融合。在内容的组织上充分考虑高职学生的文化基础与思维习惯,适当降低了理论知识部分的深度,强化了微生物在生产实践中的应用。将课程内容按照微生物由大到小、由表及里的原则进行重新组合,首先使学生通过显微镜对各种微生物进行最基本的感性认识,然后逐渐了解微生物的培养技术及其在生产中的应用,从而顺其自然地完成对整个微生物课程内容由感知到认知的知识延伸与拓展过程。
教学组织与实践为了较好地落实高职教育所推崇的“边做边学,边学边练”行动导向的教学理念,我们采取的是理论与相应实践操作(单元实验)相互融合的模式开展教学,并将教学内容划分为“基本知识与技能”和“知识与能力运用”两大模块,其中包含了“微生物形态观察技术”、“微生物分布与生长控制技术”及“微生物应用与检测技术”三个单元与七个项目来实施教学。在此基础上,我们还开发了《微生物及其应用》院级精品课,并在教学中认真践行“边做边学,边学边练”的教学方法,使学生能够自觉地将所学知识与实践相结合,从而既增强了学生学习的主动性,同时又较好地锻炼了他们的动手能力,强化了教学效果。
重视第一次课设计第一次课是一门课程的序曲,它是引导学生进入微观世界、激发学生求知欲望、增强课程魅力的最佳向导。本课程的第一次课是通过“一个富有创造和启迪性的故事(列文虎克)”、“多幅彩色动静态图片的展示”和“一系列惊人的数字”等具有鲜明特色和感性认识的内容逐步展开的,非常强烈的视觉效果让学生产生了对微生物的浓厚兴趣,进而较好地激发了他们对本课程的学习热情和探究心理,当然也取得了非常好的教学效果。
(三)强化实践教学与考核
加大实践教学比例本课程的教学目的是为后续的职业技术课程学习与生产实践打下良好基础,满足生物制药生产、建设、管理和服务第一线的技术应用型人才对微生物知识与技能的需要,同时培养学生创新精神和创业能力。因此,我们按照“教学做合一”的模式将理论知识与有关实验内容进行了有机融合,因而也在很大程度上减少了理论学时,相应增加了实验操作学时,使理论与实践学时之比将近1∶1。将课程的实验分为平时的单元实验、期末整周的综合实训、培养兴趣的自主实验(如对口腔、霉变水果中微生物进行分离培养等)几项,并着重培养学生的无菌操作技能和微生物实验安全意识。
改革实践考核制度在对本课程教学模式进行探索与实践的同时,我们对其考试制度也进行了改革。改变了传统的以理论为主、实验为辅的考试为理论考试和实验操作考核并重的新型综合考试制度。使实验成绩与理论成绩之比达到1∶1,其中实验考核以实践操作为主,口试、笔试为辅。同时,坚持平时表现与考试考核并举的形式对学生进行知识、能力和素质等方面的综合评价,即按照平时考勤、提问和作业成绩占总成绩20%、理论考试和实验成绩(包括实验操作考核、实验课表现、实验报告等)各占40%的分配比例进行课程成绩的综合评定,从而使本课程的成绩考核既符合高职以过程为导向的课程观和以行动为导向的教学观,又实现了考试过程的全程化和考试手段的多元化;既增加了考试的灵活性,又调动了学生实践操作的积极性,取得了较好的教学效果。
《机械设计基础》是高职高专机械类和近机类专业的一门专业技术基础课,在专业教学计划中起着承上启下的作用,有着十分重要的地位。该课程综合运用数学、力学、机械制图、机械工程材料、公差与配合、算法语言等知识,去解决常用机构、通用零部件的设计等问题,涉及的知识面广,且理论性和实践性都较强。多年来,该课程无论是在教材的组织上还是在教学的安排上,都与“高素质+高技能”的应用型人才的培养目标不相适应。为解决这一问题,可在该课程的教学中引入项目化教学,这也是高职高专《机械设计基础》课程教学改革的一个方向。为此,本文结合该课程的教学现状、课程特点、课程内容和学生的学习情况,就该课程的项目化教学改革进行了探索。
1课程的教学现状
(1)课程内容多,学时少
目前,多数的《机械设计基础》教材内容仍是本科《机械原理》和《机械设计》两门课程内容整合后的产物,与整合之前相比,课程主要内容并没有减少太多,而学时却大幅削减,被压缩至72个学时。如何在有限的学时内高质量地完成该门课程的教学任务,为学生继续学好以后的专业课程打下扎实的基础,是摆在我们面前一个严峻的现实问题。
(2)课程内容的理论性较强,学生的学习基础和接受能力普遍较差
随着我国高等教育的普及和生源的.减少,高职院校的生源质量呈现逐年下降的趋势,各高职院校普遍存在学生学习基础差、接受知识能力不强和学习兴趣不浓的问题。如何解决好这一问题并培养出适应社会需求的合格的高职学生,是对所有从事《机械设计基础》课程教学的老师的又一个挑战。
(3)教学模式陈旧
传统的教学属于知识传授型教学模式,以知识为目标,以教师讲授为主,以逻辑推理为中心,以教师为主体,课堂上基本没有学生能力的训练,这对培养学生的能力起不到应有的作用。而且,传统的教学模式是先理论后实践,很容易导致理论与实践相分离。
(4)教学方法落后
高职院校的学生普遍具有形象思维能力较强,爱动手这样一个特点,而对于理论性强的设计、校核计算十分厌烦。很多老师在教学过程中,不结合学生的特点,在“黑板上开机器”,采用传统的“满堂灌”、“填鸭式”的教学方法,更使得学生感觉该课程是一门枯燥的“天书”,上课时疲于记笔记,复习时只能死记硬背,长此以往,渐渐失去了对该课程的学习兴趣,多少年来,这种现象也没有改观。
(5)考核方式单一
传统的考核方式一般都是在期未的时候,通过笔试的方式对学生进行考核,并不能真正检验学生的综合能力。在目前对人才的要求侧重综合素质的情况下,此方式已不能适应形势发展。
要想达到教学目标,就应对课程教学进行改革,采用项目化教学,使学生在完成项目的过程中,发现问题,并通过实践解决问题,这样即可以培养学生的学习能力,又可使学生更快地掌握基础知识与基本技能,更容易了解社会职业,培养职业意识,更好地做好就业准备,进入职业角色。
2项目化教学的优势
(1)项目化教学能充分调动学生的学习兴趣和积极性。在项目教学法中,学生独立或以小组形式自主收集信息、设计方案、实施项目,并且参与最终的项目评价,可充分调动学生的学习兴趣和积极性。教师的作用也发生了变化,从理论知识的灌输者变为学习的辅导者。
(2)项目化教学能有效地建立起课堂与生产岗位、社会的联系,使学生的学习更加具有针对性和实用性。
(3)项目化教学注重学生各方面能力的培养,有利于学生综合素质的提高。采用项目教学法,学生在完成项目的过程中能够锻炼学生多方面的能力,这些能力包括:实践能力、观察能力、自学能力、应变能力、团队协作能力、创新能力等等。
3课程教学项目的设计、实施与评价
3.1课程教学项目的设计
设计与教学目标、教学内容相适应的“教学项目”是实施项目化教学的关键和前提。我们在设计教学项目时,首先通过专业和企业调研、分析归纳,确定课程的教学目标。然后按照以下原则选取项目内容:(1)教学项目要与生产实际相结合,体现覆盖性、典型性、可行性、趣味性、开放性;(2)教学要注重学生可持续发展能力的培养;(3)教学项目要系统化设计,基于认知规律,从简单到复杂。再结合学校的实训条件进行项目开发,最终设计了7个教学项目,7个教学项目的难度层层推进,覆盖的知识点逐项增加。
3.2课程教学项目的实施
教学项目的实施分为以下五个步骤:第一步,使学生明确项目名称、项目任务、学习目标和项目完成目标;第二步,引导学生自主学习完成项目所必须的专业知识和技能;第三步,进行任务的分配,并让学生根据所学的知识制定项目方案;第四步,进行方案的比较、分析与修改;第五步,方案的实施。
如在项目1的学习中,首先使学生明确本项目的任务:绘制三种机械手(平面连杆机构机械手、凸轮机构机械手、不完全齿轮机构机械手)的机构运动简图、计算它们的自由度并判断机构的运动是否确定;其次引导学生利用丰富的学习资源学习运动副、构件、机构运动简图和平面机构自由度的计算等相关内容,并使学生初步具备用简单图形表达机构的能力;然后对学生进行分组和任务分配,并让学生制定项目方案;接着进行方案的比较、分析与修改;最后实施方案,并填写项目报告单。
3.3课程教学项目的评价与总结
每一个项目完成后,教师不但要根据项目的完成情况对每一位学生进行评价,还要对整个班级完成项目的总体情况进行总结。
对学生的评价分为两个方面:结果性评价和过程性评价。结果性评价主要是通过项目完成后学生提交的作品和项目报告单对学生进行评价,评定学生是否达到了学习目标;过程性评价主要是根据学生在项目的实施过程中所表现出来的专业能力、方法能力、社会能力、学习态度等对学生进行评价。对整个班级项目完成情况的总结也是分为两个方面:一是要指出项目实施过程中的不足之处,以使学生在后续的学习过程中改正和提高;二是要对一些完成项目比较好的小组进行表扬,并把他们完成项目时一些好的经验和做法进行推广,以促进各小组之间的相互学习和交流,达到共同提高的目的。
教师在评价与总结时一定要注重学生个性发挥,避免千篇 一律,鼓励学生充分发挥自己的想象力和创新能力,对不足之处要从欣赏的角度给予肯定,激励学生的学习信心。
4结语
【高职《C语言程序设计》课程教学方法的实践与探索】推荐阅读:
高职高专英语分级教学的实践与探索09-12
高职《餐饮服务》课程项目化教学设计探索07-13
c语言课程设计要求07-25
语料库语言学与高职英语教育论文07-12
c语言课程设计指导书06-23
c语言课程设计电话簿06-28
c语言通讯录课程设计07-09
高职院校语言文字培训工作诌议05-30
c语言课程12-13