APP下载

多语并行的程序设计教学

2009-09-02郭美云

科教新报·教育研究 2009年5期
关键词:程序设计

郭美云

[摘要]:计算机操作不能代替程序设计,程序设计课不是简单的程序设计语言课,也不同数据结构课,程序设计课必须强调思维过程,特别是刚接触程序设计的层次,宜采用分期多语言并行教学方法,使学生真正懂得编程方法和技巧。

关键词:程序设计、程序设计语言、多语言、并行教学

一、 前言

现在计算机相关专业的教学计划中一般都开设了“程序设计”课程,有的为了增强编程能力,先后开设了多种面向过程的程序设计语言,如:QBASIC、FOXPRO、C语言,接着又开设了多种面向对象的程序设计语言,如:VB、VF、VC语言。这种教学安排对教师来说可利用市场上现成的教材,对学生来说最大的好处就是当学生毕业时求职表上可以多几门课的成绩,也就似乎多了几种能力,找到工作的可能性似乎就大,其实90%的同学根本就不敢去找编程的工作。[1]每门课长期沿用这样的教学模式:过于注重语句、语法和一些细节,基本上是以程序设计语言自身的体系为脉络展开,学生每学习一种语言就要学一遍诸如常量、变量、运算符、表达式、程序结构、函数过程等程序设计语言所涉及的概念;没有把逻辑与编程解题思路放在主体地位上,对如何分析和解决问题讲得不够,对学生编程的能力和上机解题的能力训练不够。许多学生在学习程序设计语言的课程时觉得枯燥难学,学过之后不能用来解决实际问题。在这样的教学模式培养之下,学生虽然学习了一定量的程序设计知识,但缺乏对知识的整体把握,动手编程的能力较差,甚至部分学生遇到实际问题就无从下手。所以系统化程序设计思维培养模式的研究已经迫在眉睫。

二、 国内外现状

1) 成功地解决了计算机文化基础的入门,但未解决程序设计的入门问题。

90年代,计算机文化基础课进行了一场大的改变,就是由以计算机操作入门代替了程序设计语言入门,事实证明这场改革是正确的,在计算机的普及教育中起了重要作用。这种改革表面上是改了入门的内容,而实质是抛开了程序设计这个让人头痛的课程。这一点无疑是正确的,因为非计算机专业,一般情况下没有必要编程。但是这种改革并没有从根本上改变计算机专业的状况(特别是软件专业),因为程序设计类课程不仅是计算机专业学生的必修课程,也是其他理工科学生的必修课程。一名计算机专业的本科生要学习五至八门程序设计课程,一名其他理工类的学生也要学习三门以上的程序设计课程,那么如何通过这些课程的学习培养学生的系统化程序设计思维就显得尤为重要。

2) 大部分教材是为设计师门介绍新语言的,但不适宜初学者。

介绍一门新程序设计语言,当然是指为已有程序设计基础的设计师门介绍新语言的,重点是介绍语句的格式和功能,是一本操作说明手册。而对刚入校的学生来说就不能用这种方法了。因为程序设计思想,是一种逻辑思维,是必须有一个过程才能培养起来的。就像学英语一样,不是教完单词和语法,学生就能写出好作文。市场上的程序设计课教材,基本上即是入门教材也是进修教材,给入门者用太难,给进修者又提供不了多少帮助。所以必须全面刷新程序设计课教材的体系。

3) 部分教材涉及前导课程太多,使初学者望而生畏。

近几年,市场出现的《程序设计》高职教材涉及前导课程太多使初学者望而生畏,经常听教师说学生基础太差,学不好。说实在的,由于大学扩展,高职层次生源质量有所下降,前导课程学得不好的比较多,所以应尽量去掉一些非必须的高等数学、逻辑推理、咬文嚼字等方面的内容。所以最好只涉及计算机文化基础课及中学前语文、数学课。

三、 程序设计语言与程序设计是有区别的

随着程序设计学科的发展,程序设计思想经历了从简单的顺序计算到结构化的程序设计,再到面向对象的程序设计的发展过程,形成了一整套的思想理论和思维方法。程序设计过程本身就是系统化的过程,首先要对解决的问题有一个系统化的认识,从整个系统的观点出发,设计出整体模型,进行功能模块的划分,然后在整体的程序设计风格的基础之上编写程序代码。

我认为程序设计语言课与程序设计课是有很大的差异的,程序设计语言是介绍语句的格式和功能,重点注意一些不同点就可以了。程序设计语言课是为已有程序设计基础的设计师门介绍新语言的做法,而对刚入校的学生来说就不能用这种方法了。因为程序设计思想,是一种逻辑思维,是必须有一个过程才能培养起来的。就像学英语一样,不是教完单词和语法,学生就能写出好作文。

四、 传统的课程体系及教学效果

