论文部分内容阅读
摘要:以C/C 语言为例,针对职业院校对程序设计课程的实际要求,探索了新的授课方式,为适应新的教学模式开发新的课程教材,改变传统的评价模式。以学生会做什么为目标,以完成各种任务为手段实现在做中学,提高学生实际编程能力、改善教学效果。
关键词:C/C 教材建设;任务驱动;教学方式
中图分类号:G423文献标识码:A文章编号:1009-3044(2009)32-8998-02
C Courses in Higher Vocational Teaching Construction and Teaching Methods to Explore
DING Ming-dou
(Nanjing Institute of Railway Technology,Nanjing 210015,China)
Abstract: The C/C language, for example, the program for the vocational schools practical requirements of designing courses and explore new teaching methods, in order to adapt to the new teaching model to develop new curriculum materials, to change the traditional evaluation model. What to do with students as the goal, in order to complete a variety of tasks as a tool to do secondary schools to improve the real programming capabilities of students and improve teaching effect.
Key words: C/C teaching materials; mission-driven; teaching methods
在国内职业院校的计算机相关专业中,程序设计课程占有相当比重,其中C/C 语言因其具有编程灵活、描述程序机制清晰、接近硬件等优良特性,往往被作为第一门程序设计课程来讲授。C/C 语言功能强大、应用广泛,但其结构复杂、知识点繁多,对基本没有编程基础的低年级学生来说掌握起来相对较难。因此,如何通过本课程的学习让学生掌握编程基本技能,进而为以后的程序设计课程打下良好的基础,是一个重要课题。
在现今的职教理论中,学生的实践技能已被提到一个非常高的地位,我们培养的学生要满足企业的实际需求,企业不在乎学生学了什么,而在意学生会做什么。特别是我们这样的职业学院,是以培养高技能、高素质人才为总目标,我们每门课程都是在总目标下开展教学。在教学中要充分体现学生经过学习后会做什么的教育理念。改革传统的教学模式、评价体系,以学生的实践技能为核心,综合素质的提升为追求目标。我们在实践中取得了良好的教学效果,本课程的经验对于其他程序设计课程也具有借鉴意义。
1 课程目标设立
职业院校大多计算机专业在开设这门课程时,学生都没有任何编程经验,本课程在专业课程体系中多处在起始位置,并作为其他程序设计课程的基础。因此本课程的教学效果直接影响后续课程的学习,及学生学习本专业的信心。所以在设定本课程的教学目标时,针对不同专业应有不同的要求。以我院的软件设计专业为例,我们提出了较高的教学目标。学生在学完本课程后,应可在一定指导下完成一个完整的应用程序,代码量在5000行左右。以及其他一些辅助目标,比如编程规范、调试代码能力、文档阅读书写等。
2 授课内容及教材建设
市面的C/C 教材,大多是以本科的传统教学模式编写的,以知识传授为主,结合部分示例进行讲解,再利用实践课进行练习,教师在授课过程中多以PPT的形式进行教学,学生以读程为主,对学生编程能力的培养侧重不够。职业学院不同于本科学院,我们以培养学生的实践动手能力为主,所以这些教材大多不适合我们。根据我们自己的培养目标,我们自编了一些相关教材,在授课内容上与传统教材有很大的不同。
我们的教材设计思想是改变传统的以知识点组织教材内容,而是采用将各知识点打乱重组后放入各个任务中,在完成任务的过程中学习掌握知识点。
我们选用一些具有实际应用意义及有趣味的任务为主干,按任务大小、难易程度、学习规律组织教材内容,在每个任务的实践中学习知识,以完成任务为中心工作,结合每个任务需求的不同变化及功能扩展来锻炼学生的自主学习、解决问题的能力。淡化语法等可查知识的学习,而通过编程实践不断熟悉语法等基本知识。
比如,在C/C 结构化部分,我们采用大约十个左右的任务来组织教材。比如:第一个任务输出欢迎信息,目的是让学生熟悉开发环境、语句书写、输出信息、常见语法错误及处理、编译执行程序等。经过本任务的学习,学生可以在程序中输出各种信息,常见语法错误及处理等。第二个任务计算器之加法运算应用程序,目的是让学生学习变量定义及使用、运算符、输入等。经过本任务的学习,学生可以在程序中使用变量、运算符等完成常用运算。
每个任务的组织形式,学习借鉴姜大源教授等提出的最新职教理论。首先是任务的学习目标,是通过本任务学生可以掌握哪些技能。比如第一个任务:输出欢迎信息,它的学习目标是在开发环境中建立工程及源程序、编写可以在屏幕上输出信息的程序语句、编译程序、常见语法错误及定位纠正、执行程序。学生在学习任务之前就很清楚要掌握的具体技能,而不是传统的掌握知识点的要求。学习目标之后是本任务的有关资讯信息,包括任务需求、程序执行效果演示、有关知识点等,让学生在这部分明确任务的要求及执行效果,以及本任务将要用到的有关知识点。接着是任务实施阶段,包含任务的算法分析设计、代码编写、程序调试执行。之后是与本任务关联的需求变化、功能扩展部分,这部分不提供代码而只有需求及分析,将由学生自己完成。最后是本任务的评价小结及一些课后练习。
所有任务都能完成一个实际的功能,学生在完成任务的过程中学习各知识点,并以知识够用为原则,在任务中未用到的知识并不全面介绍。学生在任务完成后利用所学可完成同类的其他任务。结合各任务的变化及扩展,锻炼学生的自主学习、举一反三、解决问题的能力。这些基本任务功能单一,后面的任务包含前面所学知识及扩展,循序渐进,学生学习起来自然觉得轻松简单、易于掌握。
在这些基本任务学习结束后,安排一个较大型的应用程序实践,全面综合本课程的各常用知识,全面锻炼学生应用所学进行编程的能力。
3 授课方式
本课程的授课指导思想是让学生学会做什么,在做中学习知识。所以我们采用理论实践一体化的教学方法,以实训室代替教室,教师在开发环境下实际操作,边讲解边编写各任务代码及解决代码中出现的各种错误,让学生有实际编程感受的同时,学习老师的编程规范、代码书写、各知识点等,最终学到解决问题的方法。
教师在开始的一两个任务讲解中,可以侧重开发环境、语法、常见语法错误等基本知识的讲解,在学生逐渐熟悉这些以后,后面的任务讲解则慢慢将侧重点放到解决问题的方法上,淡化语法的讲解,学生的一时不熟练是没有关系的,可以在编写程序时参看有关书籍。
在每个具体任务的教学中,教师先介绍本任务的学习目标,再讲解任务需求演示任务代码执行效果。然后分析需求设计任务的算法,在算法指导下开始任务代码的实际编写,在编写过程中同时讲解相关知识及编程规范等。这时我们采用知识够用为原则的教学思想,只针对本任务涉及到的知识点加于介绍和演示,而同类型的暂时未用到的知识点不加于过多介绍甚至不介绍,让学生将精力放在技能的掌握上。比如在任务二中,用到变量的定义及使用知识点,因任务中只用到整型、实型数据,所以只介绍这两种数据类型变量的定义及使用,而将重点放在变量定义及使用的方法上,以及变量在内存中的实际含义上,让学生知道所谓变量不过是内存中的存储单元,这些存储单元可以存放不同类型的数据,以及尺寸的不同等等同时为后面学习使用指针、引用打基础。而其它未讲解的数据类型在以后的编程中自然会用到,而使用方法完全一样,学生学会了方法自然会使用无需再详加解释。这样知识点的学习不繁琐而且介绍完就立即应用,自然有利于学生的掌握和应用。
在代码完成后编译程序,可设计一些常见错误并演示解决方法,让学生在学习代码编写的同时也学习常见错误的处理方法。然后让学生上机操作实际编写任务代码,在做中进一步学习消化各知识点,教师进行辅导。任务完成后,在学生已基本掌握本任务的各知识点之后,改变任务需求对本任务进行扩展,这时教师不再编写相关代码,而只是进行需求分析甚至不分析而只是说明一下需求,由学生结合所学自主学习从而解决问题,锻炼其实际编程能力及解决问题的能力。
在课程最后的综合应用程序学习中,则以学生为主体,教师为辅助。教师侧重任务需求分析及算法设计上,讲解演示难点代码的编写,而大部分代码则有学生自主完成,这时授课已由原先的教师、学生并重转向学生为主的授课方式中了。学生在课程的最后转向了利用所学解决实际问题的能力培养,从而与后续的课程进行衔接。
在授课过程中,鼓励学生积极参与教学活动,随时举手提问,教师也应经常设计一些讨论等调动学生的学习积极性、主动性。
在授课过程中,教师不光局限专业能力的传授,还应结合任务的实施穿插行业标准、编程规范、职业素质的教育。
在课外时间,安排学生在实训室进行编程练习,教师定期辅导。收集学生的问题、建议等不断改进教学,实现教学效果最大化。
4 评价体系
本课程的目标不是简单知识的传授,而是让学生利用所学做些实际应用及综合素质的提升。所以我们不能采用传统的评价方式,以纸质考试或简单的操作来考核学生,我们采用项目及答辩的方式综合考察学生。
课程最后的大型任务,就是综合考察学生的载体,学生在规定时间完成任务上交代码、任务小结、相关文档资料。组织相关老师组成考核小组,先由学生综合评述其完成任务情况,遇见的问题及解决的方法,再由老师针对任务及课程本身,提出若干问题由学生回答,在答辩过程中不光考察学生的专业能力,同时还要考察其职业素养、表达沟通能力、综合素质等,体现全面评价的中心思想。
5 结束语
此种教材内容组织、授课方式、评价体系较适合现今的职业教育,但也对老师提出了更高要求,所以我们教师应转变传统的育人观念、教育理念、授课方式等,不断提升自身的素质才能适应职业教育的发展。
参考文献:
[1] 姜大源.世界职业教育课程改革的基本走势及其启示[J].职业技术教育,2009(2).
[2] 杨天虎.关于高职《C 程序设计》课程教学的几点思考[J].福建电脑,2008(6):66.
[3] 姜大源.职业教育学研究新论[M].北京:教育科学出版社,2007.
[4] 徐国庆.项目教学设计中必须关注的若干问题[J].中国职业技术教育,2007.
[5] 苏炳均,李林.编程之道--新编C/C 程序设计入门[M].天津:天津科学技术出版社,2008.
关键词:C/C 教材建设;任务驱动;教学方式
中图分类号:G423文献标识码:A文章编号:1009-3044(2009)32-8998-02
C Courses in Higher Vocational Teaching Construction and Teaching Methods to Explore
DING Ming-dou
(Nanjing Institute of Railway Technology,Nanjing 210015,China)
Abstract: The C/C language, for example, the program for the vocational schools practical requirements of designing courses and explore new teaching methods, in order to adapt to the new teaching model to develop new curriculum materials, to change the traditional evaluation model. What to do with students as the goal, in order to complete a variety of tasks as a tool to do secondary schools to improve the real programming capabilities of students and improve teaching effect.
Key words: C/C teaching materials; mission-driven; teaching methods
在国内职业院校的计算机相关专业中,程序设计课程占有相当比重,其中C/C 语言因其具有编程灵活、描述程序机制清晰、接近硬件等优良特性,往往被作为第一门程序设计课程来讲授。C/C 语言功能强大、应用广泛,但其结构复杂、知识点繁多,对基本没有编程基础的低年级学生来说掌握起来相对较难。因此,如何通过本课程的学习让学生掌握编程基本技能,进而为以后的程序设计课程打下良好的基础,是一个重要课题。
在现今的职教理论中,学生的实践技能已被提到一个非常高的地位,我们培养的学生要满足企业的实际需求,企业不在乎学生学了什么,而在意学生会做什么。特别是我们这样的职业学院,是以培养高技能、高素质人才为总目标,我们每门课程都是在总目标下开展教学。在教学中要充分体现学生经过学习后会做什么的教育理念。改革传统的教学模式、评价体系,以学生的实践技能为核心,综合素质的提升为追求目标。我们在实践中取得了良好的教学效果,本课程的经验对于其他程序设计课程也具有借鉴意义。
1 课程目标设立
职业院校大多计算机专业在开设这门课程时,学生都没有任何编程经验,本课程在专业课程体系中多处在起始位置,并作为其他程序设计课程的基础。因此本课程的教学效果直接影响后续课程的学习,及学生学习本专业的信心。所以在设定本课程的教学目标时,针对不同专业应有不同的要求。以我院的软件设计专业为例,我们提出了较高的教学目标。学生在学完本课程后,应可在一定指导下完成一个完整的应用程序,代码量在5000行左右。以及其他一些辅助目标,比如编程规范、调试代码能力、文档阅读书写等。
2 授课内容及教材建设
市面的C/C 教材,大多是以本科的传统教学模式编写的,以知识传授为主,结合部分示例进行讲解,再利用实践课进行练习,教师在授课过程中多以PPT的形式进行教学,学生以读程为主,对学生编程能力的培养侧重不够。职业学院不同于本科学院,我们以培养学生的实践动手能力为主,所以这些教材大多不适合我们。根据我们自己的培养目标,我们自编了一些相关教材,在授课内容上与传统教材有很大的不同。
我们的教材设计思想是改变传统的以知识点组织教材内容,而是采用将各知识点打乱重组后放入各个任务中,在完成任务的过程中学习掌握知识点。
我们选用一些具有实际应用意义及有趣味的任务为主干,按任务大小、难易程度、学习规律组织教材内容,在每个任务的实践中学习知识,以完成任务为中心工作,结合每个任务需求的不同变化及功能扩展来锻炼学生的自主学习、解决问题的能力。淡化语法等可查知识的学习,而通过编程实践不断熟悉语法等基本知识。
比如,在C/C 结构化部分,我们采用大约十个左右的任务来组织教材。比如:第一个任务输出欢迎信息,目的是让学生熟悉开发环境、语句书写、输出信息、常见语法错误及处理、编译执行程序等。经过本任务的学习,学生可以在程序中输出各种信息,常见语法错误及处理等。第二个任务计算器之加法运算应用程序,目的是让学生学习变量定义及使用、运算符、输入等。经过本任务的学习,学生可以在程序中使用变量、运算符等完成常用运算。
每个任务的组织形式,学习借鉴姜大源教授等提出的最新职教理论。首先是任务的学习目标,是通过本任务学生可以掌握哪些技能。比如第一个任务:输出欢迎信息,它的学习目标是在开发环境中建立工程及源程序、编写可以在屏幕上输出信息的程序语句、编译程序、常见语法错误及定位纠正、执行程序。学生在学习任务之前就很清楚要掌握的具体技能,而不是传统的掌握知识点的要求。学习目标之后是本任务的有关资讯信息,包括任务需求、程序执行效果演示、有关知识点等,让学生在这部分明确任务的要求及执行效果,以及本任务将要用到的有关知识点。接着是任务实施阶段,包含任务的算法分析设计、代码编写、程序调试执行。之后是与本任务关联的需求变化、功能扩展部分,这部分不提供代码而只有需求及分析,将由学生自己完成。最后是本任务的评价小结及一些课后练习。
所有任务都能完成一个实际的功能,学生在完成任务的过程中学习各知识点,并以知识够用为原则,在任务中未用到的知识并不全面介绍。学生在任务完成后利用所学可完成同类的其他任务。结合各任务的变化及扩展,锻炼学生的自主学习、举一反三、解决问题的能力。这些基本任务功能单一,后面的任务包含前面所学知识及扩展,循序渐进,学生学习起来自然觉得轻松简单、易于掌握。
在这些基本任务学习结束后,安排一个较大型的应用程序实践,全面综合本课程的各常用知识,全面锻炼学生应用所学进行编程的能力。
3 授课方式
本课程的授课指导思想是让学生学会做什么,在做中学习知识。所以我们采用理论实践一体化的教学方法,以实训室代替教室,教师在开发环境下实际操作,边讲解边编写各任务代码及解决代码中出现的各种错误,让学生有实际编程感受的同时,学习老师的编程规范、代码书写、各知识点等,最终学到解决问题的方法。
教师在开始的一两个任务讲解中,可以侧重开发环境、语法、常见语法错误等基本知识的讲解,在学生逐渐熟悉这些以后,后面的任务讲解则慢慢将侧重点放到解决问题的方法上,淡化语法的讲解,学生的一时不熟练是没有关系的,可以在编写程序时参看有关书籍。
在每个具体任务的教学中,教师先介绍本任务的学习目标,再讲解任务需求演示任务代码执行效果。然后分析需求设计任务的算法,在算法指导下开始任务代码的实际编写,在编写过程中同时讲解相关知识及编程规范等。这时我们采用知识够用为原则的教学思想,只针对本任务涉及到的知识点加于介绍和演示,而同类型的暂时未用到的知识点不加于过多介绍甚至不介绍,让学生将精力放在技能的掌握上。比如在任务二中,用到变量的定义及使用知识点,因任务中只用到整型、实型数据,所以只介绍这两种数据类型变量的定义及使用,而将重点放在变量定义及使用的方法上,以及变量在内存中的实际含义上,让学生知道所谓变量不过是内存中的存储单元,这些存储单元可以存放不同类型的数据,以及尺寸的不同等等同时为后面学习使用指针、引用打基础。而其它未讲解的数据类型在以后的编程中自然会用到,而使用方法完全一样,学生学会了方法自然会使用无需再详加解释。这样知识点的学习不繁琐而且介绍完就立即应用,自然有利于学生的掌握和应用。
在代码完成后编译程序,可设计一些常见错误并演示解决方法,让学生在学习代码编写的同时也学习常见错误的处理方法。然后让学生上机操作实际编写任务代码,在做中进一步学习消化各知识点,教师进行辅导。任务完成后,在学生已基本掌握本任务的各知识点之后,改变任务需求对本任务进行扩展,这时教师不再编写相关代码,而只是进行需求分析甚至不分析而只是说明一下需求,由学生结合所学自主学习从而解决问题,锻炼其实际编程能力及解决问题的能力。
在课程最后的综合应用程序学习中,则以学生为主体,教师为辅助。教师侧重任务需求分析及算法设计上,讲解演示难点代码的编写,而大部分代码则有学生自主完成,这时授课已由原先的教师、学生并重转向学生为主的授课方式中了。学生在课程的最后转向了利用所学解决实际问题的能力培养,从而与后续的课程进行衔接。
在授课过程中,鼓励学生积极参与教学活动,随时举手提问,教师也应经常设计一些讨论等调动学生的学习积极性、主动性。
在授课过程中,教师不光局限专业能力的传授,还应结合任务的实施穿插行业标准、编程规范、职业素质的教育。
在课外时间,安排学生在实训室进行编程练习,教师定期辅导。收集学生的问题、建议等不断改进教学,实现教学效果最大化。
4 评价体系
本课程的目标不是简单知识的传授,而是让学生利用所学做些实际应用及综合素质的提升。所以我们不能采用传统的评价方式,以纸质考试或简单的操作来考核学生,我们采用项目及答辩的方式综合考察学生。
课程最后的大型任务,就是综合考察学生的载体,学生在规定时间完成任务上交代码、任务小结、相关文档资料。组织相关老师组成考核小组,先由学生综合评述其完成任务情况,遇见的问题及解决的方法,再由老师针对任务及课程本身,提出若干问题由学生回答,在答辩过程中不光考察学生的专业能力,同时还要考察其职业素养、表达沟通能力、综合素质等,体现全面评价的中心思想。
5 结束语
此种教材内容组织、授课方式、评价体系较适合现今的职业教育,但也对老师提出了更高要求,所以我们教师应转变传统的育人观念、教育理念、授课方式等,不断提升自身的素质才能适应职业教育的发展。
参考文献:
[1] 姜大源.世界职业教育课程改革的基本走势及其启示[J].职业技术教育,2009(2).
[2] 杨天虎.关于高职《C 程序设计》课程教学的几点思考[J].福建电脑,2008(6):66.
[3] 姜大源.职业教育学研究新论[M].北京:教育科学出版社,2007.
[4] 徐国庆.项目教学设计中必须关注的若干问题[J].中国职业技术教育,2007.
[5] 苏炳均,李林.编程之道--新编C/C 程序设计入门[M].天津:天津科学技术出版社,2008.