999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

民族高校程序設計課程中計算思維培養的實踐

2018-01-31 07:49:52馬金林馬自萍
計算機教育 2018年1期
關鍵詞:解決問題思維課程

馬金林,馬自萍

(1.北方民族大學 計算機科學與工程學院,寧夏 銀川 750021;2.北方民族大學 數學與信息科學學院,寧夏 銀川 750021)

0 引 言

自周以真[1]教授定義的計算思維被廣泛認可以來,計算思維教育得到國內各高校的重視,經過廣大計算機教育工作者不遺余力地推廣,正被越來越多的高校實踐。

程序設計課程作為一門專業基礎課程,為計算機專業學生學習后續的數據結構、操作系統、面向對象程序設計、編譯原理、軟件工程等課程奠定了基礎,是一門將理論與實踐緊密結合的課程。民族高等學校作為民族高等教育的主要力量,肩負培養民族高等教育人才的特殊使命,然而,由于民族高等學校的特殊地位,其程序設計課程教學普遍存在諸多問題。

1 民族高校程序設計課程的現狀

與國內其他高校一樣,民族高校的程序設計課程教學取得了一定成果,但由于師資力量、教學水平、學生水平等問題的制約,民族高校的程序設計課程面臨更多問題、存在更多不足,具體體現在5個方面。

1.1 教師認識不夠

部分教師對程序設計和計算思維的認識不夠深入,認為只要讓學生學會程序設計的基本知識、掌握基本的編程方法、會使用一些基本算法以及遇到問題能夠解決就足夠了,沒必要花更多時間和心思讓學生掌握分析問題和解決問題的基本思路、方法和手段。

1.2 師資水平不高,教學工作繁重

由于民族高校所處地域和身份的差異,連普通的專任教師都很難引進,更別說高水平的教師。由于師資短缺,現有教師承擔的教學工作量較大,做好日常教學已需要他們投入大量精力,鮮有教師能抽空鉆研教學。

1.3 學生差異很大

民族高校的學生多來自于民族地區,普遍為少數民族學生,再加上各地教育發展水平不同,導致學生入學時計算機水平參差不齊、相差甚遠。傳統的教學方法已不能滿足所有學生的需要,教師無法兼顧不同能力水平的學生,導致水平較高和較差的學生對程序設計課程失去興趣,從而嚴重影響教學質量和教學效果。

1.4 教學重心不對

教學中,教師注重學生對知識的學習,忽視思維的培養和訓練;注重語法的講授,忽視算法和思維的培養;注重解題方法的講解,忽視結題思路的分析;注重知識點講解,忽視計算機系統知識的貫通。實驗教學環節多采用驗證性實驗,很少采用設計類實驗,學生的計算思維和創新意識無法得到充分訓練。

1.5 教學方法不合適

目前的課堂教學多以講授為主,實踐教學多以驗證操作為主,學生在學習過程中的參與度不高、主動性不夠,常常處于被動學習狀態,整個教學過程幾乎沒有學生思考的時間和空間,導致學生的動手能力和思考能力嚴重不足,綜合分析問題的能力、解決問題的能力以及創新能力都很欠缺,嚴重束縛了學生的計算思維培養。

綜上,種種教學狀況造成教學效果不佳。只有直面問題,分析其產生的原因,從根本入手,轉變觀念、培養興趣、發揮師生的主觀能動性,才能改變程序設計課程教學的現狀。引入計算思維被證明是一個不錯的選擇[2-3]。

2 程序設計課程中的計算思維

周以真教授對計算思維的闡述中提到,計算思維的本質是抽象和自動化,是通過約簡、嵌入、轉化和仿真將復雜問題轉化為簡單問題的思維方法,是遞歸和并行處理的思維方法,是通過抽象和分解來完成龐雜任務的思維方法,是利用啟發式推理尋求解答的思維方法[4]。程序設計課程恰好可以借助對實際問題的分析,選取合適的方法去解決問題,并編寫成可運行的程序。

戰德臣教授在“計算之樹”中描述了大學生應具備的計算思維,其中適合程序設計課程培養的計算思維有算法類問題求解的思維和系統類問題求解的思維[5-6]。

程序設計強調問題空間與解空間在結構上盡可能一致,即問題的描述與其實現的解法在結構上盡量一致[7]。文獻[7]將程序設計中編程解題的一般思維方法或過程概括為“觀察—聯想—變換”,首先通過觀察,認識并理解該問題;然后通過聯想,尋找該問題同已有知識和經驗之間的聯系;最后通過變換,把該問題轉化為另一個或幾個易于解決的新問題,最終達到解決原問題的目的。文獻[7]認為在程序設計中,編程解題時“觀察”“聯想”“變換”的思想活動總是互相聯系、互相影響又互相交織地進行著,形成了一個有機的整體。

