黃天羽,嵩 天
(北京理工大學 計算機學院,北京 100081)
面向計算機、軟件工程、信息類專業(yè)低年級開設(shè)的程序?qū)嵺`類課程,往往因為學生基礎(chǔ)較薄弱,而無法實現(xiàn)多領(lǐng)域知識的思維引導和綜合能力的培養(yǎng)。軟件工程基礎(chǔ)訓練是面向軟件工程專業(yè)大學低年級開設(shè)的實踐類課程,課程的培養(yǎng)目標是在實踐周內(nèi),使得學生在具備程序設(shè)計基本能力基礎(chǔ)之上,進一步開展軟件工程訓練和實踐,以實現(xiàn)學生程序基礎(chǔ)、領(lǐng)域興趣和綜合能力三者統(tǒng)一的培養(yǎng)目的[1]。因此,如何在短期內(nèi)達到這一目標,將成為本文教學改革嘗試主要解決的問題。
為配合十三五建設(shè)“雙一流”本科人才培養(yǎng)的計劃實施[2],根據(jù)一流大學的本科教育整體要求,積極利用國家精品在線開放課程的優(yōu)秀資源,開展校內(nèi)實踐課程《軟件工程基礎(chǔ)訓練》進行混合教學,將線上的“Python 程序設(shè)計”(國家精品在線開放課程)[3]和“Python 系列專題課”[4]相結(jié)合,開展“1+N實踐型”課程的MOOC/SPOC 混合教學模式研究,即通過1 門基礎(chǔ)課和N門專題課,實現(xiàn)對學生程序基礎(chǔ)、領(lǐng)域興趣和綜合能力的培養(yǎng)。
大學本科低年級的程序?qū)嵺`類課程的先修課一般是程序語言設(shè)計基礎(chǔ)。程序語言設(shè)計基礎(chǔ)是“大學計算機”課程的核心,也是培養(yǎng)綜合能力的重要手段。然而,程序設(shè)計類課程的教學實踐遇到了如下一些問題。
問題1:程序設(shè)計語言的教學和綜合能力培養(yǎng)之間存在矛盾。傳統(tǒng)語言學習在抽象程序與邏輯思維的基礎(chǔ)上,兼顧了程序在計算機上的運行性能。對于學生來說,花費大量時間在學習語法規(guī)則上,忽略了自身綜合能力的培養(yǎng),面對具體應(yīng)用問題無從下手。程序設(shè)計語言的學習,更應(yīng)關(guān)注培養(yǎng)學生的計算思維能力,即利用計算思維的思考方式來求解實際的科學問題,是信息時代對新一代大學生綜合能力培養(yǎng)提出的更高要求。
問題2:傳統(tǒng)程序設(shè)計語言教學存在“理論聯(lián)系實際”的局限性。從教學實踐中發(fā)現(xiàn),經(jīng)過32~64 學時的傳統(tǒng)程序設(shè)計語言教學,學生普遍能夠編寫百行左右的代碼,而這種規(guī)模代碼通常只能完成數(shù)學問題的求解,很難讓學生們應(yīng)用于解決工作和生活中遇到的普遍問題。特別是隨著計算機和信息技術(shù)的普及,我們的身邊出現(xiàn)了眾多有趣、有用的軟件,而學生的作業(yè)和這些軟件程序存在著巨大的差距,解決實際生活工作中的問題是學習程序設(shè)計的原動力。
問題3:程序設(shè)計的教學內(nèi)容與計算機技術(shù)發(fā)展不匹配?!皵?shù)據(jù)分析與展示”“科學計算和可視化”“網(wǎng)絡(luò)爬蟲與信息提取”“游戲設(shè)計開發(fā)”這些領(lǐng)域的應(yīng)用早已出現(xiàn)在人們的生產(chǎn)生活中,然而對于學習過程序設(shè)計的學生,甚至是經(jīng)過計算機專業(yè)大學4 年學習的學生,都很難完成相關(guān)領(lǐng)域問題的解決。新的程序設(shè)計語言和開放的程序設(shè)計思想很少被引入大學教學中,程序設(shè)計教學需要隨著計算機技術(shù)發(fā)展而改進,這是面向計算生態(tài)[5]應(yīng)用的Python 語言引入本課題教學內(nèi)容研究的根本原因。
上述3 個問題的本質(zhì)皆因程序設(shè)計教學內(nèi)容與方法在培養(yǎng)學生綜合能力方面存在不足。由于學時不夠、教學內(nèi)容專業(yè)性很強,客觀產(chǎn)生了學生們“學習編程但不能解決實際問題”的情況。隨著普通計算機的性能逐漸強大,計算性能不再是求解問題瓶頸,而學生計算思維能力的培養(yǎng)才是計算機程序教學關(guān)注的核心。因此,著力培養(yǎng)學生綜合能力更應(yīng)關(guān)注程序設(shè)計語言的實操性,關(guān)注求解問題的實用性,關(guān)注培養(yǎng)學生的計算思維能力,超越對程序的執(zhí)行性能、代碼的高復用性或某一個特殊系統(tǒng)中視窗設(shè)計的關(guān)注,讓學生可以在真正掌握編程語言的同時輕松解決生活中的實際問題,這是本論文教學改革和研究的主要目的。
“1+N實踐型”課程的MOOC/SPOC 混合教學模式是指充分利用多個優(yōu)秀在線課程資源,通過翻轉(zhuǎn)課堂的形式,在實踐課程內(nèi)開展MOOC/SPOC 混合教學。通過一門國家精品在線課程作為程序基礎(chǔ)學習,充分考慮學生學習興趣的多樣性,通過N選1 門的領(lǐng)域?qū)I(yè)課程開展領(lǐng)域?qū)I(yè)知識的學習,在課堂內(nèi)開展引導性的討論、答疑和過程評價,從而在較短的實踐課程教學期間達到綜合能力培養(yǎng)的目標?!?+N實踐型”的MOOC/SPOC 混合教學模式如圖1 所示。

