《C程序设计》课程教学大纲(推荐12篇)
课程编号: 课程类别: 通识课
教学时数总计:64学时 授课时数:32 实验时数:32 学分: 课程英文译名:C program design
一、课程的任务和目的:
通过学习本课程,使学生了解C语言的语法规则、数据类型、数据运算、语句、函数、程序结构,掌握应用C语言进行程序设计的基本技能,培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。通过两个综合实验的练习,为以后结合专业知识,解决专业问题奠定基础。
二、课程内容与基本要求
(一)教学基本要求:
通过对本课程的学习,要求达到以下目标:
1.了解C语言的数据类型(基本类型、构造类型、指针类型等)和各类运算符,能正确使用表达式实现各种数据的简单加工;
2.掌握C语言的运行环境及运行一个C语言程序的过程,掌握阅读程序和调试程序的方法;
3.掌握语句的概念、数据的输入输出方法;
4.熟练掌握C程序的三种基本结构(顺序、选择、循环),能使用相关语句完成这三种基本结构的程序设计任务;
5.熟练掌握数组的概念和应用、字符串的应用;
6.掌握指针变量的定义与引用,正确应用指针与变量、指针与数组、指针与字符串之间的相互关系进行程序设计;
7.熟练掌握C语言的用户函数定义、调用、参数传递等方法;
8.了解结构体类型的概念和定义方法以及结构体变量的定义和引用,了解指向结构体变量的指针变量的概念和应用,了解共用体的概念和应用; 9.了解文件的基本概念以及对文件的基本操作方法。
(二)教学内容
1. C语言概述(2学时)
(1)C 语言的特点(2)简单的C程序介绍(3)C 程序的上机步骤 2.数据类型、运算符与表达式(3学时)(1)C的数据类型(2)常量与变量(3)整型数据(4)实型数据(5)字符型数据(6)变量赋初值(7)各类数值型数据间的混合运算(8)算术运算符和算术表达式(9)赋值运算符和赋值表达式(10)逗号运算符和逗号表达式
3.最简单的C程序设计----顺序程序设计(3学时)(1)C语句概述
(2)赋值语句
(3)数据输入输出的概念及在C语言中的实现(4)字符数据的输入输出(5)格式输入与输出(6)顺序结构程序设计举例 4.选择结构程序设计(3学时)
(1)关系运算符和关系表达式(2)逻辑运算符和逻辑表达式(3)if语句
(4)switch语句、break语句(5)程序举例 5.循环控制(4学时)
(1)概述
(2)goto语句以及用goto语句构成循环(3)while语句(4)do-while语句(5)for语句(6)循环的嵌套(7)几种循环的比较
(8)break语句和continue语句(9)程序举例 6.数组(4学时)
(1)一维数组的定义和引用(2)二维数组的定义和引用(3)字符数组 7.函数(4学时)
(1)概述(2)函数定义的一般形式(3)函数参数和函数的值(4)函数的调用(5)函数的嵌套调用(6)函数的递归调用(7)数组作为函数参数(8)局部变量和全局变量(9)变量的存储类别 8.预处理命令(1学时)
(1)宏定义(2)文件包含 9.指针(4学时)
(1)地址和指针的概念
(2)变量的指针和指向变量的指针变量(3)数组的指针何指向数组的指针变量(4)字符串的指针和指向字符串的指针变量(5)函数的指针和指向函数的指针变量(6)返回指针值的函数(7)指针数组和指向指针的指针 10.结构体(2学时)
(1)概述
(2)定义结构体类型变量的方法(3)结构体变量的引用(4)结构体变量的初始化 11.文件(2学时)
(1)C文件概述(2)文件类型指针(3)文件的打开与关闭(4)文件的读写
三、实践环节及基本要求(见《C程序设计》实验教学大纲)
四、与各课程的联系
先修课程:计算机应用基础
五、对学生能力培养的要求
通过《C程序设计》课程的学习,要求同学们掌握C程序设计编写、调试的基本方法和技巧。经过两个综合实验的练习,为以后结合专业知识解决专业问题打下基础。
六、学时分配
详见课程内容。
七、教材与参考书
教材:《C程序设计》第二版
谭浩强主编
清华大学出版社 参考书:《C语言程序设计》
黄维通主编
清华大学出版社
八、说明
1 学习“C”的重要意义
C语言的程序书写风格简洁、灵活。数据类型、运算符和表达式非常丰富,并且c语言具有很强的实践性和应用性。学习这门课的主要目的是使学生掌握结构化的程序设计思想即“自顶向下、逐步求精”,编写程序来解决实际问题。
计算机程序开发语言数以百种,与其他语言相比,c语言兼顾了高级语言和汇编语言的特点,代码的执行效率高,并且不依赖于硬件环境。C语言程序开发中涵盖了重要的程序设计思想,如模块化开发、函数以及抽象数据类型等重要内容,这些知识也为今后学习c++等面向对象程序设计语言打下良好的基础。
2 目前C语言教学中存在的问题
由于计算机语言的语法、语句比较抽象,编写c语言程序是个比较枯燥的工作,如果学习方法不当,学生很容易失去兴趣,前功尽弃。传统的课程教学模式非常注重语法、语句的讲解,纯粹是为了讲语言而讲语言,忽略了一个真谛,那就是“学以致用”。学生学习程序设计的目的不仅仅是要能够读懂程序,而是为了能够通过编写c语言程序去解决实际问题。对学生的这种分析问题、解决问题的能力的引导和培养是至关重要的。传统的c语言教学活动结束后,学生上机实际操作能力往往很差,因此往往感觉c语言枯燥无味,大大降低了学习兴趣。
在教学方法上,传统的板书教学只能使学生按书本顺序死背下这些语法知识,多媒体课件的应用效果也很有限。学生单纯作为一门语言来理解,死记硬背完全与计算机脱节,学生不理解程序的结果是怎么样产生的,为什么产生这样的结果,在整个程序的运行期间,程序的数据流和控制流都是什么样的,对这些问题如果没有个清晰的认识是看不清程序的本质的。因此实践教学环节缺乏是教学中存在的严重问题。
3 对C语言程序设计教学改革的几点建议
3.1 激发学生的学习兴趣
“兴趣永远是最好的老师”,对于任何学科都是这样。只有对其产生浓厚的兴趣才能投入极大的热情去学习它。因此,上好第一堂课是至关重要的。作者认为第一堂课应该摒弃书本上的“绪论”知识,将课本介绍的内容融入到以下的知识点中,主线应为“程序---程序设计----程序设计语言”,应用多媒体教学手段向学生展示形形色色的应用程序,演示它们的功能,包括用c语言编写的一些小程序和小游戏,先使学生们对程序的执行有个感官的认识。将“程序=数据结构+算法”的概念融入其中。在介绍程序设计语言时注意与自感语言做对比,使学生理解计算机的编程语言与人类所使用的自然语言是有共性的,最后导出c语言的概念,它只是计算机众多编程语言的一种。这种循序渐进,由浅入深的教学方式不会让学生感到编程是一件高深莫测、高不可攀的一件事。
3.2 形成良好的编程风格
所谓编程风格指程序设计人员在编程过程中共同遵守的一些约定俗成的规则。这个好习惯的养成应贯穿在整个c语言的教学过程当中。作为一名程序员,编程风格应是始终如一的,特别是对于从事计算机软件开发的人员来讲,一个项目是一个整体,“团队协作”的概念应该在头脑中根深蒂固,过分张扬个性有时会给软件开发带来“灾难”。程序的可读性决定了这个程序质量的高低,因为c语言是学生学习程序设计语言的入门课程,因此形成清新、简洁的编程风格是学生学习这门课程的重要任务。良好的编程风格体现在诸多方面,如
1)注释。好的程序应该给出恰当的注释。方便他人用最短的时间读懂该程序代码,良好的注释对日后程序的日常维护和升级都提供很大的方便。
2)见名知义。对于变量、函数以及文件等标识符应做到“见名知义”以增强程序的可读性和可维护性。
3)缩进格式。程序书写时的缩进式为了能够清楚的标识一个语句块的起始。使程序的逻辑结构更加清晰,特别是当程序涉及到多层嵌套。
3.3 重算法,轻语法,加深对程序本质的理解
C语言程序设计教学的目的在于培养学生设计程序的能力,因此在教学过程中,应该注重学生编写算法以及培养学生程序开发的能力,而不应该是仅仅局限于c语言作为一门语言所涉及的语法、语句。C语言程序的本质是对数据的处理。从程序的执行开始,数据被存放在内存单元中,在程序的执行过程中,相关代码的执行使内存单元中的数据发生了变化,内存单元是存放数据的容器,基本变量、数组、指针变量、结构体等不同的数据结构在内存中的组织方式也不同,对应的操作的不尽相同,因此,为了加强学生对c语言本质的理解,在教学过程中应重点放在讲授程序运行过程中内存是如何变化的,这样能够使学生更加清楚程序的流程。
3.4 整合现代化教学手段,提高编程手段
传统的课堂教学是通过板书的形式将知识传授给学生,弊端在于形式单调、方法单一,特别是大型程序书写起来浪费时间,导致课堂效率低。随着现代教育技术的发展,多媒体教学开始深入课堂,很多板书或语言很难表达清楚的问题通过课件能够清晰、直观地表现出来,学生也易于理解,比如变量值的交换、指向指针数组的指针的移动等问题。但是,笔者认为,多媒体教学也存在弊端,如编程的算法及编程思想是这门课程的精髓所在,在讲解算法的过程中,要求学生一步步整理出算法的演变过程,若通过多媒体教学,效果未必会好,因此。在教学过程中不应过分对其依赖。
3.5 合理设置实验项目
学习程序设计的目的是解决实际问题,对于编程而言,从问题分析入手,经过概要设计,编码,最终进行程序的测试和维护,重点讲授程序设计的思想和方法,使学生能从更高的角度认识该课程的学习目标,更注重对语言应用能力的培养。在教学过程中,应设置合理的实验项目,既要有比较简单的验证性项目,也要包含具有一定难度的设计性题目,每个知识点的题目都应由易到难,循序渐进,这样能够更好地调动学生学习的兴趣。课程最后,当学生具有一定的编程能力之后可以通过一个综合性的设计实验,运用函数、结构体、指针、数组、链表等相关知识开发一个中等规模的作品。可以采取多人协作的方式,逐一实现整体概要设计时的各模块,在设计程序的同时也培养了学生的团队意识,也有助于帮助学生养成良好的编程风格。
4 结束语
教与学是一个永恒的话题。教学是一门艺术,它是教师的创造性、能动性、表演才能和科学水平的综合体现。如何改变传统的教学观念和教学方法,在C语言程序设计这门基础课程的教学过程中进一步解放思想,充分调动学生的积极性,激发学生的学习热情,充分发挥学生的主观能动性,从而达到良好的教学效果,这个问题仍需要在今后的教学工作中不断地实践和探索。
摘要:C语言是至今为止国内外广泛使用的一种计算机语言,因此C语言程序设计也是高等院校理工科专业普遍开设的一门专业基础课程。该文针对目前高等院校C语言程序设计教学的实际情况分析了C语言教与学中存在的问题,探讨了如何提高C语言课程的教学质量,并提出了几点改革措施。旨在激发学生学习兴趣的前提下,侧重程序设计思想和算法的讲授,提高学生的编程能力已达到良好的教学效果。
关键词:C语言,程序设计,编程,教学方法
参考文献
[1]Eric S.Roberts.The Art and Science of C[M].美国:机械工业出版社,2006.
[2]谭浩强.C程序设计[M].2版.清华大学出版社,1999.
随着计算机的日益普及和互联网的飞速发展,以信息产业发展水平为主要特征的综合国力竞争日趋激烈,软件产业作为信息产业的核心和国民经济信息化的基础,越来越受到世界各国的高度重视。软件技术已成为信息社会的运行平台和实施载体,软件技术应用的全面延伸对用于信息处理的软件技术的发展提出了更高要求,同时促进了软件技术和软件行业的飞速发展,软件技术已经成为人们公认的当今发展最为迅速的技术之一。
《C语言程序设计》是软件工程专业的核心基础课程,其教学效果的好坏,对整个专业教学计划能否顺利完成和专业培养目标能否实现有着重要的作用。本文针对软件工程专业的特点,从培养工程应用型人才的实际需求入手,结合笔者自身的教学实践,对《C语言程序设计》课程教学中的问题进行了分析,从课程教学设计与课程实践教学方面提出软件工程专业《C语言程序设计》课程教学的一系列改进措施。
一、课程教学现状
笔者结合多年的教学实践,并通过调查在校往届学生的学习情况发现,《C语言程序设计》课程教学存在一些问题。
(一)教材内容与实践脱节
教师教授理论课时,大多依据教学大纲指定的配套教材进行讲授,实验课的编程题目多数是验证课本上的例程或者理论课教材后的作业。目前,软件工程专业理论课使用的教材大多以傳授基础理论知识为主,虽然一些知识点后给出了相应的实例,但是这些案例比较孤立,缺乏与工程实践的联系,导致学生觉得日常练习的例程枯燥无味,而且不知道如何将基础理论知识应用于工程实践,使自己具备一定的解决问题能力。由于学生所学知识及其方法与工程实践没有有机结合起来,学以致用的工程意识缺乏日积月累的养成土壤,学习的兴趣和动力不知不觉地消失在盲目与盲从之中。
(二)课程考试与实际应用相关性差
《C语言程序设计》是计算机专业学生学习各类专业课程的重要工具性课程,主要培养学生的工程实践能力。通过调查发现,目前该课程考核仍然以闭卷笔试的形式为主,考试内容主要为基础知识点。这样,学生在面对课程考核时,出于应对考试的需要,知识点背一背、记一记,复习课程和政治课、历史课类似。课程考试方式和内容与实际应用较差的相关性导致学生学习动力不足。
二、课程教学设计
事实上,尽管学习动机不尽相同,学生层次有差异,但绝大多数学生能够认识到自己的需要,希望通过学习提高自己的能力。结合学生特点,笔者认为“做中学”和“基于项目教与学”能够较好地提高《C语言程序设计》课程教学质量。
(一)“做中学”统一知与行
“做中学”是比从“听中学”更好的学习方法,符合人类对客观事物规律的认识,能够把书本上的知识与工作生活联系起来,充分结合了学与做。因此,在设计组织教学活动时应注重实践活动的设计,把教学活动与工作生活实际相结合,鼓励学生在实际活动中学习,并将实践中获得的知识与技能有效运用于解决学习、生活和今后工作中的实际问题,即在实践中学习,在学习中实践。
(二)“做中学”最有效的方法就是进行基于项目的学习
一个完整的项目是从分析开始,经历构思、设计、实现和运作的一个完整过程,在学习学科知识的同时能够提高个人产品过程的认知能力和系统建造的能力。在课程的设计过程中,始终强调以项目为导向,以任务为驱动,以一个具体项目为依托来学习相关的内容,在具体实施中分级设置项目,先易后难、循序渐进地将相关的知识点融入项目的任务之中,通过完成任务掌握相应的知识点,提高相关技能和操作的应用能力。在此过程中,学生不断进行实践、总结、反思,将琐碎的知识点串联起来,逐步培养学生的综合能力。
三、课程教学实施
(一)多方面积极引导,激发学生学习兴趣
学生在学习《C语言程序设计》设计之前,可能通过新生入学教育或从高年级学生中知道这是一门专业必修课程而兴致勃勃,但到真正学习时,如果一直都是面对一堆单调而且枯煤无味的语法知识,则容易使学生产生厌学心理从而逐渐失去学习的兴趣。因此,要改进教学方法。首先,通过展示学校近几年来在各种比赛中获得的好成绩,让学生观看比赛的图片,让学生知道只要努力,在各种竞赛中都可以占有一席之地,这样学生就有可达到的奋斗目标从而消除他们的畏难情绪,激发学生的学习兴趣。
其次,在课堂讲授时尽可能找一些趣味性较强的例子讲解,除布置基本的训练学生掌握语法或者算法的题目外,设计1—2个有趣味性的游戏程序设计,如在选择结构编程练习中简易计算器的开发,在循环结构编程练习中加入猜数字游戏设计,在一维数组编程练习中加入猜牌术游戏等,这些游戏程序设计的开发有一定的难度,鼓励学生结成兴趣小组,互帮互助共同完成,在此过程中,学生的学习自主性和团队协作精神都得到大幅提高。
(二)精心设计实验教学
要根据《C语言程序设计》实验的教学大纲制定实验计划,精心设计每一次实验内容,要综合考虑学生编程能力上的差异,不要把题目设计得太深或者太简单,可以设计必做题和选做题,对基础较差的学生,最低要完成必做题;对能力较强的学生,在完成必做题的基础上,鼓励他们去完成选做题。同时,在实验的编排上,注意验证性、设计性和综合性实验的比例,对验证性实验进行精选,即使是验证性实验,也不要简单验证程序的运行结果,而是首先要求学生阅读程序,写出运行结果或程序实现的功能,然后再上机运行,同时可以设计一些问题让学生思考并对程序进行进一步修改,然后再分析运行结果。减少验证性实验项目,增加设计性和综合性实验项目,由浅入深、由易到难,加强学生动手能力、分析问题和解决问题能力的培养,最终提高学生的编程能力。
(三)灵活运用多种教学手段
在做题过程中,教师的主要任务是及时发现问题,回答学生的疑难问题。但是,在实验练习的过程中,学生主要依靠自己讨论或者上网寻求思路来解决问题。这是一个值得鼓励的好现象,能够充分体现学生独立自主学习的能力,在课堂教学中应当鼓励学生互相讨论,互相交换思想共同解决问题。但是,在教学中教师的作用体现不够充分,不愿意寻求帮助的学生会因为一道题目没有解决而无法正常进行实验练习,教师的作用应该是在学生自主解决问题的同时,能够及时提供帮助,尽量统一实验进度。在上机指导学生实验时,要以问题为中心,广泛采用启发式、参与式和讨论式等教学手段,要打破学生对教师的依赖性,让学生自己去思考如何编程,如果较难的题目允许学生讨论,鼓励学生去查阅相关资料,也可以适当给学生一些提示,但一定不要给学生源代码,重点给出解题的思路与建议性方法,给学生留下足够的独立思考和设计的空间,使学生在实验过程中亲自体会并掌握程序设计思想,提高实验的教学效果。
(四)利用网络教学平台让学生主动学习
充分利用校园网内建立的《C语言程序设计》网络教学平台,在该平台上共享本课程部分教学视频、相关课件、经典算法资料、ACM大赛历年题目,可以让学生通过此网络教学平台更加自主地选择性学习,更重要的是利用此平台与学生进行互动交流,在答疑区对学生提出的问题,老师与学生都可以及时解答,同时其他学生也可以分享交流过程,随时再提出新问题,更好地激发学生的学习兴趣,增强教师与学生、学生与学生之间的互动。通过多种教学方式的结合,不仅加深了学生对所讲知识点的理解,而且激发了学生的学习兴趣,提高了学生学习的自觉性,同时通过互动交流式学习增强了学生的自信心。
参考文献:
[1]张红军.C语言程序设计教学改革初探[J],信息与电脑,2015 (9):140-142.
[2]刘红霞,张永恒.CDIO工程教育模式下的C程序设计教学改革研究[J],榆林学院学报,2015 (4):83-86.
[3]李文锦,游戏化学习在C语言程序设计的应用与实践[J],新课程研究,2015 (7):76-77.
适用专业:计算机科学与技术、软件工程,网络工程,计算机相关专业
(电气,电子科学,工业工程,数字媒体,电力,电商,信管)学 时 数: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)代码设计:根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。
发布时间:2011-02-20 浏览次数:
C语言是国内外广泛使用的计算机语言,也是目前最流行的计算机语言之一,更是计算机应用人员应该熟悉和掌握的一种程序设计工具。同时C语言以其功能齐全、表达能力丰富、使用灵活方便、目标程序效率高、可移植性好以及双重性(既具有高级语言的优点,又具有低级语言的许多特点)等众多优点,而备受学习者的青睐。但是在自我学习和教学实践中发现,C语言牵涉到的概念复杂,规则繁多,使用随意,容易出错,从而令不少初学者感到束手无策。
通过本阶段建设学习型系部学习,重点对《C程序设计》课程的学习,通过本系部提供的学习书目中《C程序设计》系列教材及网上视频教程的详细讲解,对这门课程有了进一步的认识和提高,下面对学习笔记总结如下几点:
一、C语言学习技巧
1、牢记基本规则
在初学者刚开始学习c语言时,不必在每一个细节上深究,应该把主要精力放在最基本、最常用的内容上。有时我们不必知道其“为什么”,只需知道“怎么做”即可。如果我们总在某些细节问题上纠缠不清,反复讨论其“为什么”,无疑使自己头脑更加糊涂,且有画蛇添足之嫌。
C语言源程序基本规则主要包括以下三点:
(1)C语言源程序是由函数构成的,每一个源程序必须包含main函数。程序执行时,总是从main函数开始执行。另外,C语言没有特定的标准输入输出语句,要实现输入输出操作,需要调用输入输出库函数和头文件。
(2)每个语句都是以分号为结束标记的,离开了分号就不能构成一个语句,也就是说分号是语句的必要组成部分。c语言书写格式自由,一行可以写多个语句,一个语句也可以写在多行。
(3)良好的C程序,一般都是以“/* */”来注释的,以使程序具有可读性。除此之外,还有C语言的一些运算规则。
2、精心设计算法
写一篇优秀的文章,首先要写出大纲思路。编写一个良好的C程序,同样需要有一个良好的算法。一个良好的算法对于提高程序执行的效率起着事半功倍的效果。算法并非全都是数值运算的,也有非数 值运算算法。像人事管理、图书检索、翻译电报原文等都可以采用设计算法和编写C语言源程序来实现。算法是程序的灵魂,算法的好坏直接决定着整个程序的运行时间和运行结果的精确度。我们学会设计算法,也就是解决了“做什么”和“怎么做”的问题。倘若不了解算法,就根本谈不上程序设计。
3、认真分析程序
学好C语言还要逐步掌握分析程序的方法。因为要得到一个程序的结果,必须先读懂这个程序。读程序的过程中,还必须遵守C语言的基本规则,在此基础上再对程序进行深入思考,认真分析。例如:
main()
{
int a=0 ,b= 1,c;
c = b++ &&--b &&b--&& a++;
printf(“%d”,c);
}
对此程序进行分析,分析程序的过程中,如果不遵守C语言的基本规则,就无法得出程序的正确结果。分 析程序的目的是,像学习一门外语一样,达到一定的语感。此时,再回头深入一些常见的细节(这些细节是需要通过较长期的实践才能熟练掌握的),解决开始时的 “为什么”。
4、敢于编写程序
不下河,怎知水之深浅?知道了C语言的一些基本规律,设计出了程序的算法,具备了C语言一定的“语感”之后,就应该动手编写我们程序。
最初编程时,切忌过早地滥用C语言的某些容易引起错误的细节。例如:空格的有无,++i和i++的乱用,嵌套的滥用以及一条语句写在多行等等。这 样做一旦程序某个部位出错,很难查找,降低了程序的可读性。应该激励自己将所联想到的、具有趣味性的问题,尽可能地用算法表示出来,用 C语言源程序编写出来,以增加学习的乐趣,推动自我学习的积极性。C语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程。这门课的目的不是看“知不知道”,而是看“会不会干”。
5、上机调试程序
上机调试程序,并非仅仅为了结果,而应当从结果出发来进一步分析程序,使程序简洁化。上机调试程序可帮助我们更好地理解程序,改正自己的误解或疏忽大意,从而掌握编程的一些技巧。总之,C程序设计语言是一门表达能力极强的 结构化语言,不仅适合于通常的程序设计,而且是开发系统软件的好语言工具。在学习中,应该由浅入深地学习,逐步掌握这个程序设计工具,为提高自己的逻辑思维能力和计算机编程水平打下坚实的基础。
二、学习C语言的重要性
1C语言是Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。
2作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学知识,调整自己的知识结构和能力结构,以适应社会发展的要求。新世纪需要具有丰富的现代科学知识,能够独立解决面临的任务,充满活力,有创新意识的新型人才。尤其是掌握计算机的基本技能和语言。
三、C语言的特点
1.C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4.C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
四、C语言的优点
1.简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据结构丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外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 存在的问题
1.1 教学内容偏离高中学生
目前市面上比较流行的C语言程序设计教材都是清华大学谭浩强教授组织编写的《C程序设计》等国家中国高等院校计算机基础教育课程体系规划教材, 这些教材都是针对大学本科学生使用的。一般高校本科C语言的课时是48理论加32实验, 而高中学生面临者高考的重担, C语言一般是作为学生的选修课开设, 不能占用学生的过多时间。因此课时分配要少得多, 没有足够的时间进行大量的理论教学。
1.2 教学内容单一,难以因材施教
C语言课程应该着力培养学生程序设计能力 , 以解决实际应用问题。学生的兴趣浓度不同, 计算思维和程序设计能力也参差不齐。在实际教学中, 不观察和统计学生的特点和能力的区别, 采用单一的教学模式和内容很难达到良好的教学效果, 反而会让本来兴趣高涨的同学望而却步, 能力稍高的同学又对教学内容不满足。尽管实践机会不多, 但是学生的程序设计能力也已经参差不齐, 千篇一律的实践内容和单一的实践平台难以满足不同层次的学生的需求。
1.3 实践平台太少,学生难以学以致用
高中学生的课外时间本来就少, 在C语言教学的规定课时内, 给学生提供的实践机会就是在实验室里编写教师规定的实验项目。学生很难看到C语言程序设计在实际应用中有什么作用, 导致学生的程序设计能力得不到提高, 难以学以致用。同时, 相同的实践内容也难以满足不同层次的学生的需要, 没有为高水平学生提供大展身手的平台。
2 教学改革探索
2.1 改革 《C 语言程序设计》 的课程内容
(1) 明确教学目标 , 结合学生实际能力设计教学内容
C语言课程主要介绍输入输入、顺序程序设计 、数组、函数、 指针和结构体等知识点, 如果教学内容仅注重这些知识点中的理论知识, 将很难引起学生的兴趣。提高学生的学习动力,C语言教师应积极改革教学理念 , 编写适用于高中学生的C语言程序设计教材, 并制作对应的教学大纲和实践实训大纲。
以本校为例, 一般是在高二开设C语言程序设计课程。此时学生的数学基础薄弱, 很多计算思维方法都没有 建立 ,因此大学本科C语言课程中的重点难点等必须掌握的知识点并不适用于高中学生。如果花费大量的时间在这部分内容的教学上, 大部分学生很难跟上, 不久就会失去学习的兴趣和动力。因此, 在C语言的教学之初首先对学生的计算思维和程序设计能力进行摸底, 根据学生的实际能力水平调整教学内容和实验内容。学生的适应能力高, 设计能力强, 则可以适当增加一些难度大的教学内容, 例如指针。如果学生的学习和设计能力低, 则以基本的程序设计内容数组和函数为主。
(2) 改革教学方法 , 采用对比式和案例引导式教学模式
对同一问题, 引导学生从不同的角度去思考, 找出多种方法来解决。比如, 在序列求和问题时, 可以采用循环结构计算, 也可以采用高斯公式计算, 还可以采用数组事先存储所需数据。这种对同一问题寻找不同计算方法的教 学方式 ,有效地开阔了学生的思路, 同时通过对不同实现方法的比较,加深了学生程序效率的理解和掌握。
在授课过程中, 使用与程序设计相关的有趣案例引出教学内容。比如介绍二重循环时, 以购买啤酒和饮料问题为案例介绍。通过案例引导学生, 使学生更直观地认识到C语言的实际应用, 从而激发学生的学习兴趣, 提高教学效果。
(3) 改革教学手段 , 开发网络教学平台
程序设计能力不是一朝一夕就可以掌握的, 需要很高的计算能力, 也需要大量的实际开发锻炼。而高中学生的时间毕竟有限, 不可能花费大量的时间用于C语言的教学。而又有相当一部分同学对C语言兴趣浓厚, 想在程序设计上大展宏图, 仅仅是课堂教学的这些内容很难满足这部分同学的需求。因此, 教师可以借助校园网平台, 建立C语言课程教学网站。网站上提供大量的程序设计的学习内容和实际程序设计开发的实例, 并提供在线答疑等。增加了学生课外自主学习的手段, 拓宽了学生的视野, 提高了学生的学习兴趣。
2.2 采用层次式教学,根据学生水平设置实验内容
每一届的学生的计算思维和程序设 计能力都 不尽相同 ,因此教学内容不应是一成不变的, 应该根据学生实际调整教学内容, 同样, 同一届的学生的能力也是各有高低, 因此实验教学内容也不应是完全相同, 应该根据学生的层次水平组织灵活多样的实践内容。
(1) 对于每个学生都设置相应的基础性实验 , 包括数据的输入输入、分支语句、For语句、While语句和数组。 (2)对于这部分基础实验掌握较好的学生, 再增加函数的相关实验 , 以锻炼学 生对于参 数传递和 函数调用 的理解和 运用。(3) 对于程序设计能力较高的同学增加C语言的灵魂-指针的实验内容, 使学生能够灵活地运用函数和指针进行程序设计,解决实际问题。这3种实验并不是沿着时间进程进行, 而是根据学生实际来调整实验时间。发现学生很难掌握C语言基础, 在整个实验教学过程中就只安排基础实验, 拉大每个基础实验项目的时间。发现学生对于C语言基础轻松掌握, 就可以直接进入下一步实验内容的练习。
2.3 建立程序设计兴趣小组,以程序设计大赛激励学生学习
对于程序设计能力很高的高中学生而言, 仅仅是教学计划内的教学内容已经很难满足了。为了激发学生学习的兴趣, 提高学生的能力, 可以建立程序设计兴趣小组, 为这些学生提供新的实践平台。比如讲教师的科研项目引入其中, 让学生参与完成。还可以利用假期组织这部分学生去实际的软件开发公司进行参观和实训, 使他们对程序设计有了更直观和深刻的印象, 提高学生的实际应用能力。另外, 目前国内和国际也有很多软件设计大赛,比如蓝桥杯全国软件大赛和ACM国际大学生程序设计大赛等。虽然这些大赛都是针对高校学生的, 但是高中学生中也有很多程序设计能手, 同样可以组织这部分同学参赛, 为他们提供一个新的实践机会。并将这些大赛内容中适合高中学生的有趣竞赛题目引入到教学中, 同样可以丰富教学内容, 提升教学效果。
关键词:学习背景 案例法教学 任务驱动法
一、学生学习背景
计算机C程序设计(以下简称“C语言”)课程的教学是学生学得较差、老师教得较难的一门课。再加上该课程设置在中职教育的一年级,学生刚离开基础教育进入了职业技术教育,此时学习 C 语言,在跨度和难度上都很大。计算机语言对于中职一年级学生来说,内容枯燥、兴趣较低。大致来说,其原因有以下几个方面:数学基础差,而有些程序编写要依靠数学知识来解决;键盘指法不熟练,输入源程序丢三落四;英文底子薄弱,对于C源程序的运行环境、运行时的相关提示等看不懂,因此导致上机调试程序束手无策;再加上对程序主观上的认识过难,无形中挫伤了学习的积极性。因此导致C语言的教与学效果都不佳。笔者通过多年的教与学,将应用案例与任务驱动教学法有机结合,使教学内容更加系统、条理,学生接受知识的方法更加科学。
二、教学法概念
案例教学法就是基于一定的教育目标,以教学案例为主线、老师为主导、学生为教学主体的一种教学方法。案例要能够涵盖教学内容,通过设置的具体案例,来引导学生参与分析案例、讨论案例,利用所学的知识点来应用于案例。通过这种教学的互动过程,培养了学生认识问题、分析问题和解决问题等综合能力。同时在这一过程中,教师要及时给予学生过程评价及成果评价,让学生享受学习过程的乐趣及成功带来的喜悦。
任务驱动教学法应用于C语言课程的教学,是以学生为教学对象,依据教材的教学内容和要求,将教学内容设计成学生感兴趣的、有意义的具体任务,在老师的提示下,积极主动地发现问题、探究和解决问题,并利用所学的知识来应对现实问题,从而完成知识目标的学习和巩固及应用。在完成任务的过程中,学生不仅掌握了基本知识和技能,也培养了自主学习、探究、合作与实践能力,激发了学习兴趣,具备了一定的创新能力,加强了团队的合作,全面提高了综合素质。
将案例教学法和任务驱动教学法进行有机结合,充分发挥各自的优点,是笔者研究的重点。
三、案例和任务驱动教学法在教学中的应用
教学流程(见下图)。
图
经过教学实践和教学研究得知,一种行之有效的方法就是采用以案例程序为中心的三步式课堂教学方法。通过任务驱动的方式逐步突破重点、难点,利用C语言开发环境来诠释程序执行的中间过程及结果,完成教学目标。下面以C语言课程中的“用for语句实现循环”课题为例进行具体阐述。其大概的思路如下:根据该课的教学目标,确定该课的教学任务,课前下发给学生;精选具有一定代表性的、能涵盖本课要点的案例程序。
1.读程序(该课重点)
告知学生案例程序的功能,并通过C开发环境运行案例程序,激发学生的学习兴趣和好奇心。通过对案例程序的阅读,发现新知点“for语句的格式”,激发学生求知欲望。学生在老师的引导下,对for循环语句的格式进行深一步的了解。老师通过课件展示for语句的执行流程过程,集中学生学习的注意力,让学生根据流程图描述for语句的功能,并点拨强调相关注意事项,进一步加深学生对for的语法及功能流程的理解。接着,通过竞争机制画出案例程序的流程图,完成学习“任务一”,对于for语句的格式和功能起到了巩固作用。接下来,教师运用语法反过来分析案例程序的运行结果,根据程序的执行过程分析程序的功能。在这一过程中,结合C开发环境的程序调试功能,观察各变量的变化,验证课堂理论知识的正确性,使其具有更好的直观性和知识说服性,给学生留下更深刻的印象,从而完成“任务二”的表格,得到程序的运行结果。通过程序的分析与执行,学生对于for语句的基本格式和执行过程有了更深的理解。最后教师通过引导学生对案例程序的解读、分析、归纳得出学习循环的“五要素”(循环变量的初值、终值、步长值、循环体和后续语句),做到读懂案例程序。
2.改程序(重点向难点过渡)
接着,根据程序的功能反过来将案例程序语法结构或实现的功能改一改,即用while和do-while来改写程序,完成“任务三”。这个阶段在前面读程序的基础上又进了一步,同时又对“用while构成循环”和“用do-while构成循环”起到了进一步的巩固和理解,使程序应用更加灵活自如。改程序的过程实际上也是算法分解组合的过程,学生在这个过程中能收获很多知识,这是思维拓展一的“改程序”。在这一过程中,教师让学生真正理解各循环变量的初值、终值、步长值及循环体语句和后续语句在for循环语句中所起的作用,以便于今后能够独立编写程序。
3.编程序(本课难点)
最后是理论联系实际,解决处理实际生活中的问题,这是思维拓展二的“编程序”。这是该课学习的难点,也是终极目标任务。在这一过程中,老师提出任务,并且给予相应的任务解决方案提示,学生分组讨论探究老师提出任务中循环变量的初值、终值、步长值、循环体等内容,编写程序清单,利用C开发环境来进行源程序的调试及运行,最终得到需要的任务结果。通过任务案例,教师让学生学会对知识的总结和举一反三,更进一步对已学知识进行巩固,在解决问题的过程中,让学生学会思考,学会思维的拓展,完成“任务四”编程序。
通过上述以案例任务驱动为中心的三步式课堂教学方法“读程序”“改程序”“写程序”,学生掌握for语句的语法规则、功能及对功能的使用,学会分析程序的方法,举一反三,触类旁通,并具备一定的程序编写能力。
四、小结
传统的计算机语言教学课大多数是采用课堂老师讲授法,然后再安排上机实习,老师先将教学内容在课堂上进行逐一详细讲解,然后再介绍如何运用这些理论知识来解决实际问题。学生常常感到课堂理论知识在内容上枯燥乏味,教学方式单一,这样在很大程度上影响了学习的积极性,使课堂效率低下。在课堂上,老师一味地讲,学生没有主动参与学习,在很大程度上影响了学生学习的主动性。这种模式的结果是:学生学会了基本技能,但应用能力不佳。而当今的中职教育,学生不仅要掌握必要的理论和基本技能,还要培养学生分析问题、处理问题和解决问题的能力。“案例和任务驱动学法”打破了传统教学模式,教师首先采用案例教学法,让学生发现问题,将学生的学习兴趣、积极性充分调动起来。然后分析问题,让学生主动参与学习,着手用所学知识来解决问题。最后提出新任务,给学生充分的时间去思考、去探究、去合作,模仿解决案例的方法,将老师提出的任务完成,从而举一反三、触类旁通,并解决日常生活中的实际问题。这样既提高了学生探究新知识的能力和创新意识,同时也让学生体会到学习过程的乐趣和学习成功的喜悦。
功能:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。试设计一选修课程系统。
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;
2、建立一个文件,将每条记录信息写入文件中并能显示于屏幕上
3、完成上述添加、查找(课程编号、课程名称、课程性质等)、修改等功能。
4、进一步要求:学生选修课程(可选项)
要求:
1、用C语言实现程序设计;
2、利用结构体数组实现信息的数据结构设计;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序加必要的注释。
课程设计实验报告要求:
1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。
C语言是一门通用计算机编程语言,应用广泛。下面是小编为大家整理的关于c语言课程设计的设计报告,欢迎大家的阅读。
高等职业教育的目标及侧重点不同于普通高等教育,其培养的学生在毕业后应能直接上岗,具有熟练的实践操作技能。教育部《关于以就业为导向深化高等职业教育改革的若干意见》中指出,高职教育应“坚持培养面向生产、建设、管理、服务第一线需要的‘下得去、留得住、用得上’,实践能力强、具有良好职业道德的高技能人才”。
因此,加强实践性课程教学,对保证人才培养质量显得尤为重要。我院为贯彻《关于全面提高高等职业教育教学质量的若干意见》精神,针对区域经济发展的要求,灵活调整和设置专业课程,以就业为导向,加快专业课程对应的课程设计改革。目前,我院按照由浅入深、不断深化的教学规律,构建了实践教学三层次四环节的实践课程体系。实践教学三层次包括基本技能、专业拓展、综合创新,四环节包括实验、实习实训、设计和课外实践。“C语言课程设计”是我院信息类专业的必修专业基础课程设计,在“C语言程序设计”课程教学结束后的下一学期进行,历时2周,40学时。课程开设的目的在于培养学生分析问题和解决问题的能力,为学生提供一个动手、动脑、独立实践的机会。
21项目教学法“项目教学法”是基于建构主义教学理论的一种教和学的模式。著名的瑞士心理学家皮亚杰认为,知识不是通过教师传授得到的,而是学生在一定的情境下,借助他人的帮助,利用必要的学习资料,通过意义建构的方式而获得的。美国项目管理专家约翰·宾认为:“项目是要在一定时间里,在预算规定范围内需达到预定质量水平的一项一次性任务。”
“项目教学法”是通过实施一个完整的项目而进行的教学活动,旨在把学生融入有意义的任务完成的过程中,让学生积极地学习,自主地进行知识的建构,在课堂教学中把理论与实践教学有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。因此,在教学活动中,教师将需要解决的问题或需要完成的任务以项目的形式交给学生,在教师的指导下,以小组工作方式,由学生自己按照实际工作的完整程序,共同制定计划,共同或分工完成整个项目。
在项目教学中,学习过程成为一个人人参与的创造实践活动,注重的不是最终的结果,而是完成项目的过程。在高等职业技术教育中,项目是指以生产或制作一样具体的、具有实际应用价值的产品的工作任务。在技术领域,很多小产品或一些复杂产品的模型都可以作为项目,如:在信息类专业,可以开展微机组装、网站建设、信息管理系统开发、局域网构建、单片机制作、多媒体课件制作等项目;在电子类专业,可以开展报警器、LED、门铃、家电组装等项目;在商业、财会和服务行业,所有具有整体特性并有可见成果的工作也都可以作为项目,如商品展示、产品广告设计、营销策划等。
22项目教学法的基本特征项目教学法与传统的教学法相比,有很大的区别,主要表现在改变了传统的3个中心:以教师为中心转变为以学生为中心;以课本为中心转变为以“项目”为中心;以课堂为中心转变为以实际经验为中心。项目教学法具有以下特点:
实践性。项目“源”于企业,项目的主题与真实世界密切联系,由浅入深,选择的项目具有典型性、实用性。
自主性。提供学生根据自己的兴趣选择内容和展示形式的决策机会,让学生能够自主地进行学习,从而有效地促进学生创造能力的发展。
发展性。长期项目与阶段项目相结合,构成了实现教学目标的认知过程。
评价特殊性。项目型教学的评价注重学生在项目活动中能力发展的过程,测评内容包括学生参与活动各环节的表现及作业质量,避免了传统的一张试卷定成绩的弊端。测评可以采用自评、小组评、教师综合评等方法。教师只有明确并抓住项目化教学特点,才能更好地完成教学目标。
31教学内容为了更好地开展课程设计教学,经过多次实践和摸索,总结出学生在具体实施项目中一般存在2个方面的知识不足:
第一,在教学内容上,由于前导课程在教学上受学时影响,很多教师对指针、结构体、共用体和文件基本操作的知识介绍不甚完善、系统,更难谈上辅以实例加以消化。对此,针对学生在这些知识点上的掌握程度,利用4~6个学时,实施区别式的、辅导性的、实例化教学。
第二,学生对项目管理知识知之甚少,针对此情况,采用2个阶段实施有别于常规教学的补课行动。第1阶段为项目准备阶段,利用2~4个学时,安排曾经做过项目且做得比较好的学生,现身介绍项目的准备工作、项目实施过程要完成的工作、项目验收及作业提交的工作等。在学生介绍中,教师穿插讲解,辅以点评。第2阶段为项目实施阶段,教师应针对学生发生的问题,及时给予指导,直到学生弄懂为止。
32教学要求切实保证教学质量和教学效果,本着“学以致用”的原则,要求学生做到以下3点:第一要做到“学有三备”,即:在项目实施前做好知识储备,在项目实施中做好安全防备,项目结束时做好被评准备。第二要写好“三书一报告”。“三书”即每个项目组要做需求规格说明书、概要设计说明书、详细设计说明书,“一报告”即人人都要做课程设计报告。第三要做“四自”参与者。“一自”即自律,要求学生自觉履行学生守则和项目实施有关规则,不迟到、不早退、不缺席,实施点名制度,若无特殊原因,有5次旷课者自愿以重修论处;“二自”即自尊,要求学生尊重知识、尊重学习规律、尊重项目组成员、尊重教师、尊重自己;“三自”即自信,要求学生相信自己能够按时、按量、按质完成工作内容,遇到困难时,沉着、冷静,理性地寻找问题解决的办法;“四自”即自强,要求学生不满足自己已有的成绩和以往与课题项目组共同取得的成绩,用创新和超越的思想,做出比以前哪怕是前进一小步的事情。同时也要求教师做好相应的工作,如做好项目整体规划、精心准备、努力激发学生参与行为、为人师表、表扬为主、批评为辅、多分析、精点评等。
33项目实施进程项目教学法是一种生动、灵活、多样化的教学方法。在项目实施过程中,既不能生搬硬套地利用一个时间标准,又不能影响项目实施的整体进程,因此对时间的灵活处理是非常关键的,也是值得商榷的。
34明确项目内容,帮助学生立项立项首先要审题。当学生拿到项目列表时,最不能忽略的问题,就是提醒学生审题。审题恰当对学生以后开展各项工作是关键。审题时,学生首先要考虑自己的长、缺处,做到扬长避短,也就是说审题就是学生自己审自己完成该项目有多大的能力,有没有信心。只有学生明白自己,才可以避免以后实施项目过程中走弯路。同时既要建议学生在组建项目组时,考虑所在组的其他学生的长处和短处,又要尽量避免使被学生认定的差等学生没人愿意与其组合,而成绩好的学生又抱团的现象发生。
根据近几年带课程设计的经验,关于如何合理选择项目,建议教师应从学生的角度考虑以下4个因素,协助学生做好选题:
规模。项目规模太大会影响项目的完整性,项目规模太小难以体现课程的实践性。
难度。项目难度一定要适中,既要激发学生学习的兴趣又不能影响学生的自信心。
实用性。项目的选择应该是现实世界真实的工作任务,具有一定的现实和实用性。
【摘 要】实训课程作为实践教学的重要内容,是人才培养过程中的一个重要环节,对社会的发展和进步起到了非常重要的作用,为社会输送了大量人才,但是实训教学中仍存在很多问题。本文主要从教学内容、教学方法、考核方式三个方面进行探讨。
【关键词】实训;教学内容;教学方法;考核方式
0.引言
C语言程序设计实训这门课程要求学生掌握计算机程序设计语言的基本知识和程序设计的方法与技术,培养学生应用计算机解决实际问题的能力,重视学生实际编程能力和程序思维能力的培养,通过学生上机编写程序来提升学生的编程能力,培养学生的学习兴趣和创新能力。
C语言程序设计为其前导课程,是对其前导课程知识的巩固、实践与提升,是ACM程序设计课程的基础,通过此次实训为程序设计比赛和ACM大赛输送人才,使更多的学生在全国的各种编程比赛中取得好成绩,同时为学生毕业后从事编程工作打下良好的基础,为企事业单位输送程序设计人才。
本人根据C程序设计实训课程教学中存在的问题对教学内容、教学方法,考核方式进行了改革,并以本校2010级软件班学生为试点进行教学,总结了一些经验。
1.教学中存在的问题及解决对策
1.1实训内容单一
实训教学内容应该首先根据C语言的特点对知识进行整合,然后引入针对性较强的典型综合实例,从程序整体向各个核心知识点渗透。教师可以根据学生的实际情况设计实训项目,内容应覆盖学生所学的知识,突出实用性,内容最好为学生所熟悉领域或学生感兴趣的领域。如果学生层次不一,可以根据学生对基础知识的掌握情况设置不同的实训内容。
1.2教学方法单一
在实训教学过程中,应将重点放在分析程序设计过程上,培养学生良好的编程习惯,逐步提高学生编程能力。单一实训手段要达到这一目标是很困难的,这就要求运用多种实训教学方法,让学生对编程有个很好的理解过程。
可以引入多种教学方法。以前的实训课程不能激发学生的学习兴趣,主要是因为课堂是由老师主载,学生是被动的学习,不能成为课堂的主人。我们将采用多种教学方法来激发学生的兴趣,转变老师和学生的课堂角色。
(1)基于ACM模式的教学方法。ACM的教学模式是结合具体的问题讲授概念与理论,辅以课堂讨论,做习题等多项教学手段。在教学过程中,安排学生深入有关实际问题进行研究,加深对所学理论的认识,利用网站进行程序设计。以往的教学是按照基础知识、循环结构语句、结构体语句等知识点的顺序进行讲解。基于ACM的教学方式是按照习题所属知识类别进行理论讲解,离散数学、初等数论、数值计算、人工智能、动态规划算法、图算法等知识点进行讲解与练习。ACM的教学模式在一定程度上将基础学科很好地运用于程序设计当中,有利于知识的融合,可以提高学生的思维能力,在做练习时举一些趣味习题,激发学生的兴趣。
基于ACM的教学方法的优点如下:
①知识分类讲解可以加深学生对知识的理解,更加系统。
②ACM所选的题目趣味化生活化,可以激发学生的学习兴趣。
③题目所含知识面广泛,有利于知识的巩固。
④分组培养大家的团队协作精神。
⑤学生讲解培养学生的表达能力与思维能力。
(2)讨论式教学法。由于每一道程序题可以有不同的编写方法,答案不唯一,所以很适合使用讨论式教学方法。将学生以三人为一个团体进行分组,在组内讨论编程方法,上机编写程序并进行验证,由组内推举成员向大家进行讲解和演示,有不同编程方法的组可以继续演示,最后由老师进行总结,并选出时间和空间复杂度最小的程序,同时也可以发现学生在编程过程中出现的常见错误,发挥学生的团队精神,提高学生的表达能力。
(3)任务驱动法。在实训课堂上,学生需明确要完成的任务,依照实训任务完成实训。题目由易到难,知识点由单分支到多种分支情况的应用,这样适合学生学习特点及编程由易到难的编写过程。
1.3考试一锤定音
这门课程主要是培养和检验学生的编程能力,所以不能以一次考试来决定学生的最终成绩,检验过程应该贯穿整个学习过程。引入过程性考核思路,总成绩分部累加。采用平时计分和最终考核相结合的方式,以每节课的发言演示情况来给出平时等级,一学期进行累计,按累计成绩进行排名,前三分之一学生可以免去最后的考核,以平时成绩作为最终成绩,这样也可以激励大家踊跃发言,剩下的学生参加最终考核,最后成绩由平时成绩和最后一次考核的成绩各占一部分比例来组成。通过实践检验,课程考核方法改革后,考核出了学生的实际操作水平,用过程性考核思想后,在学习过程中时刻检验学生的学习接受掌握情况,加大了课程全程质量监控力度,课程考核结果基本能够反映学生学习后真正的计算机应用能力水平。考核结果公平、有效,这也是现在倡导的全过程考试。
2.总结
通过对C程序设计实训课程的教学内容、教学方法、考核方式的改革,并对2010级软件班学生进行试点后,使学生理解模块化程序设计的基本思想,掌握结构化程序设计的基本方法,掌握C语言的数据结构、程序结构、语句以及控制结构的使用方法,能用程序设计技术解决一定难度的实际问题,掌握在实际开发环境下进行编辑、编译、连接、调试和运行的方法;综合训练学生分析问题的基本方法,提高解决实际问题的能力,培养学生的专项技能和职业能力。
【参考文献】
[1]王嵩.C语言程序设计.教学探索与实践[J].教书育人,2006,(35).
[2]王美娜.C语言程序设计.教学方法探析[J].科教文汇(下旬刊),2007,(04).
[3]曾鸿.基于项目的软件工程综合实训教学模式[J].中国职业技术教育,2008,(12).
[4]王丽娟.C语言程序设计教学分析与探索[J].中国校外教育(理论),2008,(S1).
[5]刘斌,瞿新南.浅谈《C语言》项目教学[J].新课程研究(中旬刊),2009,(12).
1 激发和提高学生学习外在动机
一个学生能否学好知识,学习动机尤其是外在动机很重要。支持学习的动机是外在动机,也称外源性动机,指由外在的奖惩或害怕考试不及格等因素之外的原因激起的动机。当前高等教育已从精英教育走向大众教育,高等教育对普通人不再是遥不可及。与此同时,大学生就业单位不再像以往一样由国家计划分配;大学生毕业生,尤其是非重点及非热门专业的毕业生,很难找到理想工作。结合这一就业困境,在校生必然时刻思考这样一些问题:我现在究竟需要学好什么知识才能找到好工作?我为什么要学C语言?学习C语言有什么用?为此,笔者列举了许多用C语言编写的商业性软件,告诉学生大量企业招聘软件程序员都要求应聘人员熟练掌握C语言,而学好C语言是进一步提高编程能力的必由之路。
2 努力培养学生学习的内在动机
内在动机也称内源性动机,是源于兴趣、好奇心、求成的需要或自信心等个人特征的动机。针对内源性动机,笔者对教学工作进行了探索。为培养学生学习兴趣,增强学生的求知欲。在教C语言的第一堂课就向学生介绍C语言的广泛应用,明确指出它是学生将来学习软件知识的基础。为了加深学生的印象,笔者现场演示了一个由C语言编写的小游戏(俄罗斯方块),并给学生演示单片机芯片C51编写的芯片程序,使学生了解到C语言的可读性以及对硬件的可操作性,明白C语言功能的强大以及应用范围广的特点,从而将学生引入一种与问题有关的情景中,产生求知欲。在教学时间比较充裕的情况下,向学生特别是喜欢玩电子游戏的学生介绍C语言编写的小游戏俄罗斯方块的源代码,让他们认识到通过修改源程序中相关语句可以改变游戏规则。目前,相当比例的学生都喜欢玩电子游戏,部分学生甚至深陷于此,不仅浪费了时间与金钱,身心还有可能受到伤害。以上教学方式能将部分学生对玩电子游戏的兴趣转变为编写游戏软件的兴趣。许多学生对这样的教学方法非常感兴趣,除了学习老师介绍的小游戏程序外,自己还去查找其他的游戏软件编写资料,提高了学习效率,同时拓宽了知识面。
3 尽量使用程序案例教学方法
程序案例是实际软件开发的成果。学习C语言,主要有以下几个好处:①为以后学习C系列语言和其他编程语言打下坚实的基础。②学会开发小型软件(一般按软件开发工作量算,源代码大概是1 000行以内的程序)。③开发80X86系列单片机的程序。为了让学生会学以致用,可以在课堂上给学生讲解一些实际的软件代码。在实际教学中,要根据所教专业来酌情选择教学案例。比如,针对计算机专业的学生,采用一些小型软件案例;针对电子专业的学生,则主要结合他们专业特点,详细介绍常用的单片机芯片C51、C52知识,讲解芯片的引脚、作用以及在使用单片机编程时的注意事项,并讲解一些常见的应用实例,如交通灯里的单片机。当然,程序案例教学一般都安排在期末进行,因为只有到这个时候,学生才具有一定的编程能力基础。
4 经常向学生展示新的动画、游戏软件
为了让教学效果更好,在讲解新的语句时,要经常向学生展示新的动画、游戏软件,而这些动画、游戏的程序包含或多次用到当天需要讲解的语句。学生被动画、游戏吸引时,必然非常想知道如何编写该程序,所以笔者在讲解程序时重点分析新的语句,让学生有豁然开朗的感觉,感觉学习不再枯燥,知识记忆更深刻。例如,以下是一个的动画程序,当程序运行时,如图1所示,整个屏幕中间有一个绿色的小方块在不停地向右横向转动。以下是C语言的源代码。
在讲解for循环语句时,笔者先展示该程序。该程序利用上面程序中加粗字体部分的for语句来实现动画。为了加深学生对for循环中3个表达式的理解,笔者首先改变表达式一,把原来的i=0改为i=13,图中小方块出现的初始位置向右移动,然后不断做横向移动。这样的数值处理改变了动画运行的初始位置,使学生了解到表达式一决定程序运行的初始位置;然后笔者恢复表达式一的值,改变表达式二的值,把i<30改为i<5,图中小方块横向移动距离大幅度变小,让学生认识到表达式二决定了运行的移动幅度;最后笔者改变表达式三i++,把i++改为i=i+2,此时学生发现动画运行速度比原来慢。通过这个小程序的讲解,学生真正了解了for语句的使用,取得了良好的教学效果。
摘要:在C语言程序设计课程教学中,将激发学生学习的外在动机、培养学生学习的内在动机、使用程序案例教学以及向学生展示新的动画或游戏软件等措施进行综合利用,可取得较好的教学效果。
关键词:C语言程序设计,教学,学习动机
参考文献
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,1998.
[2]皮连生.教育心理学[M].上海:上海教育出版社,2005.
[3]张海藩.软件工程导论[M].北京:清华大学出版社,1998.
【《C程序设计》课程教学大纲】推荐阅读:
《程序设计语言强化课程设计》教学大纲12-09
c语言设计程序11-11
c程序设计作业10-13
《C程序设计》重点总结09-26
c语言程序设计实验11-19
c语言程序设计作业三06-24
C语言图形程序设计报告10-13
c语言程序设计基础题10-28
c语言程序设计补充题11-17