祝園園 武漢大學(xué)計(jì)算機(jī)學(xué)院
在高校計(jì)算機(jī)專業(yè)的課程教學(xué)中,《高級(jí)語(yǔ)言程序設(shè)計(jì)》一門必修的基礎(chǔ)課程,具有重要的地位和重要。該課程不僅能夠使學(xué)生掌握基本的程序設(shè)計(jì)語(yǔ)言語(yǔ)法,而且能夠培養(yǎng)學(xué)生的編程實(shí)踐能力,為學(xué)生后續(xù)其他高級(jí)語(yǔ)言的學(xué)習(xí)、系統(tǒng)開發(fā)能力,嵌入式開發(fā),移動(dòng)開發(fā)能力的培養(yǎng)打下堅(jiān)實(shí)的基礎(chǔ)。根據(jù)武漢大學(xué)計(jì)算機(jī)學(xué)院專業(yè)課程體系設(shè)置,《高級(jí)語(yǔ)言程序設(shè)計(jì)》這們課程在計(jì)算機(jī)學(xué)院的受眾學(xué)生主要包含三類,普通班學(xué)生,卓越工程師班學(xué)生,以及轉(zhuǎn)專業(yè)班學(xué)生。在教學(xué)語(yǔ)言選擇方面,普通班和轉(zhuǎn)專業(yè)班采用中文教學(xué),卓越工程師班采用英文教學(xué)。多樣化的教學(xué)受眾和教學(xué)學(xué)語(yǔ)言需求,給《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程組在教材選擇,教案設(shè)計(jì),以及教學(xué)實(shí)踐等各個(gè)環(huán)節(jié)帶來(lái)了很大的挑戰(zhàn)。本文將從這些環(huán)節(jié)出發(fā),介紹課程組在面對(duì)不同受眾時(shí)采用的相應(yīng)策略。
武漢大學(xué)計(jì)算機(jī)類的教學(xué)與科研歷史可追溯到1958年成立的計(jì)算技術(shù)專業(yè),1978年在此基礎(chǔ)上又組建了原武漢大學(xué)計(jì)算機(jī)科學(xué)系,是全國(guó)最早建立的計(jì)算機(jī)科學(xué)系之一。學(xué)院旨在培養(yǎng)德智體全面發(fā)展,具有良好的科學(xué)素養(yǎng)和文化修養(yǎng),系統(tǒng)地掌握本專業(yè)的基礎(chǔ)理論、基本方法和基本技能,具有扎實(shí)的計(jì)算機(jī)理論和應(yīng)用知識(shí)基礎(chǔ),掌握計(jì)算機(jī)領(lǐng)域的前沿技術(shù),能夠解決計(jì)算機(jī)領(lǐng)域復(fù)雜工程問(wèn)題,可以從事計(jì)算機(jī)領(lǐng)域的研究、應(yīng)用、開發(fā)和管理等方面的高層次前瞻型技術(shù)與管理人才。
武漢大學(xué)計(jì)算機(jī)學(xué)院還參與了“國(guó)家卓越工程師計(jì)劃”。卓越工程師計(jì)劃是國(guó)家貫徹落實(shí)中長(zhǎng)期教育改革和發(fā)展綱要的重大改革實(shí)踐項(xiàng)目,也是促進(jìn)我國(guó)由工程教育大國(guó)邁向工程教育強(qiáng)國(guó)的重大舉措。在“國(guó)家卓越工程師計(jì)劃”的支持下,學(xué)院每年從新生中選拔60名具有計(jì)算機(jī)領(lǐng)域工程師培養(yǎng)潛力的優(yōu)秀拔尖學(xué)生,,進(jìn)一步增強(qiáng)學(xué)生實(shí)踐能力等綜合素質(zhì)以及科學(xué)研究等國(guó)際視野的培養(yǎng)。
此外,隨著信息技術(shù)的發(fā)展,互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等計(jì)算機(jī)相關(guān)專業(yè)已經(jīng)逐步滲入到多個(gè)行業(yè),為社會(huì)經(jīng)濟(jì)發(fā)展升級(jí)賦能。國(guó)務(wù)院陸續(xù)發(fā)布關(guān)于積極推進(jìn)“互聯(lián)網(wǎng)+”行動(dòng)的指導(dǎo)意見》《促進(jìn)大數(shù)據(jù)發(fā)展行動(dòng)綱要》《新一代人工智能發(fā)展規(guī)劃》等一些支持計(jì)算機(jī)行業(yè)發(fā)展的政策,進(jìn)一步加大了計(jì)算機(jī)專業(yè)的人才在各行各業(yè)的需求。因此,近年來(lái),近年來(lái)計(jì)算機(jī)學(xué)院每年在大一下學(xué)期會(huì)收納近百名轉(zhuǎn)專業(yè)學(xué)生。因此,計(jì)算機(jī)學(xué)院共具有普通班、卓工班、轉(zhuǎn)專業(yè)班等種類型的學(xué)生,其教學(xué)背景和教學(xué)目標(biāo)也各不相同。
在教學(xué)背景方面,普通班和卓工班學(xué)在學(xué)習(xí)《高級(jí)語(yǔ)言程序設(shè)計(jì)》之前,已經(jīng)學(xué)過(guò)《計(jì)算機(jī)導(dǎo)論》《軟件技術(shù)基礎(chǔ)》等基礎(chǔ)課程,對(duì)計(jì)算機(jī)相關(guān)概念和知識(shí)有了初步了解,對(duì)編程語(yǔ)言有過(guò)概括性了解和并會(huì)簡(jiǎn)單使用,但對(duì)高級(jí)程序設(shè)計(jì)語(yǔ)言的語(yǔ)法細(xì)節(jié)和基礎(chǔ)原理并不熟悉;轉(zhuǎn)專業(yè)學(xué)生通常來(lái)自于其他院系,還未基礎(chǔ)過(guò)計(jì)算機(jī)相關(guān)專業(yè)課程。在教學(xué)目標(biāo)方面,普通班和轉(zhuǎn)專業(yè)班旨在培養(yǎng)學(xué)生程序設(shè)計(jì)過(guò)程的理解、基礎(chǔ)知識(shí)的掌握、編程能力的提升;卓工班在此基礎(chǔ)上需要進(jìn)一步加深理論基礎(chǔ),增強(qiáng)綜合實(shí)踐能力,培養(yǎng)國(guó)際學(xué)術(shù)視野??紤]到上述背景和目標(biāo),卓工班采用了全英文授課的教學(xué)形式。
針對(duì)上述多樣化的學(xué)生受眾,我們從教材選擇、教學(xué)設(shè)計(jì)、以及教學(xué)實(shí)踐等各個(gè)環(huán)節(jié)進(jìn)行了精心的差異化設(shè)計(jì),進(jìn)行了一些列的探索和實(shí)踐。
在教材選擇方面,為了學(xué)院整體課程的體系性和完整性以及教學(xué)大綱的統(tǒng)一性,課題組傾向于選擇具有同時(shí)具有中英文版本的教材。我們參考和借鑒的國(guó)內(nèi)外知名相關(guān)大學(xué)的教材,選擇清華大學(xué)出版社出版的由鄭莉教授等編寫《C++語(yǔ)言程序設(shè)計(jì)》。該教材是清華大學(xué)計(jì)算機(jī)系列教材和普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材,包含中文版《C++語(yǔ)言程序設(shè)計(jì)(第4版 在線教學(xué)班),英文版《C++語(yǔ)言程序設(shè)計(jì)》(英文版),以及實(shí)驗(yàn)用書《C++語(yǔ)言程序設(shè)計(jì)》(第4班 學(xué)生用書)等豐富而全面的教學(xué)資料,能夠同時(shí)滿足中英文教學(xué)的需求。該教材以針對(duì)程序設(shè)計(jì)的初學(xué)者,以通俗易懂的方法介紹C十+語(yǔ)言,引導(dǎo)讀者以自然的方式,將人類習(xí)慣的面向?qū)ο蟮乃季S方法運(yùn)用到程序設(shè)計(jì)中。C/C++至今已有近十年歷史,目前仍在眾多編程語(yǔ)言中占據(jù)主流地位。它既能夠目前流行的操作系統(tǒng)和嵌入式系統(tǒng)的實(shí)現(xiàn),也實(shí)現(xiàn)很多其他高級(jí)語(yǔ)言的編譯器、解釋器的基礎(chǔ)。此外,為了進(jìn)一步加強(qiáng)卓工班的教學(xué)深度和廣度,課程組還進(jìn)行挑選了若干國(guó)外的經(jīng)典教材作為輔助教材,包括:由Walter Savitch是加州大學(xué)圣迭戈分校Walter Savitch等編寫的《Problem Solving with C++》《10th 》[5],是國(guó)外眾多高校選用的經(jīng)典教材;Bruce Eckel的 經(jīng) 典 著 作《Thinking in C++ (Edition 2,Volume 1)》,該 教 材是 C++ 領(lǐng)域的權(quán)威著作,曾榮獲“軟件開發(fā)”雜志評(píng)選的1996年度最佳圖書震撼大獎(jiǎng)。
針對(duì)上述不同類型學(xué)生的教學(xué)目標(biāo)和要求,我們?cè)O(shè)計(jì)靈活的教學(xué)方案,其中語(yǔ)法規(guī)則是基礎(chǔ),對(duì)于編程語(yǔ)言的設(shè)計(jì)原理的理解至關(guān)重要,面向?qū)ο笏枷胧侵攸c(diǎn),貫穿整個(gè)設(shè)計(jì)過(guò)程,編程時(shí)間是必備,對(duì)于教學(xué)理論思想的深入掌握至關(guān)重要。課程共48個(gè)理論學(xué)時(shí),下表列出了針對(duì)不同班級(jí)的教學(xué)內(nèi)容,我們以普通班內(nèi)容為標(biāo)準(zhǔn),對(duì)卓專業(yè)班和卓工班的教學(xué)進(jìn)行相應(yīng)的刪減或增加。全課程共分為8個(gè)章節(jié)。對(duì)于普通工班來(lái)說(shuō)內(nèi)容分別如下:(一)緒論:包括計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展、面向?qū)ο蟮募败浖_發(fā)、程序開發(fā)的基本概念。(二)C++簡(jiǎn)單程序設(shè)計(jì):包括C++語(yǔ)言概述、基本數(shù)據(jù)類性和表達(dá)式、數(shù)據(jù)的輸入和輸出、算法的基本控制結(jié)構(gòu);(三)函數(shù):包括函數(shù)的定義和使用、帶默認(rèn)參數(shù)值的函數(shù)、函數(shù)重載、C++系統(tǒng)函數(shù);(四)類與對(duì)象:包括面向?qū)ο蟮幕咎攸c(diǎn)、類和對(duì)象、構(gòu)造函數(shù)和析構(gòu)函數(shù)、類的組合、UML圖形標(biāo)識(shí);(五)數(shù)據(jù)的共享與保護(hù);包括標(biāo)識(shí)符的作用域與可見性、對(duì)象生存期、類的靜態(tài)成員、類的友元、共享數(shù)據(jù)的保護(hù);(六)數(shù)組和指針:包括數(shù)組、指針、動(dòng)態(tài)內(nèi)存分配、用vector創(chuàng)建數(shù)組對(duì)象、深復(fù)制和淺復(fù)制 ;(七)繼承和派生:包括類的繼承和派生、訪問(wèn)控制、類型兼容原則、派生類的構(gòu)造和析構(gòu)函數(shù)、派生類成員的標(biāo)識(shí)與訪問(wèn);(八)多態(tài)性:包括多態(tài)性概述、運(yùn)算符重載、虛函數(shù)、純虛函數(shù)和抽象類。下表列出了各個(gè)章節(jié)分配的學(xué)時(shí),以及卓工班和轉(zhuǎn)專業(yè)班在此基礎(chǔ)上進(jìn)行的內(nèi)容調(diào)整。
表1:學(xué)時(shí)分配及內(nèi)容調(diào)整
我們課程組師隊(duì)伍師資結(jié)構(gòu)合理,有教學(xué)經(jīng)驗(yàn)豐富的優(yōu)秀教師,也有具有海外科研背景的青年教師。在教學(xué)安排上,經(jīng)驗(yàn)豐富的優(yōu)秀教師通常承擔(dān)轉(zhuǎn)專業(yè)版的教學(xué)工作,能夠?qū)χR(shí)細(xì)節(jié)進(jìn)行很好的補(bǔ)充和闡述,具有海外留學(xué)和科研經(jīng)歷的教師承擔(dān)卓工班的,能夠?qū)嵤┤⑽慕虒W(xué)工作。在具體實(shí)踐方面,整個(gè)課程組的教學(xué)主要采用以下策略。
3.3.1 知識(shí)概念的逐層闡述。轉(zhuǎn)專業(yè)班級(jí)由于計(jì)算機(jī)基礎(chǔ)知識(shí)薄弱,在講述程序設(shè)計(jì)基本概念之前,我們需要對(duì)計(jì)算機(jī)系統(tǒng)的概念進(jìn)行相應(yīng)闡述;卓工班學(xué)生由于采用英文教學(xué),在剛開始是學(xué)生對(duì)很對(duì)英文概念并不熟悉,需要進(jìn)一步闡述解釋。
3.3.2 實(shí)踐練習(xí)的逐次配套。為了學(xué)生更好的掌握每章節(jié)的知識(shí)點(diǎn),從第2章開始,我們?cè)诿空轮?,給學(xué)生布置相應(yīng)的練習(xí)題進(jìn)行上機(jī)實(shí)驗(yàn),共24實(shí)驗(yàn)學(xué)時(shí)。
3.3.3 教學(xué)效果的及時(shí)評(píng)測(cè)。為了及時(shí)評(píng)測(cè)每堂課的教學(xué)效果和收集學(xué)生的反饋意見,我們采用調(diào)查問(wèn)卷,微助教等各種形式,在課程上及時(shí)出一些小的練習(xí)題目給學(xué)生完成,并以匿名投票的方式調(diào)查學(xué)生對(duì)知識(shí)的理解程度。
3.3.4 綜合項(xiàng)目的自主闡述。為了進(jìn)一步激發(fā)學(xué)生的學(xué)習(xí)積極性,我們?yōu)閷W(xué)生了布置了綜合實(shí)踐題目,讓他們自由組隊(duì)完成。為了讓學(xué)生能夠更好的討論交流,我們采用反轉(zhuǎn)課堂的形式,請(qǐng)學(xué)生對(duì)自己的實(shí)踐作業(yè)進(jìn)行講解闡述,由并老師和學(xué)生給予相應(yīng)的評(píng)價(jià)和意見。
在計(jì)算機(jī)專業(yè)學(xué)生培養(yǎng)中,《高級(jí)語(yǔ)言程序設(shè)計(jì)》一門必修的基礎(chǔ)課程,具有重要的地位和重要。該課程不僅能夠使學(xué)生掌握基本的程序設(shè)計(jì)語(yǔ)言語(yǔ)法,而且能夠培養(yǎng)學(xué)生的編程實(shí)踐能力,為學(xué)生后續(xù)其他高級(jí)語(yǔ)言的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。本文以武漢大學(xué)計(jì)算機(jī)學(xué)院《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程為例,探討了面向不同受眾且采用多語(yǔ)言進(jìn)行教學(xué)時(shí)的教材選擇,方案設(shè)計(jì)以及教學(xué)實(shí)踐的教學(xué)體會(huì)和經(jīng)驗(yàn)。未來(lái)將會(huì)進(jìn)一步針對(duì)教學(xué)實(shí)踐中綜合項(xiàng)目的篩選原則和實(shí)施細(xì)節(jié)進(jìn)行進(jìn)一步的優(yōu)化和討論。