宋琦,王冠宇,黃德玲
(1.重慶郵電大學軟件工程學院,重慶 400065;2.重慶郵電大學光電工程學院,重慶 400065)
《程序設計語言原理》課程是軟件工程專業(yè)的核心基礎課程。借鑒美國紐約州立大學阿爾巴尼分校的專業(yè)課程體系設置,基于過程化考核教學理念,由美方教授來我校全程講授該門課程。教學實踐證明:《程序設計語言原理》課程對軟件工程專業(yè)學生理解、掌握編程方法有很大助益,并且過程化考核方法提高學生的學習主動性、自主學習能力和團隊合作能力,教學效果良好。最后,基于我校軟件工程專業(yè)學生的實際情況,提出具體的持續(xù)改進措施。
程序設計語言原理;過程化考核;教學實踐;軟件工程專業(yè)
軟件工程專業(yè)本科教育的培養(yǎng)目標是以行業(yè)為導向,培養(yǎng)具有競爭力和較強創(chuàng)新能力的復合型軟件技術人才。學生應掌握扎實的計算機科學和軟件工程專業(yè)知識,具備軟件開發(fā)能力、團隊合作能力、系統(tǒng)分析設計能力、軟件項目管理能力。歸結為一點,就是學生要能與計算機進行良好的溝通,進而發(fā)揮計算機在各行業(yè)中的應用作用。程序設計語言是人與計算機溝通的唯一方式,因此作為未來的程序開發(fā)人員,軟件工程專業(yè)的學生需要更深入地了解程序設計語言,進一步掌握程序設計語言,從而靈活應用程序設計語言。針對這樣的目標,《程序設計語言原理》課程的開設是非常有必要的,原因如下:
(1)可以提高學生表達思想的能力,使其能夠?qū)χ匾恼Z言特性與結構有充分的理解,更好地構造算法和程序結構;
(2)可以幫助學生熟悉更多的語言和語言結構,在未來軟件開發(fā)過程中,學生能根據(jù)實際需求選擇合適的開發(fā)語言;
(3)可以有效地增強學生學習并掌握一門新的計算機語言的能力;
(4)可以改善學生對已知計算機語言的使用能力;
(5)可以幫助學生發(fā)現(xiàn)和修正程序的缺陷、提高所編寫程序的執(zhí)行效率。
但是,我校在對軟件工程專業(yè)培養(yǎng)方案不斷更新的過程中,根據(jù)對全國各高校軟件工程相關專業(yè)的課程體系、培養(yǎng)方案的調(diào)研,我們發(fā)現(xiàn)國內(nèi)目前很少有高校將《程序設計語言原理》課程列入軟件工程專業(yè)的課程培養(yǎng)方案,大多都只是將某一種或兩種編程語言(如C、C++、Java)納入培養(yǎng)方案中。
鑒于此,重慶郵電大學軟件工程學院與美國紐約州立大學阿爾巴尼分校建立了良好的合作關系,雙方在軟件工程專業(yè)的本科教育項目中相互交流合作,并借鑒了阿爾巴尼分校的專業(yè)課程體系設置,將《程序設計語言原理》課程列為軟件工程專業(yè)的核心課程。同時引進了阿爾巴尼分校的教授,依照美國的過程化考核教學理念來我校全程講授該門課程。筆者作為美方教授的合作教師,全程參與了該門課程的理論和實驗教學工作,主要負責該門課程的實驗課指導和理論課輔助教學。
過程化考核是在考核過程中以培養(yǎng)學生綜合素質(zhì)為目標,以項目教學法、任務驅(qū)動教學模式為支撐,注重對學生學習過程的考核[1],進而有效引導教學活動開展,促進人才培養(yǎng)質(zhì)量提高。過程化考核是對學生理論知識的掌握程度和動手實踐能力檢驗的一種綜合考核機制。過程化考核方式通過課堂出勤、課上表現(xiàn)、課后作業(yè)、實驗實踐等多方面進行綜合考核,并以此按比例來綜合評定學生。這種考核方式與CDIO(Conceive構思、Design 設計、Implement 實現(xiàn)、Operate 運作)工程教育模式的教育理念殊途同歸,都是以工程教育為主導的應用型軟件人才培養(yǎng)方法[2]。
課程考核作為教學過程中的一個重要環(huán)節(jié),一直以來是教育界的一項重要工作。現(xiàn)有的集中式考試模式存在著考試結果片面性、考試形式單一性、抑制學生積極性、教學反饋缺乏性等問題。相反,過程化考核模式則有著考核內(nèi)容全面化、考核形式合理化、學生積極主動化、教學效果促進化等優(yōu)點[3]。
首先,過程化考核模式邊行課邊進行考核,因此所考核的知識點全面深入。其次,期末集中考試一般采用試卷答題形式,形式單一,而過程化考核可以根據(jù)不同的知識點采取調(diào)研報告、筆答、實驗、演講等多種形式,更合理地對所學知識進行考核。再次,過程化考核有效的提高了學生的學習主動性和積極性。期末集中考試時,學生平時基本上不用心學,考試前突擊復習,考完試很快就會忘掉,且考試成績不容易拉開檔次;過程化考核則按比例分階段給分,確保了學生在行課過程中認真學習,爭取每一分。最后,過程化考核可以幫助教師及時發(fā)現(xiàn)教學過程中學生對知識的掌握情況,合理的調(diào)整授課內(nèi)容和教學方法,更好地提升教學質(zhì)量[4]。
該課程設置48 學時理論課,16 學時實驗課,共計64 學時,4 學分。無統(tǒng)一教材,學生以Robert Sebesta的Concepts of Programming Languages 為主要參考書[5],外教提供各種閱讀資料[6]和網(wǎng)上資源鏈接[7]。
該門課程的理論課課堂教學主要分成兩個主要環(huán)節(jié):學生演講和教師授課。
學期初,教師根據(jù)授課計劃和學生人數(shù)提前設計10 個與每節(jié)課知識點相關的演講題目,并將學生分成10 個小組,每組選擇一個演講題目,學生以小組為單位根據(jù)演講題目自主查閱資料進行學習并整理成PPT。每次課上教師會安排10-15 分鐘時間,由一組學生演講本組的學習成果,小組成員全部參與演講,從學習者的角度來講解新知識。同時,其他學生可以根據(jù)自己對演講內(nèi)容的理解提出相應的問題,進行互動式學習。教師則對學生講解的知識進行檢驗和評價,并解答學生理解不足之處。這種方式不僅調(diào)動了學生自主學習的主觀能動性,同時使學生查閱資料、整理資料、分工合作、表達等能力得到了鍛煉和提高。較之一味地灌輸書本上的知識而言,學生通過自主學習學到的知識會更扎實更持久。
外方教授在授課的環(huán)節(jié)與國內(nèi)相同,都是以PPT為主要媒介。PPT 上列出主要知識點,課堂的講授則針對PPT 上的知識點進行展開。由于《程序設計語言原理》課程理論性很強,教師在講解時,配備了很多視頻和代碼示例,以加強學生對知識的記憶。
《程序設計語言原理》課程不設置期末考試環(huán)節(jié),課程的總評成績由6 部分通過過程考核得出,根據(jù)以下線性加權公式計算:

