周世平 童向榮 盧云宏
文章編號(hào):1672-5913(2015)03-0084-03
中圖分類號(hào):G642
摘要:闡述程序設(shè)計(jì)基礎(chǔ)課程改革方案,以學(xué)生為中心制定課程目標(biāo)、考核、課程內(nèi)容及學(xué)習(xí)方式,給出一個(gè)新的程序設(shè)計(jì)基礎(chǔ)課程教學(xué)改革方案。
關(guān)鍵詞:程序設(shè)計(jì)基礎(chǔ);課程改革;以學(xué)生為中心
0 引言
程序設(shè)計(jì)基礎(chǔ)課程是計(jì)算機(jī)專業(yè)學(xué)生接觸的第一門專業(yè)課程,它的質(zhì)量關(guān)系到數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)等后續(xù)課程能否順利進(jìn)行。多年來(lái)我們延續(xù)著課堂教學(xué)、實(shí)驗(yàn)教學(xué)、課程設(shè)計(jì)、考試4個(gè)教學(xué)環(huán)節(jié)的模式。課堂教學(xué)以一本教材為主要教學(xué)內(nèi)容,實(shí)驗(yàn)教學(xué)以輔導(dǎo)學(xué)生能夠完成編程實(shí)驗(yàn)為主,課程設(shè)計(jì)出一些比實(shí)驗(yàn)大的題目讓學(xué)生在集中的時(shí)間完成,考試采用流行多年的考試方法(選擇、填空、程序填空、編程題的匯總)。為了維持及格率,教師將考試題目出得越來(lái)越簡(jiǎn)單。該課程后續(xù)課教師抱怨學(xué)生的編程能力太差,連簡(jiǎn)單的一個(gè)算法都不能實(shí)現(xiàn);更有甚者,認(rèn)為程序設(shè)計(jì)課程根本沒(méi)有教學(xué)生程序設(shè)計(jì),只是教學(xué)生程序設(shè)計(jì)的語(yǔ)言。學(xué)生反而抱怨老師的課程沒(méi)有培訓(xùn)機(jī)構(gòu)講得實(shí)用。
2014年7月,筆者在北京懷柔參加CCF舉辦的第二屆導(dǎo)教班。南京大學(xué)的陳道蓄教授進(jìn)行了5天的“計(jì)算機(jī)問(wèn)題求解”課程講座。南京大學(xué)“計(jì)算機(jī)問(wèn)題求解”課程將計(jì)算機(jī)導(dǎo)論、C++程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、算法設(shè)計(jì)與分析5門課程整合成一門跨時(shí)2年的課程。該課程以程序設(shè)計(jì)為主線,對(duì)計(jì)算機(jī)領(lǐng)域所需的離散數(shù)學(xué)、問(wèn)題建模、數(shù)據(jù)抽象、算法設(shè)計(jì)與分析、算法復(fù)雜性理論進(jìn)行了探索性的學(xué)習(xí)。“計(jì)算機(jī)問(wèn)題求解”課程所采用的模式是建立在培養(yǎng)學(xué)生各種能力基礎(chǔ)上的。如采用啟發(fā)式教學(xué),培養(yǎng)學(xué)生的自學(xué)及凝聚問(wèn)題的能力;采用深度引導(dǎo),鼓勵(lì)學(xué)生追求質(zhì)量更好的算法,培養(yǎng)學(xué)生的創(chuàng)新意識(shí);采用數(shù)學(xué)逐步滲透,培養(yǎng)學(xué)生的數(shù)學(xué)意識(shí)和能力。陳道蓄教授的5天講座感染了來(lái)自各高校的一線教師,大家愿意將這種以學(xué)生為中心的教育理念移植到所講授的每門課程中去,這種移植不是簡(jiǎn)單的模仿,更不能照搬,而是要根據(jù)各校的具體情況,建立適宜的課程體系,完成每一門課的教學(xué)改革設(shè)計(jì)。
1 改革的出發(fā)點(diǎn)
一門課程的改革涉及課程的各個(gè)方面,包括課程目標(biāo)、課程內(nèi)容、實(shí)驗(yàn)課內(nèi)容、考核方式、學(xué)習(xí)形式、作業(yè)形式等。所有這些方面的改革都面臨著這樣的問(wèn)題:課程的出發(fā)點(diǎn)是什么?改革的目的是什么?
長(zhǎng)期以來(lái)我們課程的出發(fā)點(diǎn)都是以教師為中心:教師教什么?怎么教?怎么考?很少關(guān)注這樣的問(wèn)題:教師教的內(nèi)容是學(xué)生需要學(xué)的嗎?教師教的方式適合學(xué)生嗎?考試題目有助于學(xué)生的學(xué)習(xí)嗎?我們是否考慮所進(jìn)行的每一個(gè)教學(xué)環(huán)節(jié)究竟能給學(xué)生帶來(lái)什么?比如,課堂上面面俱到的語(yǔ)法講解、實(shí)驗(yàn)課上的一個(gè)個(gè)程序的抄寫、僅僅為了題型多樣化的考試題目。我們已經(jīng)習(xí)慣這些教學(xué)環(huán)節(jié),卻忘記了它們對(duì)學(xué)生產(chǎn)生的副作用。
任何一門課程的改革首先是改革我們課程教學(xué)的出發(fā)點(diǎn)。課程的出發(fā)點(diǎn)不應(yīng)該是教師,而應(yīng)該是以學(xué)生為中心。所謂以學(xué)生為中心就是首先要考慮學(xué)生的需求。比如,學(xué)生為什么要學(xué)習(xí)這門課?學(xué)生在這門課程能夠?qū)W到什么,掌握了什么,培養(yǎng)了什么。我們?cè)谶@里是說(shuō),學(xué)生“學(xué)會(huì)”什么,不是說(shuō)教師認(rèn)為學(xué)生“應(yīng)該”學(xué)會(huì)什么。我們強(qiáng)調(diào)去掉“應(yīng)該”二字,其目的就是要將課程的中心由教師變換到學(xué)生。
程序設(shè)計(jì)基礎(chǔ)作為計(jì)算機(jī)專業(yè)學(xué)生的第一門基礎(chǔ)課,對(duì)剛剛進(jìn)入大學(xué)的學(xué)生起著至關(guān)重要的作用:引導(dǎo)改變學(xué)生的學(xué)習(xí)模式,完成從中學(xué)學(xué)習(xí)到大學(xué)學(xué)習(xí)的過(guò)渡;引導(dǎo)學(xué)生的自學(xué)意識(shí),具備初步自學(xué)的能力;引導(dǎo)學(xué)生對(duì)計(jì)算機(jī)專業(yè)產(chǎn)生好的感性認(rèn)識(shí)與體驗(yàn),培養(yǎng)學(xué)生對(duì)專業(yè)的熱愛(ài)。程序設(shè)計(jì)基礎(chǔ)課程的改革必須以學(xué)生為中心,完成塒學(xué)生的引導(dǎo)作用。在明確了該門課程的作用后,就要設(shè)置課程的目的和考核要求,再根據(jù)課程內(nèi)容和考核要求設(shè)置課程內(nèi)容,最后確定學(xué)習(xí)方式。
2 課程目標(biāo)及考核
課程目標(biāo)與考核是兩個(gè)非常重要的環(huán)節(jié),這兩個(gè)環(huán)節(jié)的確定決定了一門課的性質(zhì)。所謂課程目標(biāo)是我們期望學(xué)生能夠從這門課程的學(xué)習(xí)得到的,考試是檢查課程的目的是否達(dá)到的一種重要手段。
2.1 課程目標(biāo)
課程目標(biāo)應(yīng)該是專業(yè)目標(biāo)的一部分,應(yīng)該是先制定計(jì)算機(jī)專業(yè)的目標(biāo),然后再制定課程目標(biāo)。談到課程目標(biāo)時(shí),我們就容易聯(lián)想到“傳道、授業(yè)、解惑”。然而,這6個(gè)字以教師為中心,關(guān)注的是教師的職責(zé)、教什么、怎么教的問(wèn)題。改革后的課程目標(biāo)是以學(xué)生為中心,關(guān)注學(xué)生學(xué)到什么、學(xué)生怎么學(xué)的問(wèn)題。
任何一門課程的目標(biāo)都不應(yīng)該僅僅是知識(shí)的傳授。陳道蓄教授在“計(jì)算機(jī)問(wèn)題求解”課程中談到課程目標(biāo)時(shí),提出了4個(gè)方面:培養(yǎng)學(xué)生應(yīng)該具有的意識(shí)、應(yīng)該具有的能力、所需要的知識(shí)、所具備的技能。
程序設(shè)計(jì)基礎(chǔ)課程是利用計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言來(lái)解決實(shí)際問(wèn)題的課程,因此在本門課上,首先學(xué)牛要學(xué)會(huì)一門程序設(shè)計(jì)語(yǔ)言,包括語(yǔ)言知識(shí)的掌握及應(yīng)用技能,然后學(xué)生要學(xué)會(huì)用這門語(yǔ)言進(jìn)行程序設(shè)計(jì),解決實(shí)際問(wèn)題;而解決實(shí)際問(wèn)題,就要學(xué)會(huì)對(duì)問(wèn)題的分析。另外我們希望學(xué)生在本門課程中具有初步的自學(xué)能力,為將來(lái)的專業(yè)課學(xué)習(xí)奠定基礎(chǔ)。為此,該門課程的目標(biāo)如下:“本課程的目標(biāo)是希望學(xué)生掌握簡(jiǎn)單的數(shù)據(jù)抽象、問(wèn)題建模和簡(jiǎn)單的算法等基礎(chǔ)知識(shí),養(yǎng)成解決問(wèn)題的能力,養(yǎng)成程序設(shè)計(jì)的能力,養(yǎng)成自我學(xué)習(xí)專業(yè)知識(shí)的能力,學(xué)會(huì)學(xué)習(xí)一門語(yǔ)言,熟練使用語(yǔ)言及其開(kāi)發(fā)環(huán)境進(jìn)行程序開(kāi)發(fā)與測(cè)試的技能。”
課程目標(biāo)的特點(diǎn)是通過(guò)學(xué)習(xí)一些基本知識(shí),培養(yǎng)學(xué)生應(yīng)該具有的能力。在這里不是教會(huì)學(xué)生一門語(yǔ)言,而是要求學(xué)生“學(xué)會(huì)學(xué)習(xí)”一門語(yǔ)言。學(xué)會(huì)學(xué)習(xí)一門語(yǔ)言,既培養(yǎng)學(xué)生的自學(xué)能力,又保證將來(lái)學(xué)生不會(huì)畏懼任何語(yǔ)言課程,有信心通過(guò)自己的學(xué)習(xí)可以學(xué)會(huì)任何一門語(yǔ)言。
2.2 考試
考試對(duì)于大一的學(xué)生再熟悉不過(guò)了。程序設(shè)計(jì)基礎(chǔ)作為計(jì)算機(jī)專業(yè)的第一門專業(yè)基礎(chǔ)課程,它的考試內(nèi)容與形式對(duì)學(xué)生的學(xué)習(xí)態(tài)度的轉(zhuǎn)變有著相當(dāng)大的作用。中學(xué)時(shí)期的考試以對(duì)知識(shí)的掌握為主,所以學(xué)生的學(xué)習(xí)態(tài)度是學(xué)知識(shí);如果大學(xué)的學(xué)習(xí)還考知識(shí),那么學(xué)生的學(xué)習(xí)目的就是學(xué)知識(shí)。考試是課程的一部分,考試也是課程的指揮棒。考試的內(nèi)容及方式?jīng)Q定了學(xué)生的學(xué)習(xí)態(tài)度和學(xué)習(xí)方式。
在確定本門課程考試的內(nèi)容及方式時(shí),要審視考試的目的是什么。首先考試不是單純地為了考學(xué)生,為了給學(xué)生一個(gè)教學(xué)記錄??荚囀菫榱俗寣W(xué)生更好地學(xué)習(xí),是為了督促檢查課程目標(biāo)的實(shí)現(xiàn)。程序設(shè)計(jì)基礎(chǔ)課程的目標(biāo)包含了知識(shí)、能力與技能3個(gè)部分,在這3個(gè)部分中,解決問(wèn)題和程序設(shè)計(jì)的能力最為重要,所以考試的內(nèi)容以能力為主,考核的知識(shí)是應(yīng)該具備的能力所需要的。編程的技能是學(xué)生必須掌握的,因此是必考的
至于采用什么樣的考試方式,要看它是否能夠更好地讓學(xué)生展示學(xué)習(xí)的成果。鑒于本門課程的特點(diǎn),考試內(nèi)容及方式可以擬定如下:“本課程的考試內(nèi)容為程序設(shè)計(jì)能力、解決問(wèn)題的能力以及C語(yǔ)言運(yùn)用的技能??荚嚨姆绞綖镺J平臺(tái)機(jī)考與案例解決方案?!?/p>
沒(méi)有采用筆試,不意味著知識(shí)不重要。更重要的是學(xué)生是否能夠?qū)W(xué)到的知識(shí)用于解決問(wèn)題中,而不是死記硬背知識(shí)。在制定考核內(nèi)容及方式時(shí),要充分考慮課程目標(biāo)。如果考核不理想時(shí),就要反思課程目標(biāo)是否合適,是否需要改進(jìn)?
3 課程內(nèi)容及學(xué)習(xí)方式
課程目標(biāo)是以學(xué)生為中心的,課程內(nèi)容和學(xué)習(xí)方式也必須是學(xué)生為中心。強(qiáng)調(diào)以學(xué)生為中心,主要考慮學(xué)生學(xué)會(huì)哪些內(nèi)容,學(xué)生以什么樣的方式學(xué)會(huì),而不是以教師的角度,教師該傳授哪些內(nèi)容,教師該如何傳授。強(qiáng)調(diào)以學(xué)生為中心,不是說(shuō)不需要教師,而是強(qiáng)調(diào)教師在傳授的內(nèi)容和方式上要以學(xué)生的“學(xué)會(huì)”為著眼點(diǎn)。
3.1 課程內(nèi)容
以往講一門課,實(shí)際上是講一本教材。圍繞著本課程目標(biāo)中關(guān)于能力、知識(shí)、技能的要求,課程內(nèi)容中除了C++語(yǔ)言本身,增加簡(jiǎn)單的算法設(shè)計(jì)、簡(jiǎn)單的數(shù)學(xué)建模思想,以此培養(yǎng)學(xué)生分析問(wèn)題、解決問(wèn)題和程序設(shè)計(jì)的能力。所以本課程的內(nèi)容如下:“本課程內(nèi)容大致分為如下幾個(gè)方面:C++語(yǔ)言、簡(jiǎn)單算法設(shè)計(jì)、簡(jiǎn)單的數(shù)學(xué)建模思想。3部分內(nèi)容不會(huì)獨(dú)立分開(kāi)講,而是通過(guò)有機(jī)地結(jié)合起來(lái),達(dá)到我們對(duì)學(xué)生能力培養(yǎng)的目的。至于教材我們也不會(huì)局限于一本教材,而是提供給學(xué)生更多的開(kāi)放內(nèi)容?!?/p>
本課程是借助于C++語(yǔ)言,向?qū)W生傳授設(shè)計(jì)的思想,培養(yǎng)學(xué)生解決問(wèn)題的能力。
3.2 學(xué)習(xí)形式
多年來(lái)我們一直延續(xù)著教師講一學(xué)生聽(tīng)一學(xué)生作業(yè)一教師總結(jié)一復(fù)習(xí)考試的流程模式。這種方式不是學(xué)生的學(xué)習(xí)方式,而是教師的傳授方式;不是以學(xué)生為中心的,是以教師為中心。若以學(xué)生為中心,就要考慮什么樣的方式能讓課程有效地達(dá)到目標(biāo)。課程目標(biāo)決定了學(xué)習(xí)方式。
程序設(shè)計(jì)基礎(chǔ)課程除了傳授語(yǔ)言知識(shí)外,還要培養(yǎng)學(xué)生解決問(wèn)題的能力,學(xué)生的編程技能。另外為了幫助大一學(xué)生順利過(guò)渡到大學(xué)的專業(yè)學(xué)習(xí),本門課程還承擔(dān)著培養(yǎng)學(xué)生自學(xué)能力的任務(wù)。根據(jù)煙臺(tái)大學(xué)學(xué)生的實(shí)際情況,對(duì)于較難部分教師承擔(dān)講解,如算法;對(duì)于簡(jiǎn)單部分學(xué)生自學(xué),如語(yǔ)言細(xì)節(jié)。本課程的學(xué)習(xí)方式如下:“本課程在教師指導(dǎo)下讓學(xué)生自學(xué)語(yǔ)言的使用、語(yǔ)言的細(xì)節(jié)、程序的運(yùn)行及測(cè)試。教師將程序設(shè)計(jì)思想、簡(jiǎn)單算法及其數(shù)學(xué)建模講解傳授給學(xué)生,引導(dǎo)學(xué)生掌握知識(shí)、運(yùn)用思想和能力,幫助學(xué)生自我培訓(xùn)編程的技能。”
筆者采用的學(xué)習(xí)方式,學(xué)生有主動(dòng)承擔(dān)的部分,教師有引導(dǎo)督促的責(zé)任,沒(méi)有將教師和學(xué)生完全分隔。既給了學(xué)生自我探索、自我學(xué)習(xí)、自我訓(xùn)練的空間,也強(qiáng)調(diào)了教師在學(xué)生學(xué)習(xí)過(guò)程中的引導(dǎo)角色。
4 結(jié)語(yǔ)
改革方案中的課程目標(biāo)、考核、課程內(nèi)容及學(xué)習(xí)方式都是建立在以學(xué)生為中心的基礎(chǔ)上,徹底改變了教師教、學(xué)生學(xué)的教學(xué)模式。改革方案的每一個(gè)環(huán)節(jié)中更凸顯對(duì)學(xué)生能力的培養(yǎng)。
煙臺(tái)大學(xué)近一年來(lái)進(jìn)行程序設(shè)計(jì)基礎(chǔ)課程的改革,在2013級(jí)學(xué)生中采用Online Judge平臺(tái)的機(jī)考模式,用實(shí)際問(wèn)題的程序設(shè)計(jì)求解取代傳統(tǒng)的筆試。這種考試方式的改革,徹底改變了學(xué)生背書的習(xí)慣,將學(xué)生的注意力吸引到對(duì)程序設(shè)計(jì)能力的關(guān)注。與2012、2011級(jí)學(xué)生對(duì)比,經(jīng)歷考試改革的2013級(jí)學(xué)生的程序設(shè)計(jì)能力大幅度提高。
僅僅考試改革就給程序設(shè)計(jì)基礎(chǔ)課程帶來(lái)了巨大變化,我們相信全方位的以學(xué)生為中心的教學(xué)改革方案將會(huì)給這門課程帶來(lái)更多活力,同時(shí)為計(jì)算機(jī)專業(yè)的教學(xué)改革帶來(lái)希望。