陳 光
(臺州學院電子與信息工程學院 浙江·臺州 318000)
隨著現(xiàn)代計算機技術朝著通用化、集成化、小型化方向快速發(fā)展,越來越多的電子產(chǎn)品依賴具備代碼執(zhí)行能力的半導體芯片作為系統(tǒng)驅(qū)動或控制的核心。對于電子信息工程專業(yè)的教師而言,為了保證高校教育符合社會需求,在培養(yǎng)學生掌握電路設計、信息處理等方面的知識之余,培養(yǎng)他們具備良好的軟件編程能力變得越發(fā)重要。電子信息工程相關的電子產(chǎn)品多使用例如MCU、DSP、SOC 等嵌入式微機開發(fā),不同于基于高級操作系統(tǒng)的軟件開發(fā),面向嵌入式微機的軟件開發(fā)需要考慮如何在有限的計算、存儲資源上高效地實現(xiàn)既定的功能,這對編程過程中合理使用數(shù)據(jù)結構提出了較高的要求。另一方面,隨著電子產(chǎn)品功能日趨多樣化、智能化,支撐它們運行的代碼規(guī)模也在快速膨脹,C 語言之余,C++、Java 等面向?qū)ο缶幊陶Z言由于其良好的代碼組織與復用特性越來越多地被引入相關產(chǎn)品的軟件開發(fā)。在上述背景下,在電子信息工程專業(yè)課程體系中越來越多的高校以選修或必修的形式開設了數(shù)據(jù)結構與面向?qū)ο缶幊谭矫娴恼n程,如筆者所在的臺州學院電子系從2015 級開始在學生培養(yǎng)計劃中設置“數(shù)據(jù)結構與C++”課程,在每學年的第一學期針對大二學生授課,課程以C++語言為載體傳授學生面向?qū)ο缶幊膛c數(shù)據(jù)結構方面的基礎知識。
近年來,地方高校積極朝著應用型定位開展轉(zhuǎn)型,很多傳統(tǒng)的理論、實驗教學模式已不再能很好地適應應用型人才培養(yǎng)的目標。對于地方高校電子信息工程專業(yè)“數(shù)據(jù)結構與C++” 課程,筆者在應用型教學過程中體會到如下問題:
(1)理論教學課時壓縮對教學帶來不利影響:應用型教學強調(diào)提升實踐環(huán)節(jié)在教學中的比重,在課程總課時不宜或不易改變的狀況下,這勢必導致理論教學課時的壓縮?!皵?shù)據(jù)結構與C++”課程包含了大量的知識點,在通過有限時間的理論教學為學生打好熟練應用知識基礎方面,傳統(tǒng)的理論教學模式已捉襟見肘。
(2)實踐教學缺少有效的監(jiān)督與能力促進機制:“數(shù)據(jù)結構與C++”課程包含大量上機編程實驗,它們是課程實踐教學的主要載體,若不能有效對學生的實驗過程進行督促,那實踐教學的效果將大打折扣,應用型教學的初衷也將淪為空談。然而,較為遺憾的是當前地方高校大多缺失助教制度(在研究型高校中,助教多由碩士研究生承擔),任課教師沒有辦法以一己之力完成對每位學生每個實驗的嚴格把關。
(3)大多數(shù)學生在主動學習上的積極性不高:相較研究型高校學生,地方高校學生在高考成績上多屬于中間層次,進入大學后,他們在課程學習的過程中大多表現(xiàn)為按部就班,更局限于接受課內(nèi)知識、完成教師布置的任務,缺乏主動思考、自學等方面的積極性,這限制了他們靈活運用知識的能力。
圖1 實驗選題范例
針對地方高校電子信息工程專業(yè)“數(shù)據(jù)結構與C++”教學中存在的問題及課程的特點,筆者在近兩年的教學過程中開展了以下幾個方面的改革探索。
(1)改進理論教學內(nèi)容與方式:為適應理論教學課時壓縮的現(xiàn)狀,在教學內(nèi)容上,考慮到學生在大一已充分完成C 語言的學習,針對C++語言的教學以其相較于C 語言的差異作為切入點開展教學,著重講解命名空間、引用、類、模板等新概念及它們的基本使用;針對學生相對陌生的數(shù)據(jù)結構內(nèi)容的教學,避免或弱化相對枯燥的常見數(shù)據(jù)結構在底層實現(xiàn)代碼上的講解,轉(zhuǎn)而強調(diào)它們的底層實現(xiàn)原理,同時強調(diào)它們的具體使用注意事項,例如元素增刪改找等基本操作的時間復雜度、適合的應用場合等。在教學方式上,選擇機房作為教學場所,采用教學主機屏幕分享至學生從機的模式,并盡量使用對知識理解更為友好的圖像或動畫方式開展教學,以使學生能清晰、快速地接受知識。同時,每次課通過釘釘進行直播錄制,課后及時向?qū)W生公布回放視頻、PPT 與擴展閱讀資料,方便學生在課后能夠獨立進行知識的查漏補缺與鞏固。
(2)實現(xiàn)理論教學與實驗教學的環(huán)節(jié)串聯(lián):打破理論與實驗安排在不同時間教學的傳統(tǒng),在每次課的前半時段進行理論教學,在后半時段進行實驗教學,實現(xiàn)微?;R教學,使學生能夠及時練習理論知識,并在課內(nèi)進行一定的練習,達到有效鞏固知識的目的。以2017 級的教學為例,每周1 次排課,剔除節(jié)假日,共安排了14 次課,教學內(nèi)容的安排見表1。每次課為3 課時,視理論內(nèi)容難度安排前一節(jié)或前兩節(jié)課進行理論教學,剩余節(jié)次進行相應的實驗教學,微?;c理論實驗串聯(lián)的教學模式保證了學生能夠以“少量多餐”的形式練習本課程的大部分重要知識點。
(3)建立合理的實驗考核機制:將實驗課從課內(nèi)延伸至課外,每次實驗課不強求學生必須在課內(nèi)完成實驗,并允許他們在課后規(guī)定期限內(nèi)遞交實驗代碼與實驗報告,一般期限為一周。同時,除根據(jù)學生遞交的實驗代碼與報告對學生進行考核外,每次實驗課后在當周還會利用學生空余時間安排一次隨機抽查驗收環(huán)節(jié),一般隨機抽查10 位同學,被抽查的學生會被問及代碼與原理上的細節(jié)。通過上述措施,可使得教師在實驗課內(nèi)可以免于在答疑者與驗收者兩個身份間來回切換,更加專注于課堂管理與現(xiàn)場答疑,同時課后抽查驗收環(huán)節(jié)的引入也能對部分慣于實驗抄襲的學生造成壓力,達到完善實驗考核、提高實驗教學質(zhì)量的目的。
表1 教學內(nèi)容安排
(4)探索提升學生學習積極性:主要通過引入如下兩種手段提升學生學習的積極性。首先,在理論和實驗教學中積極引入如數(shù)學表達式求解、銀行排號、迷宮求解等實際應用案例以及企業(yè)筆試、面試題的講解來展現(xiàn)課程的應用性與重要性,提升學生對課程的興趣;其次,在實驗題目安排時引入難度梯度與加分機制,每次實驗包含必做題和附加題,形式如圖1 給出了鏈表實驗,其中必做題為圍繞課內(nèi)知識的簡單應用題,附加題則要求能夠相對靈活地運用課內(nèi)知識或需要自學教師提供的擴展閱讀資料才能完成,完成附加題將給予一定的實驗加分,由此在保證絕大部分同學能夠順利完成任務的同時,激勵中前部的學生主動思考、主動學習。
(5)有效配合銜接后續(xù)課程:“數(shù)據(jù)結構與C++”的后續(xù)課程主要包括“可視化程序設計”“移動應用程序開發(fā)”等及相關的實訓課程。為配合后續(xù)課程的有效銜接,本課程選擇了免費、易用且功能全面的Visual Studio 社區(qū)版作為編程環(huán)境,在教學過程中有意識地穿插代碼格式化、排錯與調(diào)試方面方法與技巧的講解,并在與后續(xù)課程相關的知識點講解時予以說明與強調(diào)。
在地方高校電子信息工程專業(yè)“數(shù)據(jù)結構與C++”課程教學改革的過程中,筆者從地方高校應用型教學轉(zhuǎn)型的目的出發(fā),結合課程與學生的特點,進行了上述幾個方面積極的探索,在一定程度上解決或緩解了理論課時壓縮、實驗考核空泛、學生學習積極性不高等現(xiàn)有問題,提高了教學質(zhì)量,后續(xù)將從理論知識點鏈接、實驗選題優(yōu)化等方面進一步探索本課程的改革。