郭美云
[摘要]:計算機(jī)操作不能代替程序設(shè)計,程序設(shè)計課不是簡單的程序設(shè)計語言課,也不同數(shù)據(jù)結(jié)構(gòu)課,程序設(shè)計課必須強(qiáng)調(diào)思維過程,特別是剛接觸程序設(shè)計的層次,宜采用分期多語言并行教學(xué)方法,使學(xué)生真正懂得編程方法和技巧。
關(guān)鍵詞:程序設(shè)計、程序設(shè)計語言、多語言、并行教學(xué)
一、 前言
現(xiàn)在計算機(jī)相關(guān)專業(yè)的教學(xué)計劃中一般都開設(shè)了“程序設(shè)計”課程,有的為了增強(qiáng)編程能力,先后開設(shè)了多種面向過程的程序設(shè)計語言,如:QBASIC、FOXPRO、C語言,接著又開設(shè)了多種面向?qū)ο蟮某绦蛟O(shè)計語言,如:VB、VF、VC語言。這種教學(xué)安排對教師來說可利用市場上現(xiàn)成的教材,對學(xué)生來說最大的好處就是當(dāng)學(xué)生畢業(yè)時求職表上可以多幾門課的成績,也就似乎多了幾種能力,找到工作的可能性似乎就大,其實90%的同學(xué)根本就不敢去找編程的工作。[1]每門課長期沿用這樣的教學(xué)模式:過于注重語句、語法和一些細(xì)節(jié),基本上是以程序設(shè)計語言自身的體系為脈絡(luò)展開,學(xué)生每學(xué)習(xí)一種語言就要學(xué)一遍諸如常量、變量、運(yùn)算符、表達(dá)式、程序結(jié)構(gòu)、函數(shù)過程等程序設(shè)計語言所涉及的概念;沒有把邏輯與編程解題思路放在主體地位上,對如何分析和解決問題講得不夠,對學(xué)生編程的能力和上機(jī)解題的能力訓(xùn)練不夠。許多學(xué)生在學(xué)習(xí)程序設(shè)計語言的課程時覺得枯燥難學(xué),學(xué)過之后不能用來解決實際問題。在這樣的教學(xué)模式培養(yǎng)之下,學(xué)生雖然學(xué)習(xí)了一定量的程序設(shè)計知識,但缺乏對知識的整體把握,動手編程的能力較差,甚至部分學(xué)生遇到實際問題就無從下手。所以系統(tǒng)化程序設(shè)計思維培養(yǎng)模式的研究已經(jīng)迫在眉睫。
二、 國內(nèi)外現(xiàn)狀
1) 成功地解決了計算機(jī)文化基礎(chǔ)的入門,但未解決程序設(shè)計的入門問題。
90年代,計算機(jī)文化基礎(chǔ)課進(jìn)行了一場大的改變,就是由以計算機(jī)操作入門代替了程序設(shè)計語言入門,事實證明這場改革是正確的,在計算機(jī)的普及教育中起了重要作用。這種改革表面上是改了入門的內(nèi)容,而實質(zhì)是拋開了程序設(shè)計這個讓人頭痛的課程。這一點(diǎn)無疑是正確的,因為非計算機(jī)專業(yè),一般情況下沒有必要編程。但是這種改革并沒有從根本上改變計算機(jī)專業(yè)的狀況(特別是軟件專業(yè)),因為程序設(shè)計類課程不僅是計算機(jī)專業(yè)學(xué)生的必修課程,也是其他理工科學(xué)生的必修課程。一名計算機(jī)專業(yè)的本科生要學(xué)習(xí)五至八門程序設(shè)計課程,一名其他理工類的學(xué)生也要學(xué)習(xí)三門以上的程序設(shè)計課程,那么如何通過這些課程的學(xué)習(xí)培養(yǎng)學(xué)生的系統(tǒng)化程序設(shè)計思維就顯得尤為重要。
2) 大部分教材是為設(shè)計師門介紹新語言的,但不適宜初學(xué)者。
介紹一門新程序設(shè)計語言,當(dāng)然是指為已有程序設(shè)計基礎(chǔ)的設(shè)計師門介紹新語言的,重點(diǎn)是介紹語句的格式和功能,是一本操作說明手冊。而對剛?cè)胄5膶W(xué)生來說就不能用這種方法了。因為程序設(shè)計思想,是一種邏輯思維,是必須有一個過程才能培養(yǎng)起來的。就像學(xué)英語一樣,不是教完單詞和語法,學(xué)生就能寫出好作文。市場上的程序設(shè)計課教材,基本上即是入門教材也是進(jìn)修教材,給入門者用太難,給進(jìn)修者又提供不了多少幫助。所以必須全面刷新程序設(shè)計課教材的體系。
3) 部分教材涉及前導(dǎo)課程太多,使初學(xué)者望而生畏。
近幾年,市場出現(xiàn)的《程序設(shè)計》高職教材涉及前導(dǎo)課程太多使初學(xué)者望而生畏,經(jīng)常聽教師說學(xué)生基礎(chǔ)太差,學(xué)不好。說實在的,由于大學(xué)擴(kuò)展,高職層次生源質(zhì)量有所下降,前導(dǎo)課程學(xué)得不好的比較多,所以應(yīng)盡量去掉一些非必須的高等數(shù)學(xué)、邏輯推理、咬文嚼字等方面的內(nèi)容。所以最好只涉及計算機(jī)文化基礎(chǔ)課及中學(xué)前語文、數(shù)學(xué)課。
三、 程序設(shè)計語言與程序設(shè)計是有區(qū)別的
隨著程序設(shè)計學(xué)科的發(fā)展,程序設(shè)計思想經(jīng)歷了從簡單的順序計算到結(jié)構(gòu)化的程序設(shè)計,再到面向?qū)ο蟮某绦蛟O(shè)計的發(fā)展過程,形成了一整套的思想理論和思維方法。程序設(shè)計過程本身就是系統(tǒng)化的過程,首先要對解決的問題有一個系統(tǒng)化的認(rèn)識,從整個系統(tǒng)的觀點(diǎn)出發(fā),設(shè)計出整體模型,進(jìn)行功能模塊的劃分,然后在整體的程序設(shè)計風(fēng)格的基礎(chǔ)之上編寫程序代碼。
我認(rèn)為程序設(shè)計語言課與程序設(shè)計課是有很大的差異的,程序設(shè)計語言是介紹語句的格式和功能,重點(diǎn)注意一些不同點(diǎn)就可以了。程序設(shè)計語言課是為已有程序設(shè)計基礎(chǔ)的設(shè)計師門介紹新語言的做法,而對剛?cè)胄5膶W(xué)生來說就不能用這種方法了。因為程序設(shè)計思想,是一種邏輯思維,是必須有一個過程才能培養(yǎng)起來的。就像學(xué)英語一樣,不是教完單詞和語法,學(xué)生就能寫出好作文。
四、 傳統(tǒng)的課程體系及教學(xué)效果
現(xiàn)在計算機(jī)相關(guān)專業(yè)的教學(xué)計劃中一般都開設(shè)了“程序設(shè)計”課程,有的為了增強(qiáng)編程能力,先后開設(shè)了多種面向過程的程序設(shè)計語言,如:QBASIC、FOXPRO、C語言,接著又開設(shè)了多種面向?qū)ο蟮某绦蛟O(shè)計語言,如:VB、VF、VC語言,這種一門接一門的開設(shè),暫且稱為單語言串行教學(xué)體系。各學(xué)校開設(shè)情況有所不同,有的開6門,也有的開4門,還有的只有2門,我們在此不來評說該開幾門語言課或該開哪幾門好一些。這種教學(xué)安排對教師來說可利用市場上現(xiàn)成的教材,對學(xué)生來說最大的好處就是當(dāng)學(xué)生畢業(yè)時求職表上可以多幾門課的成績,也就似乎多了幾種能力,找到工作的可能性似乎就大,其實90%的同學(xué)根本就不敢去找編程的工作。[2]每門課長期沿用這樣的教學(xué)模式:過于注重語句、語法和一些細(xì)節(jié),基本上是以程序設(shè)計語言自身的體系為脈絡(luò)展開,學(xué)生每學(xué)習(xí)一種語言就要學(xué)一遍諸如常量、變量、運(yùn)算符、表達(dá)式、程序結(jié)構(gòu)、函數(shù)過程等程序設(shè)計語言所涉及的概念;沒有把邏輯與編程解題思路放在主體地位上,對如何分析和解決問題講得不夠,對學(xué)生編程的能力和上機(jī)解題的能力訓(xùn)練不夠。許多學(xué)生在學(xué)習(xí)程序設(shè)計語言的課程時覺得枯燥難學(xué),學(xué)過之后不能用來解決實際問題。在這樣的教學(xué)模式培養(yǎng)之下,學(xué)生雖然學(xué)習(xí)了一定量的程序設(shè)計知識,但缺乏對知識的整體把握,動手編程的能力較差,甚至部分學(xué)生遇到實際問題就無從下手。所以系統(tǒng)化程序設(shè)計思維培養(yǎng)模式的研究已經(jīng)迫在眉睫。[3]如果我們在開課門數(shù)和總課時數(shù)上不變的條件下,我認(rèn)為計算機(jī)有關(guān)專業(yè),特別是高職學(xué)院的程序設(shè)計課應(yīng)采用分期多語言并行教學(xué),即要求教師同時用多種程序設(shè)計語言教學(xué),同樣要求學(xué)生同時用幾門語言書寫和調(diào)試程序,如果按這種方法進(jìn)行一下課程體系調(diào)整,就能使學(xué)生畢業(yè)時既學(xué)了多門程序設(shè)計語言、又能有較強(qiáng)的編程能力、求職時真正能達(dá)到專業(yè)對口、并且很快地參與到軟件開發(fā)課題中。
五、 多語言并行教學(xué)的可行性
多語言并行教學(xué)最大的疑惑是學(xué)生是否受得了?效果是否有改進(jìn)?我們以小學(xué)生六年的部分學(xué)習(xí)課程來考察,列出如下表,設(shè)共有6年,每年均開六門課(數(shù)學(xué)、語文、英語、體育、音樂、政治),則開課的順序是按行順序:A行→B行→C行→D行→E行→F行(即第一年只開數(shù)學(xué)),還是按列順序:1列→2列→3列→4列→5列→6列(即6門課同時開),不言而喻按列順序好。若按行順序,即單門串行方式,在學(xué)三年級數(shù)學(xué)時大多會出現(xiàn)語文跟不上的現(xiàn)象,導(dǎo)致許多學(xué)生放棄學(xué)業(yè),這時數(shù)學(xué)也就是三年級水平,而語文及其它課程均未入門。如果真是這樣開課每年不知要新添多少文盲。若是按列順序,即多門并行方式,即使學(xué)三年級數(shù)學(xué)時遇到困難,放棄學(xué)業(yè),這時的數(shù)學(xué)是三年級水平,而其它課程也同樣也是三年級水平,況且這種現(xiàn)象很少會出現(xiàn),80%的學(xué)生都能小學(xué)畢業(yè)。這時他們的各門課的能力基本上是均衡發(fā)展的。
若將QBASIC、FOXPRO、C、VB、VF、VC++語言比作數(shù)學(xué)、語文、英語、體育、音樂、政治六門課。每一門課都分為一到六章。
從上表分析得到:按列順序1列→2列→3列→4列→5列→6列,開課效果好,并且由于程序設(shè)計語言是大同小異,同一序號章節(jié)的內(nèi)容基本相同,正是因為這一點(diǎn),也許會有人說,一個學(xué)期開一章是不是太少?這樣教師才會有大量的時間講程序設(shè)計的思想,就能由小到大的講應(yīng)用。學(xué)生也會有大量的時間練習(xí)和思考,當(dāng)然可根據(jù)難易程度也可多章合并。象數(shù)學(xué)課一樣,邏輯思維能力逐步加強(qiáng),是最能體現(xiàn)高職特色的一種教學(xué)體系。根據(jù)各校情況不一樣,可將各學(xué)期開設(shè)的內(nèi)容分別稱為“程序設(shè)計入門”、“初級程序設(shè)計”、“中級程序設(shè)計”、“高級程序設(shè)計”、“面向?qū)ο蟪绦蛟O(shè)計”、“軟件開發(fā)技術(shù)”。
六、 多語言并行教學(xué)安排
其中的課時數(shù)應(yīng)根據(jù)學(xué)校準(zhǔn)備開設(shè)的語言門數(shù)進(jìn)行適當(dāng)?shù)脑鰷p。建議一般開六門語言用64課時;4門語言用48課時;2門語言用32課時;即可分周完成,也可分期完成。
七、 目前存在的問題
多語言并行的安排,學(xué)生不但學(xué)會了多門語言,更重要的是學(xué)會了程序設(shè)計的思想,學(xué)生不再害怕程序設(shè)計了,他們中當(dāng)然也會有編程高手和低手之分,但應(yīng)該說有95%的學(xué)生能進(jìn)行簡單程序設(shè)計;有80%的學(xué)生能進(jìn)行較復(fù)雜的程序設(shè)計;有70%的學(xué)生能進(jìn)行軟件開發(fā)。但目前存在的問題是教材;目前,市場上的程序設(shè)計課教材,基本上即是入門教材也是進(jìn)修教材,給入門者用太難,給進(jìn)修者又提供不了多少幫助。因此說程序設(shè)計課采用多語言并行教學(xué),首先必須全面刷新程序設(shè)計課教材的體系。信息的發(fā)展呼喚優(yōu)質(zhì)計算機(jī)教材,我想按照上述思想將可出一系列新教材供程序設(shè)計課使用。