C语言程序设计课程是一门计算机专业程序设计语言类的基础课程,如何将枯燥复杂的语法、单调抽象的函数让学生们有兴趣学习、研究。文章通过在C语言程序设计这门课教学的设计,浅谈了自己的见解和方法。
大多数计算机专业学生首先开设的编程语言类课程就是C语言。不少同学觉得C语言学习比较困难,因为是第一次接触计算机程序语言,与计算机进行编程对话,掌握对话的语法格式确实需要一个过程。而且C语言的语法知识广泛,需要学生反复地做算法类的编程练习,就容易使学生不感兴趣,不愿写程序,进而觉得入门困难。但是C语言是学习其他语言的基础,其语法结构同其他语言有50%以上的相似度。而各种程序语言程序设计的思想基本相同,都是通过分析功能、组织算法、编码实现。所以C语言程序设计这门课程主要任务是培养学生掌握C语言的语法结构,了解功能分析、设计、编码实现的过程,培养学生分析问题解决问题以及逻辑思维的能力。这些能力的形成与学生的学习过程密切相关,而学生的学习过程很大程度上又决定于教师的教学方法。
1任务驱动式教学法在“C语言程序设计”课程教学中的运用
1.1 任务驱动式教学法介绍
在实际教学中发现,教师讲授知识点、语法,学生听讲、记笔记这种单一的讲授教学方式,当下的学生已经非常不喜欢且不适应被动的教学方式,他们渴望通过自己的努力去建构知识,利用知识去解决实际的问题。任务驱动式教学法在课程中穿插如具有实际意义的功能项目,并将项目进一步细化为子任务的方式,以驱动学生有效学习的教学方法。
理论知识是项目任务驱动教学法的基础:在进入每章课程学习之前,先概括本章重要知识点,然后导入和这些知识点相关的具有实际意义的项目,作为本章内容的贯穿实例。这样带着任务有目的的学习,增强学生自主学习能力。这种教学模式能将理论和实践紧密的结合见效快、教学效果明显。任务驱动法强调的是教师在教学过程中以案例为主体,让学生在案例分析的过程中生成任务感,并以任务完成为动力对学生实施的教育。
1.2实践任务设计
在C语言程序设计这门课的教学实施过程中,根据主要知识点,将“超级工具”这个C语言程序作为整个课程的项目实例。超级工具中包括算术计算器、体质测量器、图形面积体积统计、数据加密、彩票号生成器、日常消费统计等工具。实例中涵盖绝大多数理论知识点,以理论知识点为基础,以“模块化程序设计”为主线,让学生在做中学,在学中做。
1.2.1 理论知识铺垫
程序设计语言类课程理论知识是进行程序设计的基础,首先学生要将基础知识掌握扎实。实例的运用也是为了让学生产生兴趣,理解理论知识究竟如何应用,而不是将知识学死。所以在理论课知识点讲授之前,先将应用的实例进行简单介绍,让学生自己先查询资料,进行预习,带着目的学习理论知识。这样当老师在课堂上进行知识点讲解时,学生更容易理解。将项目实例需要的理论知识讲解之后,留给学生独立思考项目功能,组织解决方法的时间,使学生更好地消化理论知识,真正掌握应用方法。理论知识一定要掌握扎实,这样才能在功能实现时灵活应用。
1.2.2 任务功能分析分解
C语言程序设计课程要求学生掌握模块化的程序设计方法。具有实际应用价值的功能项目的引入,激发了学生的学习兴趣。在进行项目分析时,教师还可以结合实际生活中其他领域的模块化设计思路,以让学生初步体验何为模块化分析方法。学生在计算机语言学习过程中触及模块化思想时,会增加学习积极性。而且模块化设计的应用实际上降低了学生对程序语言的畏难心理,明白一个完整功能通过模块化的思路如何转化为多个小任务来完成。而这样的思路形成,又为任务驱动奠定了基础。
2、任务驱动式教学实施
2.1 课程内容优化
C语言课程理论基础知识多,内容抽象,而且是学生最先接触的编程语言类课程,课程内容的设计上应该根据学生特点及本专业后续多门专业课程的相关性对教学内容进行优化。以难度适中、知识够用为原则,提炼C语言重点讲授内容,帮助学生从宏观上掌握编写计算机程序的方法。例如C语言的基础语法、程序设计结构、数组的使用、结构的定义方法、函数的定义及调用都要在授课内容中重点覆盖到。而难度较大的指针,则可以根据学生基本情况概讲、略讲。
2.2 课程实践实现
将课程分为理论课和实践课两部分,两部分所占的比例,可根据项目任务的规模灵活调整。
首先进行理论课,开始上课就先介绍通过本堂课的知识,大家要完成怎样的任务项目,让学生明确自己要实现的目标。由于授课时长为一个半小时,再介绍完任务项目后,就进行相关理论知识的讲解。堂课时间分配为理论知识点讲解、教师实例编程、学生知识点代码训练比例为3:1:1,让学生通过代码实例理解知识点,为任务项目功能实现打好理论基础。
实验课是将一个具体任务项目付诸于实现的关键过程,为了更好地调动學生的学习积极性及相互沟通合作能力,可以将班级学生分为若干个小组,以小组为单位进行任务分析、实现。按照程序设计步骤首先分析任务的主要功能,讨论实现功能所要应用的关键技术,最后应用理论知识点解决实际问题。以生成随机彩票号的应用为例,根据功能分析结果为“每张彩票组成数由1至22个数字中随机产生5个,并将这5个数字进行从大到小的排序”。为实现该功能需求需应用的知识点包括随机产生指定范围内数字的方法及将给定一组数字如何进行排序。这样学生通过理论课和实践课的相辅相成,才能真正掌握每个任务的从分析问题到找出解决方法,到最后付诸以实现的完整过程。
3.结语
从实际教学效果来看,通过任务驱动式教学法在C语言程序设计课程中的应用,增强学生学习的积极性和主动性。学生不但对理论知识有了深刻的理解,更能够根据实际任务应用对应知识解决,大大提高了学生的程序设计思维和编程能力。
参考文献
[1]曹莎莎.C语言教学研究与思考[J].价值工程,(1).
[2]金秋春;童小利.C程序设计教学方法探索[J].科技信息,(4).
[3]高春颖;张云峰;马慧敏.《C语言程序设计》教学中存在问题及改革探索[J].电脑知识与技术,(17).
作者简介:潘艳禄(1976.3.12),女,汉族,辽宁,讲师,硕士,主要从事软件工程教育研究。