摘要:程序設(shè)計(jì)基礎(chǔ)課程是大學(xué)非計(jì)算機(jī)專業(yè)學(xué)生的公共基礎(chǔ)課程,選修該課程的學(xué)生絕大多數(shù)未接觸過程序設(shè)計(jì)語(yǔ)言,計(jì)算機(jī)編程實(shí)踐能力相對(duì)較弱。文章對(duì)程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)方法、教學(xué)手段及考核評(píng)價(jià)方式作了系統(tǒng)探討,內(nèi)容包括教學(xué)組織與實(shí)驗(yàn)內(nèi)容,培養(yǎng)學(xué)生的自主學(xué)習(xí)與探索創(chuàng)新能力,采用靈活多樣的教學(xué)方式、規(guī)范考核方式等;提出了基于能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程教學(xué)的理念,并通過教學(xué)實(shí)踐有效地培養(yǎng)了學(xué)生的動(dòng)手能力、分析問題和解決問題的能力,取得了較好的教學(xué)效果,為研究型本科教學(xué)進(jìn)行了有益的探索。
關(guān)鍵詞:能力培養(yǎng);程序設(shè)計(jì);教學(xué)模式;教學(xué)評(píng)價(jià)
0 引言
中國(guó)當(dāng)代教育家、上海大學(xué)校長(zhǎng)錢偉長(zhǎng)早在上世紀(jì)八十年代就明確提出,大學(xué)教育首先是培養(yǎng)一個(gè)全面發(fā)展的人,其次才是一個(gè)專門家。實(shí)踐錢偉長(zhǎng)教育思想,推進(jìn)上海大學(xué)教育教學(xué)改革的深入開展,既是“通識(shí)教育”的需要,也是研究型大學(xué)教育教學(xué)改革的必然。研究型大學(xué)本科教育的教學(xué)目標(biāo),應(yīng)是使學(xué)生的知識(shí)結(jié)構(gòu)得以全面發(fā)展,并具有較強(qiáng)的自學(xué)能力、創(chuàng)新能力、實(shí)踐能力和心理素質(zhì)。
程序設(shè)計(jì)基礎(chǔ)課程是大學(xué)非計(jì)算機(jī)專業(yè)學(xué)生的公共基礎(chǔ)課程,如何開展該課程的教學(xué)活動(dòng),直接反映了教師的教學(xué)理念。程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)過程中,到底是選擇面向?qū)ο蟮倪€是選擇面向過程的語(yǔ)言,目前也有不少的爭(zhēng)論。有觀點(diǎn)認(rèn)為大學(xué)第一門程序設(shè)計(jì)語(yǔ)言采用Java是弊多利少。筆者完全贊同裘宗燕教授的觀點(diǎn),程序設(shè)計(jì)基礎(chǔ)課程不能僅僅圍繞編程語(yǔ)言的各種機(jī)制展開教學(xué),程序設(shè)計(jì)基礎(chǔ)課程要讓學(xué)生真正理解程序設(shè)計(jì)的基本概念,即掌握數(shù)據(jù)及其表示、變量的類型與值、基本的命令和流程控制結(jié)構(gòu)、子程序的抽象、循環(huán)與遞歸、接口界面與實(shí)現(xiàn)的分離及其相互關(guān)聯(lián)、復(fù)雜數(shù)據(jù)的組織、程序的復(fù)雜性及其控制手段等內(nèi)容。筆者在教學(xué)中選擇c語(yǔ)言作為程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)語(yǔ)言的主要考慮是,c語(yǔ)言是較理想的結(jié)構(gòu)化語(yǔ)言,描述能力強(qiáng),適用于初學(xué)者對(duì)程序設(shè)計(jì)的理解。
1 教學(xué)方法的探索
1.1 現(xiàn)狀分析
大學(xué)的學(xué)習(xí)與高中期間的學(xué)習(xí)是完全不同的,但是不少學(xué)生還沒有從高中應(yīng)試教學(xué)的慣性中擺脫出來(lái)。許多學(xué)生已經(jīng)形成了這樣的學(xué)習(xí)依賴性:離開了考試不知道該怎么學(xué)習(xí);離開了老師上課講的,不知道還要學(xué)習(xí)什么;除了老師的板書,不知道教材和參考書才是真正要認(rèn)真研讀的資料。讀大學(xué)被異化成了“聽大學(xué)”,遇到考試變成了一味地“背答案”。且自我控制能力薄弱、時(shí)間安排能力差、心理成熟時(shí)間明顯延后等特點(diǎn)十分突出。
程序設(shè)計(jì)課程的內(nèi)容采用“聽講”、“背答案”的學(xué)習(xí)方式是根本無(wú)法掌握的,必須通過大量的實(shí)踐訓(xùn)練才能感悟到程序設(shè)計(jì)的真諦。以往那種教師滿堂灌式的教學(xué)方式已經(jīng)明顯不能適應(yīng)教學(xué)實(shí)際,必須得到改進(jìn),必須讓學(xué)生清醒地認(rèn)識(shí)到,程序設(shè)計(jì)能力是與其在計(jì)算機(jī)上實(shí)際操作的時(shí)間成正比的。
1.2 精選教材,引導(dǎo)自學(xué)
為了讓學(xué)生建立起程序設(shè)計(jì)的概念,教學(xué)中必須改變以往從程序語(yǔ)言的基本語(yǔ)法入手的教學(xué)方式,要讓學(xué)生從對(duì)提出的問題的分析入手,逐步建立起程序設(shè)計(jì)的概念。為此,我們選取了清華大學(xué)出版社出版的優(yōu)秀教材《解析c程序設(shè)計(jì)》作為主教材。該教材的最大特點(diǎn)在于,主要章節(jié)都設(shè)有“問題分析一新知識(shí)講解一問題的實(shí)現(xiàn)一舉一反三”等內(nèi)容,十分適合學(xué)生的自學(xué),同時(shí)也為問題驅(qū)動(dòng)教學(xué)法和案例教學(xué)法的實(shí)施奠定了基礎(chǔ)。鑒于教材獨(dú)特的編寫形式,教學(xué)上采用了精講多練的方法組織教學(xué),每周僅安排了一個(gè)學(xué)時(shí)的講課,而學(xué)生練習(xí)的機(jī)時(shí)則安排了四個(gè)學(xué)時(shí)。
講課主要講解程序的基本概念和形式化的抽象方法,程序語(yǔ)言的語(yǔ)法規(guī)則留給學(xué)生自學(xué)掌握,同時(shí)安排了大量的實(shí)驗(yàn)來(lái)保證自學(xué)要求的完成。
1.3 學(xué)生演講,自學(xué)提高
為了讓學(xué)生掌握自學(xué)的能力、提高自學(xué)的效率,筆者在教學(xué)中讓全體學(xué)生按自愿的原則組成學(xué)習(xí)小組,每個(gè)小組推選一位組長(zhǎng),由組長(zhǎng)帶領(lǐng)本小組成員一起學(xué)習(xí)。教師則將程序設(shè)計(jì)的基本概念分解到每個(gè)小組,作為該小組重點(diǎn)學(xué)習(xí)的內(nèi)容來(lái)要求。并要求每個(gè)小組將本組的重點(diǎn)學(xué)習(xí)內(nèi)容經(jīng)過自學(xué)后,向全班同學(xué)進(jìn)行匯報(bào)演講,讓其他小組的同學(xué)也能更深入地了解相關(guān)的內(nèi)容。為了避免同組成員掌握程度相差太懸殊,要求演講的學(xué)生不是由學(xué)生自己決定,而是由任課教師隨機(jī)抽選,還要能夠經(jīng)受得住教師和其他同學(xué)的詰問,以此激勵(lì)每個(gè)小組成員都要真正掌握對(duì)應(yīng)的基本概念和基本編程方法。
1.4 團(tuán)隊(duì)協(xié)作,綜合訓(xùn)練
程序設(shè)計(jì)基礎(chǔ)課程教學(xué)中除了按小組組織自學(xué)外,還運(yùn)用問題驅(qū)動(dòng)法組織綜合性設(shè)計(jì)性實(shí)驗(yàn)。筆者以學(xué)習(xí)小組為單位,給學(xué)生提出要求實(shí)現(xiàn)的基本目標(biāo)作為問題進(jìn)行認(rèn)領(lǐng),要求小組成員通過互相討論、上網(wǎng)查閱等手段主動(dòng)建構(gòu)并綜合運(yùn)用所學(xué)知識(shí)來(lái)解決問題。這樣,既保證了絕大部分學(xué)生能夠完成要求,從而使他們建立起學(xué)習(xí)的興趣。同時(shí),為使基礎(chǔ)較好的學(xué)生能充分發(fā)揮潛能,允許學(xué)生自己提出需要解決的問題,讓優(yōu)秀學(xué)生能給出更個(gè)性化的設(shè)計(jì),從而進(jìn)一步培養(yǎng)學(xué)生的創(chuàng)造性。
按學(xué)習(xí)小組提出問題要求的方法,可以進(jìn)一步促進(jìn)學(xué)生間的相互交流和研討,培養(yǎng)學(xué)生的合作能力,包括組織能力、交往能力、獨(dú)立學(xué)習(xí)能力和團(tuán)隊(duì)合作精神等。這種面向任務(wù)的教學(xué)方法給予學(xué)生最大的發(fā)揮空間,培養(yǎng)了學(xué)生分析問題與解決問題的能力。
2 教學(xué)手段的探索
2.1 運(yùn)用現(xiàn)代教育技術(shù)實(shí)施教學(xué)
基于能力培養(yǎng)的課程教學(xué)需要相應(yīng)的教學(xué)手段的支持。筆者在探索過程中,將課程教學(xué)全部安排在機(jī)房進(jìn)行,講課采用了在機(jī)房?jī)?nèi)安裝教學(xué)廣播軟件的方法,教師既可以集中講解程序設(shè)計(jì)的基本概念和實(shí)現(xiàn)方法、演示程序設(shè)計(jì)理念和步驟,又可以在學(xué)生實(shí)踐過程中隨時(shí)發(fā)現(xiàn)問題、隨時(shí)作即興講授,而且學(xué)生可以立即在計(jì)算機(jī)上練習(xí),領(lǐng)會(huì)消化教師講過的知識(shí)點(diǎn)。
采用教學(xué)廣播軟件教學(xué)不同于常用的“計(jì)算機(jī)+投影”的教學(xué),教師的演講稿和操作過程可以直接發(fā)送到學(xué)生的計(jì)算機(jī)屏幕上,教師還可以遠(yuǎn)程指導(dǎo)學(xué)生在計(jì)算機(jī)上的操作,可以真正實(shí)現(xiàn)個(gè)性化教學(xué)和教學(xué)互動(dòng)。
2.2 建設(shè)協(xié)同教學(xué)平臺(tái)
基于能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程的教學(xué),以學(xué)生的學(xué)習(xí)為核心,教師的主要作用是引領(lǐng)學(xué)生循序漸進(jìn)地構(gòu)建知識(shí)體系,掌握基本概念。由于課堂內(nèi)教學(xué)時(shí)間的減少,需要在課堂教學(xué)之外給學(xué)生更多地提供學(xué)習(xí)的資源,因此,建設(shè)協(xié)同教學(xué)平臺(tái)具有十分重要的意義。如圖1所示,筆者利用校園網(wǎng)的教學(xué)應(yīng)用服務(wù)系統(tǒng),將課程教學(xué)大綱、教學(xué)要求、授課計(jì)劃、作業(yè)和練習(xí)的發(fā)布與收集、學(xué)習(xí)論壇、參考資料等全部上網(wǎng),為學(xué)生營(yíng)造一個(gè)良好的自主學(xué)習(xí)氛圍。利用多媒體課件和網(wǎng)絡(luò)技術(shù)組織教學(xué),符合當(dāng)代青年學(xué)生的生活習(xí)慣,能激發(fā)學(xué)生的學(xué)習(xí)興趣?,F(xiàn)代教育技術(shù)手段、豐富的網(wǎng)絡(luò)資源,也提升了課程的品質(zhì)和內(nèi)涵。
2.3 加強(qiáng)實(shí)踐,注重編程能力培養(yǎng)
程序設(shè)計(jì)基礎(chǔ)課程的教學(xué),其核心是學(xué)生編程能力的訓(xùn)練,強(qiáng)調(diào)的是分析問題和解決問題能力的培養(yǎng),學(xué)生只有通過大量的練習(xí),才能真正掌握編程語(yǔ)言的應(yīng)用,逐步理解和掌握程序設(shè)計(jì)的基本思想和方法,才能具有程序設(shè)計(jì)的能力。因此僅僅采用編寫短小的基本訓(xùn)練程序是不能讓學(xué)生真正具有編程能力的,只有使基本訓(xùn)練和綜合訓(xùn)練相結(jié)合才能達(dá)到教學(xué)目的。
基本訓(xùn)練的要求。每周明確課程學(xué)習(xí)的要求,將教學(xué)要求和基本訓(xùn)練的實(shí)驗(yàn)內(nèi)容提前在網(wǎng)上公告。學(xué)生通過大量的作業(yè)練習(xí),熟悉基本的語(yǔ)言知識(shí),掌握基本的編程方法。練習(xí)題既有主教材上提供的,也有《大學(xué)程序設(shè)計(jì)(c)實(shí)踐手冊(cè)》輔導(dǎo)教材中的練習(xí)。
綜合訓(xùn)練的要求。課程教學(xué)中安排了一個(gè)課程設(shè)計(jì)題目,采用綜合訓(xùn)練的方式,幫助學(xué)生真正掌握程序設(shè)計(jì)的思想和方法。整個(gè)過程以學(xué)生獨(dú)立完成為主,教師只提供必要的輔導(dǎo)。課程設(shè)計(jì)題目的程序代碼一般都在300行以上,具有大量的子函數(shù),且需要書寫相應(yīng)的設(shè)計(jì)報(bào)告。通過課程設(shè)計(jì)題的練習(xí),使學(xué)生真正懂得了什么是程序設(shè)計(jì),什么是程序接口與程序?qū)崿F(xiàn)的隔離,也懂得了如何進(jìn)行正確的程序調(diào)試,編程能力有所提高。
3 考核評(píng)價(jià)方法的探索
基于能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程教學(xué),不僅要在教學(xué)方法、教學(xué)手段上進(jìn)行探索,同時(shí)為了真正體現(xiàn)對(duì)學(xué)生應(yīng)用計(jì)算機(jī)能力的培養(yǎng),還需要在課程考核和成績(jī)?cè)u(píng)價(jià)上進(jìn)行積極的探索。
3.1 作業(yè)上傳,強(qiáng)化過程考核
作業(yè)、實(shí)驗(yàn)結(jié)果的收集是檢驗(yàn)學(xué)生學(xué)習(xí)情況的必要環(huán)節(jié),既是教師了解學(xué)生學(xué)習(xí)成果的途徑,也是評(píng)價(jià)學(xué)生學(xué)習(xí)成績(jī)的重要組成。
由于學(xué)生的自我約束和時(shí)間安排能力較弱,筆者在教學(xué)過程中將實(shí)驗(yàn)要求分為基本要求、較高要求和提高要求三類:基本要求必須完成,是實(shí)驗(yàn)教學(xué)的底線;針對(duì)有一定基礎(chǔ)的學(xué)生,較高要求盡量完成;針對(duì)優(yōu)秀學(xué)生,提高要求設(shè)法完成。學(xué)生完成不同類型的實(shí)驗(yàn)可以得到不同等第的成績(jī):完成基本要求的得60分,完成較高要求的加20分,完成提高要求的再加20分。由于實(shí)驗(yàn)工作量安排較多,學(xué)生在上機(jī)實(shí)驗(yàn)過程中有一定的壓力感,從而可以減少學(xué)生上機(jī)過程中玩游戲、上網(wǎng)、聊天等現(xiàn)象。
為避免學(xué)生只注重期末考試,輕視平時(shí)學(xué)習(xí),筆者在教學(xué)過程中十分強(qiáng)調(diào)過程考核,學(xué)生平時(shí)實(shí)驗(yàn)完成作業(yè)練習(xí)和設(shè)計(jì)的成績(jī),占到學(xué)期總評(píng)成績(jī)的30%~50%。平時(shí)成績(jī)中既有基本訓(xùn)練的實(shí)驗(yàn)成績(jī),也有綜合訓(xùn)練的課程設(shè)計(jì)成績(jī)。
3.2 機(jī)試考核,強(qiáng)化編程能力訓(xùn)練
基于能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程的考試也要體現(xiàn)能檢驗(yàn)學(xué)生編程的能力。筆者在教學(xué)過程中,對(duì)該課程的期末考核采用取消筆試、全部機(jī)考的方法,在自行研制開發(fā)的通用計(jì)算機(jī)考試平臺(tái)上進(jìn)行。該平臺(tái)支持多種題型的考試,且不受應(yīng)用環(huán)境的限制。在本課程的考試中,筆者設(shè)置了程序改錯(cuò)、程序填空和編程題三類題型,其中編程題占的比例達(dá)到50%。
4 結(jié)束語(yǔ)
在基于能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)探索中,我們通過對(duì)精選教材、學(xué)生演講、團(tuán)隊(duì)協(xié)作等多種教學(xué)方法的運(yùn)用,在協(xié)同教學(xué)的網(wǎng)絡(luò)平臺(tái)上構(gòu)建了一個(gè)有利于學(xué)生自學(xué)、有利于訓(xùn)練學(xué)生程序設(shè)計(jì)思想、有利于考核學(xué)生程序設(shè)計(jì)能力的良好的學(xué)習(xí)環(huán)境。教學(xué)是一種互動(dòng)活動(dòng),教學(xué)活動(dòng)中要充分調(diào)動(dòng)學(xué)生“學(xué)”的積極性。采用自學(xué)為主、擴(kuò)大實(shí)踐教學(xué)學(xué)時(shí)的教學(xué)方式,是探索研究型本科教育的有益嘗試。