張敏
以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)課程教學(xué)案例設(shè)計(jì)探析
張敏
針對(duì)《C語(yǔ)言程序設(shè)計(jì)》課程的傳統(tǒng)教學(xué)存在的問題,文章提出以計(jì)算思維為導(dǎo)向的案例教學(xué)法,而如何設(shè)計(jì)有效的教學(xué)案例是核心。針對(duì)傳統(tǒng)教學(xué)存在的問題,以計(jì)算思維為導(dǎo)向,總結(jié)教學(xué)案例設(shè)計(jì)的原則,設(shè)計(jì)教學(xué)案例。通過《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)實(shí)驗(yàn),證明提出的以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)教學(xué)案例設(shè)計(jì)方法是有效的。
計(jì)算思維 C語(yǔ)言程序設(shè)計(jì) 教學(xué)案例設(shè)計(jì)
課題資助:陜西省教育科學(xué)“十二五”規(guī)劃2014年度課題(SGH 140896)。
計(jì)算思維的概念是由美國(guó)卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)科學(xué)系周以真(J eannette M.W ing)教授于2006年提出的教育理念,2013年,周教授接受《中國(guó)信息技術(shù)教育》雜志社劉向永記者的訪談時(shí)對(duì)計(jì)算思維進(jìn)行了詮釋[1-3]。
國(guó)外的眾多研究者涵蓋計(jì)算機(jī)教育界、社會(huì)學(xué)界以及哲學(xué)界等各個(gè)領(lǐng)域?qū)τ?jì)算思維進(jìn)行深入的研究[4]。AC M和IEEE-CS在修訂后的《計(jì)算機(jī)科學(xué)教程2008》(C o mputer Science Curricul um 2008)[5]79-84中明確指出應(yīng)該將計(jì)算思維作為計(jì)算機(jī)科學(xué)教學(xué)的重要組成部分。
在國(guó)內(nèi),基于計(jì)算機(jī)技術(shù)和Internet技術(shù)的飛速發(fā)展,培養(yǎng)大學(xué)生計(jì)算機(jī)綜合能力,提高大學(xué)生使用程序語(yǔ)言解決問題的能力,是當(dāng)今大學(xué)生計(jì)算機(jī)基礎(chǔ)教育的核心點(diǎn)之一[6]。根據(jù)《中國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系2008》的規(guī)定,高校程序設(shè)計(jì)基礎(chǔ)課程的學(xué)習(xí)目標(biāo)是:
⑴學(xué)習(xí)問題求解的思路和方法,即算法。
⑵理解計(jì)算機(jī)是如何具體實(shí)現(xiàn)算法的,即如何才能有效利用計(jì)算機(jī)編程。
因此在程序設(shè)計(jì)課程教學(xué)任務(wù)中,不僅要使學(xué)生掌握程序語(yǔ)言的語(yǔ)法規(guī)則來編寫程序,更重要的是掌握算法思想與問題求解的思路,而計(jì)算思維正是使學(xué)生掌握使用計(jì)算機(jī)科學(xué)對(duì)問題進(jìn)行求解的一種思維方法和能力。
國(guó)內(nèi)外的眾多學(xué)者把計(jì)算思維能力的培養(yǎng)視為教育界改革的重要研究范疇,特別是在計(jì)算機(jī)教育領(lǐng)域,進(jìn)行了多年的研究與探索。如何將計(jì)算思維的理念融入到計(jì)算機(jī)教學(xué)中,培養(yǎng)學(xué)生計(jì)算思維能力,成為計(jì)算機(jī)教學(xué)研究的焦點(diǎn)和改革的突破點(diǎn),并在此研究中取得了一定的成果,但在程序設(shè)計(jì)課程教學(xué)中培養(yǎng)計(jì)算思維尚未形成一套完整的教學(xué)模式,仍處于探索階段。
如何將計(jì)算思維真正融入程序設(shè)計(jì)課程中,我們進(jìn)行了一定的探討,在多年的程序設(shè)計(jì)課程教學(xué)中總結(jié)了一定的經(jīng)驗(yàn),基于計(jì)算思維的案例教學(xué)法比較適用,但是如何設(shè)計(jì)合理有效的設(shè)計(jì)案例是案例教學(xué)法成功的關(guān)鍵。
托爾說:“一個(gè)出色的案例,是教師與學(xué)生就某一具體事實(shí)相互作用的工具;一個(gè)出色的案例,是以實(shí)際生活情境中肯定會(huì)出現(xiàn)的事實(shí)為基礎(chǔ)所展開的課堂討論。它是進(jìn)行學(xué)術(shù)探討的支撐點(diǎn);它是關(guān)于某種復(fù)雜情境的記錄;它一般是在讓學(xué)生理解這個(gè)情境之前,首先將其分解成若干成分,然后再將其整合在一起?!?/p>
對(duì)C語(yǔ)言程序設(shè)計(jì)課程的教學(xué)任務(wù)而言,更重要的是使學(xué)生學(xué)習(xí)計(jì)算機(jī)分析、解決問題的思路和方法[7]。因此,在C語(yǔ)言程序設(shè)計(jì)課程教學(xué)過程中,一定要避免只重視程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)則的錯(cuò)誤思想,在將計(jì)算思維的培養(yǎng)作為教學(xué)核心任務(wù)的教學(xué)過程中要重視程序設(shè)計(jì)方法,而不是語(yǔ)言本身,不僅要求學(xué)生用計(jì)算機(jī)讀得懂程序,編寫和調(diào)試代碼,更重要的是要學(xué)會(huì)如何設(shè)計(jì)算法,從而開發(fā)學(xué)生的主動(dòng)性和能動(dòng)性。
如何設(shè)計(jì)以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)案例,是案例教學(xué)法的核心,經(jīng)過多年程序設(shè)計(jì)課程教學(xué)的經(jīng)驗(yàn),將程序設(shè)計(jì)課程的教學(xué)案例設(shè)計(jì)原則總結(jié)如下:
1.案例選題的生活化
在教學(xué)案例的選擇中堅(jiān)持生活化、常態(tài)化的原則,即選擇貼近生活、學(xué)生比較熟悉的問題,讓學(xué)生在熟悉的問題下思考解決方法,這樣可以緩解學(xué)生對(duì)程序設(shè)計(jì)的畏懼感。在學(xué)生給出問題的解決方法并用計(jì)算機(jī)進(jìn)行求解后,學(xué)生會(huì)有一種恍然大悟的感覺,他們從中認(rèn)識(shí)到計(jì)算機(jī)竟然能這么方便地用以解決日常生活中的問題,從而消除對(duì)程序設(shè)計(jì)語(yǔ)言的抽象、枯燥的感覺。這樣生活化的案例在問題的求解中激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生在興趣盎然的氛圍中學(xué)習(xí),感受到程序就在身邊。而對(duì)生活化的問題求解鍛煉了學(xué)生日常問題求解的思維,從而培養(yǎng)學(xué)生的計(jì)算思維。
2.案例涵蓋知識(shí)點(diǎn)的典型化
根據(jù)每節(jié)課的教學(xué)目標(biāo)和教學(xué)內(nèi)容的需要適當(dāng)選擇教學(xué)案例,將本節(jié)課的教學(xué)內(nèi)容涵蓋在案例的解決中,同時(shí)要符合學(xué)生的認(rèn)知水平,案例的設(shè)計(jì)既是學(xué)生平時(shí)耳聞目睹的,但又了解不深的普遍問題,這樣可使學(xué)生對(duì)這些問題的實(shí)際背景容易接受,從而愿意去深入了解,這樣的案例可以使學(xué)生更容易理解教學(xué)內(nèi)容,同時(shí)能夠讓學(xué)生觸類旁通,利用所學(xué)知識(shí)解決類似問題。
3.案例問題的提出和解決的程序化
使教學(xué)案例的設(shè)計(jì)與計(jì)算思維相結(jié)合,在案例問題的解決中注重算法的設(shè)計(jì),方法的選擇,培養(yǎng)學(xué)生獨(dú)立解決問題的能力,并在案例中適當(dāng)添加程序語(yǔ)言,使學(xué)生在問題解決的同時(shí)可以使算法程序化,這樣既可以培養(yǎng)學(xué)生的計(jì)算思維,又可以培養(yǎng)學(xué)生的程序思維,使枯燥無味的程序語(yǔ)法知識(shí)順其自然地在案例中學(xué)習(xí),從而提高學(xué)生應(yīng)用計(jì)算機(jī)知識(shí)抽象和分解問題的能力。
根據(jù)課程教學(xué)目標(biāo)和教學(xué)內(nèi)容,以選擇生活化、常態(tài)化的案例為原則,以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)案例的選擇原則,讓學(xué)生體會(huì)到如何用計(jì)算機(jī)解決問題的方法來解決日常生活中的問題。下面以一個(gè)典型案例的設(shè)計(jì)為例具體實(shí)現(xiàn)案例設(shè)計(jì)和應(yīng)用。
教學(xué)內(nèi)容:指針和數(shù)組。
教學(xué)目的:掌握指針和數(shù)組的定義以及使用。
教學(xué)重點(diǎn):指針和數(shù)組的定義及使用。
教學(xué)難點(diǎn):指針和數(shù)組的使用。
針對(duì)C語(yǔ)言程序設(shè)計(jì)課程中指針和數(shù)組知識(shí)的學(xué)習(xí),下面給出一個(gè)常見問題求解的案例,這一案例同樣適用于數(shù)組知識(shí)的學(xué)習(xí),只是案例中問題求解的方式有所變化。
1.問題提出:根據(jù)二代居民身份證號(hào)確定此人性別的問題。
2.常識(shí)解答:居民二代身份證號(hào)共18位,從左向右前6位為戶口所在地,第7~14位共8位為出生年月日,第15~17位為順序位(同地區(qū)同年同月同日生的人的順序編號(hào))其中第17位代表性別(奇數(shù)為男、偶數(shù)為女),最后1位為校驗(yàn)位。
3.問題求解:從18位數(shù)字中取出第17位,然后判斷奇偶性,奇數(shù)為男、偶數(shù)為女。
對(duì)分解后的兩個(gè)問題,針對(duì)不同的理論學(xué)習(xí)內(nèi)容,我們有很多種解決方法,如:使用函數(shù)提取字符串中的一個(gè)或多個(gè)字符、使用數(shù)組下標(biāo)提取數(shù)組元素、使用指針提取數(shù)組元素等多種方法。下面針對(duì)指針的學(xué)習(xí)給出求解方法。
4.求解方法:
Step1:利用數(shù)組存儲(chǔ)給定的18位數(shù)字,利用指針的移動(dòng)提取第17位數(shù)字;Step2:用取出的第17位數(shù)字與2模除取其余數(shù),判斷奇偶性。5.算法分析:針對(duì)以上問題的求解方法為例寫出相應(yīng)算法:Step1:定義整型數(shù)組a,整型變量b,整型指針變量p;
Step2:將18位身份證號(hào)賦值給a數(shù)組,指針p指向數(shù)組的首地址;
Step3:移動(dòng)指針指向第17位數(shù)字;Step4:指針提取第17位數(shù)字后模除2取余數(shù)賦值給b變量;Step5:判斷b的奇偶性,如果是奇數(shù)則是男,如果是偶數(shù)則為女;
Step6:輸出結(jié)果。
6.問題求解方法的代碼化:
這一案例是非常生活化的案例,每個(gè)人都有身份證號(hào),但是將這樣一個(gè)常見問題用程序設(shè)計(jì)語(yǔ)言在計(jì)算機(jī)上實(shí)現(xiàn)確實(shí)不是一件容易的事情,結(jié)合教學(xué)內(nèi)容和教學(xué)目標(biāo),將問題的解決方法限定在指針和數(shù)組的使用,更是加大了問題的解決難度。就案例分析和問題的解決而言,讓學(xué)生選擇多種解決方法,訓(xùn)練學(xué)生如何將生活中的問題用計(jì)算機(jī)來解決,同時(shí)掌握指針和數(shù)組的定義、賦值及使用等基礎(chǔ)知識(shí)。使學(xué)生在案例分析和算法設(shè)計(jì)時(shí)培養(yǎng)了計(jì)算思維能力,同時(shí)讓學(xué)生在有趣的案例中學(xué)習(xí)相對(duì)枯燥的理論知識(shí)。
大學(xué)教育更多的是素質(zhì)的養(yǎng)成,能力的培養(yǎng),正像一條教育格言講的:“T e ll me an d I wi ll f o rget.T eac h me an d I wi ll kn o w.Inv ol ve me an d I wi ll l earn.”在大學(xué)教育中,要少一些灌輸,多一些參與?!禖語(yǔ)言程序設(shè)計(jì)》課程的傳統(tǒng)教學(xué)存在一定的問題,在多年的程序設(shè)計(jì)課程教學(xué)中提出以計(jì)算思維為導(dǎo)向的案例教學(xué)法,并針對(duì)教學(xué)案例設(shè)計(jì)的核心問題進(jìn)行研究,針對(duì)傳統(tǒng)教學(xué)存在的問題,以計(jì)算思維為導(dǎo)向,總結(jié)了教學(xué)案例設(shè)計(jì)的原則,設(shè)計(jì)了教學(xué)案例。通過《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)實(shí)驗(yàn)證明,提出的以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)教學(xué)案例設(shè)計(jì)方法是有效的。學(xué)生通過案例教學(xué)可以提高學(xué)生的學(xué)習(xí)積極性和主動(dòng)性,大眾化的案例解決在使學(xué)生掌握了相關(guān)理論知識(shí)的同時(shí)培養(yǎng)了學(xué)生分析和解決問題的能力,培養(yǎng)了學(xué)生的計(jì)算思維。
[1]Jeannette M.W ing,“Computational Thinking,”Communication of the ACM,no.49(Mar.2006):33-35.
[2]劉向永、周以真:《計(jì)算思維改變信息技術(shù)課程》,《中國(guó)信息技術(shù)教育》2013年第6期,第5-12頁(yè)。
[3]周以真:《計(jì)算思維》,《中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊》2007年第3卷第11期,第83-85頁(yè)。
[4]《九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》,《中國(guó)大學(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é)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會(huì):《高等學(xué)校計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略研究報(bào)告暨計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》,高等教育出版社,2009。
[7]戰(zhàn)德臣、聶蘭順:《計(jì)算思維與大學(xué)計(jì)算機(jī)課程改革的基本思路》,《中國(guó)大學(xué)教學(xué)》2013年第2期,第56-60頁(yè)。
作者單位:西安翻譯學(xué)院電子工程系陜西西安
G642