国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

計算思維與程序設計

2013-08-15 00:45:45武仁杰郭喜鳳郭曉玲劉志蘭
關鍵詞:用例程序設計對象

武仁杰,郭喜鳳,郭曉玲,劉志蘭

(1.河北北方學院信息科學與工程學院,河北 張家口 075000;2.張家口市橋東區(qū)環(huán)境衛(wèi)生管理處,河北 張家口 075000)

1 引 言

計算思維 (computational thinking)是當前國際及國內計算機界廣為關注的一個重要概念[1]。計算思維作為人類三大科學思維 (理論思維、實驗思維、計算思維)之一[2],涉及到運用計算機科學的基礎概念去求解問題、設計系統(tǒng)和理解人類的行為。計算思維涵蓋了反映計算機科學廣泛性的一系列思維活動[1]。

計算思維就是通過約簡、嵌入、轉化和仿真等方法,把一個看來困難的問題重新闡釋成一個知道問題怎樣解決的方法。它采用抽象和分解來完成復雜的任務或設計復雜的系統(tǒng);它選擇合適的方式去陳述一個問題,或者選擇合適的方式對一個問題的相關方面建模使其易于處理;它使樹立在不必理解每一個細節(jié)的情況下就能夠安全地使用、調整和影響一個大型復雜系統(tǒng)的信心;它是為預期的多個用戶而進行的模塊化,是為預期的未來應用而進行的預置和緩存[1]。

計算思維是利用啟發(fā)式推理來尋求解答,是在不確定情況下的規(guī)劃、學習和調度。計算思維是利用海量的數(shù)據(jù)來快速計算,它是在時間和空間之間,在處理能力和存儲容量之間的權衡[1]。

計算思維所關注的核心問題是人的思維方式及問題求解能力的培養(yǎng)[3]。把轉變思維方式融入到 “程序設計”類課程的教學中,以系統(tǒng)化、邏輯化的計算思維方式去思考問題和解決問題,著重培養(yǎng)學生的計算思維能力,最大限度地利用有限的時間強化學生如何進行工程化、系統(tǒng)化程序設計的觀念和能力,而不是過于局限于機械的語言本身,讓學生成為被動的語法背誦者。事實上,語言特性及語法規(guī)則可以很快從相關資料中獲取,而面對實際問題能快速地找出解決的方法才是一個開發(fā)人員能力的體現(xiàn)。

2 計算思維與程序設計

計算思維必須建立在服務的基礎之上,同時,計算學科為服務的工程化、信息化和智能化提供技術和工具以及產品 (軟件、硬件或集成系統(tǒng))服務[4]。

計算思維不僅僅源于和服務于計算機科學。實際上,狹義地講,計算機思維源于并服務于計算機科學、計算機工程、軟件工程、信息技術和信息系統(tǒng)。廣義地講,計算思維源于并服務于由理論、技術、工程、工具、服務和應用構成的計算鏈(或計算網(wǎng)絡)。這一計算鏈以理論為始點,以應用為終點。這一計算鏈上的每一結點都將產生計算思維,而計算思維從這一計算鏈的始點到終點的轉化構成了計算思維的工程化[4]。

教育部專家在 “積極研究和推進學生計算思維能力的培養(yǎng)”一文中指出:計算機及其相關專業(yè)教育應該在計算思維能力培養(yǎng)中做出表率。事實上,計算思維已經(jīng)在某種程度上滲透到培養(yǎng)方案和課程大綱中,但計算思維能力培養(yǎng)的水平還不夠高,學生對于計算思維要掌握的程度也不夠深。對此,需要更主動地采取有效措施,從思想觀念、師資隊伍、教學內容、教學方法等方面入手,進一步強化對學生開展計算思維能力的培養(yǎng)。

2.1 通過模型設計訓練計算思維

程序設計在計算機及其相關專業(yè)教育教學中是必不可少的內容,程序設計課程教學的許多環(huán)節(jié)都可以訓練學生的計算思維能力,使計算思維能力得到提高。模型設計是程序設計的重要方法,一個好的模型會使程序變得簡潔而輕松,程序的性能也會得到提高。模型設計過程中,計算思維起著非常重要的作用。因此它也是計算思維能力培養(yǎng)的重要途徑。

無論是結構化程序設計還是面向對象程序設計,需求分析是整個程序設計的第一個階段。結構化的分析方法是最具代表性的分析建模技術,它是一種面向數(shù)據(jù)流進行需求分析的方法,分為功能建模、數(shù)據(jù)建模和行為建模。

