洪宇
摘要:目前,全國范圍內的教育改革已將高校本科生實踐能力的提升列為重要的發展目標。本文將結合計算機軟件領域的人才需求,針對程序設計與實踐教學中存在的問題展開討論。重點闡述一種漸進式的實踐教學方法,嘗試將程序語言、數據結構和算法三門系列課程的內容,統一地融入工程實踐環節,促進學生的系統化和工程化思維模式。
關鍵詞:程序設計實踐;數據結構;算法;編程語言;漸進式教學
中圖分類號:G642.41 文獻標志碼:A 文章編號:1674-9324(2017)38-0267-02
互聯網與大數據時代背景下,國內和國際的信息化處理行業,對具有計算機軟件專業知識背景和工程實踐能力的高校畢業生有著廣泛而持續的需求。但是,應屆畢業生在工程實踐方面的短板卻廣受詬病,具有堅實理論基礎而不具備實際開發經驗的畢業生往往欠缺競爭優勢。目前,高校已著力開展產學研合作,并增設工程實踐為重心的新課程,旨在“趁熱打鐵”,通過激勵在讀學生將所學知識應用于實際工程開發,增進知識的直觀理解和應用技巧[1]。
本文針對計算機程序設計與實踐的教學方法展開討論,重點研究綜合關聯課程(數據結構、算法和編程語言)的前提下,如何有效實現一種工程實踐的漸進式教學方法,將多門相關課程的內容在系統化的工程實踐過程中,相互結合,協同運用,并由淺入深地授予學生。
一、傳統程序設計教學中的知識孤島與無序流程
本節首先簡單介紹計算機主修課程的教學與實驗內容,然后分析相互之間的關系,最后指出不足。
1.程序設計相關課程簡介。目前,在計算機本科生教學大綱中,與程序設計緊密相關的課程包括數據結構、算法和編程語言。數據結構是一門分析數據表示、關系與組織的課程。比如,命名實體(人、機構和地理)與屬性的文字串或數值一經前端程序提取,需要建立一種方便表示與存儲的泛化而通用的結構體,承載由樣本至結構的賦值,支持后續使用時的提取與高效運算。算法是一種控制計算流程的方法學,其核心目標是提高計算機完成特定任務的計算效率。比如:給定一個存儲隨機整數的數值集合,如何快速查找其中最大數值并輸出,即為一個算法問題。編程語言是人類語言與機器語言的中間層,扮演人類與機器對話的重要角色,其核心是將人類命令轉化為機器可理解的信號,從而形成控制流,驅動造作系統調用計算機硬件完成存儲與計算。
2.程序設計相關課程關聯關系。數據結構與計算機硬件有著密切的聯系,學生在設計特定數據的架構化表示時,需要考慮內存的承載能力和CPU的運算特點,以此保證內存的節約使用,以及計算過程調取數據的高效準確[2]。算法與數據結構有著重要的聯系,存儲數據的結構模式和存儲方式,往往決定算法最優解的選擇。編程語言往往是數據建模和算法流程的一種可見可控且機器可讀可解的簡化表述。總體上,數據結構用于操作對象的表示與存儲,算法用于操作與計算流程的優化,編程語言對數據結構和算法進行描述,并控制運算單元執行指令。三者有著緊密的關系。
3.程序設計教學中有待解決的問題。目前由嚴蔚敏編輯的《數據結構C語言版》嘗試將編碼、結構和算法統一到一套教材和授課過程當中,展現了系統化教學的主流趨勢。但是,將教學過程映射至實踐過程,仍存在如下有待解決的問題:①知識點孤立:實踐強調系統模塊的協作,現有教學局限于特定功能所需的結構、算法和編程的局部特性,知識點內容內聚,缺少開放性。②局部視角:學生往往實現相互孤立甚至無關的功能,或者隸屬不同應用背景和項目需求的獨立模塊,無法嵌入大型系統進行協作,從而,學生的開發過程也欠缺全局視角,流暢性不佳;③流程無序:開發過程欠缺流程性思考,對難易程度各不相同的系統模塊,欠缺優先級判斷,開發設計布局往往混亂。
二、漸進式程序設計實踐教學方法
針對上述問題,本文提出一種漸進式教學方法,并應用于相關課程學習完成后立刻開展的實踐環節,旨在以一種清晰、流暢且易于理解的方式,快速提升知識系統化教學的效果和學生的實踐能力。該方法包括五個組成部分:(1)應用項目與系統的框架學習;(2)評測模塊實現;(3)簡易功能流水線實現;(4)對比實驗與性能分析;(5)功能模塊優化與強化學習。
1.系統框架設計交互式教學。作為第一個實踐步驟,系統框架學習過程要求指導教師清晰地給出系統需求分析,并針對需求給出整體系統的設計思路,這一過程首先由學生自主設計系統框架,并最終由教師經過討論、修正與完善,在師生交互過程中透徹授予學生全局的系統架構意識和功能劃分理解。
2.點對點系統評測與實現。在進入實際系統功能模塊設計與實現之前,指導教師驅動學生獨立思考輸入與輸出模式,以及滿足系統需求的正確解。在這一過程中,學生將人工收集、調查和標記數據,直接接觸機器將要處理的數據對象,并對系統輸出的正解給出人工的判定和標記,增強學生對項目本源問題的直觀了解,尤其是該階段將推動學生編寫程序,形成評測數據的功能模塊,比如:實現檢驗系統輸出精度與效率的計算單元。
3.功能流水線開發。針對系統框架內包含的各個功能模塊,驅動學生快速完成數據結構和算法流程設計,并逐一編程實現。要求從輸入流到輸出流,系統可運行。這一過程指導教師不干預學生設計,不對系統功能設計的合理性進行判定,只對編碼異常和邏輯錯誤進行檢查與修正。
4.實驗與分析。利用第二部中設計實現的評測單元,對學生開發完成的簡易系統進行性能評估。針對系統性能和優缺點展開分析,尤其通過系統整體評測和局部模塊評測,透徹解析缺陷與不足,除了結合實際問題和功能需求分析方法學中存在的問題,也需緊密依托數據結構和算法知識,對各個模塊數據表示、處理和計算進行深度解析。
5.功能模塊優化。通過實驗分析階段,指導教師和學生共同獲知系統全局與局部的問題和缺陷,在此基礎上,實踐教學進入逐步優化系統模塊的階段。教師將推動學生,根據發現的問題,提出新的模塊設計方案,在實現新的功能模塊后,立刻進入新的實驗與評測階段,對系統性能進行評價,并總結發現的新問題。這一方式針對所有存在問題的模塊進行,并迭代循環,不斷提升系統整體性能。
三、調查與評估
本文作者針對這一教學方法進行了實際考核與評估,并根據對比實驗,獲得了第一手教學質量的小規模檢驗報告。本節即匯報這一成果。
評估對30名本科畢業生展開,通過問卷調查,對未經系統化知識授予(A類)、具備系統知識但未進行500行以上代碼編寫訓練(B類)、知識和編程經驗過關但未經漸進式教學實踐(C類)、經過嚴格漸進式實踐(D類)和上述三項基礎課程(數據結構、算法和編程語言)存在掛科現象(E類)的同學進行考察,以企業開發經驗面試通過率(1表示全部面試通過,0.66表示三次中有一次未通過,0.33表示三次中有兩次未通過,0表示全部沒通過)為標準,評價上述A-E類人員的學習成果。
表1顯示了各類參評人員的人數和通過率分布情況,其證明了漸進式教學存在的顯著優勢。
四、結論
經過對比試驗,經過系統化漸進式程序設計實踐的學生能夠較好地迎合企業的人才需求,證明了系統實踐過程本身和由淺入深實踐方法的重要價值。
參考文獻:
[1]鄭春龍,邵紅艷.以創新實踐能力培養為目標的高校實踐教學體系的構建與實施[J].中國高教研究,2007,(4).
[2]黃麗達,趙歡,楊科華,劉彥.計算機組成與結構課程教學的探討與實踐[J].計算機教育,2016,(10).endprint