圖1 面向綜合能力培養(yǎng)的程序?qū)嵺`課程MOOC/SPOC 混合教學模式
“1+N實踐型”課程的MOOC/SPOC 混合教學模式的優(yōu)勢明顯,既融合了實體課堂與在線教育的翻轉(zhuǎn)課堂混合教學模式,又平衡了課堂內(nèi)講授與實踐型的課程教育模式,把握了鞏固教學效果和掌握教學節(jié)奏的關(guān)鍵。具體優(yōu)勢體現(xiàn)在:
(1)實踐型MOOC/SPOC 翻轉(zhuǎn)課堂的混合教學模式,極大地解決了學時不夠、課堂時間難以使學生掌握知識點、理論與實踐集中講授占用大量時間等實踐型課程的典型問題。通過MOOC/SPOC 的在線學習,課堂上重點為答疑、擴展、深入和實踐。教師在整個課程中起引導和學習過程監(jiān)督作用。
(2)“1 門基礎(chǔ)”精品課的MOOC/SPOC 翻轉(zhuǎn)課堂混合教學模式,共享由全國的優(yōu)秀教師精心準備和講授的課程內(nèi)容和教學資源。通過精品課完成基本語法的在線學習,輔以程序在線評測或虛擬實驗平臺,學生可以進一步鞏固基礎(chǔ)知識,課堂上重點為概念內(nèi)涵的討論和答疑解惑,教師在該部分的課程中真正起到了提綱挈領(lǐng)的作用。
(3)“N 門領(lǐng)域?qū)n}”的MOOC/SPOC 翻轉(zhuǎn)課堂混合教學模式,在實踐教學時間內(nèi),學生結(jié)合自己個人的領(lǐng)域興趣,有選擇地精修某1 門領(lǐng)域?qū)n}課,同時鼓勵有精力的學生開展多門領(lǐng)域?qū)n}課的學習。興趣是學習最大的動力,對低年級學生接軌專業(yè)領(lǐng)域的學習和培養(yǎng)解決實際問題的能力起到了促進作用,從而實現(xiàn)對學生的綜合能力培養(yǎng)的目的。在該模式下,課堂上重點為興趣領(lǐng)域?qū)嵺`項目的開展,教師在該部分的課程中主要為答疑解惑、方向引導、過程監(jiān)控、組織協(xié)調(diào)和質(zhì)量評價。
“1+N 實踐型”課程的MOOC/SPOC 混合教學模式特別適用于以Python 為編程語言的實踐型課程。Python 語言是面向計算生態(tài)的程序設(shè)計語言,本論文的教學改革研究希望傳遞“理解和運用計算生態(tài),培養(yǎng)集成創(chuàng)新思維,實現(xiàn)綜合能力培養(yǎng)”的理念。
《軟件工程基礎(chǔ)訓練》作為實踐課程,具有如下特點。
(1)授課對象是軟件工程專業(yè)大學一年級,作為典型的程序設(shè)計專業(yè)學生已具備程序設(shè)計基礎(chǔ),例如已經(jīng)學習了一門程序語言,但缺乏應(yīng)用程序開發(fā)能力。分析原因為傳統(tǒng)語言自身特點決定了僅通過基本語法的學習不能滿足學生對多樣性應(yīng)用程序開發(fā)的愿望,因此支持計算生態(tài)應(yīng)用的Python 語言成為該課程的首先編程語言。
(2)課內(nèi)教學時間短且集中,北京理工大學校內(nèi)課程學習時間為40 學時,其中包括8 授課學時和32 實踐學時,為了充分利用好課內(nèi)學時,結(jié)合學生興趣,達到最好的實踐能力培養(yǎng)效果,“1+N”的MOOC/SPOC 混合教學是目前適合我校實踐型課程最優(yōu)的教學模式。開展線上線下混合教學,保證了學生在實踐期內(nèi)圓滿完成課程內(nèi)容,并達到培養(yǎng)興趣和綜合能力的目的。
(1)實踐型課程MOOC/SPOC 混合教學模式研究。針對已經(jīng)掌握1 門編程語言(如C 語言)的學生,可以采用“1+N”的MOOC/SPOC 混合教學模式實踐型課程教學方法。探索出一種結(jié)合網(wǎng)絡(luò)課程、針對短期、密集、實踐課程的高效率高效果教學模式和方法,研究線上資源的學生利用方式、課堂研討的教師利用方式、適用于翻轉(zhuǎn)課堂的教學方案及課內(nèi)學時、實踐學時、作業(yè)學時方案等。
(2)設(shè)計并實踐MOOC/SPOC 混合教學模式的《軟件工程基礎(chǔ)訓練》課程體系。以《軟件工程基礎(chǔ)訓練》為實踐課程為例,設(shè)計一套“1+N”的MOOC/SPOC 混合教學模式實踐型課程教學大綱。通過“1 門”線上精品課程的MOOC/SPOC來學習Python 程序設(shè)計基礎(chǔ),“3 選1”的線上專題課程學習自己最感興趣的領(lǐng)域編程知識,開展線上線下混合教學。
(3)提供《軟件工程基礎(chǔ)訓練》課程教學資源。包括教學PPT、教學案例集、實驗指導書等,具體教學資源結(jié)合網(wǎng)絡(luò)爬蟲、游戲開發(fā)、數(shù)據(jù)可視化等應(yīng)用領(lǐng)域知識,并在Python123 自動評測平臺[6]上構(gòu)建了相關(guān)習題庫。
《軟件工程基礎(chǔ)訓練》課程時間為3 個階段,分別為語法基礎(chǔ)學習階段、專業(yè)領(lǐng)域軟件實踐階段、編碼和答疑階段。以2016 級學生為例,介紹3 階段課程的教學開展情況。
第1 階段為語法基礎(chǔ)學習周,通過課堂內(nèi)Python 語言學習方法和重點語法講授,與國家精品在線課《Python 語言程序設(shè)計》SPOC 學習,學生基本掌握了Python 語言程序設(shè)計語法,第1階段結(jié)束通過Python123 在線評測系統(tǒng),學生在線程序評測百分制成績?yōu)?2.3%。
第2 階段開展專業(yè)領(lǐng)域軟件工程實踐,鼓勵學生在中國大學MOOC 在線專題課“Python網(wǎng)絡(luò)爬蟲與信息提取”“Python 游戲開發(fā)入門”“Python 數(shù)據(jù)分析與可視化”“三選一”的線上學習,并以1~2 人小組為單位規(guī)劃自己感興趣的軟件工程項目,包括但不限于上述3 門課程所在應(yīng)用領(lǐng)域。課程共組成100 個開發(fā)小組,其中游戲38組,圖形繪制項目34組,網(wǎng)絡(luò)爬蟲14組,其他應(yīng)用14 組,涉及手寫體識別、繪圖板、車牌識別、微信機器人、鋼琴模擬器等。學生的選題充分體現(xiàn)了學生興趣的多樣性,如圖2 所示。

圖2 軟件工程項目選題多樣性分析
第3 階段為項目主要編碼和答疑階段,通過組織多次討論和交流,學生們在課程結(jié)束時完成了規(guī)劃的軟件工程項目,并提交了項目文檔報告和項目代碼。根據(jù)學生的自評價統(tǒng)計,目標完成度達到96%。
分析傳統(tǒng)程序設(shè)計教學與綜合能力培養(yǎng)的差距,提出了“1+N 實踐型”課程的MOOC/SPOC混合教學模式研究,并闡述了該教學模式的優(yōu)勢。我們通過將線上的“Python 程序設(shè)計”(國家精品在線開放課程)和“Python 系列專題課”相結(jié)合,開展了軟件工程基礎(chǔ)訓練混合教學模式的教學內(nèi)容和教學方法研究。教學改革和實踐表明,課程教學內(nèi)容合理、吸引力性強,達到了學生程序基礎(chǔ)、領(lǐng)域興趣和綜合能力三者統(tǒng)一的培養(yǎng)目的。