基于工作过程的C语言教学研究
2015-05-15汪楠
汪楠
摘要:该文以《C 语言程序设计》课程教学中存在的问题为出发点,结合教学实际情况,在整合教材、改进教学方法、发展创造思维、加强课程设计与实践教学、改革考核方式等方面阐述了基于工作过程的C语言课程教学改革的思想和方法,以促进C语言教学。实践证明,改进了教学方法后,在培养学生的动手能力,维能力以及创新能力方面均取得了较佳效果。
关键词: C语言;基于工作过程;教学改革
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)08-0137-02
C程序设计语言是受到普遍认可的一种计算机程序设计语言,C语言精练、灵活、功能强大效率高,高校在课程设置时将C语言作为编程学习的入门课。另外C语言实践性强,在培养学生程序设计思想和基本技能上优势明显,课程的最终目标是培养学生计算机编程思想和技能,逻辑思维能力以及软件开发员的职业素质、团队合作意识,以及发现问题、提出问题、解决问题的能力。事实上受教学固定模式束缚,C 语言教学一直围绕语法知识这个主线展开,教学按数据类型、运算符、变量 、选择语句、循环语句、函数、指针的顺序来学习程序结构。 以循序渐进的教学模式能按部就班地将教学内容传授给学生,很难培养出逻辑思维能力强、能解决实际问题的实用人才。教学总围绕教材中基本语法知识和经典算法开展,学生即使可以仿写出简单的程序,顺利应付考试,也无法获得编程的成就感和自信,也就不会产生学习的兴趣和动力,更没有自主思维和实践创新的意识[1]。针对“懂知识,难编程”的现状,笔者依托多年实践教学经验,根据C语言课程特点,创新推广“基于工作过程”的C语言课程改革研究和实践,取得了理想的教学效果。
1 教学难题
1)学生通过常规的课堂学习,更多的仅是掌握了语法和基本的程序结构,学习的目的很模糊,很难形成系统的编程思维,更不要说具备程序设计开发能力。
2)C语言知识点多,难度较大,学生学习兴趣低。加上高职学生学习惰性大,依赖性强, 即便开始比较积极认真,当一而再,再而三遇到学习困难时,会很轻易就放弃学习。
3)学生在学习C语言时看例题,做习题,练试题,而很少注意实践能力的培养,创新意识和解决问题的能力缺乏,要独立编程更是常常感到无从下手。而事实上在编程语言的学习中,动手实践是首要的。
4)现大多教材都多立足于C语言本身的一些语言规则, 和实际开发脱节, 缺乏生动、实用有吸引力且较容易理解的范例,客观上降低学生的学习兴趣, 并不适应现今职业教育的需求
2 基于工作过程的教学模式
基于工作过程的教学以工作任务为主线、教师为主导、学生为主体,将所要学习的新知识隐含在一个或几个任务之中,学生分组通过对所提出的任务进行分析、讨论, 经过老师的指导、帮助下找出解决问题的方法,最后完成任务并总结经验、分析存在问题、提出困惑、讨论交流,教师评价反馈总结,最终实现对所学知识的掌握。
2.1 分析职业岗位,设定工作任务
通过广泛深入IT企业调研,切实分析各种计算机专业相关职位,对照职业资格标准, 按照C语言程序设计课程要求确定具体的职业能力培养目标。一项工作过程包括若干结构完整的工作任务,完成一项工作过程是一系列工作任务的总和。综合IT软件行业的调研结果、行业专家访谈, 任课教师集体备课研讨等方式获取有效信息,罗列软件行业相关职位的工作任务列表,并由此归纳整合实际工作过程中的典型工作任务, 在此基础上进行分类排序, 抽取置换有趣味性、启发性并且适合教学又在学生能力范围内的工作任务。如: 开发游戏程序、音乐程序、画图程序、设计简易计算器等。利用有趣实用的工作任务激活学生,吸引学生,将学生锁定到课堂任务的实践中,为提高教学效果打下坚实基础。
2.2 以任务为主线, 学生为主导分组讨论研究
根据任务的难度和教学资源对学生进行分组,各组任命小组长,以组为单位围绕工作任务进行分析研究。组长负责组织本组学习讨论,遇到难题时负责向教师提问,实行二级管理[2]。对每组发放任务卡,任务卡包含任务基本信息:首先要求掌握基本理论知识,附带对任务的解释说明;基础的练习任务和进阶任务;任务方案说明;任务完成结论分析等几部分。学生通过查阅、自学相关的课程内容, 经过充分讨论,确定思路、技术和具体方案,自行分组、分工,协同实践,,完成任务后当堂提交,各组交流发言。一系列的流程中教师只提供必要的引导,以学生独立完成为主,将课堂的主体还给学生。接近实战的软件开发流程的教学模式, 课堂气氛宽松自由,能最大发挥学生的能动性,学生的学习兴趣增强,还有利于创新精神和实践能力的培养, 更重要是的培养他们探索与执着的职业风貌,懂得发挥团队优势,杜绝了个人编程时无从下手而放弃实践的常见现象,团队的互帮互助效果明显。
2.3 纠正复读机式学习,真正培养解决问题的能力
传统的课堂教学容易引导学生走模仿路线,也就是教师讲基础语法知识学生背,教师分析典型实例学生照葫芦画瓢,学生习惯被动接受,没有思考习惯更无力分析解决新问题。基于工作过程的教学方法倡导让学生在实践中学习、在学习中思考、在思考中创新[3]。为了完成工作任务 ,学生必须独立思考,这促使学生在掌握基本语法之余必须自己分析和解决问题,主动研究方案和加强合作意识。现实中的工作任务不可能一成不變,经典算法不是一劳永逸的, “程序设计”不仅是重点,也是难点。所以在整个教学过程中,要培养学生分析问题、解决问题的能力,而不是仅仅让学生学习C语言的语法,归根结底语言仅仅是描述算法的工具,所以如何“设计程序“才是应该强调的重点。
2.4 趁热打铁,当堂评议总结提高
基于工作过程导向的教学方法精髓在于教师引导。教师精心设计工作任务,学生分组完成工作任务,从分析工作任务到决策、设计再到实施是以学生为主体。在这个过程中总会有实际问题是不能顺利解决的,需要教师讲解引导,这些讲解内容恰恰正是教学的重点和难点。通常教学重点和难点都是抽象的、难懂的,学生总容易表现出畏难抵触情绪,甚至回避放弃。而在基于工作过程的教学实践过程中这些疑难问题本身是由学生提出的,他们对于问题的解答有迫切的需求,思维更为专注,有了思考和充分讨论的基础,理解会变得容易了,这是第一热。课堂任务提交后,学生会又有一个思想的小热潮——等待教师的评议分析,这时候他们的注意力非常集中,是个极好的教学时机。一方面通过教师的评议他们可以获得一些新的思路,或者能对原有的设计进行扩展,一方面他们也希望通过评议的肯定或者获得自信心的增长,保持旺盛的学习动力[4]。笔者在实践中的评议阶段常引入竞争机制,形成组内联手、组间PK的局面,鼓励表扬高质量和高效率的小组, 并给予考核分加分纳入总评成绩,为学习热情再添一把火。
2.5 优化考核方式, 重视过程考核
基于工作过程的教学方式是倡导学生在教学过程中作为主体的,并参与到整个教学流程,重视学生的实践,这样的创新教学方式要求有更为先进的考核方式与之相适应。考核应关注到学生的学习过程,应更倾向于实践考核,同时注重学生综合素质的提高。显然传统的理论考试无法给出准确的测量, 这就需要优化考核方式,重视“过程考核”, 主要考核学生的理论、实践、素质三方面在每次课中的体现;加强“能力考核”,提高实践的考核分数比。在考核过程中,理论分参考学生听讲、提问、回答问题、作业和实验报告; 实践分参考学生在实践中分析、动手能力、编程习惯及任务完成情况; 素质分参考出勤、学习态度、职业精神[5]。
2.6 任务小组划分实现综合素质培养
基于工作过程的课堂教学中需要对学生进行分组,以小组为单位完成工作任务,要求小组成员明确分工,发挥优势,通力合作,以完成设定任务为目标[6]。这要求组员间需要深度地分析、交流、讨论,不仅互促互进发现不足,还能促进良好学习氛围的形成,组员的沟通交流能力得到提高,更培养了团队合作意识,熟悉软件开发流程,实现职业综合素质的全面提高[7]。
3 结束语
通过一段时间的实践,C语言程序设计课程基于工作过程教学使得教学效果有明显改善,学生学习积极性高涨,程序设计能力明显提高。在未来实践中,打算通过整合教学内容开发更适应学生的工作任务,努力提升教师自身的实践能力来保障最大程度发挥基于工作过程教学方法的良好效应,为社会培养更多有用的人才。
参考文献:
[1] 谢光强,李杨. “C 语言程序设计”教学中存在的问题与建议[J].广东工业大学学报,2005(9).
[2] 张蕾. 基于项目化教学的“C语言程序设计”课程改革[J].计算机教育, 2013(1).
[3] 李小强,周春雷.基于工作过程的高职非计算机专业C语言教学研究与实践[J].电子商务,2010(10).
[4] 王曉勇, 肖四友, 张文祥. 基于能力培养的C语言项目化训练教学模式初探[J].计算机教育, 2009(11):62-64.
[5] 熊治荣. 任务驱动法在程序设计教学中的应用[J]. 硅谷,2009(12):161.
[6] 张悦. 项目驱动教学法在C语言课程中的应用[J]. 职业教育研究, 2007(2):164-165.
[7] 沈银丹.基于工作过程导向的高职C语言教学改革尝试[J].实践与探索, 2010(5).