趙 斐,楊吉斌,曹鐵勇,徐 勇
(1.陸軍工程大學 指揮控制工程學院,江蘇 南京210007;2.陸軍工程大學 通信工程學院,江蘇 南京210007)
新世紀以來,我軍以越來越開放的姿態面對世界,軍事外交已成為我國外交工作的重要組成部分。其中,為外軍培訓現代化的指揮和技術人員,是一項非常重要而有意義的工作。外訓的培訓質量直接影響我軍的國際聲譽。相較于傳統意義的本科培訓,外訓從人員組成、培訓目標和方法手段等各種方面都有著自身的特點,簡單地將常規課程的培養模式復制到外訓教學中,往往會造成效率低下、目標模糊、方法不適等,難以達成外訓的目標。為了達到優良的培訓效果,外訓課程的實施需要依據外訓工作的特點,結合各課程的自身規律,進行深入的課程設計。
準確定位人才培養目標,是做好任職培訓的關鍵[1]。計算機和網絡工程專業的培訓目標是使學生具有運用計算機與網絡技術的基本理論和方法,發現、分析、處理實際問題的意識和品質;滿足獨立從事計算機系統維護、網絡運行維護、網絡設備保障的工作需求;勝任相應的裝備保障或網絡運維的參謀工作崗位。這些崗位側重于學生對信息系統的建設、謀劃、維護、管理等方面工作的宏觀掌控能力,側重于學生運用信息系統遂行通信、安全等工作的任職能力。因此,專業任職培訓的目的并不是要學生成為優秀的軟件工程師或者程序員,而是具有更高能力要求的任職,這對程序設計與數據結構課程的教學設定了更高的目標。
除此之外,外訓學生還存在前期教育程度不同、專業分布不均、年齡跨度大、能力素質不齊等諸多特點,讓各層次的學生都能煥發學習熱情、學有所得是教師面臨的難題。
針對上述問題,重新審視程序設計與數據結構課程的教學工作,將任職能力培養的需求落實到課程教學目標,提出更有針對性的教學目標:通過本課程的教學,學生能夠具備利用計算機來解決實際問題的思維模式,掌握用計算機來解決實際問題的常見思路,培養學生從程序的角度分析問題、解決問題的能力,提高學生信息素養,為達到任職培訓的總體目標打下良好基礎。
利用計算機編程解決實際問題,需要經過問題分析、程序設計、編程實現的環節,每個環節的完成都需要對應能力的支撐。解決問題前必須將問題分析清楚,包括確定程序目標、合理分解任務、明確輸入和輸出,此時并不需要考慮具體語言的種類。程序設計需要考慮怎樣用程序達成目標,如設計流程、組織數據、構造算法等,這個環節是解決問題過程中最難的一部分,跟語言有一定的關系,但并不依賴于某種具體語言。編程實現是把算法翻譯成某種具體語言的過程。
外訓學生的培訓需求主要面向管理崗位,涉及實際問題的分析與解決。因此,基于計算思維進行問題分析和程序設計兩個環節是本門外訓課程的教學重點和難點,教學效果將直接影響學生利用計算機來分析問題、解決問題的思維模式和實踐能力的培養。教師宜在教學過程中牢牢把握利用計算機解決實際問題的初衷,偏重于這兩個環節的引導和訓練,逐步形成課程教學與能力培養的協調關系。
“項目牽引式”的教學模式以建構主義教育思想為指導,合理定位教與學的關系,將教學內容寓于不同階段的項目任務中,師生的教與學都圍繞這些項目來展開,整個教學活動最終被模擬成“在用戶需求中完成特定項目”[2]。工作、生活中有很多實際問題,如校內班車查詢、圖書管理、學生綜合素質評定等,都可以考慮使用計算機技術來幫助解決,把這些問題提煉為計算機編程項目,采用項目牽引的方式,組織課程教學。
把計算機技術引入實際問題的解決中,是學生形成使用計算機解決實際問題的思維模式的開端;將實際問題抽象成計算機可解決的項目并將其解決的過程,是訓練學生進一步具備用計算機來解決實際問題的思路和能力的過程。
1 )項目選取及分解。
為了提高學生的學習積極性,課程盡量選取貼近工作和生活的問題作為項目;為了學生全面掌握知識,所選項目應具有一定復雜度和對課程知識點的覆蓋度。
“學生綜合素質評定系統”包含系統登錄、提示和功能導航、學生信息管理、學生成績管理、信息導入和導出等功能,某些功能還可以進行分解,如圖1所示。選取該系統作為貫穿教學始終的整體性項目,理論授課和實驗授課都緊密圍繞該項目展開。這一項目與每位學生息息相關,且該項目所設置的功能能夠覆蓋到大多數知識點,兼顧普適性和難易度。

