導(dǎo)語:計算機專業(yè)本科生的你是否還在苦思冥想畢業(yè)論文的選題與找正文參考?下面是小編收集整理的一篇關(guān)于本科計算機專業(yè)的論文參考范文,歡迎大家閱讀借鑒!
分析計算思維的C++項目式教學(xué)的研究有效路徑
1 計算思維與項目教學(xué)法
1.1計算思維
周以真教授認為,計算思維是運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計、以及人類行為理解等涵蓋計算機科學(xué)之廣度的一系列思維活動。計算思維和理論思維、實驗思維一起被稱為推動人類社會文明進步和科技發(fā)展的三大科學(xué)思維。
進一步地定義為:通過約簡、嵌入、轉(zhuǎn)化和仿真等方法,把一個看來困難的問題重新闡釋成一個我們知道問題怎樣解決的方法;是一種遞歸思維,是一種并行處理,是一種把代碼譯成數(shù)據(jù)又能把數(shù)據(jù)譯成代碼,是一種多維分析推廣的類型檢查方法;是一種采用抽象和分解來控制龐雜的任務(wù)或進行巨大復(fù)雜系統(tǒng)設(shè)計的方法,是基于關(guān)注分離的方法(SoC方法);是一種選擇合適的方式去陳述一個問題,或?qū)σ粋問題的相關(guān)方面建模使其易于處理的思維方法;是按照預(yù)防、保護及通過冗余、容錯、糾錯的方式,并從最壞情況進行系統(tǒng)恢復(fù)的一種思維方法;是利用啟發(fā)式推理尋求解答,也即在不確定情況下的規(guī)劃、學(xué)習(xí)和調(diào)度的思維方法;是利用海量數(shù)據(jù)來加快計算,在時間和空間之間,在處理能力和存儲容量之間進行折衷的思維方法。
1.2 項目教學(xué)法
項目教學(xué)法就是在老師的指導(dǎo)下,將一個相對獨立的項目交由學(xué)生自己處理。對C++項目式教學(xué)法還包括:人員的組織與管理、軟件度量、軟件項目計劃、風(fēng)險管理、軟件質(zhì)量保證、軟件過程能力評估、軟件配置管理等都由學(xué)生自己負責(zé),學(xué)生通過項目的訓(xùn)練,了解并把握整個過程及每一個環(huán)節(jié)中的基本要求。
計算思維是信息社會中創(chuàng)新的需要,是大學(xué)生創(chuàng)新性思維培養(yǎng)的重要組成部分。C++項目式教學(xué)不能僅限于軟件工程指導(dǎo)下的C++語言基礎(chǔ)的綜合訓(xùn)練,還應(yīng)該在軟件項目管理原則下的培養(yǎng)創(chuàng)新性思維。
2 C++項目的教學(xué)實踐
2.1教學(xué)內(nèi)容
2.1.1項目的選取
以《全國計算機二級C++考試大綱》的要求為準(zhǔn)繩,制定適合我院特點的《C++課程設(shè)計標(biāo)準(zhǔn)》,選取《學(xué)生成績管理》項目為案例。《學(xué)生成績管理》學(xué)生比較熟悉,能覆蓋C++大綱要求的知識點,可引導(dǎo)學(xué)生從日常生活中發(fā)現(xiàn)問題、分析問題和解決問題,減少材料收集,縮短調(diào)研、需求分析時間,相對增加C++基礎(chǔ)的學(xué)習(xí)時間。學(xué)生可領(lǐng)悟到項目源于生活,創(chuàng)新、發(fā)明源于日常生活,“處處留心皆學(xué)問”。同時布置同步練習(xí)項目《企業(yè)工資管理》,學(xué)生在項目需求分析、總體設(shè)計、詳細設(shè)計、編寫代碼、測試等有關(guān)方面的內(nèi)容有一定的獨立訓(xùn)練。
2.2教學(xué)方法
2.2.1復(fù)雜任務(wù)簡單化
程序設(shè)計的基本原則是自頂向下,逐步求精。將《學(xué)生信息管理》劃分為系統(tǒng)初始化、數(shù)據(jù)輸入、數(shù)據(jù)處理、數(shù)據(jù)輸出、數(shù)據(jù)維護、幫助等子項目(或模塊)。如果劃分后的子項目還復(fù)雜,例如數(shù)據(jù)處理,就進一步再分:數(shù)據(jù)排序、數(shù)據(jù)查詢等。這樣直到每個部分只完成單一功能,代碼行數(shù)不是很多為止。
2.2.2合適的描述方式
UML是面向?qū)ο箝_發(fā)中一種通用的圖形化建模語言,它定義良好、易于表達、功能強大且普遍適用。面向?qū)ο蟮姆治鲋饕诩訌妼栴}空間和系統(tǒng)任務(wù)的理解、改進各方交流、與需求保持一致和支持軟件重用等4個方面表現(xiàn)出比其他系統(tǒng)分析方法更好的能力,成為主流的系統(tǒng)分析方法。引入UML,對項目需求分析、總體設(shè)計、詳細設(shè)計、編寫代碼、測試等各個階段各個部分進行描述,尤其利用UML圖描述算法。同時,講解UML圖到程序的轉(zhuǎn)化方法。
2.2.3注意魯棒性
魯棒性(robustness)就是系統(tǒng)的健壯性。它是在異常和危險情況下系統(tǒng)生存的關(guān)鍵。比如說,計算機軟件在輸入錯誤、磁盤故障、網(wǎng)絡(luò)過載或有意攻擊情況下,能否不死機、不崩潰,就是該軟件的魯棒性。明顯地,成績的值域,一般成績不能為負數(shù)等,但常被初學(xué)者忽略,致使程序執(zhí)行時接受負數(shù)。在高校,成績范圍一般在0-100,要對超過這個范圍的數(shù)據(jù)進行檢測,并給出相應(yīng)的處理。變量的數(shù)據(jù)類型定義,要根據(jù)使用數(shù)據(jù)集的具體情況,如考試成績,如果是在正整數(shù)0-100范圍內(nèi),定義考試成績變量無符號短整型較好,否則浪費存儲空間。
2.2.4啟發(fā)式教學(xué)
對冒泡排序:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。第一趟得到最大數(shù)放到數(shù)組最后元素的位置上,第二趟將剩余的元素再兩兩比較,將剩余元素中的最大值,放到倒數(shù)第二個位置,……。這樣,從中找到趟數(shù)與該趟比較次數(shù)之和等于元素個數(shù)。同時,啟發(fā)學(xué)生對于二維數(shù)組,如果按行(或列)排序時,對應(yīng)的列(或行)中元素也要交換。通過啟發(fā),使學(xué)生在處理某問題時要考慮相關(guān)問題,包括異常問題。
2.2.5算法的優(yōu)化
對數(shù)據(jù)的冒泡排序,當(dāng)進行某趟排序后,數(shù)據(jù)已經(jīng)滿足排序要求了,是否還進行排序?如果結(jié)束排序,應(yīng)該設(shè)計一個標(biāo)記。該標(biāo)記初始值為不需要排序。如果有交換,將該標(biāo)記置位需要排序,當(dāng)本趟排序結(jié)束后,檢查該標(biāo)志是否是不需要排序,如果是不需要排序,則排序結(jié)束,否則繼續(xù)進行排序,進而優(yōu)化了算法。再如求質(zhì)素問題、斐波那契序列問題等的優(yōu)化。通過算法優(yōu)化是學(xué)生深入了解算法執(zhí)行時間和數(shù)據(jù)占用的空間的估算。
3.教學(xué)過程
3.1創(chuàng)設(shè)情境
3.1.1用已知問題,創(chuàng)設(shè)情景
語法上,先回憶數(shù)學(xué)中的有窮序列,再講解數(shù)組,并將數(shù)組和有窮序列加以對照;二維數(shù)組與矩陣、平面對照;三維數(shù)組與立體坐標(biāo)以及3D電影等對照。
算法上,以往用目測方式將一組數(shù)有序,進一步給出兩兩比較進行排序的冒泡法。再如,如何判斷一個正整數(shù)M是否是質(zhì)數(shù),根據(jù)數(shù)學(xué)定義求解,同時用正整數(shù)分解兩個因數(shù)積的形式得到最大因數(shù)不超過M/2,再進一步分析,最大因數(shù)不超過M的平方根。
3.1.2 新舊知識的連接點,創(chuàng)設(shè)情景
讓學(xué)生回味“人以群分物以類聚”的含義,進而提出“人”有哪些特點和活動。再讓學(xué)生回憶“演繹和推理”知識,在函數(shù)、結(jié)構(gòu)體的基礎(chǔ)上,進一步提出有關(guān)“類”的概念、特點、語法格式等。
通過對比使學(xué)生明白:計算機中很多概念、編程思維源于數(shù)學(xué)。用已有的知識,激發(fā)學(xué)生學(xué)習(xí)興趣。
3.2 優(yōu)化師生關(guān)系
3.2.1 學(xué)生自主探究
在提出問題之后或總結(jié)所講知識之前,都給學(xué)生思考甚至是查閱資料的時間,強化學(xué)生自學(xué)能力,激發(fā)他們的創(chuàng)造潛力;鼓勵學(xué)生合作探究,讓同學(xué)講解他們解決問題的思路、方式方法,以形成集體探究的氛圍,培養(yǎng)學(xué)生的合作精神;對良好的研究結(jié)果給予肯定,對不足的研究結(jié)果給予分析,找出不足的原因,提示合適的解決方法,使學(xué)生不會因為一次的研究結(jié)果不足,就成為學(xué)習(xí)的障礙,甚至萎靡不振。同時,告訴學(xué)生解決問題的方法不是一層不變的,鼓勵學(xué)生積極懷疑已有的算法,探討更優(yōu)的算法。“盡信書不如無書”。
3.2.2 創(chuàng)設(shè)良好環(huán)境
良好的環(huán)境是養(yǎng)成計算思維的外部環(huán)境。通過各種載體為學(xué)生提供豐富的實例,讓學(xué)生在模仿中逐漸形成計算思維能力;通過《學(xué)生成績管理》項目的講解,一方面解決語法知識,另一個方面也要講解項目設(shè)計的原則、思想、方式方法等, 把學(xué)生引入真實的工作情景,通過練習(xí)項目激發(fā)其自覺運用計算思維的方法原則;在講解項目和練習(xí)項目上,鼓勵同學(xué)各抒己見,并營造寬松、和諧、民主的氛圍,鼓勵學(xué)生獨立思考,提出問題,激發(fā)學(xué)生高漲的學(xué)習(xí)情緒和強烈的探索欲望,使其思想流暢,思維活躍。
3.3 鼓勵學(xué)生探究
對于設(shè)計的項目,其設(shè)計思路更是多種多樣。鼓勵學(xué)生拿出自己的設(shè)計思路和方案,以培養(yǎng)他們的探究能力。在課堂教學(xué)中,抓住教材內(nèi)容的重點、難點或?qū)W生容易出錯的地方,故意出錯,引導(dǎo)學(xué)生去探究、糾正。這對保護學(xué)生創(chuàng)新意識,培養(yǎng)學(xué)生探究能力很有好處。從學(xué)生的實際出發(fā),布置實踐性的題目,指導(dǎo)學(xué)生參加探究活動,把相關(guān)知識和生活實際緊密聯(lián)系起來。
3.4 軟件項目管理
3.4.1 項目設(shè)計
在項目設(shè)計階段,每組學(xué)生通過廣泛調(diào)研,并與教師進行充分的思維溝通后確定選題并明確項目的總體目標(biāo)。
3.4.2 制訂計劃
通過開展小組交流討論,確定項目的實施計劃,包括需求分析、概要設(shè)計、詳細設(shè)計、實現(xiàn)與單元測試、集成測試階段、確認測試、文檔編制等各個階段的任務(wù)、輸入、輸出、實施等內(nèi)容、完成時間以及組員間的分工等,制訂系統(tǒng)實施計劃書。分成系統(tǒng)分析和設(shè)計、系統(tǒng)實現(xiàn)和測試三個團隊。每組只有四人,每個組員負責(zé)其中一個團隊,其余兩人作為成員,項目負責(zé)人總協(xié)調(diào),但也是團隊中的一個成員。
3.4.3 實施計劃
按照實施計劃書中確定的工作步驟和分工,完成項目的開發(fā)。分工時要特別關(guān)注任務(wù)量的均衡性,盡量在同一時間段完成任務(wù)。
4 教學(xué)效果考核
4.1 階段考核
在老師的監(jiān)督協(xié)調(diào)下,各個組都認真完成項目的實施計劃,包括需求分析、概要設(shè)計、詳細設(shè)計、實現(xiàn)與單元測試、集成測試階段、確認測試、文檔編制等各個階段的考核,檢查相應(yīng)的資料、文檔和代碼,沒有完成就不能進入下階段設(shè)計,做好各個階段的考核記錄。
4.2 小組自評
在自評階段,教師指導(dǎo)學(xué)生理解迭代和收斂的概念,不斷迭代地優(yōu)化系統(tǒng)模型,一方面消除功能性錯誤;另一方面,按照預(yù)防、保護及通過冗余、容錯、糾錯的方式,從最壞情形恢復(fù)系統(tǒng)的計算思維原則,使系統(tǒng)足夠強壯,此時視為收斂,得到最終的系統(tǒng)。
4.3 交流
完成自評過程后,每一組的代表在全班展示各自的系統(tǒng),并說明系統(tǒng)設(shè)計的過程,遇到過什么問題,這些問題是怎么解決的。其他組的學(xué)生,包括教師都可提出問題,讓代表或組內(nèi)成員做出解釋。這個過程是暴露思維的過程,在彼此的交流中,不同觀點之間相互碰撞,使每一位學(xué)生在較短時間內(nèi)都對問題獲得了多方面的較深入的認識。這不僅對培養(yǎng)學(xué)生的計算思維,而且對培養(yǎng)學(xué)生發(fā)散思維、批判性思維的能力都大有好處。
4.4 綜合評價
在每一個階段都要求學(xué)生記工作日記,并給出相應(yīng)的評價表,包括自評和組內(nèi)互評,不僅對工作,還對其表現(xiàn)出的包含計算思維在內(nèi)的能力、態(tài)度、方法等進行全方位的評價;教師根據(jù)項目完成情況,以及與學(xué)生思維溝通、觀察平時表現(xiàn)、查看工作日記等給出自己的評價。最終的評價由自評、組內(nèi)互評和教師評價三者構(gòu)成。
5 結(jié)論
通過C++項目《學(xué)生信息管理》教學(xué),以及《企業(yè)工資管理》項目的練習(xí),使學(xué)生在積極學(xué)習(xí)掌握C++課程的基礎(chǔ)上,初步掌握了軟件工程、軟件項目管理等相關(guān)內(nèi)容以及企業(yè)文化,用計算思維指導(dǎo)教學(xué)方法、教學(xué)內(nèi)容、教學(xué)過程和教學(xué)效果考核四個方面,給學(xué)生獨立思考、共同研究的空間,嚴格的階段考核,使學(xué)生即了解了軟件開發(fā)的一般原則,又為培養(yǎng)學(xué)生的創(chuàng)新性思維意識奠定基礎(chǔ)。
參考文獻:
[1] 周以真.計算思維[J].中國計算機學(xué)會通訊,2007,3(11):83-85.
[2] 何明昕.關(guān)注點分離在計算思維和軟件工程中的方法論意義[J].計算機科學(xué),2009,36(4).
[3] 廖偉志,李文敬,王汝涼.計算思維在離散數(shù)學(xué)課堂教學(xué)中的應(yīng)用[J].計算機科學(xué),2008,35(11).
[4] 李芳,李一媛,楊兵.計算思維在《圖像處理》課程中的實踐及應(yīng)用[J].計算機科學(xué),2008,35(11).
[5] 陳杰華,戴麗娟.以培養(yǎng)計算思維為核心的程序設(shè)計實驗教學(xué)[J].實驗技術(shù)與管理,2011(1).
[6] 牟琴,譚良,吳長城.基于計算思維的網(wǎng)絡(luò)自主學(xué)習(xí)模式的研究[J].電化教育研究,2011(5).
[7] 薛磊,孫玉強,顧曉清.在應(yīng)用型本科教學(xué)中開展項目教學(xué)法的研究與實踐[J].中國電力教育,2010(5).
[8] 薛磊,孫玉強,顧曉清.基于計算思維的項目教學(xué)法的研究與實踐[J].教育與職業(yè),2012(32)