功能建模的思想就是用抽象模型的概念,按照數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求為止。它用數(shù)據(jù)流圖來描述。如銀行儲蓄系統(tǒng)業(yè)務流程為:儲戶填寫存單或取單,然后由業(yè)務人員錄入系統(tǒng)。如果是存單,系統(tǒng)記錄存款人姓名、身份證號、存款類型、金額等信息,并打印存單給儲戶;如果是取款,系統(tǒng)首先核對儲戶密碼,若密碼正確,則系統(tǒng)計算出利息并打印利息清單給儲戶。針對這樣的需求,首先引導學生識別外部實體有哪些,并確定輸入數(shù)據(jù)流及輸出數(shù)據(jù)流。將存款及取款信息抽象為事務,最后得到分層的數(shù)據(jù)流圖。

數(shù)據(jù)建模使用實體-關系模型在較高的抽象層次 (概念層)上對數(shù)據(jù)結構進行建模。實體-關系模型表示為可視化的ER圖。對于銀行的儲蓄業(yè)務,涉及的對象有儲戶、賬戶、存單和取單,在進行需求分析時,可以把這些對象抽象為實體,這些實體間有著一對一或一對多的關系,比如一個儲戶有多個帳戶,一個帳戶可對應多個存單等,存款和取款事件抽象為這些實體間的聯(lián)系。通過抽象設計出ER圖,最后確定數(shù)據(jù)庫的結構。在這個過程中,學生的計算思維能力得到了訓練。

行為建模,就是用狀態(tài)轉換圖來描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉換的事件來表示系統(tǒng)的行為。狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,事件是某個特定時刻發(fā)生的事情。銀行的儲蓄業(yè)務流程中,發(fā)生了一系列的狀態(tài)轉換,通過引導學生對這些流程的行為建模,可以得到存款過程狀態(tài)圖和取款過程狀態(tài)圖,也訓練了學生的計算思維能力。

在面向對象的程序設計中,通過用例模型、靜態(tài)模型和動態(tài)模型來實現(xiàn)功能建模、對象建模和交互建模。

建立用例模型的目的是提取和分析足夠的需求信息。該模型應能表達用戶需要什么,而不涉及系統(tǒng)如何實現(xiàn)的特定細節(jié)。如分析學校的選課系統(tǒng)需求時,首先引導學生根據(jù)系統(tǒng)功能,確定業(yè)務的參與者是學生、教師、系統(tǒng)管理員和學籍檔案系統(tǒng);接著在確定業(yè)務需求用例時,設計以下問題幫助學生更好的標識系統(tǒng)的用例:

·每個參與者的任務是什么?

·每個參與者是否都要從系統(tǒng)中創(chuàng)建、存儲、移動、修改或讀取信息?

·支持或維護系統(tǒng)的用例有哪些?

·當前的用例是否覆蓋系統(tǒng)的所有功能需求?

在此基礎上,設計出選課系統(tǒng)的環(huán)境圖,確定系統(tǒng)的主要輸入和輸出及潛在用例;最后畫出用例圖,標識參與者與用例之間、用例與用例之間的關系。在整個用例模型設計過程中,學生的計算思維能力得到了培養(yǎng)。

用例模型是從用戶的角度描述對系統(tǒng)的需求,依據(jù)用例模型可以導出對象模型。在系統(tǒng)分析階段,對象建模的任務是建立問題域的概念模型。為了降低系統(tǒng)的復雜度,需要在概念上把系統(tǒng)所包含的內容分解成若干個范疇;然后確定問題域的類與對象。在選課系統(tǒng)中,確定教師、學生、課程、課程任務、學生名冊和成績單等類與對象。在確定類與對象后,分析確定關聯(lián)有助于考慮問題域的邊緣情況,發(fā)現(xiàn)那些尚未被發(fā)現(xiàn)的類與對象。如教師與課程任務、課程與課程任務、學生與課程任務之間都存在關聯(lián)關系。接著引導學生為類和對象確定各自的屬性,如選課系統(tǒng)中教師類至少有教師號、姓名和系別等屬性,學生類有學號、系別、專業(yè)、班級、姓名等屬性。最后為類和對象確定服務,即對象收到消息后所能執(zhí)行的操作,如選課系統(tǒng)中教師類有查詢所教課程的信息和查詢學生名冊等服務。這一系列的過程,學生學會了分析問題和解決問題的方法,計算思維能力有了一定的提高。

