劉硯
摘 要:程序設計課程的教學改革一直在持續,大量的新方法、新概念被運用,為課程改革提供助力。本文立足程序設計思想的發展變化,對當下程序設計課程教學現狀進行分析,并提出應對的方法,以期為程序設計課程教學改革提供新思路。
關鍵詞:程序設計? ? 教學改革? ? 編程思想
程序設計是一門開展教學時間較長的計算機類專業核心課程,各職業院校在程序設計方面的師資及教學資源都具有一定的儲備,也積累了很多教學經驗。
隨著計算機技術的發展,程序設計語言也在快速更迭,相關的課程內容也在同步更新。從早期的Fortran、Basic、C、C++到其后的Java、C#,再到現在最為流行的Python等,程序設計理念也不斷革新。筆者依據編程思想的發展變化,分析程序設計課程應重點把握的要點,對當下程序設計課程出現的問題與挑戰進行分析,并探討課程改革的切入點,以期為同類研究提供新的思路。
一、程序設計思想概述
(一)面向過程的編程思想
在越來越多的應用中,計算機的用途被不斷拓寬。當計算機不再僅僅是數學運算的工具,而可以處理更多復雜的業務時,語言也必然需要升級。高級程序設計語言被創造出來,更多的人能夠與計算機對話,更多的資源投入計算機程序設計過程,也就意味著有更多的思想注入其中。在程序設計的實踐中,工程師們結合工作與生活中積累的智慧,創建了面向過程的程序設計思想,按照業務邏輯自頂向下逐步解決問題,這是一種“自然而然”的思考模式,在很多場景中這種思想十分有效,這也成為很長時期內主流的開發思想。
(二)面向對象的編程思想
當業務邏輯變得越來越復雜,軟件維護的成本控制的難度也在快速加大,代碼的復用性和擴展性經受著極大的考驗。面向對象思想橫空出世,沖擊了傳統的編程思路,在實踐中顯示出與眾不同的優勢。這是一種從更高的角度審視問題,在大自然中汲取靈感,繼承、封裝與多態,用簡潔的概念詮釋復雜的機制、基于本質的探索歸結的方法。
二、程序設計課程的著力點分析
程序設計思想的發展過程,一方面基于計算機應用的需求變化,另一方面也顯示了人類求新求變的更高的追求。教師在程序設計課程的教學中,對于程序設計思想的發展過程應予以涉及。
(一)計算機硬件基礎
了解硬件才能更好地了解軟件。在程序設計課程學習過程中,對于計算機系統結構的理解水平在一定程度上會影響對于軟件系統知識的理解深度。這與計算機的發展過程具有緊密相關性。
(二)程序設計的意義
學習程序設計之前,先要了解程序設計的意義,明確學習路徑的設計模式。編寫程序一開始自然是為了解決某些問題,比如科學家通過復雜的數學運算來計算導彈的運行軌跡,或者開發一套系統工具為計算機用戶提供輔助。但是程序設計的意義不僅僅在于解決問題本身,更在于其過程。在進行程序設計的過程中,需要根據用戶的需求,將問題抽象,需要分而治之,還需要理清邏輯。通過上述過程,能讓程序設計者與問題的領域距離更近,可以進行更多跨界的嘗試,鍛煉邏輯思維能力。
(三)提高編程水平的方法
編程水平的提高離不開實踐,這和其他語言的學習有異曲同工之處,語言的習得必定要運用。實踐的方法有很多,基本離不開三件事:模仿、記憶、創新。這不是很特別的方法,但一定是有效的。仔細探究下去,會發現語言的學習不外乎以下這些步驟和過程。從最開始的拙劣的模仿,經過一段時間的練習,會形成有效的記憶,運用基本的語句會更加熟練,但是還會有很多部分不甚理解。再經過更長時間的重復練習,可以嘗試改寫甚至創建全新的程序,完全自主地運用自己的思想,從而達到新的階段。每一步都需要扎實的實踐,這是無法跳過的必然路徑。
(四)懂得程序之美
程序設計不是冰冷的字符集合,可以是有溫度的美的呈現。如果學習者在一開始就選擇優美的程序進行模仿學習,將更容易獲得鑒賞美的能力,之后在不斷的實踐中,發現更多的美,再進一步創建新的美。
三、程序設計課程教學現狀分析
(一)弱化硬件基礎教學
開設程序設計課程的專業,并未設置計算機硬件基礎的先導課程或實踐環節,學生缺乏對計算機系統結構的基本了解。這樣的現象并非罕見,在編程熱的當下,計算機硬件并未受到應有的重視。而對計算機有基本了解的人們應該意識到,軟件與硬件是缺一不可的,在學習時也是如此。不了解計算機硬件的原理,就無法從更深層次上理解程序的作用,將直接影響學習者能夠學習到的知識的深度。
(二)忽略課程意義的闡述
為了提高課程教學的效率,精簡課程內容,達到速成的目標,有部分程序設計課程“直奔主題”,讓學生直接上機實踐,認為在實踐中獲得經驗才是有益的。實際上,缺少對課程意義的理解,學生即使“熟練”地寫出了代碼片段,也不能表明其具有更高水平的設計思維。缺乏必要的導語,忽略為學生闡明課程的意義,將無法讓學生清晰地了解課程的知識會對其產生的影響,從而影響學生主動地接受學習相關知識。
(三)缺乏有效的練習
程序設計課程的練習題目是需要科學設計的,而不是簡單的量的堆積。目前的相關教材很大部分仍沿用傳統的習題內容,無視不同程序設計語言之間的差異,忽略不同編程思想的適用場景,沒有科學的循序漸進和統一的業務邏輯設計。這是由于沒有將習題的設計看作教學的重要環節。這樣的練習,無法形成有效的實踐。有的教師試圖使用題量來征服學生,認為量變產生質變,然而僅僅是量的堆積,缺乏針對性的指導,刷題的結果也只是事倍功半。
(四)輕視編程中的美育
程序設計課程普遍在工科專業中開設,因此有人認為程序設計以解決問題的效率為最高追求。在課程教學中,更多側重于問題的解決之道,很少提及程序設計過程中還有美的存在。這樣的課程設計往往不講求程序示例的優劣選擇,只將經驗擺出,或是借鑒其他教材中的范例,不做選揀,只要解決問題即可,沒有考慮代碼的可讀性,也不在意代碼的規范性,更不理會思想的多樣性。這樣的程序設計教學盡管看上去完成了任務,卻為學生的進階之路制造了諸多障礙。學生一旦習慣于散漫的編寫方式,忽略代碼的規范性和可讀性,在工作中將難以適應嚴格的開發標準,而再糾正的成本會成倍增加。
四、程序設計課程教學改革思路
(一)開設計算機硬件實踐課程
在計算機應用基礎類課程中應增加計算機硬件知識教學內容的占比,或者在條件允許的情況下開展計算機硬件實踐周活動。目的是讓學生充分了解計算機硬件的基礎知識及工作原理,借助實驗板讓學生動手操作機器指令的輸入,并觀察和分析程序運行的過程。學生在實踐的過程中,通過對實驗的操作與分析,能夠更好地吸收抽象的教學內容,并且深入地理解軟件與硬件協調一致的機理,這對其后續的程序設計課程的學習能夠產生積極影響。
(二)提高教師的理論水平
程序設計課程的教師不僅需要具有過硬的操作能力,也需要具有較高的理論水平。因為教師若想對學生闡明程序設計的內涵,并非僅僅會寫程序就可以了,還需要在大量實踐的基礎上凝結更多的思考,對程序設計有著合理且獨特的見解。這也要求教師不能剛看完幾本編程書籍、編寫了若干程序片段就匆匆上崗,應當以謙卑的精神,不斷地學習,持續地思考,不輟地實踐,方能給予學生更優質的引領。
(三)科學編選練習題目
教師對于因循守舊的練習題目要果斷拒絕,要充分了解不同編程語言的特性,循序漸進地編選習題,要提供不同層次的題目以滿足不同層次學生的需求。習題還應保持擴展性,這與軟件開發根據需求不斷地優化設計、擴展新的用途的實際相符。教師不應出于簡化工作的考慮設置標準的解答,要鼓勵學生創新思想和分享,發現更巧妙的思路,這也是學生學習如何形成自己的最佳實踐的有效途徑。
(四)注入美的教育
美的教育不應只局限在文學、藝術類課程中,任何一門學科都有各自的獨特之處和精致點,這便是美的源泉。
在進行程序設計過程中,代碼也可以是優雅的。教師首先應當了解優秀的代碼的樣子,然后才能為學生提供美的范例。學生通過比較可以直觀地了解優秀的代碼美在何處,其美在于形式,更在于思想,是內與外的和諧統一。每一段代碼的編寫都應踐行對美的追求,不是空談,而是扎實的實踐。學生在課程中獲得的審美能力,將幫助他們在生活中發現更多的美。
程序設計課程的教學不是新的課題,卻仍是需要關注的。因為講求效率,人們傾向于刪繁就簡,卻丟掉了最寶貴的思想內涵。而把一門課程當作一門藝術去追求,或許可以打開新思路。
參考文獻:
[1]柯琦,胡小春,李國祥,等.Python程序設計教學改革探討[J].科技視界,2021(27).
[2]陳貞.新工科背景下“Python程序設計”課程教學改革探討[J].西部素質教育,2022(3).
[3]黃志成.以提高編程技能為核心的程序設計教學改革研究[J].辦公自動化,2021(23).
[4]王芳,張睿,司玉杰.以提升程序分析與設計能力為導向的C語言程序設計教學改革研究[J].計算機教育,2020(9).
[5]謝凱,李靚,馮文祥.項目驅動模式下的面向對象程序設計教學改革研究[J].電腦知識與技術,2019(15).
(作者單位:天津輕工職業技術學院)