论文部分内容阅读
摘要:目前高职院校计算机语言类课程普遍存在“老师难教,学生难学”的现象。本文对高职院校计算机语言类课程教学进行了多方面的探讨,以期对广大高职院校教师的语言类课程教学有一定的参考价值。
关键词:计算机语言;教学;程序;C语言;高职院校
随着IT技术的发展,应用于各个领域的计算机语言种类越来越多。高职教育面临着能否满足社会需求和学生接受能力的双重压力。目前主流的计算机语言类课程主要有c语言,c ,java,jsp,j2ee,php,delphy,sql server 2005,sysbase,c#,asp.net,ado.net,vb.net等。如果要求学生在三年之内掌握上述所有技术是不现实,也是没有必要的,这就要求教研工作者设计出合理的课程设置计划,既能满足职业岗位(群)的需求,又能提高学生的实践能力,还有助于学生树立终身学习的理念。
一、计算机语言类课程教学概述
1. 计算机语言概述
计算机语言(Computer Language)指用于人与计算机之间通讯的语言,是人与计算机之间传递信息的媒介。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
(1)机器语言:指一台计算机全部的指令集合,是第一代计算机语言。
机器语言程序就是运用二进制数“0”和“1”编制的能够被机器直接识别的二进制文件,一条机器语言成为一条指令,指令是不可分割的最小功能单元。由于每台计算机的指令系统往往各不相同,因此在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了工作的重复。但由于使用的是不同型号计算机各自特定的机器语言,故而运算效率是所有语言中最高的。
(2)汇编语言:指面向机器的程序设计语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,是第二代计算机语言。
汇编语言对计算机硬件依赖性亦很大,移植性不好,但效率十分高。针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精练而质量高,至今仍是一种常用而强有力的软件开发工具。
(3)高级语言:指不直接依赖计算机硬件,运用易学易懂的语法和结构类似普通英文进行编程的语言。
高级语言是从人类逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。高级语言不依赖于机器,在不同的机器或平台上高级语言的程序本身不变,而通过编译器编译得到的目标代码去适应不同的机器具有很大的移植性和实用性。
2. 计算机语言类课程教学
计算机语言教学是让学生掌握计算机语言特征,学会用计算机语言进行程序设计的技能,培养学生独立思考的能力和一定的自主创新能力。教学过程首先应让学生端正思想,明确学习计算机语言的意义;其次应让学生明白学习计算机语言最终就是要学会用语言来编写程序,为实际工作服务,而不是死抠语法。计算机语言课最终的目的是让学生掌握程序设计总体思路,运用所学语言解决实际工作中的问题。作为高职院校计算机课程的特点,一方面要让学生掌握好扎实的基本理论。另一方面还要培养学生有较强的动手能力,那么针对语言课的课程设计就显得尤为重要,它不仅是理论教学的延伸,而且是理论与实践紧密的结合。
二、高职院校计算机语言类课程教学存在的弊端
1. 学生缺乏学习兴趣
计算机语言类课程教学中,学生缺乏学习兴趣。有一定数量的学生认为学习计算机语言应专心地自学,而通过课堂学习是无法取得好的学习效果,所以自学能力强的学生选择自学,而自学能力弱或自觉性较差的学生则可能上课不听讲、下课不看书。同时有些学生对于整个计算机语言的学习不重视,在计算机等级考试和软考的过程中,一些学生没有明确的目的性,仅是抱着侥幸的态度参加考试。
2. 教师教学中深度与广度不协调
计算机语言类教学范畴的广泛让广大计算机专业教师在制订相关教学计划时往往无从下手。计算机语言多达几十种,并有不断更新的趋势。而教学的总学时却相对稳定,为了让学生在校期间尽可能多接受相关知识,为以后的就业创造条件,许多高职院校开设了VB,C和汇编等多种语言课程。但在实际教学中,每门课的理论和实验教学总学时不过70学时左右,因此讲授的是语言基本语句、语法和简单算法,对于具体的语言版本却介绍不多。如C语言只介绍标准C语言的语句和语法,对具体如Turbo C的库函数应用及其语言本身固有特点很少介绍或根本不予介绍。这样造成学生计算机语言学了不少,但真正精通的却没有。
3. 学生计算机水平参差不齐
计算机语言类课程教学中,学生计算机知识程度参差不齐,比如在授课的过程中,一些基础好的学生觉得早已听懂,而基础差的学生会觉得进度较快。这样使得基础好的学生不能深入学习,基础差的学生学习基础不扎实。从考试结果来看,各班平均成绩差异较大,同时同班成绩差异也较大。试卷成绩分析结果表明:学生对相对死板的概念题解答较好,对相关知识的简单应用也能较好回答,但对知识综合应用题普遍反映答题困难。
4.学生缺乏程序设计、阅读及调试能力
(1)程序设计能力。教学调查中发现,学生惧怕计算机等级考试(二级)中笔试的程序填空和机试的编程题,但实际这类题目的难度并不大。从中可看出,结构化程序设计思想不强,常见算法操作不熟练,知识综合运用能力较弱,缺乏创新思维。这就直接导致在完成程序填空时,阅读理解程序能力弱;编程时设计的程序结构不清晰、臃肿、可读性差,程序的效率低。
(2)程序阅读能力。多次考试结果显示:相当一部分学生对写出程序的运行结果这样的题目解答较差,这说明相当一部分学生独立阅读和分析程序的能力较差。一个优秀的程序员首先是一个优秀的程序分析员,通常都是先阅读和分析他人已编好的程序,去认真体会程序设计者的思想,对自身的思维进行启迪,对那些严谨的程序结构和巧妙的语句安排,加以借鉴和引申,在今后自己的程序中加以灵活运用。阅读程序能力差的主要原因是,不熟悉各种语句的语法规则及相关概念,不清楚各种程序结构的执行情况,如弄不清For语句、While语句及Do-While语句的执行过程,弄不清局部变量和全局变量的区别等,这就造成对程序的运行过程理不出个头绪,自然不能顺利得出正确结果。
(3)程序调试能力。计算机专业学生多数拥有个人电脑,但大部分学生只熟悉Windows系统视窗操作环境,不熟悉DOS系统操作环境,随之出现各种状况。例如,不熟悉DOS常用命令,不熟悉TC(TurboC)菜单功能,不懂TC工作环境的确立,不理解编译过程中出错的英文信息,甚至连syntax(语法)、statement(语句)、overflow(溢出)等常见语言单词都不认识,尤其当出现恶意语法错误时,C语言编译器也可能因故障隐患而给出名不符实的错误信息。不熟悉程序动态调试方法,如断点设置、单步执行、观察变量的当前值等。另外,程序录入速度慢、正确率低的现象也普遍存在。
三、如何进行高职院校计算机语言类课程教学
1. 初步渗透算法设计和软件工程思想
为避免培养应试能力强于编程实践能力的学生,必须跳出以语法教学为主线的教学传统模式,吸收国外计算机课程教学的优点,积极推行案例教学,将复杂枯燥的语法知识分解到一个个生动实用的程序实例中。即在教学过程中以程序设计为主线,有意识地淡化计算机语言本身的语句介绍,而重点介绍程序设计方法,在分析程序和程序设计中熟悉语法、应用语句,并把软件工程学科中的思想、算法分析与设计思想贯穿于整个程序设计过程中。例如,“百元买百鸡”程序设计思路中,介绍了循环结构的语法形式,然后再通过求在一定区间内符合约束条件的算式来求满足条件的未知数,将“穷举法”的使用特点及思维方式向学生展示,使学生在程序分析中学习语法,掌握程序设计和解决问题的思路(算法)。
VB,VF和VC等可视化开发环境的教学中,可用一个小型信息管理系统(例如学籍管理系统)为实例,让学生初步了解快速原型开发模型及有关软件分析与设计方法等,VC的学习过程中可以选取难度合适的实例初步掌握OOSE(面向对象的软件工程)的有关知识。
2. 阶段报告(Project)教学模式
为了培养学生独立编程的能力,还可为整个课程设计几个“大作业”。在授课时,以这几个“大作业”的程序设计要求为总体要求,每章学完后要求完成一项或几项编程作业,且各章的编程作业不是孤立的,而是相互联系的,实际上是一个较大、较复杂程序的组成部分。
例如,在C语言教学中介绍了常用I/O语句printf和scanf后,要求学生编写主函数并在主函数中调用若干个空函数,形成一个文本型菜单的雏形;在介绍了常用数据类型后,要求学生编写一个验证密码输入的函数;在介绍了逻辑运算和判断选取控制常用语句后,要求学生编写一个菜单选取函数;在介绍了循环控制常用语句后,要求学生编写几段求解中常见数学问题的函数;在介绍了数组和字符串后,利用UCDOS特显功能编写一个具有特别显示效果的软件封面函数……这一个个编程“作业”,貌似各自独立,但实际都围绕着一个总体要求——编写一个具有美观封面并可通过菜单进行操作的“数学万花筒”程序——“大作业”。当学生学完整个课程,完成了平时要求的各项编程作业后,他们会意识到:原来自己完成的不只是一些零碎的程序段,而是在逐步制作程序的各个部件,只要通过相应的程序拼装,就可以构成一个较大、较复杂的程序。
学生在学习C语言的过程中,通过这几个“大作业”(每个作业要多次上机才能完成),可将自己学过的知识和算法综合在一起,从整体角度来审视程序的设计,并通过上机进行综合调试,达到提高编程能力的目的,同时让学生进入面对实际问题的应用程序解决能力的培养阶段,这就是“阶段报告(Project)”的教学模式。
3. 传统与现代教学手段相结合
(1)传统教学手段采用“语言+黑板+教材”方式。优点是注重抽象说理,学生可以感受到教师的思维过程;缺点是以“听”或“视”的单一通道方式传送信息,信息量少,且进度较慢。
(2)现代教学手段——多媒体教学。充分利用计算机网络和多媒体技术。计算机多媒体技术以其声、光、电、色等多重元素,突出信息的形象性及感染力,使计算机具有综合处理文字、声音、图形、图像和视频信息的能力。
多媒体教学具有很多优点:1)教学内容形象、生动、直观地展示在学生面前,对学生产生极大的吸引力;2)大大增加课堂教学的信息量,提高教学效率;3)利用多媒体教学可以集中教师的智慧与教学经验,使教学内容更规范有序;4)充分利用计算机网络优势,将授课内容上网,为学生课外学习提供辅导。
语言类课程教学中,特别是第一门计算机语言课的教学,应让学生掌握一定的程序调试技巧,这是通过传统的教学手段是难以实现的,可以通过多媒体教学直观地把程序的调试及排错过程进行演示。但在多媒体教学中,程序的讲解须配以精美动画演示才能达到较好的效果,这就需要教师熟悉Flash,PowerPoint等软件,否则光有静态文本描述是很难让学生理解程序的实现过程。
因此,只有将传统与现代教学手段结合,才能取得很好的教学效果。还可以将构建的网络学习环境作为辅助教学手段,让教学资源上网,建立网上测试题库,逐渐提高学生自主学习能力。
计算机专业相对其他专业来说将是新兴的专业。作为专业教师必须尽快转变观念,以适应市场用人单位的需要。要想让市场欢迎高职高专学院培养的学生,首先教师应该是市场上受欢迎的教师。高职高专学院应创出自己的新路,在综合素质上超过职业中专水平,在动手能力上胜出本科生,这样的学生会有更大的就业空间,这是每个专业教师应该认真思考的问题和义不容辞的责任。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2004.
[2]常艳,任明海.对计算机语言教学方法的探讨[J].辽宁警专学报,2003(01).
[3]王娟.对计算机语言教学的几点思考[J].甘肃政法成人教育学院学报,2003(02).
[4]范会敏,王淑蓉.计算机语言课教学手段与方法探讨[J].商洛师范专科学校学报,2003(02).
(江西省农业工程职业学院信息管理系)
关键词:计算机语言;教学;程序;C语言;高职院校
随着IT技术的发展,应用于各个领域的计算机语言种类越来越多。高职教育面临着能否满足社会需求和学生接受能力的双重压力。目前主流的计算机语言类课程主要有c语言,c ,java,jsp,j2ee,php,delphy,sql server 2005,sysbase,c#,asp.net,ado.net,vb.net等。如果要求学生在三年之内掌握上述所有技术是不现实,也是没有必要的,这就要求教研工作者设计出合理的课程设置计划,既能满足职业岗位(群)的需求,又能提高学生的实践能力,还有助于学生树立终身学习的理念。
一、计算机语言类课程教学概述
1. 计算机语言概述
计算机语言(Computer Language)指用于人与计算机之间通讯的语言,是人与计算机之间传递信息的媒介。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
(1)机器语言:指一台计算机全部的指令集合,是第一代计算机语言。
机器语言程序就是运用二进制数“0”和“1”编制的能够被机器直接识别的二进制文件,一条机器语言成为一条指令,指令是不可分割的最小功能单元。由于每台计算机的指令系统往往各不相同,因此在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了工作的重复。但由于使用的是不同型号计算机各自特定的机器语言,故而运算效率是所有语言中最高的。
(2)汇编语言:指面向机器的程序设计语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,是第二代计算机语言。
汇编语言对计算机硬件依赖性亦很大,移植性不好,但效率十分高。针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精练而质量高,至今仍是一种常用而强有力的软件开发工具。
(3)高级语言:指不直接依赖计算机硬件,运用易学易懂的语法和结构类似普通英文进行编程的语言。
高级语言是从人类逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。高级语言不依赖于机器,在不同的机器或平台上高级语言的程序本身不变,而通过编译器编译得到的目标代码去适应不同的机器具有很大的移植性和实用性。
2. 计算机语言类课程教学
计算机语言教学是让学生掌握计算机语言特征,学会用计算机语言进行程序设计的技能,培养学生独立思考的能力和一定的自主创新能力。教学过程首先应让学生端正思想,明确学习计算机语言的意义;其次应让学生明白学习计算机语言最终就是要学会用语言来编写程序,为实际工作服务,而不是死抠语法。计算机语言课最终的目的是让学生掌握程序设计总体思路,运用所学语言解决实际工作中的问题。作为高职院校计算机课程的特点,一方面要让学生掌握好扎实的基本理论。另一方面还要培养学生有较强的动手能力,那么针对语言课的课程设计就显得尤为重要,它不仅是理论教学的延伸,而且是理论与实践紧密的结合。
二、高职院校计算机语言类课程教学存在的弊端
1. 学生缺乏学习兴趣
计算机语言类课程教学中,学生缺乏学习兴趣。有一定数量的学生认为学习计算机语言应专心地自学,而通过课堂学习是无法取得好的学习效果,所以自学能力强的学生选择自学,而自学能力弱或自觉性较差的学生则可能上课不听讲、下课不看书。同时有些学生对于整个计算机语言的学习不重视,在计算机等级考试和软考的过程中,一些学生没有明确的目的性,仅是抱着侥幸的态度参加考试。
2. 教师教学中深度与广度不协调
计算机语言类教学范畴的广泛让广大计算机专业教师在制订相关教学计划时往往无从下手。计算机语言多达几十种,并有不断更新的趋势。而教学的总学时却相对稳定,为了让学生在校期间尽可能多接受相关知识,为以后的就业创造条件,许多高职院校开设了VB,C和汇编等多种语言课程。但在实际教学中,每门课的理论和实验教学总学时不过70学时左右,因此讲授的是语言基本语句、语法和简单算法,对于具体的语言版本却介绍不多。如C语言只介绍标准C语言的语句和语法,对具体如Turbo C的库函数应用及其语言本身固有特点很少介绍或根本不予介绍。这样造成学生计算机语言学了不少,但真正精通的却没有。
3. 学生计算机水平参差不齐
计算机语言类课程教学中,学生计算机知识程度参差不齐,比如在授课的过程中,一些基础好的学生觉得早已听懂,而基础差的学生会觉得进度较快。这样使得基础好的学生不能深入学习,基础差的学生学习基础不扎实。从考试结果来看,各班平均成绩差异较大,同时同班成绩差异也较大。试卷成绩分析结果表明:学生对相对死板的概念题解答较好,对相关知识的简单应用也能较好回答,但对知识综合应用题普遍反映答题困难。
4.学生缺乏程序设计、阅读及调试能力
(1)程序设计能力。教学调查中发现,学生惧怕计算机等级考试(二级)中笔试的程序填空和机试的编程题,但实际这类题目的难度并不大。从中可看出,结构化程序设计思想不强,常见算法操作不熟练,知识综合运用能力较弱,缺乏创新思维。这就直接导致在完成程序填空时,阅读理解程序能力弱;编程时设计的程序结构不清晰、臃肿、可读性差,程序的效率低。
(2)程序阅读能力。多次考试结果显示:相当一部分学生对写出程序的运行结果这样的题目解答较差,这说明相当一部分学生独立阅读和分析程序的能力较差。一个优秀的程序员首先是一个优秀的程序分析员,通常都是先阅读和分析他人已编好的程序,去认真体会程序设计者的思想,对自身的思维进行启迪,对那些严谨的程序结构和巧妙的语句安排,加以借鉴和引申,在今后自己的程序中加以灵活运用。阅读程序能力差的主要原因是,不熟悉各种语句的语法规则及相关概念,不清楚各种程序结构的执行情况,如弄不清For语句、While语句及Do-While语句的执行过程,弄不清局部变量和全局变量的区别等,这就造成对程序的运行过程理不出个头绪,自然不能顺利得出正确结果。
(3)程序调试能力。计算机专业学生多数拥有个人电脑,但大部分学生只熟悉Windows系统视窗操作环境,不熟悉DOS系统操作环境,随之出现各种状况。例如,不熟悉DOS常用命令,不熟悉TC(TurboC)菜单功能,不懂TC工作环境的确立,不理解编译过程中出错的英文信息,甚至连syntax(语法)、statement(语句)、overflow(溢出)等常见语言单词都不认识,尤其当出现恶意语法错误时,C语言编译器也可能因故障隐患而给出名不符实的错误信息。不熟悉程序动态调试方法,如断点设置、单步执行、观察变量的当前值等。另外,程序录入速度慢、正确率低的现象也普遍存在。
三、如何进行高职院校计算机语言类课程教学
1. 初步渗透算法设计和软件工程思想
为避免培养应试能力强于编程实践能力的学生,必须跳出以语法教学为主线的教学传统模式,吸收国外计算机课程教学的优点,积极推行案例教学,将复杂枯燥的语法知识分解到一个个生动实用的程序实例中。即在教学过程中以程序设计为主线,有意识地淡化计算机语言本身的语句介绍,而重点介绍程序设计方法,在分析程序和程序设计中熟悉语法、应用语句,并把软件工程学科中的思想、算法分析与设计思想贯穿于整个程序设计过程中。例如,“百元买百鸡”程序设计思路中,介绍了循环结构的语法形式,然后再通过求在一定区间内符合约束条件的算式来求满足条件的未知数,将“穷举法”的使用特点及思维方式向学生展示,使学生在程序分析中学习语法,掌握程序设计和解决问题的思路(算法)。
VB,VF和VC等可视化开发环境的教学中,可用一个小型信息管理系统(例如学籍管理系统)为实例,让学生初步了解快速原型开发模型及有关软件分析与设计方法等,VC的学习过程中可以选取难度合适的实例初步掌握OOSE(面向对象的软件工程)的有关知识。
2. 阶段报告(Project)教学模式
为了培养学生独立编程的能力,还可为整个课程设计几个“大作业”。在授课时,以这几个“大作业”的程序设计要求为总体要求,每章学完后要求完成一项或几项编程作业,且各章的编程作业不是孤立的,而是相互联系的,实际上是一个较大、较复杂程序的组成部分。
例如,在C语言教学中介绍了常用I/O语句printf和scanf后,要求学生编写主函数并在主函数中调用若干个空函数,形成一个文本型菜单的雏形;在介绍了常用数据类型后,要求学生编写一个验证密码输入的函数;在介绍了逻辑运算和判断选取控制常用语句后,要求学生编写一个菜单选取函数;在介绍了循环控制常用语句后,要求学生编写几段求解中常见数学问题的函数;在介绍了数组和字符串后,利用UCDOS特显功能编写一个具有特别显示效果的软件封面函数……这一个个编程“作业”,貌似各自独立,但实际都围绕着一个总体要求——编写一个具有美观封面并可通过菜单进行操作的“数学万花筒”程序——“大作业”。当学生学完整个课程,完成了平时要求的各项编程作业后,他们会意识到:原来自己完成的不只是一些零碎的程序段,而是在逐步制作程序的各个部件,只要通过相应的程序拼装,就可以构成一个较大、较复杂的程序。
学生在学习C语言的过程中,通过这几个“大作业”(每个作业要多次上机才能完成),可将自己学过的知识和算法综合在一起,从整体角度来审视程序的设计,并通过上机进行综合调试,达到提高编程能力的目的,同时让学生进入面对实际问题的应用程序解决能力的培养阶段,这就是“阶段报告(Project)”的教学模式。
3. 传统与现代教学手段相结合
(1)传统教学手段采用“语言+黑板+教材”方式。优点是注重抽象说理,学生可以感受到教师的思维过程;缺点是以“听”或“视”的单一通道方式传送信息,信息量少,且进度较慢。
(2)现代教学手段——多媒体教学。充分利用计算机网络和多媒体技术。计算机多媒体技术以其声、光、电、色等多重元素,突出信息的形象性及感染力,使计算机具有综合处理文字、声音、图形、图像和视频信息的能力。
多媒体教学具有很多优点:1)教学内容形象、生动、直观地展示在学生面前,对学生产生极大的吸引力;2)大大增加课堂教学的信息量,提高教学效率;3)利用多媒体教学可以集中教师的智慧与教学经验,使教学内容更规范有序;4)充分利用计算机网络优势,将授课内容上网,为学生课外学习提供辅导。
语言类课程教学中,特别是第一门计算机语言课的教学,应让学生掌握一定的程序调试技巧,这是通过传统的教学手段是难以实现的,可以通过多媒体教学直观地把程序的调试及排错过程进行演示。但在多媒体教学中,程序的讲解须配以精美动画演示才能达到较好的效果,这就需要教师熟悉Flash,PowerPoint等软件,否则光有静态文本描述是很难让学生理解程序的实现过程。
因此,只有将传统与现代教学手段结合,才能取得很好的教学效果。还可以将构建的网络学习环境作为辅助教学手段,让教学资源上网,建立网上测试题库,逐渐提高学生自主学习能力。
计算机专业相对其他专业来说将是新兴的专业。作为专业教师必须尽快转变观念,以适应市场用人单位的需要。要想让市场欢迎高职高专学院培养的学生,首先教师应该是市场上受欢迎的教师。高职高专学院应创出自己的新路,在综合素质上超过职业中专水平,在动手能力上胜出本科生,这样的学生会有更大的就业空间,这是每个专业教师应该认真思考的问题和义不容辞的责任。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2004.
[2]常艳,任明海.对计算机语言教学方法的探讨[J].辽宁警专学报,2003(01).
[3]王娟.对计算机语言教学的几点思考[J].甘肃政法成人教育学院学报,2003(02).
[4]范会敏,王淑蓉.计算机语言课教学手段与方法探讨[J].商洛师范专科学校学报,2003(02).
(江西省农业工程职业学院信息管理系)