由此可見,通過程序設計中的思維方法訓練,可以使學生掌握基本的思維方式和方法,從而掌握并熟練運用計算思維。通過程序設計課程來培養計算思維應該包含兩方面內容:一是深入理解計算機的體系結構,掌握計算機的主要原理和系統架構;二是深入掌握計算機解決問題的思路和方法,總結規律,以便更好更自覺地運用信息技術解決算法類和系統類問題。

3 程序設計課程計算思維培養的教改實踐

教學環節和實踐環節是程序設計課程不可缺少的兩個必要過程。無論是知識傳遞,還是思維訓練都需要在這兩個過程中實施。程序設計課程的授課教師一定要清楚認識到計算思維的培養是一個長期、系統的工程,不是一兩門課程能夠獨立完成的任務,因此,教師要樹立正確的教學培養觀,開展程序設計課程能夠完成的計算思維能力訓練和培養工作。

3.1 教學環節

傳統的教學環節側重于傳授知識,雖然兼顧解題思路,但是不太重視思維培養,因此,在計算思維培養的教學改革中,教師要在做好傳統教學工作的同時,融入計算思維能力的訓練工作。

程序設計的基本知識包括基本語句、數據類型、程序控制結構、文件操作等。授課教師在講解基本知識時,一般需要借助程序實例進行講解,在此過程中可以自然地嵌入提出問題、分析問題、解決問題、編寫程序、運行程序、優化算法等環節,潛移默化地培養學生的計算思維能力。此外,授課教師還應將局部與整體的關系、程序思維、算法思維、構造思維、分治思維、轉化思維、逆向思維、聯想思維等思維方式貫穿到程序設計中,通過思維訓練使學生掌握并熟練運用計算思維。

3.2 實踐環節

為鞏固理論知識,程序設計課程還設置了實踐環節,以提高學生對實際問題的分析能力和處理能力,增強其動手能力,實踐環節包括課程實驗和課程設計兩部分內容。

3.2.1 課程實驗

課程實驗以“實驗指導手冊”為依據,在任課教師和實驗人員的指導下,學生按實驗要求完成規定的實驗項目。為訓練學生的編程能力,培養學生獨立解決問題的能力,不安排驗證性實驗,所有實驗必須由學生自主獨立完成,對遇到的問題可以討論或查閱資料來解決。驗證性實驗、典型例題(習題)的調試等內容由學生自主實驗進行,用以積累程序調試經驗,消化課堂講解內容。

3.2.2 課程設計

課程設計是驗證學生課程學習效果的綜合設計類測試項目,課程設計旨在通過一個綜合性題目考查學生綜合運用所學知識的能力、分析問題的能力和解決問題的能力。

3.3 計算思維能力培養的幾點措施

3.3.1 以課程講授為入口,訓練解題思路

課堂講授是每一門課程都必須設置的教學環節,教師應高效利用講授環節,在傳授基礎知識的同時訓練學生解決問題的思維方法。通過講解使學生了解分析和解決問題的常用思路和方法,逐步引導其形成正確的思維方法。

3.3.2 以每課一練為手段,強化思維鍛煉

每課一練為學生提供了一次練習課堂所學知識,分析并解決問題的機會。每課一練的內容為授課教師精心挑選的題目,可以是考研試題、自擬題目或競賽題目。與課后練習不同,每課一練旨在鞏固、強化并提高學生活學活用的能力和水平,進一步鍛煉思維。每課一練是實踐課堂中講授解題思路和方法的一個必要手段,通過每課一練使學生掌握并鞏固教師所講授的思維方法,為其真正掌握思維方法奠定基礎。

3.3.3 以程序競賽為平臺,提升思維能力

由于程序競賽可以吸引部分學習能力和動手能力強的學生參與其中,因此鼓勵學生積極參與不同難度和層次的各類型程序設計競賽,以實例和任務的形式引導學生掌握分析問題及解決問題的方法和能力。程序設計競賽的題目往往融入了計算機、數學、邏輯、物理等多個學科的知識,且題目均來自或模擬實際生產生活。通過這些題目,可以很好地提高學生分析問題、尋求解決方案、調整解決方案直至最終解決問題的能力,以此鍛煉學生的思維能力,讓其理解并掌握多種思維方式,培養計算思維能力。

3.3.4 直面差異,分層教學

計算思維教學與所有的教學活動一樣,必須遵循“因材施教”的原則,直面個體差異,根據學生的計算機水平設置合適的課程內容和教學方式。

