崔煥慶 彭延軍
摘要:針對當前程序設(shè)計語言類課程教學難以實現(xiàn)知識、能力、素質(zhì)培養(yǎng)目標的問題,分析現(xiàn)有教學方式存在的弊端,提出“三位一體”的觀點,從培養(yǎng)目標、教學內(nèi)容、教學環(huán)節(jié)和學習過程4個角度闡述“三位一體”的含義,介紹教學案例的設(shè)計原則,提出實現(xiàn)全面過程監(jiān)控的實踐教學方案,并說明實踐效果。
關(guān)鍵詞:程序設(shè)計課程;案例驅(qū)動;合作學習;過程監(jiān)控
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2018)44-0110-03
程序設(shè)計語言類課程是計算機類專業(yè)的專業(yè)基礎(chǔ)課,是數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)等計算機核心課程的前導(dǎo)課[1]。該類課程著重使學生理解和掌握程序設(shè)計的基本知識,具備較強的程序設(shè)計能力,養(yǎng)成良好的編程素養(yǎng),達到知識、能力、素質(zhì)“三位一體”的全面發(fā)展。
近年來,將計算思維貫徹于程序設(shè)計語言類課程教學中已成為大家的共識,提出了基于計算思維的教學目標、教學內(nèi)容和教學方法的改革方案[1,2]。2012年以來,大規(guī)模在線開放課程即慕課(MOOC)在全球范圍內(nèi)迅速普及,我國也隨之開展計算機教育的“MOOC+SPOC+翻轉(zhuǎn)課堂”教學模式的推廣應(yīng)用[3-6]。2014年,復(fù)旦大學張學新教授提出了“對分課堂”的教學模式[7],并在《C++程序設(shè)計》的教學上得到了應(yīng)用[8]。這些新的教學理念和方式的核心在于將“以教師為中心”的教學模式轉(zhuǎn)變?yōu)椤耙詫W生為中心”的教學模式,充分發(fā)揮學生的積極主動性,增加學生在教學過程中的參與度,在教學中取得了很好的成效,發(fā)揮了巨大作用。
雖然這類教學方式在小班制教學中有著突出的成效,但是目前很多普通高校多采用大班制,數(shù)十人甚至上百人的合班教學過程中,如何更充分地發(fā)揮先進教學理念的作用,實現(xiàn)知識、能力、素質(zhì)的全面發(fā)展,仍是亟需解決的重要問題。
一、傳統(tǒng)教學模式的弊端
傳統(tǒng)的程序設(shè)計語言課程教學中,課堂教學占2/3甚至更多的學時,一般都是利用多媒體課件先介紹相關(guān)基礎(chǔ)知識,再介紹幾個基本的例題鞏固一下;而上機操作僅占少量學時,通常是在課前給學生布置一定的實驗任務(wù),學生編程解決一些問題,最后提交實驗報告;除此之外教師也會布置一些作業(yè)要求學生在課下完成。作為一門實踐性很強的課程,這種教學模式有如下弊端。
1.理論與實踐教學不連貫,知識傳授與實踐環(huán)節(jié)脫節(jié)。灌輸式的教學模式雖然保證了知識的系統(tǒng)性,但是學生只是被動接受,不了解所學內(nèi)容在一個完整程序中的作用,知識支離破碎;實驗或作業(yè)雖然能讓學生得到一定訓練,但時間有限,學生只能完成很少的練習,而且無法將實驗與課堂所學聯(lián)系起來。
2.忽視了教學過程的有效監(jiān)控,不能掌握學生的實際水平。傳統(tǒng)教學只能通過實驗報告或作業(yè)來考查學生的學習效果,不能監(jiān)控學生完成實驗或作業(yè)的過程,部分學生應(yīng)付、抄襲、編造實驗或作業(yè);對于多合班的課,教師也不可能批改全部作業(yè)。
3.缺乏綜合性和創(chuàng)新性的實驗環(huán)節(jié),學生團隊合作意識薄弱,創(chuàng)新能力嚴重不足。雖然實驗環(huán)節(jié)中通常會布置1個綜合性實驗,但是在2個學時內(nèi)學生不可能完成,也無法保證學生在課下用心去做,而且沒有形成團隊。
4.忽視了學生水平參差不齊的現(xiàn)狀,不能實現(xiàn)個性化學習。近年來,多合班上課比較普遍,面對70—120人左右的學生,他們的水平差距很大,容易產(chǎn)生兩極分化。
二、“三位一體”的教學模式改革
(一)“三位一體”教學模式的含義
如圖1所示,從培養(yǎng)目標、教學內(nèi)容、教學環(huán)節(jié)和學習環(huán)節(jié)四個維度,提出了“三位一體”的教學模式。
培養(yǎng)目標方面,在顧麗紅等所提出的融入計算思維的培養(yǎng)目標[2]的基礎(chǔ)上,從知識、能力、素質(zhì)三個方面進行了進一步分析,分為基本目標和強化目標,具體如表1所示。
培養(yǎng)目標決定了課程教學內(nèi)容的取舍。應(yīng)以要求學生滿足表1中的“基本要求”為主,以“強化要求”為輔。為此,將教學內(nèi)容分為基礎(chǔ)知識、核心知識和拓展知識三部分?;A(chǔ)知識面向沒有任何編程基礎(chǔ)的學生,介紹編程的基礎(chǔ)知識;拓展知識面向?qū)W習進度快、成績好的學生,介紹一些常用算法和項目開發(fā)的基本知識。
在教學環(huán)節(jié)上,課前準備根據(jù)學生學習進展來確定需要介紹的知識及深度、廣度,教學環(huán)節(jié)應(yīng)以案例式教學為主,通過對分課堂、翻轉(zhuǎn)課堂等教學方式充分讓學生參與到教學中。課后反思是對教學過程中的經(jīng)驗教訓進行總結(jié),為下堂課做好準備。
從學生角度來看學習環(huán)節(jié),需要充分利用MOOC滿足課前預(yù)習的需要,尤其是需要記憶、背誦的知識點,課堂教學中便可節(jié)省出大量時間供學生討論。課后復(fù)習環(huán)節(jié)主要利用程序在線評判系統(tǒng)不斷強化所學知識。
(二)教學案例的設(shè)計原則
大合班教學中,課堂教學占很大比重,教學案例設(shè)計尤為重要,主要原則有:
1.案例要實現(xiàn)所學知識的“所見即所得”。課前根據(jù)授課目標、授課內(nèi)容及學生學習情況,精心構(gòu)造能涵蓋所有知識點且難度適中的案例。以介紹int類型的表示范圍為例,定義整型變量d并賦值為0xffffffff,然后輸出d和d+1的值,可直觀上理解其范圍。
2.案例要能使學生現(xiàn)場體會所學知識的用途。利用素數(shù)判定、排序、查找等經(jīng)典問題,啟發(fā)學生思考、討論。要求學生現(xiàn)場編程,及時發(fā)現(xiàn)學生程序的錯誤并加以講解,使學生有更深入的認識。
3.案例要能使學生更直觀地理解基本概念。對于難以理解的知識點,采用易于理解接受的例子進行比喻介紹,使學生產(chǎn)生直觀認識。
4.案例要總結(jié)出知識點能解決問題的種類。對常見問題進行總結(jié)分析,有利于讓學生理解所學知識能夠解決問題的種類,當遇到同類問題時,可以迅速想起解決方法。
5.案例應(yīng)具有真實性。案例要有較強的實際價值,最好能模擬真實應(yīng)用環(huán)境;要融知識點于案例中,使學生能從案例中體會所學知識的用途。
6.案例應(yīng)具有一定的啟發(fā)性。案例要能啟發(fā)學生思考,要有一定難度,引導(dǎo)學生發(fā)現(xiàn)解決問題的方法。案例還要能引起學生興趣,學會舉一反三。
7.案例要有一定的連貫性。案例要循序漸進,由易到難,注重前后知識點的聯(lián)系和銜接。
傳統(tǒng)教學模式過分強調(diào)了理論和原理,忽視了實踐與應(yīng)用,案例驅(qū)動教學模式則恰恰相反,所以單一的教學模式不適合程序設(shè)計基礎(chǔ)課程教學,必須將兩者進行有機結(jié)合。在介紹各個知識點時,采用案例驅(qū)動模式,可使學生立即體會到所學知識的用途。在介紹完一個較為完整的內(nèi)容之后,可采用傳統(tǒng)教學模式總結(jié)已講授內(nèi)容,介紹原理性、概念性內(nèi)容,讓學生將所學知識連貫起來。
(三)多管齊下的實踐教學模式
程序設(shè)計是實踐性很強的課程,為強化程序設(shè)計的實踐教學環(huán)節(jié)改革效果,全面提高學生能力,實踐教學環(huán)節(jié)必須多管齊下。
1.加強課程實驗環(huán)節(jié)的過程監(jiān)控?;A(chǔ)實驗環(huán)節(jié),可開發(fā)一套實驗教學平臺,使教師能夠?qū)崟r監(jiān)控學生實驗過程和結(jié)果,及時發(fā)現(xiàn)問題并予以指導(dǎo),統(tǒng)計分析實驗效果和存在問題;使學生可在線獲得實驗步驟和目標并提交程序,由系統(tǒng)對程序自動評判并即時反饋結(jié)果,通過相似度檢測來避免學生抄襲。在課程設(shè)計環(huán)節(jié),通過技術(shù)準備、項目理解、項目實施與監(jiān)控、總結(jié)匯報四個階段,鍛煉學生綜合運用所學知識解決實際問題的能力。
2.強調(diào)實踐教學的合作性學習。在實踐教學中,以學生為中心,采取邊講邊練、自主學習、合作研討的形式,營造競爭、合作、提高的學習氛圍,調(diào)動學生學習的積極主動性,培養(yǎng)學生競爭意識??筛鶕?jù)不同學生的個體差異,組建設(shè)計小組,鼓勵學生通過個人思考、組內(nèi)討論或與教師交流解決所遇到的問題,并共享問題及其解決方法,促進全體同學共同進步。
3.注重創(chuàng)新性的實踐教學?!盎A(chǔ)實驗+課程設(shè)計”的實踐教學只能使學生掌握所學知識并能加以靈活、綜合運用,還必須注重培養(yǎng)學生的創(chuàng)新精神。一方面,利用節(jié)假日定期對學生進行輔導(dǎo)、培訓,引導(dǎo)和鼓勵學生參加各類程序設(shè)計或軟件開發(fā)大賽;另一方面,建立學生參與教師科研項目和企業(yè)項目的激勵機制,鼓勵和引導(dǎo)學生參與實際科研項目。
三、教學改革的實踐與成效
自2007年以來,我們在大量調(diào)研的基礎(chǔ)上,進行了程序設(shè)計基礎(chǔ)的大力改革和實踐,取得了一些成果。
1.構(gòu)建了豐富的案例庫,并開發(fā)了實踐教學平臺。從兩個渠道開發(fā)了程序設(shè)計教學案例庫。一是優(yōu)秀教師的最佳實踐教學經(jīng)驗總結(jié)。教師在多年的教學過程中積累了大量案例,這些案例是教師和學生教與學的結(jié)晶,具有真實性、典型性和啟發(fā)性。二是來自教師科研或企業(yè)實際項目。從教師承擔的科研項目或企業(yè)項目中汲取實際項目案例,經(jīng)過分析、裁剪和凝練,形成實踐教學案例。經(jīng)過多年努力,已積累基礎(chǔ)實驗案例近千個,綜合案例10余個。同時,參考國內(nèi)外知名競賽模式,開發(fā)了程序設(shè)計實踐交互式教學平臺,有效促進了實踐教學環(huán)節(jié)的過程監(jiān)控,大大提高了實踐教學的教學質(zhì)量。
2.學生學習的積極主動性得到極大提高。實踐教學中,學生主動加班加點,有的學生甚至在深夜提交程序。學生合作溝通意識和協(xié)作能力得到了大大增強,在團隊合作中學會了自我約束,學會了傾聽、協(xié)調(diào)甚至妥協(xié),學會了幫助別人與被人幫助。通過不斷地練習,學生完成一個題目的提交次數(shù)從平均8次以上降到2次,真正實現(xiàn)了個人能力的迅速提升。
3.學生的創(chuàng)新能力得到充分鍛煉。學生參與教師科研項目和各項學科專業(yè)競賽的積極性大大提高。近年來,在ACM程序設(shè)計競賽中獲得亞洲賽區(qū)銀牌5枚、銅牌7枚,山東賽區(qū)金牌6枚、銀牌12枚;在全國軟件專業(yè)人才設(shè)計與開發(fā)大賽獲得一等獎4人次、二等獎22人次,并3次榮獲團體優(yōu)勝獎;在齊魯軟件設(shè)計大賽中獲得特等獎提名獎1次、一等獎2次、二等獎4次。《山東科大報》在2010年和2011年連續(xù)兩年對學生參與程序設(shè)計和軟件競賽的情況進行了報道。
四、結(jié)語
程序設(shè)計基礎(chǔ)作為計算機及相關(guān)專業(yè)重要的專業(yè)基礎(chǔ)課程和入門課程,對于培養(yǎng)學生學習計算機課程的興趣,尤其是利用程序解決實際問題的能力具有重要作用,但傳統(tǒng)的教學模式存在諸多不足,必須進行理論和實踐教學的改革。本文總結(jié)筆者所在的程序設(shè)計教學團隊多年的教學改革經(jīng)驗,從培養(yǎng)目標、教學內(nèi)容、教學環(huán)節(jié)和學習環(huán)節(jié)四個方面提出了“三位一體”的教學模式,通過構(gòu)建豐富的案例庫、開發(fā)程序設(shè)計實踐教學平臺、建立學生參與競賽或項目的機制等手段,培養(yǎng)學生的編程能力、團隊合作能力、溝通能力,達到知識、能力、素質(zhì)的全面發(fā)展。多年的實踐證明,這一教學模式取得了良好效果。
參考文獻:
[1]趙衛(wèi)東,馮超男,張麗.基于計算思維的程序設(shè)計語言類課程教學改革[J].計算機教育,2016,(12):28-30.
[2]顧麗紅,丁淑妍.計算思維驅(qū)動的C語言程序設(shè)計課程教學實踐[J].計算機教育,2015,(20):92-95.
[3]徐曉飛,傅育熙,李廉,等.關(guān)于我國計算機教育MOOC發(fā)展的思考[J].中國大學教學,2015,(11):2-6.
[4]陳晉音,俞山青,國紅,等.程序設(shè)計課程群的創(chuàng)客式課堂教學模式探究[J].計算機教育,2017,(1):80-83.
[5]厲蘭潔,廖雪花,譚良,等.基于SPOC的C語言程序設(shè)計課程教學改革研究[J].計算機教育,2016,(1):74-76.
[6]吳海珍,楊鼎強,孟愛國.基于微信公眾號的C程序設(shè)計翻轉(zhuǎn)課堂教學實踐[J].計算機教育,2017,(5):92-95.
[7]王芳,王瑞金,馮莉媚,等.高校對分課堂(PAD)教學模式實踐[J].教育教學論壇,2017,(11):148-149.
[8]徐英,谷雨.對分課堂在提升《C++程序設(shè)計》課程教學效果的實踐與思考[J].教育教學論壇,2017,(1):213-214.
Abstract:The traditional teaching model cannot accomplish the full-development of knowledge,ability,and quality. This paper analyzes the drawbacks of existing teaching method to propose the viewpoint of "Three-In-One",and describes its meaning from teaching objectives,contents and processes. It also introduces the design principles of teaching cases,and presents the scheme of comprehensive monitoring in practical teaching. Finally,the effects are given.
Key words:programming language courses;case-driven;cooperative learn;process monitor