摘要:本文結(jié)合高職高專學(xué)生的特點(diǎn),根據(jù)多年來程序設(shè)計(jì)的經(jīng)驗(yàn)以及多年來從事高職高專教學(xué)的經(jīng)驗(yàn),探討了如何提高高職高專學(xué)生學(xué)好程序設(shè)計(jì)課程的教學(xué)技巧。
關(guān)鍵詞:程序設(shè)計(jì);書寫格式;縮排;書寫順序;朗讀程序
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2007)09-0071-03
1 引言
計(jì)算機(jī)程序設(shè)計(jì)課程本身是一門邏輯性、理論性、實(shí)用性與構(gòu)創(chuàng)性有機(jī)結(jié)合的課程,要學(xué)好一門計(jì)算機(jī)程序設(shè)計(jì)語言,學(xué)生必須具備一定的邏輯思維能力與主動(dòng)創(chuàng)新能力。而高職高專類的學(xué)生,由于大多數(shù)來自于職高或中專等學(xué)校,在那里他們的動(dòng)手能力與實(shí)踐能力得到了很好的訓(xùn)練,但是,邏輯思維能力與自覺創(chuàng)新能力的訓(xùn)練則不夠,不愿多動(dòng)腦及學(xué)習(xí)自覺性較差成了他們普遍的問題,直接導(dǎo)致了他們進(jìn)入高校后,面對(duì)高校必須學(xué)習(xí)的一些理論性邏輯性稍強(qiáng)的課程,感到非常吃力,比如計(jì)算機(jī)程序設(shè)計(jì)類課程。一直以來,如何提高高職高專學(xué)生程序設(shè)計(jì)能力,成為從事該類課程教學(xué)工作者們想努力逾越一道難關(guān),是老師們追求的目標(biāo)。本人多年來在高等職業(yè)技術(shù)學(xué)院從事VB程序設(shè)計(jì)課程的教學(xué),也不例外,一直都在探索更好的教學(xué)方法,尋求更適合他們的教學(xué)技巧。VB程序設(shè)計(jì)語言以其易學(xué)易用、最適合初學(xué)者的特點(diǎn)越來越普及地成為高職高專類院校的公共程序設(shè)計(jì)課程,學(xué)習(xí)VB語言的學(xué)生大多數(shù)都是非計(jì)算機(jī)類專業(yè)的初學(xué)者。面對(duì)這樣的學(xué)生,教師在教學(xué)過程中必須不斷地改進(jìn)教學(xué)方法,不斷想出教好學(xué)生的新點(diǎn)子,才能達(dá)到較好的教學(xué)效果。
對(duì)初學(xué)者來說,VB程序語言中的許多概念是很抽象的,老師不能指望這些概念講過了學(xué)生就可以掌握,尤其是高職類的學(xué)生,有些概念對(duì)他們來說始終都是模模糊糊的。所以這就需要老師采取一定的策略,不能孤立地以“講”為主介紹概念,要尋求其他途徑來加強(qiáng)學(xué)生對(duì)概念的理解,比如約束學(xué)生編程的某種習(xí)慣。
本人在教學(xué)過程中,逐漸把握了初學(xué)者學(xué)習(xí)程序設(shè)計(jì)的心理特征,掌握了他們的認(rèn)知過程,結(jié)合VB程序語言的特點(diǎn),總結(jié)出來了一些實(shí)用可行的教學(xué)技巧,利用這些教學(xué)技巧,往往可以取得很好的教學(xué)效果。
2 嚴(yán)格要求學(xué)生按正確的縮排格式書寫程序
程序的縮排是結(jié)構(gòu)化程序語言書寫程序的最基本的要求,正確的縮排可使閱讀起來程序結(jié)構(gòu)突出,層次分明,邏輯關(guān)系一目了然。每一個(gè)資深的編程者都會(huì)非常熟練地在程序中采用縮排。但對(duì)于初學(xué)者,正確的縮排是很困難的,因?yàn)樗幻靼诪槭裁匆s排,如何縮排。很多學(xué)生問同樣的問題,不縮排程序也不會(huì)出錯(cuò),為什么老師必須要求這樣做呢?直接回答這一問題是無濟(jì)于事的,因?yàn)閷W(xué)生還沒有真正理解結(jié)構(gòu)的概念,只能靠時(shí)間來答復(fù),老師從一開始就硬性規(guī)定學(xué)生寫程序要縮排。
2.1 相對(duì)于Sub…End Sub語句的縮排
VB語言為結(jié)構(gòu)化程序設(shè)計(jì)語言,除聲明語句外,所有的語句都要寫在各Sub…End Sub之間。首先告訴學(xué)生將那些寫在Sub…End Sub之間的語句向左邊界統(tǒng)一右縮進(jìn)一個(gè)Tab鍵,可將之稱為第一層次縮排,然后通過不斷反復(fù)強(qiáng)調(diào),不斷更正,久而久之,大多數(shù)同學(xué)會(huì)慢慢養(yǎng)成相對(duì)于Sub語句縮排的習(xí)慣,這時(shí)他們關(guān)于縮排的疑慮會(huì)自然地消失,逐漸地他們體會(huì)到了縮排的必要性,并且關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的概念也逐漸形成了。
2.2 相對(duì)于選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等結(jié)構(gòu)語句的縮排
選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是計(jì)算機(jī)程序的核心基礎(chǔ),是復(fù)雜的邏輯思維在計(jì)算機(jī)程序中表達(dá)形式,通常是教學(xué)的重點(diǎn)內(nèi)容,而這一部分內(nèi)容對(duì)高職學(xué)生來說無疑是較難的,尤其涉及到結(jié)構(gòu)的嵌套時(shí),更是困難。在教學(xué)中,老師除了引導(dǎo)學(xué)生進(jìn)行邏輯分析,將邏輯思想表達(dá)為程序語句外,更要強(qiáng)調(diào)書寫結(jié)構(gòu)的縮排規(guī)范,即要求結(jié)構(gòu)體里面的語句相對(duì)于結(jié)構(gòu)頭與結(jié)構(gòu)尾語句統(tǒng)一右縮一個(gè)Tab鍵,要自始至終地強(qiáng)調(diào)。在結(jié)構(gòu)中縮排的意義更重要,縮排書寫可以反映程序中的邏輯關(guān)系,可以突顯程序的邏輯主線,有助于學(xué)生對(duì)程序流程及邏輯關(guān)系的理解,對(duì)結(jié)構(gòu)的掌握。學(xué)生通過較長時(shí)間的被強(qiáng)制要求按縮排書寫結(jié)構(gòu)后,會(huì)逐漸地領(lǐng)悟用邏輯方法思考問題,慢慢地掌握了如何清晰地用程序來表達(dá)自己的邏輯思想。在教學(xué)過程中我的體會(huì)是,學(xué)生一旦能按正確的縮排格式書寫含較復(fù)雜的邏輯關(guān)系的程序時(shí),表明他真正地掌握了程序結(jié)構(gòu),具備了一定的邏輯分析能力。反之,如果學(xué)生具備了分析問題和解決問題的能力,也會(huì)自覺地將程序的縮排書寫。從某種意義上來說,老師可以依據(jù)學(xué)生書寫程序的格式來了解學(xué)生對(duì)內(nèi)容的掌握程度。
3 要求學(xué)生按指定的順序書寫程序
對(duì)學(xué)生書寫順序的要求主要體現(xiàn)在以下兩方面。
(1)在同一個(gè)語句行中,成對(duì)的控制符號(hào)一次輸入,如:(),# #,“”,這些符號(hào)都是成對(duì)出現(xiàn),這些符號(hào)在輸入時(shí)同時(shí)輸入。這對(duì)初學(xué)的學(xué)生來說也是很重要的,當(dāng)出現(xiàn)多層符號(hào)的嵌套時(shí),經(jīng)常會(huì)出現(xiàn)混亂,如果一開始時(shí)就要求學(xué)生堅(jiān)持這樣做,一旦習(xí)慣養(yǎng)成后,將給他們避免很多麻煩。
(2)在書寫結(jié)構(gòu)時(shí),結(jié)構(gòu)頭語句與結(jié)構(gòu)尾語句必須首先輸入。如輸入If…Then語句后,必須緊接著輸入End If語句,輸入For 語句后緊接著輸入Next語句,這一點(diǎn)也是我通常強(qiáng)調(diào)學(xué)生必須要做到的,要求學(xué)生首先將結(jié)構(gòu)的框架搭起來,然后再填充結(jié)構(gòu)里面的內(nèi)容。這樣做的好處在于,一方面加強(qiáng)學(xué)生對(duì)結(jié)構(gòu)概念的理解,另一方面也可以防止一些常見錯(cuò)誤的產(chǎn)生,如結(jié)構(gòu)不完整、交叉嵌套等。初學(xué)者經(jīng)常會(huì)出現(xiàn)的錯(cuò)誤是寫結(jié)構(gòu)時(shí)“有頭無尾”,當(dāng)嵌套使用各種結(jié)構(gòu)時(shí),因理不清嵌套關(guān)系出現(xiàn)交叉嵌套。一旦學(xué)生養(yǎng)成了這種語句書寫的順序,無論如何都是可以避免這些錯(cuò)誤的。
4嚴(yán)格要求學(xué)生按規(guī)范對(duì)變量命名
與變量有關(guān)的概念很多,如變量名、變量的類型、變量的作用域等等,這些都是初學(xué)者難以理解的。當(dāng)老師介紹這些概念時(shí),再精彩的講解,學(xué)生也不能真正掌握。事實(shí)上,能讓學(xué)生更好地掌握這些概念的辦法是,在更多應(yīng)用中引起學(xué)生的關(guān)注,不斷地將概念引入到編寫程序的過程中,那么,按規(guī)范對(duì)變量命名是有利的途徑之一。規(guī)范地命名變量就是在變量的名稱中包含變量的類型、變量的作用域及變量的用途等信息,在程序中當(dāng)遇到變量時(shí)老師就提醒學(xué)生該變量的類型、作用域等內(nèi)容,學(xué)生通過反復(fù)回答這些問題,既知道了這些概念的重要性,也逐漸領(lǐng)悟了這些概念的真正含義。當(dāng)老師自始至終地堅(jiān)持這樣做后,學(xué)生也養(yǎng)成在程序中關(guān)注變量的習(xí)慣,這將為整個(gè)程序設(shè)計(jì)奠定堅(jiān)實(shí)的基礎(chǔ)。
5 要求學(xué)生朗讀程序
計(jì)算機(jī)程序就是用某種計(jì)算機(jī)語言把計(jì)算機(jī)的執(zhí)行過程描述出來。學(xué)習(xí)計(jì)算機(jī)語言,就是學(xué)習(xí)語法規(guī)則,以及掌握這些語法規(guī)則的應(yīng)用。眾所周知,要學(xué)好一門語言,關(guān)鍵是不停地讀寫訓(xùn)練,活學(xué)活用。多看、多讀、多寫、多說是學(xué)好任何一門語言的決竅,那么學(xué)習(xí)計(jì)算機(jī)語言也應(yīng)如此。作為講授計(jì)算機(jī)語言的老師,在課程的初始階段,我通常要求學(xué)生朗讀程序,而不只是默看或默讀。首先規(guī)定程序中的各種語句的讀法,如語句intX=intY,要求讀成“將整型變量intY的值賦給整型變量intX”,不能讀成“intX等于intY,再比如txt_1.Text = 5,讀成“t將5賦給文本框txt_1的Text屬性”,等等。課前寫好的一些具有代表性的程序交給學(xué)生,要求每個(gè)學(xué)生都能按要求將程序“朗讀”出來。如果能持之以衡,這一做法的收效是非常明顯的。通過朗讀程序,能夠使一些原本很模糊的基本概念得到不斷地鞏固,逐漸地變得清晰。
6 結(jié)束語
教初學(xué)者編程,就像在一張白紙上描繪圖畫,你教給學(xué)生什么他就掌握什么。我們的目的不是培養(yǎng)程序員,尤其是當(dāng)我們的對(duì)象是高職高專學(xué)生的時(shí)候,我們更不能過高要求,因?yàn)槌绦蛟O(shè)計(jì)對(duì)他們來說是一種全新的知識(shí)結(jié)構(gòu),與他們以往掌握的知識(shí)結(jié)構(gòu)有很大的不同,既有很多抽象的概念要理解,還需要有一定的邏輯思維能力。我們只能希望幫助他們基本建立程序設(shè)計(jì)的思想,掌握程序設(shè)計(jì)中的一般概念,養(yǎng)成良好的編程習(xí)慣。這就需要教師在教學(xué)過程中不懈努力,尋求各種適合初學(xué)者的教學(xué)技巧,不斷地重復(fù),利用時(shí)間效應(yīng),來克服他們可能遇到的一個(gè)個(gè)障礙,提高學(xué)生掌握程序設(shè)計(jì)的效率。
收稿日期:2007-03-10
作者簡介:李群先(1963-),漢族,碩士學(xué)位,深圳職業(yè)技術(shù)學(xué)院講師,研究方向:計(jì)算機(jī)應(yīng)用。