论文部分内容阅读
摘要:程序设计语言课程在计算机学科中占有重要地位,但对中职生来说,它是一门较难学习的科目,该文就中职生的程序设计能力的培养提出了一些见解和做法,以就业为导向,要求教师要从更新教学理念入手,引入“做中学,做中教”的教学理念,改进教学方法和教学评价模式,深入探究中职生程序设计能力培养的可行性,通过各种学习渠道挖掘学生编写程序设计能力和天赋,培养和提高学生的程序设计能力。
关键词:程序设计能力;教学理念;教学方法;中职教育;考试评价
中图分类号:G632文献标识码:A文章编号:1009-3044(2011)18-4405-02
A Survey of Training the Ability of Computer Software Programming for Secondary Vocational School Students
ZHENG Zi-ying
(Xiamen Electronic Vocational School, Xiamen 361009, China)
Abstract: Computer software programming is one of the most important courses in the computer science. However, for secondary vocational school students, it is a very difficult course. In this paper, solution methods and opinions were proposed for training the ability of computer software programming for secondary vocational school students. Aiming to the future employment, we suggest the teachers should have new teaching ideas. Guided by the teaching ideas of “learning from practice, and teaching during practice”, and through improving our teaching methods and evaluation system, we deeply survey the feasibility of training the ability of computer software programming for secondary vocational school students.
Key words: ability of computer software programming; teaching idea; teaching methods; education of vocational school students; evaluation system of exam
程序设计能力对学生来说不仅是职业技能的需要,也体现着创新性思维的信息素质培养。程序设计正是有形地表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,对创新性人才素质的培养至关重要。
1 学情现状
学生普遍反映对于抽象的程序设计语言学习起来很困难,枯燥无味。根据多年的教学经验,大部分的中职学生对学习程序语言课都是一知半解,有的甚至完全听不懂,很少有人能够学得好,慢慢地就对这类课程失去学习兴趣。造成这种情况的原因是多方面的,除了学生的基础薄弱外,其中很重要的一个原因就是程序设计课过多强调语言细节和表达细节,忽视了程序设計的本质,忽略了算法设计。另外,由于上机实践教学学时偏少,仍然以教师讲授为主,学生学习该科目目的不明确,没有针对性,缺乏兴趣,教学方法过于传统和死板等因素,从而造成中职生一提起学习程序设计语言课程,就“谈虎色变”。这样就对后续的继续学习产生不利影响,教师教学效果就可想而知了。当前,由于社会需求不断变化,教学理念的不断更新,“就业导向”等因素,对程序设计语言课的教学理念和教学方法有了很大的影响。
2 教学理念
1) 采用多样化的教学模式,培养学生的程序设计初步知识。
教师要在“教”上面下功夫,首先要打破沉闷的教学气氛,增加教师和学生之间的互动,避免“一言堂”的尴尬局面,让课堂气氛活跃起来,打消学生的厌学情绪,然后适时地引入正题,特别是提出与程序设计密切相关的常用算法及设计内容,如:求最大(小)值、求和、求积、求圆的面积、最大公约数等,学生对这些算法有一定的基础,然后采用结构化程序设计中三种基本结构给出流程图,学生也相对容易理解,逐步培养学生的程序设计初步知识。
2) 选择合适的教材,践行“做中学、做中教”的教学理念,在实践中持续不断培养学生程序设计能力。
当前,学历文凭和职业资格“双认证”教育是职业教育的特色之一,中职学校有一部分学生是要参加高职单招升学考试,也可以说是学历文凭考试。对报考计算机类课程的学生来说,程序设计语言课在高考中是占据非常大的分值,专业科目考试是选择“VB语言程序设计”。考试方式还是笔试形式,选用教材多数还是倾向于理论性较强的VB教程,如全国计算机等级考试二级VB教程等。但从去年开始增加了实践操作考试,尽管所占分值并不高,却对学生的编程能力是个很大的考验。因此,在尽可能地情况下,要求教师设计好与编程相关的实验操作,让学生在实践操作中不断地进行程序设计训练,使学生的程序设计能力得到进一步培养和提升。而大部分没参加高职考试的学生,可参加职业资格认证考试,上课教材可以选择偏向于操作类的实训教材来加强程序设计能力的训练和培养,此类教材以实例为先,应用为目的,围绕应用讲理论,取舍适度,不追求理论的完整性。有效地贯彻了“做中学、做中教”的教学理念,在实践中真正地培养学生程序设计能力。
3 教学方法
3.1 面向专业应用的分类教学
以就业为导向,不同专业的学生,有不同的教学要求,目前,本校开设程序语言类的课程,主要是C语言和VB程序设计等语言类相关课程。目的是普及程序设计的基础知识,并能够进行简单程序设计,为就业或继续深造打基础。不同专业学生选用难度不同的教材。
3.2 贯彻“案例驱动”,或“项目驱动”教学法
我们推行的是“提出问题——分析问题——引入新知识——解决问题——总结提高”这样一个循序渐进、交叉进行、螺旋式上升的教学模式。将课程内容分为若干个主题、或若干个任务,通过每一个典型的、针对性强的案例程序设计作为贯穿各任务的主线,使得学生真正体会到编程的乐趣。
比如:在上C语言程序设计课中讲到二维数组时,为了加深学生的理解,举了一个著名的“杨辉三角形”的案例进行教学。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 101051
……
首先,提出问题,让学生先想想这些数字之间的关系,提问学生回答,一般来说学生只要有认真思考,都能回答出部分规律,然后教师总结找到如下规律:
1) 行号与列数相等;
2) 各行第一个数都是1,各行最后一个数都是1;
3) 从第三行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列两个数之和。
其次,让学生把上面规律写成算法,这是编写程序关键也是较难的一步,关系到后续的程序设计。算法如下:
1) j< = i
2) a[i][1]=1a[i][i]=1
3) a[i][j]=a[i-1][j] a[i-1][j-1]其中i为行数,j为列数
这样,程序设计就算成功一半了。最后,让学生试着写出整个完整的程序来。
#include “stdio.h”
#define N 11
main( )
{ int i ,j , a[N][N];
for(i=1;i { a[i][1]=1;
a[i][i]=1;
}
for( i=3;i for( j=2;j<=i-1;j )
a[i][j]=a[i-1][j] a[i-1][j-1];
for(i=1;i { for(j=1;j<=i;j )
printf("m",a[i][j]);
printf(" ");
}}
然后,学生进行上机调试,同时教师在学生调试操作过程中给予适当的启发和辅导,从中发现问题,并学会解决问题。最后老师总结此道程序题,主要是二维数组和For循环结构语句的综合应用,然后再把二维数组的概念和循环结构语句格式重复一遍,加深学生对这些知识点的理解和运用。由此,学生也体会到了编程的乐趣,课堂学习气氛相当融洽,学生的程序设计能力也得到了提高。
3.3 强化实训,培养技能
学生的程序设计能力主要是依靠上机实践逐步培养出来的。编程不是看会的,也不是听老师讲课听会的,而是学生自己通过上机实践练会的,由此可见其实验教学的重要性。首先,强化实训,调整理论和实验课时的比例,应该至少1:1或实验课时占到更高的比例;其次,做好课前准备,教师应该提前下发实践操作作业,告知学生下次课要上机操作的内容,要求学生提前准备好,并检查学生准备情况,再次,每一次上机实践任务要明确,要求学生参照案例模仿编写程序,并进行分组讨论,查找错误的原因等,大大促进了学生的编程能力。
3.4 借助于立体化网站资源营造多样化的学习氛围
让学生登录一些先进的课程网站教学平台,其中资源相当丰富,許多经典算法的动画课件,使学生对编程有了直观的了解,有利于学生理解重点和难点内容。借助于立体化网站资源营造多样化的学习氛围,有力地提高了学生自主学习的能力,增强了编程的信心。
3.5 鼓励学生参加各种竞赛,以促进学生的求知欲
目前,据我了解,中职生参加程序设计竞赛项目只有全国ITAT就业技能大赛,没有完全针对中职生的比赛,而若与大学生来比拼编程,则差距较大,明显竞争力不够,故学生参与的积极性并不高,只能靠学校举办的科技节程序设计比赛项目来激励学生。即使这样,我们还是从中发现出一些学生的编程天赋和能力。
4 考试评价方式多样化
4.1 分段考核学生,强调过程积累
编程技能是需要连续不断训练的一种能力,不可能速成的,若按期末考试的方式来定学生的成绩是不可取和不奏效的。为了督促学生重视平时的积累,可对所学知识进行分段考试,如两个关键知识“循环”、“函数”学完后,设置两次考试,并且只考编程题目。另外,每一次实训课程就是一次上机考试,在规定的时间内完成作业,作为成绩评定的一部分。
4.2 增加作业权重,考核学生的综合应用能力
可适当地布置一些综合性的程序设计作业,由5~7名学生组成小组完成,教师提出问题,学生确定解决方案和实现方法,最后学生上台讲解,这样既锻炼了学生分析问题和解决问题的能力,又锻炼了学生的口头表达能力,并且通过团结合作,也培养了学生的团队精神。
4.3 科学公平的成绩评定方式,相对评分制度激励学习竞争
最终的成绩不是由期末考试一张试卷来确定的,而是包括多种评价因素。结合学生平时的学习态度和表现,上机实训成绩,平时考试成绩、作业完成情况等综合评定学生最终的成绩,激励学生学习。
5 结束语
综上所述,在教师教学过程中应不断更新教学理念,以就业为导向,利用行之有效的教学方法和教学评价,敢于创新,充分发挥学生的主观能动性,让学生从案例中学到编程技巧,从实训中得到锻炼,那么,中职生程序设计能力就能得到较大的提高。
参考文献:
[1] 马海英.培养程序设计能力的研究[J].电脑知识与技术,2008(31).
[2] 陆剑锋.Visual Basic程序设计实训教程[M].北京:科学出版社,2010.
[3] 游金水.C语言程序设计实训教程[M].北京:高等教育出版社,2005.
关键词:程序设计能力;教学理念;教学方法;中职教育;考试评价
中图分类号:G632文献标识码:A文章编号:1009-3044(2011)18-4405-02
A Survey of Training the Ability of Computer Software Programming for Secondary Vocational School Students
ZHENG Zi-ying
(Xiamen Electronic Vocational School, Xiamen 361009, China)
Abstract: Computer software programming is one of the most important courses in the computer science. However, for secondary vocational school students, it is a very difficult course. In this paper, solution methods and opinions were proposed for training the ability of computer software programming for secondary vocational school students. Aiming to the future employment, we suggest the teachers should have new teaching ideas. Guided by the teaching ideas of “learning from practice, and teaching during practice”, and through improving our teaching methods and evaluation system, we deeply survey the feasibility of training the ability of computer software programming for secondary vocational school students.
Key words: ability of computer software programming; teaching idea; teaching methods; education of vocational school students; evaluation system of exam
程序设计能力对学生来说不仅是职业技能的需要,也体现着创新性思维的信息素质培养。程序设计正是有形地表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,对创新性人才素质的培养至关重要。
1 学情现状
学生普遍反映对于抽象的程序设计语言学习起来很困难,枯燥无味。根据多年的教学经验,大部分的中职学生对学习程序语言课都是一知半解,有的甚至完全听不懂,很少有人能够学得好,慢慢地就对这类课程失去学习兴趣。造成这种情况的原因是多方面的,除了学生的基础薄弱外,其中很重要的一个原因就是程序设计课过多强调语言细节和表达细节,忽视了程序设計的本质,忽略了算法设计。另外,由于上机实践教学学时偏少,仍然以教师讲授为主,学生学习该科目目的不明确,没有针对性,缺乏兴趣,教学方法过于传统和死板等因素,从而造成中职生一提起学习程序设计语言课程,就“谈虎色变”。这样就对后续的继续学习产生不利影响,教师教学效果就可想而知了。当前,由于社会需求不断变化,教学理念的不断更新,“就业导向”等因素,对程序设计语言课的教学理念和教学方法有了很大的影响。
2 教学理念
1) 采用多样化的教学模式,培养学生的程序设计初步知识。
教师要在“教”上面下功夫,首先要打破沉闷的教学气氛,增加教师和学生之间的互动,避免“一言堂”的尴尬局面,让课堂气氛活跃起来,打消学生的厌学情绪,然后适时地引入正题,特别是提出与程序设计密切相关的常用算法及设计内容,如:求最大(小)值、求和、求积、求圆的面积、最大公约数等,学生对这些算法有一定的基础,然后采用结构化程序设计中三种基本结构给出流程图,学生也相对容易理解,逐步培养学生的程序设计初步知识。
2) 选择合适的教材,践行“做中学、做中教”的教学理念,在实践中持续不断培养学生程序设计能力。
当前,学历文凭和职业资格“双认证”教育是职业教育的特色之一,中职学校有一部分学生是要参加高职单招升学考试,也可以说是学历文凭考试。对报考计算机类课程的学生来说,程序设计语言课在高考中是占据非常大的分值,专业科目考试是选择“VB语言程序设计”。考试方式还是笔试形式,选用教材多数还是倾向于理论性较强的VB教程,如全国计算机等级考试二级VB教程等。但从去年开始增加了实践操作考试,尽管所占分值并不高,却对学生的编程能力是个很大的考验。因此,在尽可能地情况下,要求教师设计好与编程相关的实验操作,让学生在实践操作中不断地进行程序设计训练,使学生的程序设计能力得到进一步培养和提升。而大部分没参加高职考试的学生,可参加职业资格认证考试,上课教材可以选择偏向于操作类的实训教材来加强程序设计能力的训练和培养,此类教材以实例为先,应用为目的,围绕应用讲理论,取舍适度,不追求理论的完整性。有效地贯彻了“做中学、做中教”的教学理念,在实践中真正地培养学生程序设计能力。
3 教学方法
3.1 面向专业应用的分类教学
以就业为导向,不同专业的学生,有不同的教学要求,目前,本校开设程序语言类的课程,主要是C语言和VB程序设计等语言类相关课程。目的是普及程序设计的基础知识,并能够进行简单程序设计,为就业或继续深造打基础。不同专业学生选用难度不同的教材。
3.2 贯彻“案例驱动”,或“项目驱动”教学法
我们推行的是“提出问题——分析问题——引入新知识——解决问题——总结提高”这样一个循序渐进、交叉进行、螺旋式上升的教学模式。将课程内容分为若干个主题、或若干个任务,通过每一个典型的、针对性强的案例程序设计作为贯穿各任务的主线,使得学生真正体会到编程的乐趣。
比如:在上C语言程序设计课中讲到二维数组时,为了加深学生的理解,举了一个著名的“杨辉三角形”的案例进行教学。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 101051
……
首先,提出问题,让学生先想想这些数字之间的关系,提问学生回答,一般来说学生只要有认真思考,都能回答出部分规律,然后教师总结找到如下规律:
1) 行号与列数相等;
2) 各行第一个数都是1,各行最后一个数都是1;
3) 从第三行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列两个数之和。
其次,让学生把上面规律写成算法,这是编写程序关键也是较难的一步,关系到后续的程序设计。算法如下:
1) j< = i
2) a[i][1]=1a[i][i]=1
3) a[i][j]=a[i-1][j] a[i-1][j-1]其中i为行数,j为列数
这样,程序设计就算成功一半了。最后,让学生试着写出整个完整的程序来。
#include “stdio.h”
#define N 11
main( )
{ int i ,j , a[N][N];
for(i=1;i
a[i][i]=1;
}
for( i=3;i
a[i][j]=a[i-1][j] a[i-1][j-1];
for(i=1;i
printf("m",a[i][j]);
printf(" ");
}}
然后,学生进行上机调试,同时教师在学生调试操作过程中给予适当的启发和辅导,从中发现问题,并学会解决问题。最后老师总结此道程序题,主要是二维数组和For循环结构语句的综合应用,然后再把二维数组的概念和循环结构语句格式重复一遍,加深学生对这些知识点的理解和运用。由此,学生也体会到了编程的乐趣,课堂学习气氛相当融洽,学生的程序设计能力也得到了提高。
3.3 强化实训,培养技能
学生的程序设计能力主要是依靠上机实践逐步培养出来的。编程不是看会的,也不是听老师讲课听会的,而是学生自己通过上机实践练会的,由此可见其实验教学的重要性。首先,强化实训,调整理论和实验课时的比例,应该至少1:1或实验课时占到更高的比例;其次,做好课前准备,教师应该提前下发实践操作作业,告知学生下次课要上机操作的内容,要求学生提前准备好,并检查学生准备情况,再次,每一次上机实践任务要明确,要求学生参照案例模仿编写程序,并进行分组讨论,查找错误的原因等,大大促进了学生的编程能力。
3.4 借助于立体化网站资源营造多样化的学习氛围
让学生登录一些先进的课程网站教学平台,其中资源相当丰富,許多经典算法的动画课件,使学生对编程有了直观的了解,有利于学生理解重点和难点内容。借助于立体化网站资源营造多样化的学习氛围,有力地提高了学生自主学习的能力,增强了编程的信心。
3.5 鼓励学生参加各种竞赛,以促进学生的求知欲
目前,据我了解,中职生参加程序设计竞赛项目只有全国ITAT就业技能大赛,没有完全针对中职生的比赛,而若与大学生来比拼编程,则差距较大,明显竞争力不够,故学生参与的积极性并不高,只能靠学校举办的科技节程序设计比赛项目来激励学生。即使这样,我们还是从中发现出一些学生的编程天赋和能力。
4 考试评价方式多样化
4.1 分段考核学生,强调过程积累
编程技能是需要连续不断训练的一种能力,不可能速成的,若按期末考试的方式来定学生的成绩是不可取和不奏效的。为了督促学生重视平时的积累,可对所学知识进行分段考试,如两个关键知识“循环”、“函数”学完后,设置两次考试,并且只考编程题目。另外,每一次实训课程就是一次上机考试,在规定的时间内完成作业,作为成绩评定的一部分。
4.2 增加作业权重,考核学生的综合应用能力
可适当地布置一些综合性的程序设计作业,由5~7名学生组成小组完成,教师提出问题,学生确定解决方案和实现方法,最后学生上台讲解,这样既锻炼了学生分析问题和解决问题的能力,又锻炼了学生的口头表达能力,并且通过团结合作,也培养了学生的团队精神。
4.3 科学公平的成绩评定方式,相对评分制度激励学习竞争
最终的成绩不是由期末考试一张试卷来确定的,而是包括多种评价因素。结合学生平时的学习态度和表现,上机实训成绩,平时考试成绩、作业完成情况等综合评定学生最终的成绩,激励学生学习。
5 结束语
综上所述,在教师教学过程中应不断更新教学理念,以就业为导向,利用行之有效的教学方法和教学评价,敢于创新,充分发挥学生的主观能动性,让学生从案例中学到编程技巧,从实训中得到锻炼,那么,中职生程序设计能力就能得到较大的提高。
参考文献:
[1] 马海英.培养程序设计能力的研究[J].电脑知识与技术,2008(31).
[2] 陆剑锋.Visual Basic程序设计实训教程[M].北京:科学出版社,2010.
[3] 游金水.C语言程序设计实训教程[M].北京:高等教育出版社,2005.