圖1 學生綜合素質評定系統
2 )能力培養為主線的教學思路。
按照教材章節依次學習各知識點,從獨立案例逐漸積累程序設計經驗,進而學習復雜項目的解決方法,這種方案有利于學生更細致地學習知識點,但不利于學習者從整體上把握學習對象。為了更好地達到本課程的教學效果,授課伊始,我們就傾向于直面問題,引導學生思考該問題可否通過計算機解決,需要解決哪些問題,求解需要哪些知識。整個過程采用自頂向下的方式,將復雜問題分解為相對簡單的問題,將各個簡單問題的求解集成復雜問題的求解。在這個過程中建立學生對知識的系統性認識,給學生一個解決問題的整體思路,潛移默化地培養學生分析問題、解決問題的能力。
結合程序開發過程,項目求解過程分為兩個主要階段:總項目分解和子項目求解。如圖2所示,在總項目分解時,學生需要分析項目需要完成的功能、滿足的需求,以此確定程序目標和功能模塊劃分。在這一階段,問題分析偏重大的功能需求;程序設計偏重總體的設計策略,不涉及具體實現的步驟。通過這個階段的學習,學生可以初步建立問題分析和程序設計的概念。
在子項目求解階段(見圖3),教師引導學生對子項目的功能進行細化,形成功能模塊,完成代碼編寫。在這一階段,問題分析更偏重細節,包括當前項目涉及的數據類型、存儲方式和具體算法等工作;程序設計偏重于問題求解的步驟,畫出模塊的流程圖。在這個階段的學習過程中,子項目的難度依次增加,通過反復講解、訓練,逐層遞進地提升學生的問題分析、程序設計的能力,最后通過代碼實現的訓練加深學生對程序設計的總體理解。

圖2 總項目分解

圖3 子項目求解
3 )項目牽引下的內容設置。
本課程以C語言作為教學語言,常見的C語言教材大都按照語言結構分類知識點,各個知識點相對獨立,學生不易形成知識框架。知識只是工具,并不是學習的全部目的,為了更好地貫徹項目牽引的教學思路,我們以完成項目為目標,從解決問題的角度尋求所需的知識,變從知識出發到從問題出發,有目的性地學習知識。
如圖4所示,根據求解難度,我們對子項目進行排序,分成簡單項目、中等難度項目和較高難度項目3層。以項目求解為主線,將知識點進行分解,按照項目所需來重組各種概念,形成與項目分層對應的內容分層。在求解項目過程中,將原來相對獨立的知識融合在一起,讓學生形成一個基本框架,形成問題分析、程序設計、代碼實現的整體思路[3]。