式中,Stotal為課程總成績,S1~S6分別代表考勤成績、實驗成績、課堂演講成績、隨堂測試成績、作業(yè)成績以及課程設計成績。按照教學計劃和教學大綱,這六個成績完全覆蓋了該門課程的過程化考核目標。其中,實驗成績S2取8 次實驗成績的平均成績;課堂演講雖以小組為單位完成,但每名學生都會根據(jù)個人在小組任務中的角色和表現(xiàn)得到自己的成績;隨堂測驗S4取2 次測驗成績的總成績;S5取4 次作業(yè)成績的平均成績;課程設計成績S6則根據(jù)課程設計報告和程序代碼質(zhì)量綜合給出。
此外,在過程化考核過程中,每次實驗課,學生都要以小組為單位進行查閱大量資料、討論、分析和動手編程。筆者作為合作教師參與到每組的討論中,指導學生完成實驗內(nèi)容。《程序設計語言原理》課程采用過程化考核方式,不僅達到了預期的教學目的,還提高了學生的學習積極性和主動性,更重要的是在學習過程中,增強了學生的批判性思維能力、分析查找資料的能力、分析新事物和總結問題的能力。下圖中給出了該門課程的成績分布曲線圖,由圖1 可以看出,該門課程的通過率為97.8%,成績分布近似于正態(tài)分布,并且注意到高分段(90-100 分)的人數(shù)占總人數(shù)的21.7%,優(yōu)秀率較高,這正說明了采用的過程化考核手段,學生的學習興趣、學習積極性、學習效率和學習效果比傳統(tǒng)教學手段均有了明顯提高。

圖1 2016 級軟件工程專業(yè)學生《程序設計語言原理》課程成績分布曲線
根據(jù)目前重慶郵電大學學生的實際情況,《程序設計語言原理》課程采用過程化考核理念所開展的教學效果總體是很好的,但尚有需要改進之處,主要體現(xiàn)在圖1 中的較低分數(shù)段(60-69 分)。原因分析如下:
(1)外教完全按照國外的教學方式教授中國學生,并不完全適用于本校軟件工程專業(yè)學生的實際情況。美國學生一直接受的都是這種自主學習的主動式教學方式,而中國學生長久以來接受的都是國內(nèi)傳統(tǒng)的被動式教學方式,由被動式到主動式的驟然轉換,會使少部分學生難以適應。少數(shù)學生沒有經(jīng)過自主學習的培養(yǎng)和訓練,不知道從何著手,如何開展自主學習。因此在后續(xù)教學過程中,應該循序漸進,逐步引導,先加強自主學習方式方法的鍛煉。
(2)少部分學生的英語聽說能力較差,外方教授的全英文授課模式使得這部分學生理解困難,學生們需要先理解英語,然后再理解專業(yè)課知識點,往往是想明白了一個知識點,反而錯過了后面的幾個知識點,從而跟不上外方教授的進度,進而更難與其在課堂上互動。久而久之,會導致學生懼怕課上提問,閉口不言。因此該問題需要從兩方面加以解決:一是加強英語聽說能力的培養(yǎng),在學生具備一定聽說能力后再開設全英文授課;二是多給予學生“可理解性語言的輸入”,適當放慢語速,使學生盡可能多地將精力用在對專業(yè)知識的理解上。