肖建力


摘 要 論述利用GUI編程提高學生編程興趣的必要性,討論GUI編程在提高學生編程興趣中的重要作用,并以MATLAB語言為例,詳細給出通過GUI編程提高學生編程興趣的具體的實施方案。
關鍵詞 GUI編程;MATLAB;編程能力
中圖分類號:G642 文獻標識碼:B
文章編號:1671-489X(2016)24-0136-03
1 引言
隨著數字時代[1]、物聯網世界的到來[2],大數據[3]、云計算[4]、人工智能[5]等技術正在發揮越來越重要的作用。這些技術的實現都依靠一個共同的手段——編程。編寫程序的能力是大學生職業發展最重要的能力之一,尤其是對于理工科學生來說更是如此。如今人們的衣食住行等都離不開手機和電腦,手機和電腦的功能正是通過安裝在其上的應用程序來實現的。此外隨著機器人技術的逐步發展,將來一些常見的、重復性的工作將逐漸被機器人所取代,而機器人的控制正是通過編程來進行。未來,隨著機器人的不斷普及,可以預見到,編程將成為人們普遍需要具備的能力之一[6]。
編程能力的重要性不言而喻,但是學好編程卻不是一件容易的事情。不少大學生一提到編程就頭痛,一上編程課就雙眼迷茫、腦袋昏沉、呵欠不斷,就是提不起興趣來。其最主要的原因在于:學生普遍覺得編程太過抽象和單調,由于大多數教師覺得對于學生來說,GUI(Graphical User Interface,圖形用戶界面)編程太難,上課時盡量避免講授,學生一般只能接觸到控制臺程序的編寫,只能通過冰冷的屏幕查看結果,而不會自己編寫界面實現友好的人機交互,提高編程的成就感,從而激發學習的興趣。為此,本文將重點討論GUI編程在提高學生編程興趣中的重要作用,以及介紹在MATLAB中GUI編程的具體實施方案。
2 GUI編程在提高學生編程興趣中的重要作用
常規的編程教學中,教師在講授編程時總是先講授該編程語言中的各種數據類型的定義、流程控制語句的用法、函數的編寫、類的實現等,最后再講授一些實際的例子,告訴學生怎么運用該編程語言解決實際問題。這一比較傳統的教學過程,雖然比較符合由易到難的教學規律,但是往往與程序員實際的編程步驟不一致。一個資深的程序員在編寫一個面向實際應用的軟件時,往往是從軟件的前端界面、后臺負責功能實現的源碼、前端界面與后臺的連接等三方面來考慮。如果學生不能夠站在一個程序員的角度來理解軟件編寫的具體實現過程,對于在未來工作中編程能力的提高、與其他程序的相互協作以及職業的發展將極為不利。
因此,在編程教學中,在課程的開始階段就應當以一個簡單而實際的例子向學生展示前端界面設計、后臺源碼編寫等兩個步驟的具體實現,使學生對如何編寫一個具體的軟件建立清晰的思路。在接下來的授課中,再按照上述的2個步驟具體講授這2個部分的具體編程實現。通過這樣的方式,使學生明白在編程課程上到底要學些什么,到底要達到什么樣的目標。學生只有明白了要做什么,用什么來實現這些目標,才能夠激發起學習的熱情和興趣。如果一上來就開始講授各種編程的語法和命令,學生往往充滿疑惑,不知道為什么要學這些語法和命令,也不知道這些語法和命令在具體的軟件實現過程中到底有什么用,從而缺乏學習的動力和毅力,甚至剛開始就放棄編程的學習。
3 通過GUI編程激發學生編程興趣的具體實施方案
接下來,將以利用MATLAB語言編寫一個多功能的計算器為例,描述通過GUI編程激發學生學習興趣的具體實施方案。首先,在教學開始時需向學生表明,本次教學的主要目的是通過MATLAB中的GUI編程實現一個多功能計算器。該計算器與常用的計算器的界面相似,但是除了常用的計算器所具有的功能外,還可以具有繪制函數圖形的功能,以此激發學生的好奇心,吸引學生的注意力。然后向學生提出問題:要實現這個多功能的計算器需要哪些步驟呢?通過與學生的問答互動,引導學生意識到要實現這樣一個多功能計算器,主要步驟包括:1)前端界面設計;2)后端源碼實現。隨后按照下述方式分別給出兩個步驟的具體實現過程。
前端界面的設計 在MATLAB207a的命令窗口中輸入命令guide,按回車后將彈出圖1所示對話框。
在主菜單欄中共有兩個選項:Create New GUI,創建新的GUI;Open Existing GUI,打開已經存在的GUI。這里選擇創建新的GUI,在該菜單欄下有4個子菜單。由于需要創建一個多功能的計算器,所以選擇Blank GUI(Default),
空白的GUI(默認)。點擊OK后則彈出圖2。在圖2中主要包含內置控件區、界面布局區。
從內置控件區選擇需要的控件,拖放到界面布局區,可以完成前端界面端的布局,如圖3所示。該界面的設計思路是:最上面的白色矩形區域是繪圖區域,綠色區域是計算結果展示區域,在兩個窗口的下方則是功能按鍵區。
后臺源碼的編寫 多功能計算器的原理是當按下某個功能按鈕后則執行對應的功能。在前面的步驟中已經繪制出界面中的各個功能按鈕,剩下的工作則是通過后臺源碼的編寫實現每個按鍵的功能。
MATLAB中通過每個控件的回調函數來實現每個按鍵的具體功能。先選中需要實現其功能的按鈕,然后點擊右鍵,選擇View Callbacks選項中的callbakc則跳轉到該按鍵的回調函數的編寫處。在此處編寫相應的代碼,實現該按鍵的功能。重復此步驟,完成所有按鍵的回調函數的編寫。點擊運行按鈕后則會彈出多功能計算器的操作界面。
在該計算器可以繪制一些簡單函數的圖形。在圖4中同時繪制出正弦函數和余弦函數的圖象。同時,該多功能計算器還具有一般計算器所具有的常見功能。
最后總結通過GUI編程實現一個多功能計算器的過程,并向學生拋出問題:前端界面編寫和后臺源碼實現需要具有哪些編程知識呢?通過與學生之間的提問和回答,引導學生明白:在編程的學習中要重點搞清楚該語言中的數據類型,實現流程的控制的基本方法,軟件的每個功能都是通過對應的函數來實現的;等等。這樣學生自然就明白在隨后的、深入的編程學習中要重點學習該語言中基本的數據類型、流程控制語句的用法以及函數的實現等內容,就明確了學習的目的,做到有的放矢,激發學習的熱情。
4 總結
本文首先重點討論了利用GUI編程提高學生編程興趣的必要性。隨著物聯網技術、大數據技術、云計算技術以及人工智能技術的迅猛發展,可以預見到編程能力在人們的日常生活以及工作中將越來越重要,編程能力將成為大學生尤其是理工科大學生需要掌握的一種核心能力。利用GUI編程可以提升剛開始接觸編程的學生的興趣,明確學習編程的目的和具體步驟,增強學習的信心。此外,本文以MATLAB語言為例,給出通過GUI編程激發學生學習興趣的具體方案。通過GUI編程實現一個多功能計算器,從而起到拋磚引玉的目的,激發學習編程的熱情。
參考文獻
[1]于穎,解月光.數字智慧:數字時代學生必備素養[J].電化教育研究,2016(3):13-19.
[2]田野,袁博,李廷力.物聯網海量異構數據存儲與共享策略研究[J].電子學報,2016,44(2):247-257.
[3]郭兵,李強,段旭良,等.個人數據銀行:一種基于銀行架構的個人大數據資產管理與增值服務的新模式[J].計算機學報,2016(39):1-19.
[4]黃少榮.云計算時代技術技能型IT人才培養模式研究[J].計算機教育,2015(6):12-15.
[5]陳愛斌,蔡自興,李建軍.林業院校人工智能課程教學的思考[J].計算機教育,2016(10):80-82.
[6]丁衛平,陳建平,管致錦,等.以程序設計課程群實踐教學改革為契機,培養地方普通本科院校學生編程創新能力[J].計算機教育,2009(20):10-13.