基于PBL的程序設(shè)計語言教學(xué)案例設(shè)計_第1頁
基于PBL的程序設(shè)計語言教學(xué)案例設(shè)計_第2頁
基于PBL的程序設(shè)計語言教學(xué)案例設(shè)計_第3頁
基于PBL的程序設(shè)計語言教學(xué)案例設(shè)計_第4頁
基于PBL的程序設(shè)計語言教學(xué)案例設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 基于PBL的程序設(shè)計語言教學(xué)案例設(shè)計 白洪濤1何麗莉2胡成全2(1吉林大學(xué)公共計算機教學(xué)與研究中心 吉林長春 130012;2吉林大學(xué)計算機科學(xué)與技術(shù)學(xué)院 吉林長春 130012)摘 要 針對學(xué)生學(xué)習(xí)計算機程序設(shè)計語言的困難,以提高學(xué)生的實際編程能力為目標(biāo),提出了分層次的基于問題(Problem Based Learning,PBL)的程序設(shè)計學(xué)習(xí)方法。包括:以激發(fā)學(xué)習(xí)興趣為目標(biāo)的教學(xué)情景案例、以培養(yǎng)“計算思維”為目標(biāo)的宏觀問題和以培養(yǎng)實際編程能力為目標(biāo)的微觀問題等。教學(xué)實踐表明基于PBL的教學(xué)取得了良好的效果。Key 基于問題的學(xué)習(xí) 教學(xué)情景 宏觀問題 微觀問題:G424 :A DOI:1

2、0.16400/ki.kjdkz.2015.08.061Programming Design Language Teaching Cases Base on PBLBAI Hongtao1, HE Lili2, HU Chengquan2(1 Center for Computer Fundamental Education, Jilin University, Changchun, Jilin 130012;2 College of Computer Science and Technology, Jilin University, Changchun, Jilin 130012)Abstr

3、act: For students to learn computer programming languages difficult, in order to improve students ability to target the actual programming is proposed based on hierarchical problem (Problem Based Learning, PBL) learning programming. Including: to stimulate interest in learning the target of teaching

4、 case scenario, to develop macro issues computational thinking as the goal, and to develop practical programming capabilities targeted micro issues and so on. The practice shows that the good results achieved based on the teaching of PBL.Keywords: problem-based learning; teaching situation; macro is

5、sues; micro issues0 引言計算機程序設(shè)計語言是學(xué)生們普遍認同的學(xué)習(xí)難點,過多的語法知識點以及在考核考評模式下,學(xué)習(xí)計算機程序設(shè)計語言應(yīng)有的根本目標(biāo)編程能力沒有得到很好的鍛煉。當(dāng)前的教學(xué)模式是以教師為主體,教師是教學(xué)過程的主導(dǎo),學(xué)生是知識的被動接受者和思想的跟隨者。因此,培養(yǎng)學(xué)生的創(chuàng)造力,構(gòu)建以學(xué)生“學(xué)”為中心的教學(xué)體系是非常必要的?;趩栴}(Problem Based Learning,PBL)的教學(xué)模式率先由美國神經(jīng)病學(xué)教授Barrows創(chuàng)立。PBL已從國際醫(yī)學(xué)界擴展到工程、法學(xué)、工商管理等諸多學(xué)科,從大學(xué)高等教育逐步延伸到中小學(xué)教育。PBL在國內(nèi)的起步較晚,上世紀(jì)90年代

6、才引起研究者的關(guān)注,全國教育科學(xué)“十五”項目規(guī)劃將PBL的網(wǎng)絡(luò)化設(shè)計列為重點課題。1994年開始,陸續(xù)有關(guān)PBL理論研究的文章發(fā)表,且側(cè)重于醫(yī)學(xué)教育領(lǐng)域,2000年后擴展到其他領(lǐng)域,但理論研究比例較大。PBL在高等院校計算機程序語言學(xué)課程中的實踐,則較為少見。本文引進PBL教學(xué)模式,通過基于“問題”的學(xué)習(xí),探尋一條適合學(xué)生學(xué)習(xí)計算機程序設(shè)計語言的有效途徑,同時為教師在教學(xué)中提供可參考的方法和思路。1 教學(xué)情景案例1.1 什么是計算機語言對于初學(xué)者而言,最直接的問題就是:“什么是計算機語言?”我們從通靈芯片一書中對計算機語言既抽象又形象的解釋來闡述這一問題。石頭上我蝕刻了一副圖案,內(nèi)有幾何圖形種