動態(tài)模型在交互式系統(tǒng)設計中起著很重要的作用。動態(tài)模型的描述工具有順序圖、協(xié)作圖和狀態(tài)圖。順序圖按照時間順序顯示對象之間的交互關系。協(xié)作圖用于描述相互協(xié)作的對象間的交互關系和鏈接關系,它比順序圖更形象。狀態(tài)圖由對象的各個狀態(tài)和連接這些狀態(tài)的轉換組成,用于描述用戶接口、設備控制器和其它具有反饋的子系統(tǒng),也可用于描述在生命期中跨越多個不同性質階段的被動對象的行為。在選課系統(tǒng)分析中,課程任務類的對象具有比較明顯的狀態(tài)特征,在教學中,引導學生分析其各種狀態(tài)下,有初始狀態(tài)、可選狀態(tài)、人滿狀態(tài)和關閉狀態(tài)。

2.2 通過多樣化的算法訓練計算思維

算法 (algorithm)是對解決問題方案準確而完整的描述,是解決問題的一系列清晰指令。也就是說,能夠對一定規(guī)范的輸入,在有限時間內獲得所要求的輸出。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。程序設計中的許多問題都需要不同的算法來解決。由于學生的認知差異,必然導致學生解決問題的方法不同。在教學中,鼓勵學生使用適合自己認知程度的算法,然后引導學生對算法進行反思和進一步探索,從而達到簡化并優(yōu)化算法的目標。這種將一個計算任務用多種思路、多種算法進行求解的教學過程,可以培養(yǎng)學生的計算思維能力。如程序設計中的排序問題,目前的主要算法有:冒泡排序、選擇排序、插入排序、殼排序、歸并排序、快速排序、堆排序、拓撲排序、錦標賽排序和基數(shù)排序等。教學中從學生使用的排序算法中,指導學生考慮程序的執(zhí)行時間、存儲空間和編程工作量等因素。對于數(shù)據(jù)量較小的情形,主要考慮編程工作量的多少,以程序簡化為先;而對于數(shù)據(jù)量大的情況,應首先考慮程序的執(zhí)行時間,以執(zhí)行時間短為優(yōu)。

3 結束語

程序設計是計算機及其相關專業(yè)教育教學中必不可少的內容,工程化程序設計的各個環(huán)節(jié)所使用的設計模型對于培養(yǎng)計算思維能力有著極其重要的作用。只要在程序設計類課程中,主動地采取有效措施,從思想觀念、教學內容、教學方法等方面入手,強化對學生計算思維能力的培養(yǎng),學生的計算思維能力就會得到提高。

[1]Wing J M.Computational thinking[J].Comm ACM,2006,49(03):33-35.

[2]朱亞宗.論計算思維—計算思維的科學定位、基本原理及創(chuàng)新路徑[J].計算機科學,2009,36(04):53-55,93.

[3]郭喜鳳,武仁杰,米海英.計算思維能力培養(yǎng)模式探索[J].河北北方學院學報:社會科學版,2012,28(05):115-117.

[4]郭喜鳳,孫兆豪,趙喜清.論計算思維工程化的層次結構[J].計算機科學,2009,36(04):64-67.

猜你喜歡
用例程序設計對象
神秘來電
睿士(2023年2期)2023-03-02 02:01:09
UML用例模型中依賴關系的比較與分析
基于Visual Studio Code的C語言程序設計實踐教學探索
計算機教育(2020年5期)2020-07-24 08:52:56
從細節(jié)入手,談PLC程序設計技巧
電子制作(2019年9期)2019-05-30 09:42:04
聯(lián)鎖軟件詳細設計的測試需求分析和用例編寫
從出土文獻用例看王氏父子校讀古書的得失
攻略對象的心思好難猜
意林(2018年3期)2018-03-02 15:17:24
高職高專院校C語言程序設計教學改革探索
基于熵的快速掃描法的FNEA初始對象的生成方法
區(qū)間對象族的可鎮(zhèn)定性分析
文山县| 东港市| 龙山县| 吉林市| 象山县| 鹤山市| 郎溪县| 嘉峪关市| 旬邑县| 青河县| 江源县| 镇平县| 六枝特区| 通河县| 栖霞市| 冕宁县| 竹北市| 察哈| 加查县| 都江堰市| 富宁县| 乐业县| 聊城市| 沁源县| 宝兴县| 葫芦岛市| 同心县| 治县。| 文昌市| 三江| 南皮县| 临高县| 辽阳市| 丰顺县| 奎屯市| 合肥市| 资兴市| 绥宁县| 郯城县| 五台县| 合水县|