



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于五導法的程序設計課程群教學研究與實踐基于五導法的程序設計課程群教學研究與實踐
文章編號:1672-5913〔2022〕05-0089-03
中圖分類號:G642
1背景
程序設計課程群包含的課程主要有程序設計根底〔C語言〕、數據結構、面向對象程序設計〔Java語言〕、程序設計課程設計等,是計算機專業的基石。這些課程之間存在緊密的依存、遞進關系。對于廣闊的地方高校來說,發展程序設計課程群的教學研究,就是研究這些課程知識的“教法、學法、用法、創法〞。文章將從教與學著手,探討在教學中的所用、所感、所思、所改。
2五導法
所謂“五導法〞就是在教學過程中進行的導教、導學、導思、導用、導創。
2.1導教
2.1.1知識點化繁為簡
對于地方院校來說,計算機類專業人才培養方案中通常會先講授程序設計根底〔C語言〕、再講授數據結構、最后講授最流行的面向對象語言――Java。在這些課程中存在大量的根本語法、原理和技巧,譬如:C語言的輸入輸出格式控制、運算符、敘述式、運算規那么、賦值語句等,靈活多樣;數據結構中指針的使用無處不在;Java語言中包含權限的交叉融合、對象與引用的多態性等。對于初學者來說,教師必須采取有效的策略,比方選擇性講授,即先講授最常使用的知識、應用方式,且大量運用演示法、案例法,讓學生在實例中逐步理解、掌握、熟悉;再逐步延伸,增加深度和廣度;最后還需要有畫龍點睛的總結。
在C語言教學中,假設只顧及語法知識的全面性、完整性,將會導致顧此失彼、欲速而不達的結果;假設只注重算法,而輕視、無視根本語法,將導致程序代碼的編寫寸步難行、錯誤百出。所以,要秉持語法夠用的原那么。
在數據結構課程中,大量的教材在講述順序線性表時,都是直接采用動態申請連續空間的方式來存儲線性表中的元素[1]。這種方式顯著地增加了學生學習的難度。為什么不先講述使用靜態的數組來存儲元素,再過渡到動態的存儲方式呢?所以,教師講授時要化繁為簡、由易及難、逐步深入,遵循循序漸進的認知規律。
2.1.2思維的轉化
雖然程序設計的算法來源于數學,但不能照搬數學思維。
譬如:三個數如何求最大值。數學思維使用的是三個單分支的if語句,且每個if語句中的敘述式都是由兩個與運算符連接三個關系敘述式構成的;而程序設計思維使用的是一個賦值語句、兩個單分支的if語句,且每個if語句中的敘述式只是一個簡單的關系運算。顯然,后者不僅效率高,而且運用了程序設計中經常使用的一種技巧和思維,即“若第一個數就是最大值〞[2]。
數學思維向程序設計思維的轉變,需要一個過程、一段時間,需要培養。
在程序設計教學的推進過程中,還存在著一個程序的main函數向多個子函數的轉變〔即程序模塊化〕、過程化程序設計向對象化程序設計的轉變等,這是思維的轉變,也是教學的難點。
2.2導學
2.2.1量變到質變
學習沒有捷徑,只有經歷大量的代碼練習,才能保證編程水平質的提高。對于常用算法必須爛熟于心,日積月累,才能熟練生巧,才能應用,才可能有創新。
2.2.2課堂內外“三步曲〞
每一門課程,教師必然對其有著深入的研究;每一節課,課堂上的教學內容必然是豐盛的,重點和難點必然是清晰的。因此,需要學生課前預習、課上專心、課后復習。只有做到了課前預習,課堂上的學習才會是有的放矢;只有做到了課后復習,才能穩固課堂知識。所以,只有真正做到了“課前預習、課上專心、課后復習〞的課堂內外三步曲,才能實現高效課堂。
2.2.3“三動〞學習法
在實際教學中,教師發現,程序設計的初學者,在閱讀自己或他人編寫的程序代碼時,采取的方式只是“動眼〞,即用眼睛死死地盯著程序代碼行中的各個符號。這樣僅僅了解單個敘述式、單條語句的外表意思,而不可能分明變量值的變化、哪些語句被選擇或被循環執行了,也就搞不清變量、敘述式、語句的真正作用和含義,當然不能歸納出程序的功能,也得不出程序的正確結果。
正確的做法是:拿出筆、攤開紙,依照程序語句的次序,認真地手工執行程序代碼,把每個變量當前的值記錄下來,如果存在循環,那么把循環體重復執行3~5次,這樣才能清晰掌握每個變量值的變化情況、每條語句的執行情況,進而推導、得出程序的功能或結果。也就是說,對于一段程序、一個算法,只有手工執行,才能理清其執行過程、功能。
因此,在學習程序設計時,務必堅信不勞而獲是天方夜譚,務必時刻執行勤能補拙,務必每小題實踐著“三動〞學習法,即“動手、動腦、動眼〞[3]。
2.3導思
2.3.1思考的廣度
自頂向下、逐步求精,是程序設計的原那么之一。任何復雜的問題都可以找到簡單的原理或者雛形。
譬如:3個整數求最值、10個整數求最值、數組求最值、選擇排序等。這些問題的求解包括從順序結構到選擇結構、到一重循環、到二重循環;從單一的main函數實現到使用子函數實現。從這個例子可以看出,只有深刻理解求最值的雛形,才能順利向廣度推進。
再譬如:使用線性表實現各種匯合運算,對順序存儲來說根本操作就是元素的移動〔即選擇性賦值〕,對鏈式存儲來說根本操作就是鏈的連接〔即指針賦值〕。
2.3.2思考的深度
在求最值的例子中,包含著這樣一個拓展的問題:如何求解一個數組中的最大值和次大值。一種算法是這樣的:max1=max2=a[0];
for〔i=1;iif〔max1max2=max1;
max1=a[i];
}
elseif〔max2}
但這個算法存在Bug,即如果第一個數就是最大值,那么求出的次大值是錯誤的。修正Bug的方式有多種。從此例可以得出:要保證算法的正確性,必須多方測試,特別是邊界、極限、特例等問題。
對于求最值的問題,如何使用面向對象的思維來求解呢?如果是在main主辦法中直接對數組求最大值,而沒有定義任何其他成員變量和成員辦法。這樣的話,就完全沒有運用面向對象的思維。正確的思維是:類中包含相應的成員變量、成員辦法,盡量通過成員辦法去操作成員變量。問題的關鍵是類中包含幾個成員變量最適宜呢?需要幾個重載的構造辦法呢?解答了這些問題,設計出的類才具有普適性、重用性,才是真正面向對象的思維。
2.3.3思考的維度
隨著學習的不斷深入、知識的不斷積累,隨之而來的是思考的深度、廣度以及維度。解答一個問題可能有多種算法,通過多維度的思考、比擬、分析,才能挑選出最清晰、最高效的算法。
譬如:1-2+3-4+...…-100
解答這個問題有多種辦法,如每次把符號位乘以-1、判斷當前項的奇偶性、把奇偶項分開計算、使用模運算來確定符號位、使用位與運算來確定符號位等,關鍵點在于實現各項的正負相間。這些辦法中最后一種辦法無疑是最“高大上〞的。
思考是建立在對相關知識熟練掌握根底之上的,否那么就是緣木求魚、胡思亂想。
2.4導用
學習的目的不是為了考試,是為了應用。
譬如:在C語言中,模運算〔即%〕的意思是兩個整數相除,〔商是整數〕取余數。根本應用有奇偶數的判別、素數的判別、整數各位數字的別離等,進一步的應用有求最大公約數、數學黑洞等,高級應用有模冪運算、孫子問題〔中國殘余定理〕、凱撒密碼等[4],這些都是模運算的經典應用。在近年廣受關注的群眾化競賽“藍橋杯全國軟件和信息技術專業人才大賽〞中,也不乏模運算應用的試題。
在模運算的應用從低級到中級、再到高級的過程中,往往是混合多方面知識的綜合應用,應用絕對不是生搬硬套,而是建立在模仿、思考根底之上的。
2.5導創
應用的升華就是創新,或者說應用的最高境界就是創新。教、學、思、用都是為創新效勞的。在“群眾創新、萬眾創業〞的時代背景下,讓學生廣泛參與到各級各類競賽、創業、創新活動中,以賽代練,在活動中學習、思考、應用、創新。
3教學資源和平臺
為保證“五導法〞教學方式的順利實施,構建了三維的教學資源和平臺。
借助精品課程教學資源、網絡資源,進行教學資源的二次開發,形成特色鮮明的校本教學資源,建設成理論教學“點資源〞、實踐教學“線資源〞、網絡共享課程“面資源〞的教《W資源體系。在教學中推行分類教學平臺,實現資源匯集;在實驗教學中實現理論學習與實踐的對接;利用幕課平臺和資源,實現學分認證;利用共享課程資源發展翻轉課堂學習。多維的教學資源和教學方式,滿足和豐盛了學生多元化學習的需求和開展。
4結語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論