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