圖4 基于分層設計的內容設置
簡單項目是指目標比較清晰、程序結構簡單、數據類型單一的小項目,如“提示與功能導航”模塊,需要簡單流程控制、簡單數據類型和處理等基礎知識;中等難度項目是指程序流程控制較為復雜,數據類型多樣的小項目,如系統登錄、成績排序等模塊,需要分支、循環、數組等中等難度知識;高難度項目是指程序流程控制復雜、數據存儲多樣化的小項目,如動態增刪學生信息、信息導出等模塊,需要動態鏈表、文件等高難度知識。
根據各難度項目覆蓋的知識點將授課內容分為基礎知識、中等難度知識、高難度知識3個層次,如表1所示。
在基礎知識部分,考慮到C語言程序的結構本質上就是函數,最簡單的C語言程序也必須以函數的形式存在,我們首先講解函數的概念,并使用函數。C語言包含豐富的運算符,本部分先講授基本算術運算符,其他的運算符如關系運算符、邏輯運算符等放在后面相應的部分講。通過基礎知識部分的學習,學生可以建立簡單的知識框架,從宏觀上理解C語言程序設計,應用C語言解決簡單問題,滿足解決簡單項目的需求。
中等難度知識的學習強調學為所用,只要學生學習足夠解決本層問題的知識即可,不急于講授所有的分支和循環控制的語句。為了配合分支和循環語句,本部分講授關系、邏輯等運算符。通過本層知識的學習,學生可以控制程序中語句的執行順序,構建靈活性較高的程序,操作同類型的大量數據值,滿足解決中等難度項目的需要。
在高難度知識的學習中,學生進一步學習數據結構和程序控制的知識。在前期學習的基礎上,學生已經掌握了程序設計的基本框架,具備了一定的理解力和自我學習的能力,此階段的很多知識的學習可以一點即通。通過本層知識,學生可以使用高階的數據結構和程序控制編制更有效率的程序,滿足解決高難度項目的需要。

表1 知識分層表
4) 組內分層互助的教學方法。
外訓學生基礎不同,綜合素質差異較大,為了達到盡快縮小差異,共同進步的目的,實驗教學和課后學習采用組內分層互助的教學方法,具體實施環節始終遵循團隊合作、互幫共進、教師指導的原則[4]。
(1)團隊合作。根據作業情況、課堂表現、語言能力、宗教信仰等綜合情況將學生進行分組,每組3~4名同學,確保每組內兼有不同層次的同學。在實施小項目的時候,每位成員輪流擔任小項目組織者,采用串行或并行的方式合理安排項目流程的階段分工,帶領組員完成項目。在整個過程中,小組每位成員都對本組成績負責,會強有力地促進學生之間的互動和激勵。
(2)互幫共進。在每個小組內,綜合素質較好、學有余力的同學在幫助他人的同時,也可鞏固所學知識,提高組織、協調能力;表現較弱的同學可得到來自老師和同學的雙重幫助。小項目完成后,每組由上期綜合表現較弱同學匯報最終成果,根據匯報情況,老師給出小組所有成員的成績。該成績為小組所有成員成績,以此促進小組內部互幫互助。
(3)教師指導。在教師引導下,組內同學充分討論小項目解決方案,突破關鍵點理解瓶頸,共同分析問題,給出某種算法、畫出流程圖。在實驗過程中,每組同學往往能給出不同的解題思路,教師可引導學生開闊思路,理解并分析不同思路的優缺點。
5 )教學效果。
教學實踐表明,項目牽引式的教學模式滿足了學生系統性學習的需求,教學內容的重組滿足了學生重復性、漸進性的學習需求,分組教學方法滿足了學生團隊互助、克服差異、共同進步的需求。學生參與度明顯提高,學習氛圍濃厚;學生普遍反映教學設計新穎,教學效果好,問題解決能力得到提升;學生在工程碩士入學考試中普遍取得了較好的成績。
項目引導式的教學模式,提倡先進的教學理念、配套的授課內容和合理的教學方法,力圖使外訓學生們學有所得,學有所用。實踐表明了項目引導式教學模式的可行性及有效性,通過實踐的不斷深入及教學措施的不斷改進,相信這種教學模式會在程序設計與數據結構課程的外訓教學中發揮越來越大的作用。
[1]殷信橋, 伊洪冰, 王亞鵬, 等. 任職培訓學員創新能力培養探析[J]. 硅谷, 2010(22): 135.
[2]劉細發, 夏家莉. 基于建構主義指導下的“項目牽引式”教學模式初探[J]. 電化教育研究, 2007(8): 65-67.
[3]胡斌, 李陽, 周迪斌, 等. C程序設計課程的框架式教學法[J]. 計算機教育, 2013(10): 92-96.
[4]祁薇, 徐東, 楊健, 等. 分層次教學在外訓基礎教學中的應用[J]. 計算機教育, 2015(6): 86-88.