範文齋

位置:首頁 > 校園範文 > 語文

淺析以計算思維爲導向的程序設計課程教學案例設計

語文1.8W

【摘 要】針對《C語言程序設計》課程的傳統教學存在的問題,文章提出以計算思維爲導向的案例教學法,而如何設計有效的教學案例是核心。針對傳統教學存在的問題,以計算思維爲導向,總結教學案例設計的原則,設計教學案例。通過《C語言程序設計》課程教學實驗,證明提出的以計算思維爲導向的程序設計教學案例設計方法是有效的。

淺析以計算思維爲導向的程序設計課程教學案例設計

【關鍵詞】計算思維 C語言程序設計 教學案例設計 中圖分類號:G642

課題資助:陝西省教育科學“十二五”規劃2014年度課題(SGH140896)。

計算思維

計算思維的概念是由美國卡內基?梅隆大學計算機科學系周以真(Jeannette M. Wing)教授於2006年提出的教育理念,2013年,周教授接受《中國信息技術教育》雜誌社劉向永記者的訪談時對計算思維進行了詮釋[1-3]。

國外的衆多研究者涵蓋計算機教育界、社會學界以及哲學界等各個領域對計算思維進行深入的研究[4]。ACM和IEEE-CS在修訂後的《計算機科學教程2008》(Computer Science Curriculum 2008)[5]79-84中明確指出應該將計算思維作爲計算機科學教學的重要組成部分。

在國內,基於計算機技術和Internet技術的飛速發展,培養大學生計算機綜合能力,提高大學生使用程序語言解決問題的能力,是當今大學生計算機基礎教育的核心點之一[6]。根據《中國高等院校計算機基礎教育課程體系2008》的規定,高校程序設計基礎課程的學習目標是:

⑴學習問題求解的思路和方法,即算法。

⑵理解計算機是如何具體實現算法的,即如何纔能有效利用計算機編程。

因此在程序設計課程教學任務中,不僅要使學生掌握程序語言的語法規則來編寫程序,更重要的是掌握算法思想與問題求解的思路,而計算思維正是使學生掌握使用計算機科學對問題進行求解的一種思維方法和能力。

國內外的衆多學者把計算思維能力的培養視爲教育界改革的重要研究範疇,特別是在計算機教育領域,進行了多年的研究與探索。如何將計算思維的理念融入到計算機教學中,培養學生計算思維能力,成爲計算機教學研究的焦點和改革的突破點,並在此研究中取得了一定的成果,但在程序設計課程教學中培養計算思維尚未形成一套完整的教學模式,仍處於探索階段。

如何將計算思維真正融入程序設計課程中,我們進行了一定的探討,在多年的程序設計課程教學中總結了一定的經驗,基於計算思維的案例教學法比較適用,但是如何設計合理有效的設計案例是案例教學法成功的關鍵。

以計算思維爲導向的教學案例設計原則

托爾說:“一個出色的案例,是教師與學生就某一具體事實相互作用的工具;一個出色的案例,是以實際生活情境中肯定會出現的事實爲基礎所展開的課堂討論。它是進行學術探討的支撐點;它是關於某種複雜情境的記錄;它一般是在讓學生理解這個情境之前,首先將其分解成若干成分,然後再將其整合在一起。”

對C語言程序設計課程的教學任務而言,更重要的是使學生學習計算機分析、解決問題的思路和方法[7]。因此,在C語言程序設計課程教學過程中,一定要避免只重視程序設計語言的語法規則的錯誤思想,在將計算思維的培養作爲教學核心任務的教學過程中要重視程序設計方法,而不是語言本身,不僅要求學生用計算機讀得懂程序,編寫和調試代碼,更重要的是要學會如何設計算法,從而開發學生的主動性和能動性。

如何設計以計算思維爲導向的程序設計案例,是案例教學法的核心,經過多年程序設計課程教學的經驗,將程序設計課程的教學案例設計原則總結如下:

1.案例選題的生活化

在教學案例的選擇中堅持生活化、常態化的原則,即選擇貼近生活、學生比較熟悉的問題,讓學生在熟悉的問題下思考解決方法,這樣可以緩解學生對程序設計的畏懼感。在學生給出問題的解決方法並用計算機進行求解後,學生會有一種恍然大悟的感覺,他們從中認識到計算機竟然能這麼方便地用以解決日常生活中的問題,從而消除對程序設計語言的抽象、枯燥的感覺。這樣生活化的案例在問題的求解中激發學生的學習興趣,讓學生在興趣盎然的氛圍中學習,感受到程序就在身邊。而對生活化的問題求解鍛鍊了學生日常問題求解的思維,從而培養學生的計算思維。

2.案例涵蓋知識點的典型化

根據每節課的教學目標和教學內容的需要適當選擇教學案例,將本節課的教學內容涵蓋在案例的解決中,同時要符合學生的認知水平,案例的設計既是學生平時耳聞目睹的,但又瞭解不深的普遍問題,這樣可使學生對這些問題的實際背景容易接受,從而願意去深入瞭解,這樣的案例可以使學生更容易理解教學內容,同時能夠讓學生觸類旁通,利用所學知識解決類似問題。

