◆张宗福
(广东江门职业技术学院)
《C语言程序设计》课程,是高职院校为计算机专业学生开设的一门必修课,是计算机专业的重要基础课程。通过该课程的学习,学生不但能掌握一门编程语言,同时也为后续学习ASP、JAVA、C#等高级语言打下基础,为将来毕业后从事软件开发与应用积累技术经验。高职学生普遍具有基础较差、容易丧失学习信心和比较急功近利等特点。《C语言程序设计》课程的教学目标,就是要让高职学生学会使用C语言工具来设计程序,实现相应算法。在传统的《C语言程序设计》课程教学中教师往往照本宣科,不从学习者的特征出发,不重视学生实践能力和问题解决能力的培养,导致许多高职计算机专业的学生在学习《C语言程序设计》课程时感觉非常吃力,甚至产生抵触心理。如何解决这些问题,本文引入“任务驱动”“情境教学”和“项目驱动”等教学模式,探讨如何将多种教学模式融合来开展高职《C语言程序设计》课程教学,取得了事半功倍的效果。
高职学生与普通高校的学生有着很大的不同,具有如下特点:
(1)文化课基础差。高职院校的生源一般是达不到普通高校分数线的普通高中毕业生和中专、职高、技校的毕业生,文化课基础较差,学习困难相对较大。
(2)容易丧失学习信心。高职学生普遍对于和职业发展方向有关的课程比较关注,但是由于基础较差以及没有形成良好的学习习惯,缺少持之以恒的学习毅力,对于付出时间和精力学习的课程,一旦没有达到预期的学习效果,往往容易丧失信心。
(3)思维比较活跃,动手能力、专业技能、适应性比较强。高职生虽然与普通高校的学生存在差距,但也有自己的优势,他们具有活跃的思维和爱动手的天性,动手能力、专业技能、适应性比普通高校的学生要强。
(4)渴望得到认可、鼓励和赞赏。很多学生到了大学阶段,都渴望获得认可,希望认识新朋友,也希望有机会可以和老师多沟通。其实,高职的学生都希望得到家里、学校、同学和朋友的理解、鼓励和赞赏,这就要求家长、老师、同学和朋友加强与他们的沟通和开导。
任何一个学习者都会把他原来的知识、技能、态度带到新的学习过程中,因此,我们在教学过程中就必须考虑学习者的特点是否与我们的教学内容,教学模式等相适应。
C语言功能丰富,表达力强,使用灵活方便,目标程序运行效率高,既有高级语言的特征,又有低级语言的许多特点,是学习其他高级编程语言的基础。所以,很多高职院校都将《C语言程序设计》课程列为计算机专业的必修课。C语言课程具有如下特点:
首先,概念比较抽象,理论性比较强,语法结构复杂,数据类型和运算符丰富,对应的规则繁多且容易混淆。
其次,对实践的要求比较高,工程性强。在课程教学中,不仅仅要包括课堂教学,还要考虑到给学生安排课程实验、课程实训和项目设计等教学环节,培养学生的动手能力、实践能力和实践项目的能力。
最后,课程地位相对重要,学习成效直接影响后续课程的学习。
高职院校的该课程教师,应该充分考虑到学习者的特征,从《C语言程序设计》课程的特点出发,在教学中灵活地采用多种教学模式,激发学生的学习兴趣和求知欲,最终达到教学目标的要求,从而锻炼高职学生的实践能力、问题解决能力和实践项目的能力。笔者在近几年的该课程教学过程中,尝试融合多种教学模式,取得了较好的教学效果。
高职《C语言程序设计》课程按照建构主义学习理论的要求,突出职业特色,以程序设计为主线,注重学生程序设计能力的培养。首先,以一个合适的课程项目为引导,以该项目的设计和改进中的问题为动力,逐步深入、全面展开课程内容;其次,明确每个拓展的实例所引出的C语言的知识点和学生应该掌握的技能,涵盖《C语言程序设计》课程里的所有基本内容;最后,课程的设计要能够突出“教、学、做”一体化,通过课程项目衍生出一系列贴近生活、生产和学习实际的小项目,从而激发学生的学习兴趣,使学生带着真实的任务在探索中学习,增强学生主动学习的积极性。
采用任务驱动教学模式,在课程教学过程中,可以把知识与技能的传授以完成教师安排的典型“任务”为主,这对培养和提高学生自主学习能力和问题解决能力有着重要的意义。在《C语言程序设计》课程中,“任务”的设计包括任务的提出和分解、解决问题的方法、最终达到的目标等。设计的任务目的性要强,任务要明确,时间安排要合理。通过一个个“任务”,学生不仅仅掌握了C语言的基本知识点,同时也培养了学生限时编程、解决问题等能力。
案例一:我们在学习“C语言输入/输出顺序程序设计”的内容时,我们可根据课程项目“学生成绩管理系统”,分解出一个小的任务“输入/输出学生的个人信息”。具体任务如下:请在30分钟内,使用printf和scanf函数,从键盘上输入学生基本信息,打印输出,排版格式自定。信息内容包括学号、姓名、性别、年龄、班级、电话、QQ号和电子邮箱。
教师在教学过程中通过创设与当前学习主题吻合的真实情境,使学生有身临其境的感觉,以激发学生的学习动机,从而理解教学内容、消化教学知识点、完成教学目标,进而优化学生的知识结构、智力水平、情感态度和实践能力。常用的情境教学模式有直观情境教学模式、问题情境教学模式、角色扮演情境教学模式、游戏情境教学模式等。在教学过程中使用情境教学模式能使课堂气氛活泼融洽,增加了学生之间交流的机会,激发学生的学习动力,同时角色扮演和游戏等活动也有利于学生团队意识和组织能力的培养。
案例二:在讲授一维数组的元素引用知识点时,我们可使用角色扮演情境教学模式,利用学生的座位特点,让学生练习一维数组的元素引用。假设教室中某列学生为一数组a,列中的某一位学生就是a[i],所以,我们可在此基础上设计问题:(1)根据现在的位置,请a[6]站起来;(2)在a数组中插入某个元素如何实现?将实现过程表演出来;(3)删除某个元素如何实现?将实现过程表演出来;(4)a数组为顺序存储结构,按照计算机的存储结构重新排列自己的位置,同时说出谁的地址大。
所谓项目驱动教学法,是指在教学过程中以项目为主线来展开,把相关的知识点融入到项目的各个环节中去,层层推进项目,通过对问题的深化或功能扩充,来拓宽知识的广度和深度,直至得到一个完整的项目解决方案,从而达到学习知识、培养能力的目的。
在《C语言程序设计》课程中,使用项目驱动教学模式,最关键的是要选择—个适合自己教学内容、突出所学知识的项目。在选择项目的时候要注意以下几个问题:
首先,充分考虑授课对象的层次和特征,了解学生已有的知识和具有的能力水平,这样有助于选择适合他们的项目。
其次,充分考虑课程内容,根据课程内容的重点、难点,将项目设计成学习型或者是训练型,同时也可根据课程内容把项目设计成大项目或者是小项目。
最后,要充分考虑项目的来源,根据学生的特点和兴趣,选择来自学生的项目、来自教师的项目或来自企业的项目。
针对项目驱动教学模式的特点,我们将学生分成几个项目组,每个项目组根据教师提供的C语言程序设计的项目选择其一作为本组项目,这一项目贯穿整个学期的课程教学过程。随着项目驱动教学模式的逐渐实施,在C语言程序设计的教学过程中采用基于模块的过程性考核评价方式,让学生每次都将所作的程序上传到教师服务器中,逐步完成本组的项目。从而锻炼了学生的程序设计综合能力,为今后较快地参与实际软件项目的开发奠定了坚实的基础。
案例三:使用C语言编写一个菜单驱动的学生成绩管理系统,其功能要求如下:(1)能输入并显示n个学生的m门考试科目的成绩、总分和平均分;(2)能通过学号查询到某一个学生各考试科目的成绩、总分和平均分;(3)能修改某个学生的姓名、各考试科目的成绩;(4)能通过学号查询,删除某个学生的姓名、各考试科目的成绩、总分和平均分;(5)能按总分由高到低、由低到高对所有学生进行排序。
通过分析高职学生的特点和《C语言程序设计》课程的特点,采用“任务驱动”“情境创设”和“项目驱动”多种教学模式融合开展《C语言程序设计》课程教学,能够充分地调动学生学习的兴趣和积极性,在培养学生发现问题、分析问题、解决问题和开展项目的能力方面有非常好的作用。教学实践证明,多种教学模式融合开展C语言课程教学,能够使学生学习变主动为被动,使学生能够轻松掌握计算机语言的编程技能,同时也锻炼了学生发现问题、分析问题、解决问题和开展项目的能力;教学质量得到显著提高,取得了良好的教学效果。
[1]康玉忠,甘宏,段传林.C语言程序设计项目教程[M].北京:中国商业出版社,2010.34 -36.
[2]赵金萍.“任务驱动式”的《C语言程序设计》教学[J].计算机时代,2007,(8):27 -28.
[3]张悦.项目驱动教学法在C语言课程中的应用[J].职业教育研究,2007,(2):166 -167.
[4]王云,郭华丽,李伯飞.情境教学模式在“C语言程序设计”中的应用研究[J].中国教育信息化·高教职教,2012,(3):66 -68.
[5]刘雅君,刘雅芬,张璇.多种教学模式在《C语言程序设计》课程中的应用[J].科技创新导报,2010,(19):171.
[6]何克抗.教育技术培训教程(教学人员.初级)[M].北京:高等教育出版社,2005.24 -26.