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