張建生 張小紅
【摘? 要】通過這種啟發式教學方式,最大限度地誘導學生對編程語言的認知建構以及達到靈活運用,幫助學生本質地理解編程,培養延展思維精神和發現創造能力,把握住了程序設計思想的靈魂,學生就可以深入到算法設計的核心。
【關鍵詞】增減變異;步步擴展;模式
How to use heuristic education in programming language
Zhang? jiansheng? Zhang xiaohong
Jiangxi? University of Engineering,? Xinyu 338029 China
【Abstract】Through this heuristic education, we can fully lead the students to recognize the programming language so as to use neatly and help the students to understand programming basically and cultivate their creative ability. If the soul of program design is grasped, the students will be deep into the core of algorithm design.
【Key words】 Increase or decrease the variation? ? Step growth? ?Model
引言
在多年的高職院校教學實踐中,針對學生文化基礎普遍偏低的特點,筆者探索出以下幾種方法,可以最大限度地誘發學生的創新思維,現以可視化VB編程語言為藍本,結合具體例子加以印證。
1.增減變異法
概述:引導學生增減源程序代碼或調換代碼句的次序,使之產生不同的結果。這種方法比較適合于初學編程的學生。初學編程時,學生對某一程序設計的思路往往是比較清晰的,但是編寫程序代碼時就會感到茫然,即使在教師的指導下完成代碼的編寫,對程序代碼的函數使用、語法結構和代碼的次序等也是知其然而不知其所以然。在教學中,我們讓學生對源程序代碼進行增減,對代碼的次序進行變換,使學生悟出怎樣編寫代碼才能達到程序設計目標? 的道理,誘發學生的創新思維。例如,在講授一個“二維圓孔色彩動畫”的程序設計之后,我們讓學生增減代碼和變換代碼的次序,結果有三種類型的結果較有新意:
教師講授例
Private sub? command1_click()
Dim? i? as integer
For? G=0? to? 255
For? i =200 to 1300
Circle(1400,1400),i, RGB(0,G,0)
Next
Next
End sub
Private? sub command2_click()
Unload me
Private? sub? command1_click()
Dim? i? ?as integer
For G= 0 to 255
For? i=200 to 1300 step 50
Circle(1400,1400),i,RGB(0,G,0)
Next
Next
End sub
Private sub command2_click()
Unload me
End sub
2.步步擴展法
概述:以某一講授內容為中心,運用舊知識使所講授的內容逐步延伸。這種方法可是使學生在獲取新知識的同時,一方面鞏固已學過的知識,另一方面培養廣闊性的思維,誘發創新思維。從人的思維品質諸多因素來看,廣闊性是一個重要的因素,廣闊性的程度越高,發散思維頻率就越高,發散思維頻率越高,創新性思維的成分就越大。
例如,講授“Timer控件”的使用,我們不是簡單地講格式時間的呈現,而是運用其他的控件、圖片和文字等一步一步拓展,引導學生設計一個主要由“Timer控件”主導的文字動態的程序。
程序如下:
Private sub check1_click()
‘設置label1背景為透明
Label1.backstyle=0
‘設置Label1為無邊框格式
Label1.borderstyle=0
If check1=1 then form1.width=8000: label1.width=6000
Label1.height=1000:label1.left=1000:label1.top=1100
Label1.caption=”知識就是力量”:label1.font=”黑體”
Label1.fontsize=30
Label1.forecolor=Qbcolor(15)
Label1.visible=true:check2=0
If? check1=0? then form1.width=4000
Label1.visible=false :check2=0
End sub
Private? sub check2_click()
Dim i, j as integer
If check2=1 then label1.top=1
For i=10 to 110
For j=1 to 120
se=1:label1.top=format(se,”00”)
if check2=0 then Timer1.Enabled=false
Next
Next
End? sub
Private sub Timer1_Timer()
Static se as integer
Timer1.interval=1000
End sub
3.總結
學生的延展性思維強度往往大于成年人,但是學生的思維擴展性又往往是非取向的、跳躍式的,這又會在一定程度上影響思維的質量,特別是影響創新思維的發展。究其原因,一是與知識、生活經驗的積累有關;二是與運用知識的能力有關;三是與思維的密度和思維的系統性有關。我們的教學就是要針對這些原因有的放矢,使學生的創新思維得以不斷發展。
基金項目:本文系2019年江西省高等學校教學改革研究課題: 基于學習通平臺的“線上+線下”混合式教學應用研究-以C語言為例(立項編號:JXJG-19-28-4 );? 江西省高校人文社會科學研究2019年度項目基于學習通平臺的”翻轉課堂”教學模式研究-以Java課程為例(立項編號:JY19113 )階段性研究成果。
作者簡介: 張建生(1973~ ),男,江西峽江人,副教授,軟件工程碩士,研究方向:計算機編程。
張小紅(1974~),男,江西新余人,副教授,研究方面:計算機軟件。