3.案例問題的提出和解決的程序化

使教學案例的設計與計算思維相結合,在案例問題的解決中注重算法的設計,方法的選擇,培養學生獨立解決問題的能力,並在案例中適當添加程序語言,使學生在問題解決的同時可以使算法程序化,這樣既可以培養學生的計算思維,又可以培養學生的程序思維,使枯燥無味的程序語法知識順其自然地在案例中學習,從而提高學生應用計算機知識抽象和分解問題的能力。

典型案例解析

根據課程教學目標和教學內容,以選擇生活化、常態化的案例爲原則,以計算思維爲導向的程序設計案例的選擇原則,讓學生體會到如何用計算機解決問題的方法來解決日常生活中的問題。下面以一個典型案例的設計爲例具體實現案例設計和應用。

教學內容:指針和數組。

教學目的:掌握指針和數組的定義以及使用。

教學重點:指針和數組的定義及使用。

教學難點:指針和數組的使用。 針對C語言程序設計課程中指針和數組知識的學習,下面給出一個常見問題求解的案例,這一案例同樣適用於數組知識的學習,只是案例中問題求解的方式有所變化。

1.問題提出:根據二代居民身份證號確定此人性別的問題。

2.常識解答:居民二代身份證號共18位,從左向右前6位爲戶口所在地,第7~14位共8位爲出生年月日,第15~17位爲順序位(同地區同年同月同日生的'人的順序編號)其中第17位代表性別(奇數爲男、偶數爲女),最後1位爲校驗位。

3.問題求解:從18位數字中取出第17位,然後判斷奇偶性,奇數爲男、偶數爲女。

對分解後的兩個問題,針對不同的理論學習內容,我們有很多種解決方法,如:使用函數提取字符串中的一個或多個字符、使用數組下標提取數組元素、使用指針提取數組元素等多種方法。下面針對指針的學習給出求解方法。

4.求解方法:

Step1:利用數組存儲給定的18位數字,利用指針的移動提取第17位數字;

Step2:用取出的第17位數字與2模除取其餘數,判斷奇偶性。

5.算法分析:針對以上問題的求解方法爲例寫出相應算法:

Step1:定義整型數組a,整型變量b,整型指針變量p;

Step2:將18位身份證號賦值給a數組,指針p指向數組的首地址;

Step3:移動指針指向第17位數字;

Step4:指針提取第17位數字後模除2取餘數賦值給b變量;

Step5:判斷b的奇偶性,如果是奇數則是男,如果是偶數則爲女;

Step6:輸出結果。

6.問題求解方法的代碼化:

#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","女");

}

這一案例是非常生活化的案例,每個人都有身份證號,但是將這樣一個常見問題用程序設計語言在計算機上實現確實不是一件容易的事情,結合教學內容和教學目標,將問題的解決方法限定在指針和數組的使用,更是加大了問題的解決難度。就案例分析和問題的解決而言,讓學生選擇多種解決方法,訓練學生如何將生活中的問題用計算機來解決,同時掌握指針和數組的定義、賦值及使用等基礎知識。使學生在案例分析和算法設計時培養了計算思維能力,同時讓學生在有趣的案例中學習相對枯燥的理論知識。

總結

大學教育更多的是素質的養成,能力的培養,正像一條教育格言講的:“Tell me and I will forget. Teach me and I will know. Involve me and I will learn.”在大學教育中,要少一些灌輸,多一些參與。《C語言程序設計》課程的傳統教學存在一定的問題,在多年的程序設計課程教學中提出以計算思維爲導向的案例教學法,並針對教學案例設計的核心問題進行研究,針對傳統教學存在的問題,以計算思維爲導向,總結了教學案例設計的原則,設計了教學案例。通過《C語言程序設計》課程教學實驗證明,提出的以計算思維爲導向的程序設計教學案例設計方法是有效的。學生通過案例教學可以提高學生的學習積極性和主動性,大衆化的案例解決在使學生掌握了相關理論知識的同時培養了學生分析和解決問題的能力,培養了學生的計算思維。

參考文獻:

[1]Jeannette M. Wing,“Computational Thinking,”Communication of the ACM,no.49(Mar.2006):33-35.

[2]劉向永、周以真:《計算思維改變信息技術課程》,《中國信息技術教育》2013年第6期,第5-12頁。

[3]周以真:《計算思維》,《中國計算機學會通訊》2007年第3卷第11期,第83-85頁。

[4]《九校聯盟(C9)計算機基礎教學發展戰略聯合聲明》,《中國大學教學》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://.

[6]教育部高等學校計算機基礎課程教學指導委員會:《高等學校計算機基礎教學發展戰略研究報告暨計算機基礎課程教學基本要求》,高等教育出版社,2009。

[7]戰德臣、聶蘭順:《計算思維與大學計算機課程改革的基本思路》,《中國大學教學》2013年第2期,第56-60頁。