7、種,在不明者眼中,顯得神秘而又復(fù)雜,但我明白,只要布局正確,這塊石頭將被賦予一種特殊的能力,即對一種至今無人說過的咒語做出反應(yīng)。我用這種語言提問,石頭會顯靈應(yīng)答:那是一個我用符咒創(chuàng)造的世界,一個在石頭圖案內(nèi)想象的世界。石頭是硅片(硬件),咒語就是程序(軟件)。1.2 計算機語言與人類語言的關(guān)系,學(xué)習(xí)計算機語言與學(xué)習(xí)外語的相似性語言也是我們?nèi)祟惖闹饕涣魍緩剑f對方能夠聽得懂的話。若我們想讓計算機遵從我們的意愿工作,就必須對計算機“說”它能夠“聽得懂”的“語言”。學(xué)習(xí)和使用計算機語言與我們學(xué)期一門外語(如英語)一樣,有兩種方式:先學(xué)習(xí)單詞、語法,再學(xué)習(xí)語義。學(xué)習(xí)一定的語法,在使用(編程)中學(xué)習(xí)

8、語義,融會貫通。我們建議采用第二種學(xué)習(xí)方法,竭力避免為了語法而語法,死記硬背的學(xué)習(xí)是沒有意義的。1.3 結(jié)構(gòu)化程序設(shè)計的好處我們吃中餐都有這樣一個體會,同樣一個菜品,在不同的飯店,由不同的廚師做出來的味道迥異。而比如KFC,無論在世界上的哪個店面,口味幾乎是一樣的。同學(xué)們想為什么呢?對,因為KFC建立了一套標(biāo)準(zhǔn)化的食品制作流程,每個環(huán)節(jié)都是規(guī)定好的,細致的,不需要個人主觀“發(fā)揮”的。同樣,程序設(shè)計既可以是“京醬肉絲”,也可以是“漢堡包”??梢允撬囆g(shù),也可以是工程。比較而言,我們更側(cè)重于用工程化的思想和方法來進行程序設(shè)計。進而,有了結(jié)構(gòu)化程序設(shè)計方法,就是為了規(guī)范程序設(shè)計的個人行為的。使得程序有

9、更好的可讀性、可理解性和可移植性。 1.4 正確理解編譯器的提示信息同學(xué)們在用編譯器對高級語言源程序進行編譯的時候,若有語法錯誤,通常編譯器會告知我們語法錯誤出現(xiàn)在哪一行。有時僅僅有一個語法錯誤,但是編譯器會顯示有很多行都有錯誤。很多同學(xué)不理解,以為出了什么問題,其實這是可以解釋的,如圖1所示:圖1 編譯器匹配規(guī)則第一行有5個正確的匹配,如果我拿走了其中的一個(黃色一對中的一個),則高級語言順序編譯器根據(jù)至上而下檢查的原則,會出現(xiàn)4個(而不是一個)失配的錯誤。只要更正了黃色的部分,則所有錯誤消失。2 宏觀問題(1)如何才能學(xué)好計算機程序設(shè)計語言?回答:從模仿開始。人類學(xué)習(xí)母語是模仿,學(xué)習(xí)計算機