學生的個體差異包括現有計算機水平和學習能力,分層教學應據此實施。首先根據學生入學時的計算機水平進行分班,將水平相近的學生集中在一起,以針對不同層次的學生設定不同的教學內容、教學方式和考核方式;然后關注同一層次中學習能力較強的學生,實行轉班或調整其學習內容,以達到因材施教的目的。

3.3.5 強化課后輔導,答疑解惑

教師可根據授課進度和學生掌握程度靈活安排課后輔導,目的是了解學生的掌握程度、檢查學生學習效果以及解答學生困惑,這樣既能督促學生學習,又能掌握學生的學習效果,從而及時解決學生當前面臨的學習問題。課后輔導可固定每周一次,也可根據學生掌握情況靈活按需安排,輔導老師可以是授課教師本人,也可以是助教。

4 計算思維訓練舉例

遞歸是程序設計課程的必講內容,但是如何使學生既了解遞歸的基本知識,又深入理解遞歸的深層原理,讓學生融會貫通的同時訓練思維,往往需要教師花費一番功夫。講授遞歸往往以計算n的階乘為例,其關系式為factorial(n)=n*factorial(n-1),其程序通常是:

為使學生理解遞歸,教師以流程圖的形式讓學生理解“函數自己調用自己”的原理,然后再通過幾個遞歸的實例加強學生的理解。至此,遞歸的講解基本結束。

然而,“自己調用自己”與學生的現有認識(人類世界沒有這樣的工作設定)并不一致,學生是否真正理解,尚有疑問。要想使學生徹底理解,需要讓他們明白機器層面遞歸執行和調用的過程,即明白機器世界的工作設定。

階乘函數編譯后被放在代碼段,函數被調用一次,就會在堆棧中以先進后出的方式排列棧幀,每一個棧幀記錄了上一個棧幀的指針、輸入參數和返回值。函數的調用過程具體方法是:當計算5*factorial(4)時,5是常數,因為不知道factorial(4)的值,所以需要產生新的棧幀來計 算 factorial(4); 而 factorial(4)需 要 factorial(3)、factorial(3)需 要 factorial(2)、factorial(2)需 要factorial(1),如此遞歸,得出factorial(1)=1;再每個棧幀依次出棧、進行回退,將值返回給調用它的棧幀,最終計算出factorial(5)的值。需要強調的是,遞歸函數必須有終止條件,避免無限遞歸。

至此,學生已經能更深入地理解函數執行時機器層面的內容,對其理解遞歸更有幫助,但以上程序還存在一個問題,即需要維護多個棧幀,其空間復雜度將會很大。有沒有改善的辦法?分析其原因,是由前面的函數調用關系決定的,即factorial(n)=n*factorial(n-1),每一個棧幀都需要記錄下一個函數棧幀的返回值才能計算當前棧幀的結果,不可避免地使用了多個棧幀。那么,能不能做到僅使用一個棧幀?如前所述,由于要記錄n和下一個函數棧幀的返回值,所以每一次函數調用都要產生一個新的棧幀,如果不記錄這兩個值,就不用每次調用時都產生一個新的棧幀,實現整個遞歸只需要一個棧幀。如此設定必須對遞歸算法和函數進行修改,讓函數返回需要的返回值[8]。

再次分析階乘公式n!=n×(n-1)!的實現過程,計算n!需要傳遞n并調用(n-1)!、計算(n-1)!時需要傳遞(n-1)并調用(n-2)!,依次類推……直至計算到1!時回歸。能否換一種思維,在調用(n-1)!時已經有值n、調用(n-2)!時已經有值n×(n-1)、調用(n-3)!時已經有值n×(n-1)×(n-2),依次類推……調用1!時已經有值n×(n-1)×(n-2)× ×2,因將計算1!=1作為終止條件,實際上此時已經能計算出n!,那么程序還需要回退、還需要逐層返回值嗎?答案自然是否定的。下面給出此算法的程序。

計算5!的過程如下,執行函數factorial(5,1),調用factorial(4,5*1),調用factorial(3,4*5),調用factorial(2,3*20), 調 用 factorial(1,2*60), 返 回 值120,至此,計算出5!的值為120,程序執行完成。

由于本函數直接傳遞了n值和計算結果,不存在需要記錄n和下一個函數棧幀的返回值的要求,也不存在返回值和回退的情況。無論n的值有多大,本函數只需要使用一個棧幀,同一個棧幀在遞歸中被復用。這就是“尾遞歸”,即當遞歸調用是函數體中最后執行的語句并且它的返回值不屬于表達式的一部分時,這個遞歸被稱為尾遞歸。

如此,既讓學生深入理解了遞歸,又讓他們明白機器層面的知識,同時讓他們明白只有理解計算機機器層面的東西才能設計出好程序。通過本次內容的講解,讓學生感受到提出問題、分析問題、解決問題、進一步提出問題、優化算法直至最終解決問題的整個過程,進行了一次很好的思維訓練。

