论文部分内容阅读
摘要:针对以往C语言程序设计课程教学中存在的语法灌输式教学模式,初学者感到函数及逻辑概念抽象难懂,导致学生动手能力的培养较弱,语言学习效果较差的现状。文章提出了在程序设计教学中引入模块教学法的观点,结合教学实践过程说明在C语言教学过程中如何实施模块教学法,此类教学方法在高级语言程序设计课程中取得了良好的教学效果。
关键词:模块教学;教学设计;程序设计语言
由于C语言本身并非是一种大型语言,语法简单,应用起来灵活多变,因此从开发至今,与其他语言相比c语言有着十分惊人的生命力,从工业控制再到大型软件系统的开发,C语言的应用方面十分全面。从应用和逻辑思维培养方面出发,做好C语言程序设计课程的教学对于理工科学生的培养有着十分重要的意义。
基于C语言程序设计的教材和教学方法有很多,多数教材都是采用以语法作为学习入门的切入点,教学方法大多也是依托教材,采用语法灌输式教学,此类填鸭式教学方法看似系统性很强,但是通过在教学调研过程中的观察发现,此类教学方法的教学效果不佳。究其原因,主要是作为刚刚接触程序设计和计算机语言的学生来讲,其自身的接受能力是有限的,大批量的学习语法,不但不能激发他们的兴趣,反而会因为学习的内容较为庞杂使其产生畏难的心里,这样对于学生自学能力和自信心的培养都是不利的。其次,程序设计最终的目的是使学生形成“算法”思维。在学生学习的入门阶段,若采用语法填鸭式教学,容易导致学生陷入语法的泥潭,不能形成合理的“算法思维”,对于刚刚入门学生的学习是不合理的。作为计算机教育工作者,如何改进教学方法以提高学生学习计算机编程的兴趣,增强学生动手编程能力和工程实践能力,需要我们深入思考。根据上面存在的问题,在教学实践过程中结合学生学习发展的需求,我们设计了一种模块教学法。
1 模块教学法的含义
模块教学法可以理解为阶段教学法,首先通过创设情景,提出问题,激发学生的学习兴趣;通过知识点的介绍,将一些模块化的知识传授于学生,学生可根据这些知识模块,自由组合知识,构建相应的项目。十分重要的一点,模块教学重视知识的链接,不断加入新的模块元素,拓展思路,实现知识的累积,当课程教学任务完成后,学生掌握的不仅仅是分解后的模块,而是一个衔接合理的系统的语法知识网络。
2 模块教学法的优势
其一,注重知识的模块化构建,让学生自己动手操作,帮助他们构建知识网络。其二,模块教学法从教学过程来看,采用了“双主型”混合式学习教学过程,它吸收了以“教”为主的传统课堂的理论教学和以“学”为主的网络课堂的精华,既使教室的教学主导作用得到充分发挥,又使得学生自主学习主体地位得到了凸显,结合了教师的“主导性”和学生的“主体性”的教学过程。
3 C语言程序设计模块教学法的实施
我们根据教学目标,设计出符合教学情境的一些教学案例。教学过程始终围绕着这些案例(项目)进行,案例的选取与应用紧密贴合实际生活。本文以“成绩管理工具软件”小程序的开发教学情景为案例,结合《C语言程序设计》教材,介绍模块教学法的具体实践过程。
3.1 教学案例介绍
“成绩管理工具软件”主要具有的功能:显示菜单项;输入菜单选项,并显示输出所选菜单项,包括:输入个人成绩,计算个人成绩的平均值,计算学分,求班级成绩平均值,如果输入为非选项的数值,则显示“退出软件”;如果输入选项值为选项值,则要输入学生成绩,并根据输入的分数计算并输出相应的结果。
这个软件案例的选取具有典型性。首先,这个软件案例的使用贯穿于C语言程序设计课程的入门篇和基础篇,通过引入显示菜单和输入、输出功能,介绍了输入、输出函数,让学生通过上机编程实践,加强scanf和printf函数的理论知识的理解。其次,通过在“成绩管理工具软件”案例加入选择功能,引入了选择结构和循环结构,通过循环选项的使用,强化了学生对if语句及其嵌套、多分支switch-case语句;通过选择结构的使用,强化了学生对for语句、while语句的理解,通过实例使学生更深入地了解了各种结构中功能相似函数的共通点与不同。
3.2 教学方法流程
整个软件案例的教学模块选择以顺序——选择——循环3个结构的教学顺序,通过软件的分解讲授和程序按步骤合,实现了理论教学和实践教学的有机结合。
3.2.1 顺序模块的教学
本模块的教学从软件设计的需求分析入手,通过介绍软件的菜单显示和输入、输出功能,引入顺序结构的概念。作为最“自然”的结构,顺序结构中程序的执行是严格实行“自上而下,由左而右”的顺序。在C语言程序中任何程序的执行总是“顺序”地完成的,所以这种结构不用通过任何语句来控制,它也是其他结构的基础,从选择结构到循环结构的程序执行也都是遵循了“顺序结构”。
3.2.2 选择模块的教学
本模块的教学从软件选项的选择分析入手,在顺序模块教学的基础上,通过介绍选项及其条件的判定,引入选择、分支结构。选择结构在程序设计中多用来对一些条件进行限定和选择,尤其是将其嵌入在循环体中,可以实现众多操作来供大家进行选择。在此模块中主要向学生介绍分支结构的执行特点,if-else函数和switch-ease函数的使用,让学生首先形成判定及分支结构的逻辑思维方式,结合编写案例程序,理解选择结构的形式,体会二分支和多分支两种选择结构的区别,通过让学生分别使用二分支和多分支两种选择结构进行选项选择程序的编写,使其理解if-else语句这种二分支选择结构和通过if语句的嵌套和switch语句来实现的多分支选择结构的异同。并将此程序模块与显示菜单模块程序结合,进一步完善成绩管理工具软件功能。
3.2.3 循环模块的教学
本模块的教学从多次计算入手,以顺序模块和选择模块为基础,通过介绍重复选择与计算的方法,引入循环结构。在此模块主要介绍循环结构的三种不同的形式——while,do-while和for函数,虽然这三个函数可实现相同的功能,但根据不同问题和各自的执行特点,分别让学生进行编程实践,理解三者在语法结构和运行过程的不同,在构建软件结构的同时丰富了语法知识。在编程实践过程中通过指教教师的指引,将第三个模块的程序与前两个模块的程序进行衔接,以完成成绩管理工具软件的全部功能,最终完成软件的所有设计和功能。
4 结语
通过三个结构模块教学,使学生在实践中强化理论知识的学习,不断提升学习兴趣,提高学习效率,让学生在学中用,在用中学,加强学习的印象。同时将学生进行分组,建立设计团队,通过团队交流,头脑风暴,让学生从自身出发,找出发生在自身的错误,分享交流知识,积累经验。
基于C语言的程序设计课程的教学过程可以是多样化的、方法可以是灵活多变的,但无论使用何种方法,我们的目的都是让学生了解程序的组构,养成一种编程的思维,通过学习一种语言,拓展他们自行学习其他语言的能力。模块教学法正是基于上面的教学需求形成的一种教学方法,此种教学方法始终以某个具体实践案例为导向,让学生从设计需求出发,从简单实例出发,从模仿案例开始,不断提高自身的程序设计能力和创造力。通过教学调研此类教学法对于培养学生学习计算机语言与程序设计有着十分良好的效果。
关键词:模块教学;教学设计;程序设计语言
由于C语言本身并非是一种大型语言,语法简单,应用起来灵活多变,因此从开发至今,与其他语言相比c语言有着十分惊人的生命力,从工业控制再到大型软件系统的开发,C语言的应用方面十分全面。从应用和逻辑思维培养方面出发,做好C语言程序设计课程的教学对于理工科学生的培养有着十分重要的意义。
基于C语言程序设计的教材和教学方法有很多,多数教材都是采用以语法作为学习入门的切入点,教学方法大多也是依托教材,采用语法灌输式教学,此类填鸭式教学方法看似系统性很强,但是通过在教学调研过程中的观察发现,此类教学方法的教学效果不佳。究其原因,主要是作为刚刚接触程序设计和计算机语言的学生来讲,其自身的接受能力是有限的,大批量的学习语法,不但不能激发他们的兴趣,反而会因为学习的内容较为庞杂使其产生畏难的心里,这样对于学生自学能力和自信心的培养都是不利的。其次,程序设计最终的目的是使学生形成“算法”思维。在学生学习的入门阶段,若采用语法填鸭式教学,容易导致学生陷入语法的泥潭,不能形成合理的“算法思维”,对于刚刚入门学生的学习是不合理的。作为计算机教育工作者,如何改进教学方法以提高学生学习计算机编程的兴趣,增强学生动手编程能力和工程实践能力,需要我们深入思考。根据上面存在的问题,在教学实践过程中结合学生学习发展的需求,我们设计了一种模块教学法。
1 模块教学法的含义
模块教学法可以理解为阶段教学法,首先通过创设情景,提出问题,激发学生的学习兴趣;通过知识点的介绍,将一些模块化的知识传授于学生,学生可根据这些知识模块,自由组合知识,构建相应的项目。十分重要的一点,模块教学重视知识的链接,不断加入新的模块元素,拓展思路,实现知识的累积,当课程教学任务完成后,学生掌握的不仅仅是分解后的模块,而是一个衔接合理的系统的语法知识网络。
2 模块教学法的优势
其一,注重知识的模块化构建,让学生自己动手操作,帮助他们构建知识网络。其二,模块教学法从教学过程来看,采用了“双主型”混合式学习教学过程,它吸收了以“教”为主的传统课堂的理论教学和以“学”为主的网络课堂的精华,既使教室的教学主导作用得到充分发挥,又使得学生自主学习主体地位得到了凸显,结合了教师的“主导性”和学生的“主体性”的教学过程。
3 C语言程序设计模块教学法的实施
我们根据教学目标,设计出符合教学情境的一些教学案例。教学过程始终围绕着这些案例(项目)进行,案例的选取与应用紧密贴合实际生活。本文以“成绩管理工具软件”小程序的开发教学情景为案例,结合《C语言程序设计》教材,介绍模块教学法的具体实践过程。
3.1 教学案例介绍
“成绩管理工具软件”主要具有的功能:显示菜单项;输入菜单选项,并显示输出所选菜单项,包括:输入个人成绩,计算个人成绩的平均值,计算学分,求班级成绩平均值,如果输入为非选项的数值,则显示“退出软件”;如果输入选项值为选项值,则要输入学生成绩,并根据输入的分数计算并输出相应的结果。
这个软件案例的选取具有典型性。首先,这个软件案例的使用贯穿于C语言程序设计课程的入门篇和基础篇,通过引入显示菜单和输入、输出功能,介绍了输入、输出函数,让学生通过上机编程实践,加强scanf和printf函数的理论知识的理解。其次,通过在“成绩管理工具软件”案例加入选择功能,引入了选择结构和循环结构,通过循环选项的使用,强化了学生对if语句及其嵌套、多分支switch-case语句;通过选择结构的使用,强化了学生对for语句、while语句的理解,通过实例使学生更深入地了解了各种结构中功能相似函数的共通点与不同。
3.2 教学方法流程
整个软件案例的教学模块选择以顺序——选择——循环3个结构的教学顺序,通过软件的分解讲授和程序按步骤合,实现了理论教学和实践教学的有机结合。
3.2.1 顺序模块的教学
本模块的教学从软件设计的需求分析入手,通过介绍软件的菜单显示和输入、输出功能,引入顺序结构的概念。作为最“自然”的结构,顺序结构中程序的执行是严格实行“自上而下,由左而右”的顺序。在C语言程序中任何程序的执行总是“顺序”地完成的,所以这种结构不用通过任何语句来控制,它也是其他结构的基础,从选择结构到循环结构的程序执行也都是遵循了“顺序结构”。
3.2.2 选择模块的教学
本模块的教学从软件选项的选择分析入手,在顺序模块教学的基础上,通过介绍选项及其条件的判定,引入选择、分支结构。选择结构在程序设计中多用来对一些条件进行限定和选择,尤其是将其嵌入在循环体中,可以实现众多操作来供大家进行选择。在此模块中主要向学生介绍分支结构的执行特点,if-else函数和switch-ease函数的使用,让学生首先形成判定及分支结构的逻辑思维方式,结合编写案例程序,理解选择结构的形式,体会二分支和多分支两种选择结构的区别,通过让学生分别使用二分支和多分支两种选择结构进行选项选择程序的编写,使其理解if-else语句这种二分支选择结构和通过if语句的嵌套和switch语句来实现的多分支选择结构的异同。并将此程序模块与显示菜单模块程序结合,进一步完善成绩管理工具软件功能。
3.2.3 循环模块的教学
本模块的教学从多次计算入手,以顺序模块和选择模块为基础,通过介绍重复选择与计算的方法,引入循环结构。在此模块主要介绍循环结构的三种不同的形式——while,do-while和for函数,虽然这三个函数可实现相同的功能,但根据不同问题和各自的执行特点,分别让学生进行编程实践,理解三者在语法结构和运行过程的不同,在构建软件结构的同时丰富了语法知识。在编程实践过程中通过指教教师的指引,将第三个模块的程序与前两个模块的程序进行衔接,以完成成绩管理工具软件的全部功能,最终完成软件的所有设计和功能。
4 结语
通过三个结构模块教学,使学生在实践中强化理论知识的学习,不断提升学习兴趣,提高学习效率,让学生在学中用,在用中学,加强学习的印象。同时将学生进行分组,建立设计团队,通过团队交流,头脑风暴,让学生从自身出发,找出发生在自身的错误,分享交流知识,积累经验。
基于C语言的程序设计课程的教学过程可以是多样化的、方法可以是灵活多变的,但无论使用何种方法,我们的目的都是让学生了解程序的组构,养成一种编程的思维,通过学习一种语言,拓展他们自行学习其他语言的能力。模块教学法正是基于上面的教学需求形成的一种教学方法,此种教学方法始终以某个具体实践案例为导向,让学生从设计需求出发,从简单实例出发,从模仿案例开始,不断提高自身的程序设计能力和创造力。通过教学调研此类教学法对于培养学生学习计算机语言与程序设计有着十分良好的效果。