10、程序設(shè)計語言也可以從“照葫蘆畫瓢”開始,在模仿的過程中修正錯誤,掌握知識點,培養(yǎng)程序設(shè)計的思路、方法和技能。類比,學(xué)習(xí)外語如英語的方法也不該只是大量地背單詞,應(yīng)該是從說話、閱讀、寫作當(dāng)中學(xué)習(xí),學(xué)會用是最終目的,否則再多的單詞也是沒有生命力的。(2)if 語句和switchcase語句都能實現(xiàn)選擇分支,是不是二者用哪個都可以?回答:雖然從語法上,switchcase結(jié)構(gòu)相當(dāng)于多個if嵌套。也有一些題目來考察兩者的相互轉(zhuǎn)換。但語法不該被亂用或濫用,switchcase結(jié)構(gòu)只有在特定的多分支選擇時才適合使用。(3)條件表達式可以代替if語句,那么就多用條件表達式對嗎?回答:這個問題類似于switch

11、case結(jié)構(gòu)一樣,不能被濫用。只有類似于下面的條件語句if ( ab )Max = a;elseMax = b;才能使用 Max = ab?a:b;來代替,不是任何if語句轉(zhuǎn)換成條件表達式都是合適和易于理解的。(4)為什么C語言有“指針”?是必須的嗎?回答:包括C語言在內(nèi)的任何一種計算機程序設(shè)計語言,都是從實用性出發(fā)的,而不像數(shù)學(xué)定理那樣追求“當(dāng)且僅當(dāng)”。C語言的指針并不是必須的,比如C#就沒有指針的概念,但有了“指針”,能夠使程序更具靈活性,在實現(xiàn)某些功能時更方便、快捷。當(dāng)然,C語言的指針也有一些負面的作用,如野指針。對初學(xué)者來說,C語言的指針也確實是一個難點。但無論如何,同學(xué)們完全可以通過

12、勤學(xué)多練,掌握“指針”。隨著學(xué)習(xí)和應(yīng)用的深入,同學(xué)們會慢慢體會到C語言的“指針”不僅不是阻礙,而且還是解決問題的“利器”。3 微觀問題(1)數(shù)組既然是多個數(shù)據(jù)元素的集合,是否可以對數(shù)組所有元素進行整體輸入和輸出?例如:int a10;scanf(“%d”, a);回答:C語言規(guī)定,數(shù)組的名字代表了數(shù)組首元素的地址(或理解為數(shù)組在內(nèi)存中的起始地址),雖然scanf的參數(shù)表列的要求是地址,但不允許用一個地址將數(shù)組所有元素都輸入,除非要輸入的字符串,且字符串是放到字符數(shù)組中,并當(dāng)作一個整體來看待的。正確的方法是:int a10, i;for (i=0; i10; i+)scanf(“%d”, &ai

13、);對于字符數(shù)組而言,可以:int c10;scanf(“%s”, c);(2)如何驗證對浮點數(shù)在“足夠接近”情況下的等值?;卮穑焊↑c數(shù)的定義決定它的絕對精確度會隨著其代表的值變化, 所以比較兩個浮點數(shù)的最好方法就要利用一個精確的閾值。這個閾值和作比較的浮點數(shù)值大小有關(guān)。不要用下面的代碼:double a, b;.if (a = b) /*錯!*/要用類似下列的方法:#include if (fabs(a - b) = epsilon * fabs(a)epsilon 被賦為一個選定的值來控制“接近度”。你也要確定a 不會為0。(3)莫要亂寫“;”C語言程序的一行是以“;”為結(jié)尾的,但不意味著任何一行程序的末尾都要加“;”。比如:for ( i=0; i100; i+ )sum = sum + i;有很多同學(xué)在for ( i=0; i100; i+ )后加了一個“;”,這使得本來完成一個功能的語句,硬生生地被“分開”了。4 結(jié)束語熟練掌握一門計算機程序設(shè)計語言,無論是對計算機還是非計算機專業(yè)的學(xué)生都是非常重要的。教學(xué)實踐表明,通過不同層次基于問題的學(xué)習(xí),能夠顯著增強學(xué)生的主觀能動性,提升學(xué)習(xí)興趣。本文是在我校教育教學(xué)改革項目的支持下的教學(xué)研究成果。期望在政策的指引下,通過師生的共同努力,探

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論