5 結 語

計算思維能力的培養為民族高校程序設計課程改革提供了一個發展機遇,對改善辦學水平、提高教學質量和人才培養質量有十分積極的意義。

[1]Jeannette M Wing. Computational Thinking[J]. Communications of the Association for Computing Machinery, 2006(3): 33-35.

[2]高敬陽, 尚穎, 山嵐. 化工類院校計算機基礎教學中計算思維的培養[J]. 中國大學教學, 2014(2): 41-44.

[3]王先超, 王春生, 胡業剛, 等. 以培養計算思維為核心的C程序設計探討[J]. 計算機教育, 2013(13): 44-47.

[4]陳國良, 董榮勝. 計算思維與大學計算機基礎教育[J]. 中國大學教學, 2011(1): 7-11.

[5]戰德臣, 聶蘭順. 計算思維與大學計算機課程改革的基本思路[J]. 中國大學教學, 2013(2): 56-60.

[6]戰德臣, 聶蘭順, 徐曉飛. “大學計算機”:所有大學生都應學習的一門計算思維基礎教育課程[J].中國大學教學, 2011(4):15-20.

[7]吳文虎, 王建德. 世界大學生程序設計競賽(ACM/ICPC)高級教程(第1冊):程序設計中常用的計算思維方式[M]. 北京:中國鐵道出版社, 2009.

[8]劉欣. 張大胖學遞歸[EB/OL]. (2016-11-14)[2017-11-10]. http://mp.weixin.qq.com/s/YpG9TvTCBus2FK6LbArvvw.

猜你喜歡
解決問題思維課程
思維跳跳糖
思維跳跳糖
思維跳跳糖
思維跳跳糖
聯系實際 解決問題
助農解決問題增收致富
今日農業(2021年9期)2021-11-26 07:41:24
在解決問題中理解整式
數字圖像處理課程混合式教學改革與探索
軟件設計與開發實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學習HAA課程?
主站蜘蛛池模板: 久久精品一品道久久精品| 久久精品91麻豆| 香蕉久久国产超碰青草| 丁香婷婷综合激情| 午夜成人在线视频| 国产青榴视频| 操国产美女| 女人av社区男人的天堂| 91毛片网| 不卡色老大久久综合网| 就去色综合| 91欧美亚洲国产五月天| 97国产精品视频自在拍| 亚洲人成网站色7799在线播放| 国模视频一区二区| 亚洲欧美自拍中文| 制服丝袜一区| 综合色88| 亚洲国产精品日韩欧美一区| 亚洲日本精品一区二区| 国产网友愉拍精品视频| 免费观看国产小粉嫩喷水 | 成人福利视频网| 久久成人国产精品免费软件| 天天做天天爱夜夜爽毛片毛片| 乱色熟女综合一区二区| 欧美色综合久久| 国产真实乱子伦视频播放| 天堂网亚洲系列亚洲系列| 国产自在线播放| 99无码熟妇丰满人妻啪啪| 久久精品国产精品青草app| 欧美精品一区在线看| 欧美翘臀一区二区三区| 五月天香蕉视频国产亚| 欧美在线伊人| 无码 在线 在线| 欧美日韩激情在线| 91九色最新地址| 国产真实二区一区在线亚洲| 午夜福利无码一区二区| swag国产精品| 欧美伦理一区| 日韩AV手机在线观看蜜芽| 日韩高清在线观看不卡一区二区| 国产草草影院18成年视频| 亚洲国产中文在线二区三区免| a级毛片免费看| 热热久久狠狠偷偷色男同| 福利在线不卡| 亚洲第一极品精品无码| 毛片免费试看| 亚洲看片网| 精品视频福利| 永久免费无码成人网站| 亚洲国产日韩视频观看| 国产女人综合久久精品视| 国产sm重味一区二区三区| 日韩在线播放中文字幕| 国产专区综合另类日韩一区 | 国产成人无码AV在线播放动漫| 亚洲美女一级毛片| 亚洲一区国色天香| 一级全免费视频播放| 国产av剧情无码精品色午夜| 国产午夜人做人免费视频中文| 538精品在线观看| 亚洲第一黄色网址| 亚洲精品第一页不卡| 精品少妇人妻av无码久久| 91久久夜色精品国产网站| 狠狠色成人综合首页| 大乳丰满人妻中文字幕日本| 91探花国产综合在线精品| 成人综合在线观看| 日本免费高清一区| 国产一级妓女av网站| 日韩欧美国产三级| 国产99视频在线| 精品久久久无码专区中文字幕| 91九色视频网| 色妺妺在线视频喷水|