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