周立軍,呂海燕,劉 凱
(海軍航空大學(xué) 航空基礎(chǔ)學(xué)院,山東 煙臺 264001)
大學(xué)計算機基礎(chǔ)課程是軍隊院校學(xué)員入校后首先接觸的公共基礎(chǔ)課程之一,該課程對學(xué)員實現(xiàn)“由民到兵”轉(zhuǎn)變,構(gòu)建任職崗位能力基礎(chǔ),具有先導(dǎo)性和基礎(chǔ)性的重要作用。近年來,隨著軍隊院校大學(xué)計算機基礎(chǔ)課程由“知識輸出”向“能力導(dǎo)向”的轉(zhuǎn)型[1],Python 語言成為貫穿課程教學(xué)的主線,計算思維培養(yǎng)成為教學(xué)目標(biāo)。在此背景下,構(gòu)建適應(yīng)軍隊人才培養(yǎng)要求的Python程序設(shè)計教學(xué)案例就成為教學(xué)過程中必不可少的環(huán)節(jié)。傳統(tǒng)的程序設(shè)計教學(xué)案例往往采用的是諸如水仙花數(shù)、百錢買百雞等經(jīng)典算法教學(xué),課堂代入感不強,學(xué)員感到迷茫,更無法調(diào)動其積極性和創(chuàng)造力,大大影響了教學(xué)效果。采用基于問題驅(qū)動與能力導(dǎo)向相結(jié)合的思路進(jìn)行教學(xué)案例設(shè)計,以“教為戰(zhàn)、研為戰(zhàn)、學(xué)為戰(zhàn)”為根本遵循,將學(xué)員未來任職崗位實際與教學(xué)案例相結(jié)合,引導(dǎo)學(xué)員融入課程教學(xué)活動,培養(yǎng)良好的計算思維,正是解決上述問題的有效途徑。
問題驅(qū)動教學(xué)法建立在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上,以具體問題為教學(xué)的出發(fā)點,通過學(xué)生主動探究、協(xié)作學(xué)習(xí),教師充分引導(dǎo)、及時反饋,達(dá)到教學(xué)目標(biāo)[2]。其特征可以概括為“問題為核心,學(xué)生為主體,教師為主導(dǎo)”,其教學(xué)模式如圖1 所示。
圖1 基于問題驅(qū)動的教學(xué)模式
軍隊院校基于能力導(dǎo)向的問題驅(qū)動教學(xué),關(guān)鍵在于問題的設(shè)計。在選擇案例問題時,要保證問題的教學(xué)理論知識能夠和實際的軍事訓(xùn)練工作互相結(jié)合,這樣有利于極大地調(diào)動學(xué)員的學(xué)習(xí)積極性,激發(fā)學(xué)員的學(xué)習(xí)興趣,提高其提出問題、分析問題以及解決問題的能力。
我校的大學(xué)計算機基礎(chǔ)課程以Python 語言為載體,以信息表示和信息處理作為主要內(nèi)容線索。信息表示主要介紹數(shù)值信息和字符、聲音、圖像等非數(shù)值信息的表示方法;計算機系統(tǒng)是信息處理的基礎(chǔ),計算機網(wǎng)絡(luò)與數(shù)據(jù)庫為信息處理基本應(yīng)用,借助程序設(shè)計語言進(jìn)行問題求解,提升學(xué)員計算機信息處理能力。結(jié)合計算機軟硬件的基本原理及典型問題求解過程,引導(dǎo)學(xué)員理解計算機科學(xué)的基本概念,體會計算之美。在教學(xué)過程中,本課程組通過挖掘教學(xué)內(nèi)容與任職崗位職業(yè)特點之間的內(nèi)在聯(lián)系,設(shè)計出了針對性的教學(xué)案例。見表1。
表1 大學(xué)計算機基礎(chǔ)課程問題設(shè)計與能力導(dǎo)向
針對Python 程序設(shè)計基礎(chǔ)的教學(xué),我們摒棄傳統(tǒng)的知識講解、語法灌輸模式,而是以案例問題為牽引,將教學(xué)過程劃分為4 階段,即:認(rèn)識、會讀、會寫、會解決[3]。認(rèn)識階段,通過演示“軍人體質(zhì)指數(shù)BMI”圖形用戶界面程序案例,學(xué)員參與親測,了解Python 語言的基本語法、數(shù)據(jù)類型和解決計算問題的基本 IPO(輸入、處理、輸出)模型。會讀階段,通過拆解上述案例、解釋語句的含義、演繹解決問題的過程,形成“程序=算法+數(shù)據(jù)結(jié)構(gòu)”的認(rèn)識。會寫階段,以“飛行安全評價”問題為牽引,進(jìn)行程序控制結(jié)構(gòu)的訓(xùn)練。教學(xué)中,通過介紹飛行員飛行安全評價標(biāo)準(zhǔn),編寫程序?qū)崿F(xiàn)對飛行員在同一時期的飛行安全指數(shù)計算。飛行安全指數(shù)算法的編寫分為3 部分:對飛行員發(fā)生的不安全行為進(jìn)行判定(分支結(jié)構(gòu)訓(xùn)練);不安全行為風(fēng)險程度和飛行員危險指數(shù)的計算(順序結(jié)構(gòu)訓(xùn)練);對某名飛行員危險指數(shù)進(jìn)行離差標(biāo)準(zhǔn)化,得到飛行安全指數(shù)(循環(huán)結(jié)構(gòu)訓(xùn)練)。會解決階段,基于上一階段形成的成果,在此基礎(chǔ)上提出新的問題:統(tǒng)計不同飛行員在不同時期的飛行安全指數(shù)計算(函數(shù)設(shè)計),并使用第三方庫(Matplotlib、Turtle 等)進(jìn)行圖形繪制。
通過問題驅(qū)動,學(xué)員在學(xué)習(xí)實踐過程中,一方面能快速掌握Python 編程的基礎(chǔ)知識,給學(xué)員留下“Python 語言簡單易學(xué)、生態(tài)資源豐富”的良好印象;另一方面,較快地融入任職崗位實際,樹立飛行安全意識,筑牢使命責(zé)任思想根基。
計算思維的培養(yǎng)是大學(xué)計算機基礎(chǔ)課程的教學(xué)目標(biāo),通過教學(xué)主要培養(yǎng)學(xué)員采用抽象、分解、遞歸等方法來解決復(fù)雜問題的能力[4-6]。教學(xué)實踐中,我們采用“紅藍(lán)方對抗評估”這一軍事訓(xùn)練中常見的活動作為問題案例,訓(xùn)練學(xué)員的計算思維。
紅藍(lán)對抗過程中,雙方的實力水平(假定有其他方法事先確定)、對抗次數(shù)和評判規(guī)則將決定評估的結(jié)論,這一評估過程并非靠一個簡單的算法實現(xiàn),而是需要較為復(fù)雜的程序結(jié)構(gòu)控制實現(xiàn)。教學(xué)中,帶著這一問題,按照“自頂向下”的程序設(shè)計過程,引導(dǎo)學(xué)員從問題輸入輸出確定開始,整體設(shè)計逐漸向下進(jìn)行。每一層以大體算法描述開始,然后逐步細(xì)化成代碼,細(xì)節(jié)被函數(shù)封裝,整個過程可以概括為4 個步驟:①將算法表達(dá)為一系列小問題;②為每個小問題設(shè)計接口;③通過將算法表達(dá)為接口關(guān)聯(lián)的多個小問題來細(xì)化算法;④為每個小問題重復(fù)上述過程。程序編寫完后,采用“自底向上”的方法進(jìn)行測試。圖2 為“紅藍(lán)方對抗評估”案例的Python 程序設(shè)計方法。
圖2 基于Python 的紅藍(lán)方對抗評估程序設(shè)計
通過一系列的思維訓(xùn)練,學(xué)員逐漸體會到計算思維的兩個本質(zhì)——抽象和自動化,即對于客觀世界中的某個可計算問題,要映射到計算機世界去求解,通常需要兩個步驟:一是將待求解問題抽象為可計算的概念模型(抽象);二是將概念模型用物理的計算機世界來實現(xiàn)與求解(自動化)[7]。形成計算思維的初步能力后,學(xué)員能更好地對現(xiàn)實復(fù)雜問題進(jìn)行科學(xué)判斷、科學(xué)計算,并運用到將來的實際崗位中。
數(shù)據(jù)挖掘主要有以下幾個步驟:定義挖掘?qū)ο?、?shù)據(jù)收集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)挖掘、評估和表示[8-9]。Python 具有豐富的第三方庫支持?jǐn)?shù)據(jù)的挖掘與分析。教學(xué)中,將“航空發(fā)動機故障預(yù)測”這一部隊實際訓(xùn)練中存在的客觀現(xiàn)實問題作為案例[10],引導(dǎo)學(xué)員們進(jìn)行小組攻關(guān)。教學(xué)訓(xùn)練流程及關(guān)聯(lián)知識見圖3 所示。
圖3 基于Python 的發(fā)動機故障預(yù)測項目設(shè)計流程
通過數(shù)據(jù)挖掘技術(shù)的學(xué)習(xí),學(xué)員們一方面能掌握數(shù)據(jù)庫相關(guān)技術(shù)(SQL 語句、Python 訪問數(shù)據(jù)庫),了解Python 處理科學(xué)計算問題的方法和途徑;另一方面掌握了裝備保障過程中的科學(xué)判斷依據(jù),即從大量的航空發(fā)動機維修數(shù)據(jù)中發(fā)掘有用的知識,利用這些知識構(gòu)建數(shù)學(xué)模型,通過輸入航空發(fā)動機的狀態(tài)信息,預(yù)測和分析航空發(fā)動機未來發(fā)生故障的概率,提前進(jìn)行維修和保養(yǎng),盡量避免發(fā)生故障,保證飛機的安全。
大學(xué)計算機基礎(chǔ)課程的教學(xué),盡管有很多可供挖掘的崗位應(yīng)用案例,但其教學(xué)過程必須遵循循序漸進(jìn)的原則。教學(xué)中,要充分考慮學(xué)員的能力基礎(chǔ)、學(xué)習(xí)精力和關(guān)聯(lián)課程(如高等數(shù)學(xué)、線性代數(shù)、大學(xué)物理)的安排進(jìn)度,避免刻意而為之。對于基礎(chǔ)性的知識,還是應(yīng)以經(jīng)典的教學(xué)方法、案例為主;對于復(fù)雜的教學(xué)案例,應(yīng)靈活采取小組分工、課外實踐等形式,避免占用課內(nèi)過多的教學(xué)時間用于案例解讀,而影響教學(xué)效果。
計算機課程具有實踐性和應(yīng)用性強的特點,如果講授的案例不是來源于實際,就成了無本之木、紙上談兵。名師必曉于實戰(zhàn),貼近崗位實際的案例,一方面來源于已出版的書籍資料,或是上級機關(guān)、兄弟部隊提供的有關(guān)報告;另一方面是教員通過到部隊代職調(diào)研,參加科研攻關(guān)、重大演習(xí)演練、評審和出訪等途徑進(jìn)行挖掘、建立的教學(xué)案例庫[11]。因此,經(jīng)常性深入部隊開展崗位實踐,是教員擴充案例來源、增強課堂設(shè)計帶入感的重要途徑。通過深入部隊實踐,把部隊已經(jīng)成功解決的難點和重點問題展現(xiàn)在課堂上,把部隊的所做、所想、所需體現(xiàn)到課堂上,使學(xué)員在具體的案例破解中學(xué)有所得。
軍隊院校大學(xué)計算機基礎(chǔ)課程一般按照48學(xué)時課內(nèi)+24 學(xué)時課外開展教學(xué),且課外學(xué)習(xí)時間中,有大部分是用來訓(xùn)練辦公軟件使用的環(huán)節(jié)。由于課程涉及的知識體系龐雜,往往需要學(xué)員投入大量課外時間進(jìn)行實踐學(xué)習(xí),因此,良好的實踐教學(xué)平臺(如Educoder 實訓(xùn)平臺、“雨課堂”等)和充足的機房開放時間是提高教學(xué)效果的有力保障。
在軍隊院校教學(xué)改革向部隊靠攏的大背景下,軍校課程的教學(xué)設(shè)計必須要向“倒逼式”轉(zhuǎn)換,以部隊崗位需求為起點,經(jīng)過部隊崗位經(jīng)驗的提煉吸收及轉(zhuǎn)化,形成知識傳授給學(xué)員。我?;趩栴}驅(qū)動與能力導(dǎo)向的大學(xué)計算機基礎(chǔ)課程教學(xué)改革目前已經(jīng)在2018 級本科學(xué)員中實踐1 年,教學(xué)中,遵循“面向問題、引發(fā)興趣、培養(yǎng)能力、引導(dǎo)創(chuàng)新”的理念[12],設(shè)置和建構(gòu)與崗位對接、與戰(zhàn)場對接、與未來對接的課程教學(xué)案例,培養(yǎng)學(xué)員的崗位任職和戰(zhàn)場適應(yīng),取得了良好的效果。多名學(xué)員先后在ACM 程序設(shè)計大賽、人工智能挑戰(zhàn)賽、大數(shù)據(jù)挑戰(zhàn)賽中取得優(yōu)異成績;同時,通過學(xué)員赴部隊實踐和訓(xùn)練所反饋的情況看,2018 級學(xué)員的信息素養(yǎng)和適應(yīng)部隊的能力均較往屆有了較大提升。我校大學(xué)計算機基礎(chǔ)課程教學(xué)改革實踐經(jīng)驗,為加強軍隊院校人才培養(yǎng)質(zhì)量提供了借鑒。