现在计算机相关专业的教学计划中一般都开设了“程序设计”课程,有的为了增强编程能力,先后开设了多种面向过程的程序设计语言,如:QBASIC、FOXPRO、C语言,接着又开设了多种面向对象的程序设计语言,如:VB、VF、VC语言,这种一门接一门的开设,暂且称为单语言串行教学体系。各学校开设情况有所不同,有的开6门,也有的开4门,还有的只有2门,我们在此不来评说该开几门语言课或该开哪几门好一些。这种教学安排对教师来说可利用市场上现成的教材,对学生来说最大的好处就是当学生毕业时求职表上可以多几门课的成绩,也就似乎多了几种能力,找到工作的可能性似乎就大,其实90%的同学根本就不敢去找编程的工作。[2]每门课长期沿用这样的教学模式:过于注重语句、语法和一些细节,基本上是以程序设计语言自身的体系为脉络展开,学生每学习一种语言就要学一遍诸如常量、变量、运算符、表达式、程序结构、函数过程等程序设计语言所涉及的概念;没有把逻辑与编程解题思路放在主体地位上,对如何分析和解决问题讲得不够,对学生编程的能力和上机解题的能力训练不够。许多学生在学习程序设计语言的课程时觉得枯燥难学,学过之后不能用来解决实际问题。在这样的教学模式培养之下,学生虽然学习了一定量的程序设计知识,但缺乏对知识的整体把握,动手编程的能力较差,甚至部分学生遇到实际问题就无从下手。所以系统化程序设计思维培养模式的研究已经迫在眉睫。[3]如果我们在开课门数和总课时数上不变的条件下,我认为计算机有关专业,特别是高职学院的程序设计课应采用分期多语言并行教学,即要求教师同时用多种程序设计语言教学,同样要求学生同时用几门语言书写和调试程序,如果按这种方法进行一下课程体系调整,就能使学生毕业时既学了多门程序设计语言、又能有较强的编程能力、求职时真正能达到专业对口、并且很快地参与到软件开发课题中。

五、 多语言并行教学的可行性

多语言并行教学最大的疑惑是学生是否受得了?效果是否有改进?我们以小学生六年的部分学习课程来考察,列出如下表,设共有6年,每年均开六门课(数学、语文、英语、体育、音乐、政治),则开课的顺序是按行顺序:A行→B行→C行→D行→E行→F行(即第一年只开数学),还是按列顺序:1列→2列→3列→4列→5列→6列(即6门课同时开),不言而喻按列顺序好。若按行顺序,即单门串行方式,在学三年级数学时大多会出现语文跟不上的现象,导致许多学生放弃学业,这时数学也就是三年级水平,而语文及其它课程均未入门。如果真是这样开课每年不知要新添多少文盲。若是按列顺序,即多门并行方式,即使学三年级数学时遇到困难,放弃学业,这时的数学是三年级水平,而其它课程也同样也是三年级水平,况且这种现象很少会出现,80%的学生都能小学毕业。这时他们的各门课的能力基本上是均衡发展的。

若将QBASIC、FOXPRO、C、VB、VF、VC++语言比作数学、语文、英语、体育、音乐、政治六门课。每一门课都分为一到六章。

从上表分析得到:按列顺序1列→2列→3列→4列→5列→6列,开课效果好,并且由于程序设计语言是大同小异,同一序号章节的内容基本相同,正是因为这一点,也许会有人说,一个学期开一章是不是太少?这样教师才会有大量的时间讲程序设计的思想,就能由小到大的讲应用。学生也会有大量的时间练习和思考,当然可根据难易程度也可多章合并。象数学课一样,逻辑思维能力逐步加强,是最能体现高职特色的一种教学体系。根据各校情况不一样,可将各学期开设的内容分别称为“程序设计入门”、“初级程序设计”、“中级程序设计”、“高级程序设计”、“面向对象程序设计”、“软件开发技术”。

六、 多语言并行教学安排

其中的课时数应根据学校准备开设的语言门数进行适当的增减。建议一般开六门语言用64课时;4门语言用48课时;2门语言用32课时;即可分周完成,也可分期完成。

七、 目前存在的问题

多语言并行的安排,学生不但学会了多门语言,更重要的是学会了程序设计的思想,学生不再害怕程序设计了,他们中当然也会有编程高手和低手之分,但应该说有95%的学生能进行简单程序设计;有80%的学生能进行较复杂的程序设计;有70%的学生能进行软件开发。但目前存在的问题是教材;目前,市场上的程序设计课教材,基本上即是入门教材也是进修教材,给入门者用太难,给进修者又提供不了多少帮助。因此说程序设计课采用多语言并行教学,首先必须全面刷新程序设计课教材的体系。信息的发展呼唤优质计算机教材,我想按照上述思想将可出一系列新教材供程序设计课使用。

猜你喜欢

程序设计
基于OBE的Java程序设计个性化教学研究
“双高”建设背景下程序设计类课程教学改革研究
基于Electron.js的风向玫瑰图绘制程序设计与实现
计算机程序设计课程的线上教学实践探索
课程思政视域下《高级语言程序设计》的教学探索
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
Raptor可视化软件与程序设计计算思维的协同运用