- 相關(guān)推薦
淺析以計算思維為導向的程序設計課程教學(xué)案例設計
【摘 要】針對《C語(yǔ)言程序設計》課程的傳統教學(xué)存在的問(wèn)題,文章提出以計算思維為導向的案例教學(xué)法,而如何設計有效的教學(xué)案例是核心。針對傳統教學(xué)存在的問(wèn)題,以計算思維為導向,總結教學(xué)案例設計的原則,設計教學(xué)案例。通過(guò)《C語(yǔ)言程序設計》課程教學(xué)實(shí)驗,證明提出的以計算思維為導向的程序設計教學(xué)案例設計方法是有效的。
【關(guān)鍵詞】計算思維 C語(yǔ)言程序設計 教學(xué)案例設計 中圖分類(lèi)號:G642
課題資助:陜西省教育科學(xué)“十二五”規劃2014年度課題(SGH140896)。
計算思維
計算思維的概念是由美國卡內基?梅隆大學(xué)計算機科學(xué)系周以真(Jeannette M. Wing)教授于2006年提出的教育理念,2013年,周教授接受《中國信息技術(shù)教育》雜志社劉向永記者的訪(fǎng)談時(shí)對計算思維進(jìn)行了詮釋[1-3]。
國外的眾多研究者涵蓋計算機教育界、社會(huì )學(xué)界以及哲學(xué)界等各個(gè)領(lǐng)域對計算思維進(jìn)行深入的研究[4]。ACM和IEEE-CS在修訂后的《計算機科學(xué)教程2008》(Computer Science Curriculum 2008)[5]79-84中明確指出應該將計算思維作為計算機科學(xué)教學(xué)的重要組成部分。
在國內,基于計算機技術(shù)和Internet技術(shù)的飛速發(fā)展,培養大學(xué)生計算機綜合能力,提高大學(xué)生使用程序語(yǔ)言解決問(wèn)題的能力,是當今大學(xué)生計算機基礎教育的核心點(diǎn)之一[6]。根據《中國高等院校計算機基礎教育課程體系2008》的規定,高校程序設計基礎課程的學(xué)習目標是:
、艑W(xué)習問(wèn)題求解的思路和方法,即算法。
、评斫庥嬎銠C是如何具體實(shí)現算法的,即如何才能有效利用計算機編程。
因此在程序設計課程教學(xué)任務(wù)中,不僅要使學(xué)生掌握程序語(yǔ)言的語(yǔ)法規則來(lái)編寫(xiě)程序,更重要的是掌握算法思想與問(wèn)題求解的思路,而計算思維正是使學(xué)生掌握使用計算機科學(xué)對問(wèn)題進(jìn)行求解的一種思維方法和能力。
國內外的眾多學(xué)者把計算思維能力的培養視為教育界改革的重要研究范疇,特別是在計算機教育領(lǐng)域,進(jìn)行了多年的研究與探索。如何將計算思維的理念融入到計算機教學(xué)中,培養學(xué)生計算思維能力,成為計算機教學(xué)研究的焦點(diǎn)和改革的突破點(diǎn),并在此研究中取得了一定的成果,但在程序設計課程教學(xué)中培養計算思維尚未形成一套完整的教學(xué)模式,仍處于探索階段。
如何將計算思維真正融入程序設計課程中,我們進(jìn)行了一定的探討,在多年的程序設計課程教學(xué)中總結了一定的經(jīng)驗,基于計算思維的案例教學(xué)法比較適用,但是如何設計合理有效的設計案例是案例教學(xué)法成功的關(guān)鍵。
以計算思維為導向的教學(xué)案例設計原則
托爾說(shuō):“一個(gè)出色的案例,是教師與學(xué)生就某一具體事實(shí)相互作用的工具;一個(gè)出色的案例,是以實(shí)際生活情境中肯定會(huì )出現的事實(shí)為基礎所展開(kāi)的課堂討論。它是進(jìn)行學(xué)術(shù)探討的支撐點(diǎn);它是關(guān)于某種復雜情境的記錄;它一般是在讓學(xué)生理解這個(gè)情境之前,首先將其分解成若干成分,然后再將其整合在一起!
對C語(yǔ)言程序設計課程的教學(xué)任務(wù)而言,更重要的是使學(xué)生學(xué)習計算機分析、解決問(wèn)題的思路和方法[7]。因此,在C語(yǔ)言程序設計課程教學(xué)過(guò)程中,一定要避免只重視程序設計語(yǔ)言的語(yǔ)法規則的錯誤思想,在將計算思維的培養作為教學(xué)核心任務(wù)的教學(xué)過(guò)程中要重視程序設計方法,而不是語(yǔ)言本身,不僅要求學(xué)生用計算機讀得懂程序,編寫(xiě)和調試代碼,更重要的是要學(xué)會(huì )如何設計算法,從而開(kāi)發(fā)學(xué)生的主動(dòng)性和能動(dòng)性。
如何設計以計算思維為導向的程序設計案例,是案例教學(xué)法的核心,經(jīng)過(guò)多年程序設計課程教學(xué)的經(jīng)驗,將程序設計課程的教學(xué)案例設計原則總結如下:
1.案例選題的生活化
在教學(xué)案例的選擇中堅持生活化、常態(tài)化的原則,即選擇貼近生活、學(xué)生比較熟悉的問(wèn)題,讓學(xué)生在熟悉的問(wèn)題下思考解決方法,這樣可以緩解學(xué)生對程序設計的畏懼感。在學(xué)生給出問(wèn)題的解決方法并用計算機進(jìn)行求解后,學(xué)生會(huì )有一種恍然大悟的感覺(jué),他們從中認識到計算機竟然能這么方便地用以解決日常生活中的問(wèn)題,從而消除對程序設計語(yǔ)言的抽象、枯燥的感覺(jué)。這樣生活化的案例在問(wèn)題的求解中激發(fā)學(xué)生的學(xué)習興趣,讓學(xué)生在興趣盎然的氛圍中學(xué)習,感受到程序就在身邊。而對生活化的問(wèn)題求解鍛煉了學(xué)生日常問(wèn)題求解的思維,從而培養學(xué)生的計算思維。
2.案例涵蓋知識點(diǎn)的典型化
根據每節課的教學(xué)目標和教學(xué)內容的需要適當選擇教學(xué)案例,將本節課的教學(xué)內容涵蓋在案例的解決中,同時(shí)要符合學(xué)生的認知水平,案例的設計既是學(xué)生平時(shí)耳聞目睹的,但又了解不深的普遍問(wèn)題,這樣可使學(xué)生對這些問(wèn)題的實(shí)際背景容易接受,從而愿意去深入了解,這樣的案例可以使學(xué)生更容易理解教學(xué)內容,同時(shí)能夠讓學(xué)生觸類(lèi)旁通,利用所學(xué)知識解決類(lèi)似問(wèn)題。
3.案例問(wèn)題的提出和解決的程序化
使教學(xué)案例的設計與計算思維相結合,在案例問(wèn)題的解決中注重算法的設計,方法的選擇,培養學(xué)生獨立解決問(wèn)題的能力,并在案例中適當添加程序語(yǔ)言,使學(xué)生在問(wèn)題解決的同時(shí)可以使算法程序化,這樣既可以培養學(xué)生的計算思維,又可以培養學(xué)生的程序思維,使枯燥無(wú)味的程序語(yǔ)法知識順其自然地在案例中學(xué)習,從而提高學(xué)生應用計算機知識抽象和分解問(wèn)題的能力。
典型案例解析
根據課程教學(xué)目標和教學(xué)內容,以選擇生活化、常態(tài)化的案例為原則,以計算思維為導向的程序設計案例的選擇原則,讓學(xué)生體會(huì )到如何用計算機解決問(wèn)題的方法來(lái)解決日常生活中的問(wèn)題。下面以一個(gè)典型案例的設計為例具體實(shí)現案例設計和應用。
教學(xué)內容:指針和數組。
教學(xué)目的:掌握指針和數組的定義以及使用。
教學(xué)重點(diǎn):指針和數組的定義及使用。
教學(xué)難點(diǎn):指針和數組的使用。 針對C語(yǔ)言程序設計課程中指針和數組知識的學(xué)習,下面給出一個(gè)常見(jiàn)問(wèn)題求解的案例,這一案例同樣適用于數組知識的學(xué)習,只是案例中問(wèn)題求解的方式有所變化。
1.問(wèn)題提出:根據二代居民身份證號確定此人性別的問(wèn)題。
2.常識解答:居民二代身份證號共18位,從左向右前6位為戶(hù)口所在地,第7~14位共8位為出生年月日,第15~17位為順序位(同地區同年同月同日生的人的順序編號)其中第17位代表性別(奇數為男、偶數為女),最后1位為校驗位。
3.問(wèn)題求解:從18位數字中取出第17位,然后判斷奇偶性,奇數為男、偶數為女。
對分解后的兩個(gè)問(wèn)題,針對不同的理論學(xué)習內容,我們有很多種解決方法,如:使用函數提取字符串中的一個(gè)或多個(gè)字符、使用數組下標提取數組元素、使用指針提取數組元素等多種方法。下面針對指針的學(xué)習給出求解方法。
4.求解方法:
Step1:利用數組存儲給定的18位數字,利用指針的移動(dòng)提取第17位數字;
Step2:用取出的第17位數字與2模除取其余數,判斷奇偶性。
5.算法分析:針對以上問(wèn)題的求解方法為例寫(xiě)出相應算法:
Step1:定義整型數組a,整型變量b,整型指針變量p;
Step2:將18位身份證號賦值給a數組,指針p指向數組的首地址;
Step3:移動(dòng)指針指向第17位數字;
Step4:指針提取第17位數字后模除2取余數賦值給b變量;
Step5:判斷b的奇偶性,如果是奇數則是男,如果是偶數則為女;
Step6:輸出結果。
6.問(wèn)題求解方法的代碼化:
#includestdio.h
main( )
{
int i,c,a[18]={1,5,0,4,2,8,1,9,8,9,0,6,0,8,1,2,3,3},*p;
p=a;
for(i=0;ii++)
p++;
b=*p%2;
if(b==1)
printf("%s\n","男");
else
printf("%s\n","女");
}
這一案例是非常生活化的案例,每個(gè)人都有身份證號,但是將這樣一個(gè)常見(jiàn)問(wèn)題用程序設計語(yǔ)言在計算機上實(shí)現確實(shí)不是一件容易的事情,結合教學(xué)內容和教學(xué)目標,將問(wèn)題的解決方法限定在指針和數組的使用,更是加大了問(wèn)題的解決難度。就案例分析和問(wèn)題的解決而言,讓學(xué)生選擇多種解決方法,訓練學(xué)生如何將生活中的問(wèn)題用計算機來(lái)解決,同時(shí)掌握指針和數組的定義、賦值及使用等基礎知識。使學(xué)生在案例分析和算法設計時(shí)培養了計算思維能力,同時(shí)讓學(xué)生在有趣的案例中學(xué)習相對枯燥的理論知識。
總結
大學(xué)教育更多的是素質(zhì)的養成,能力的培養,正像一條教育格言講的:“Tell me and I will forget. Teach me and I will know. Involve me and I will learn.”在大學(xué)教育中,要少一些灌輸,多一些參與!禖語(yǔ)言程序設計》課程的傳統教學(xué)存在一定的問(wèn)題,在多年的程序設計課程教學(xué)中提出以計算思維為導向的案例教學(xué)法,并針對教學(xué)案例設計的核心問(wèn)題進(jìn)行研究,針對傳統教學(xué)存在的問(wèn)題,以計算思維為導向,總結了教學(xué)案例設計的原則,設計了教學(xué)案例。通過(guò)《C語(yǔ)言程序設計》課程教學(xué)實(shí)驗證明,提出的以計算思維為導向的程序設計教學(xué)案例設計方法是有效的。學(xué)生通過(guò)案例教學(xué)可以提高學(xué)生的學(xué)習積極性和主動(dòng)性,大眾化的案例解決在使學(xué)生掌握了相關(guān)理論知識的同時(shí)培養了學(xué)生分析和解決問(wèn)題的能力,培養了學(xué)生的計算思維。
參考文獻:
[1]Jeannette M. Wing,“Computational Thinking,”Communication of the ACM,no.49(Mar.2006):33-35.
[2]劉向永、周以真:《計算思維改變信息技術(shù)課程》,《中國信息技術(shù)教育》2013年第6期,第5-12頁(yè)。
[3]周以真:《計算思維》,《中國計算機學(xué)會(huì )通訊》2007年第3卷第11期,第83-85頁(yè)。
[4]《九校聯(lián)盟(C9)計算機基礎教學(xué)發(fā)展戰略聯(lián)合聲明》,《中國大學(xué)教學(xué)》2010年第9期。
[5]“CM/IEEE Computer Society Interim Review Task Force,”Computer science curriculum 2008: An interim revision of CS 2001, accessed June 28, 2010, http://www.acm.org/education/curricula/.
[6]教育部高等學(xué)校計算機基礎課程教學(xué)指導委員會(huì ):《高等學(xué)校計算機基礎教學(xué)發(fā)展戰略研究報告暨計算機基礎課程教學(xué)基本要求》,高等教育出版社,2009。
[7]戰德臣、聶蘭順:《計算思維與大學(xué)計算機課程改革的基本思路》,《中國大學(xué)教學(xué)》2013年第2期,第56-60頁(yè)。
【淺析以計算思維為導向的程序設計課程教學(xué)案例設計】相關(guān)文章:
淺析中職學(xué)校融匯基礎設計課程的電腦美術(shù)設計教學(xué)07-03
案例設計與案例教學(xué)分析論文07-03
程序設計心得06-19
計算機軟件程序設計分析論文07-04
課程教學(xué)設計11-02
教學(xué)案例設計與反思07-04
設計思維08-06
設計思維08-13
課程設計教學(xué)設計12-24
《小兔運南瓜》教學(xué)設計案例07-04