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

《程序設計》課程培養學生思維的實踐探索

2015-12-15 21:46:02任遠吉順如林志杰
教育教學論壇 2015年49期
關鍵詞:語言

任遠 吉順如 林志杰

摘要:《程序設計》是高等學校理工科專業普遍開設的系列必修課程,對計算機專業具有非常重要的地位。探討如何通過《程序設計》教學培養本科生,特別是新生的計算思維,提出了五種以計算為訓練方式培養計算思維的教學方法,以計算思維為導向的教學改革已經在上海電機學院計算機基礎教學部進行了小范圍應用并取得一定成果,初步說明通過計算培養計算思維是一種行之有效的教學模式。

關鍵詞:計算思維;程序設計;語言;計算;新生

中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2015)49-0276-03

一、《程序設計》課程簡介

《程序設計》是高等學校理工科專業普遍開設的系列必修課程。這門課主要講授用高級語言如C/C++及Java等開發計算機程序的基本知識,培養學生用計算機分析并解決問題的能力,使學生掌握軟件設計的基本方法,為后續課程奠定基礎。

國內高校普遍將《程序設計》課程按照語言的不同分為多個系列:C語言、C++語言及Java語言等。不同學校及專業根據各自的培養方案為學生開設其中幾種,至少有一種語言(一般是C語言)為必修,開設于大一及大二學年,理論課與實驗課共60~100課時,持續1~2個學期。各高校也普遍為計算機相關專業高年級學生開設其他流行編程語言如Visual Basic以及更專業化編程語言如Matlab、SQL及HTML等等。這些語言的基本語法與C語言相似甚至是高度相似,程序設計思想相通,因而其教學也高度依賴于低年級程序設計課程的教學效果。

二、面向新生的《程序設計》課程

對計算機及軟件等專業的學生而言,《程序設計》是一門專業基礎課,這門課程一般開設于本科一年級,因而授課對象主要是本科新生。一方面,大多數計算機相關課程如《數據結構》、《操作系統》及《數據庫》等都需要編程語言的基礎知識,學生在這門課收獲的學習成果對高層次的學習乃至工作都具有非常重要的意義;另一方面,編程語言課程的教學能夠直接訓練學生的計算思維[1],計算思維的形成和培養,是目前高等院校計算機教學,甚至包括非計算機專業的計算機基礎教學所追求的一個重要目標。在學生剛剛升入本科階段,而幾乎不曾開始學習專業課,專業思維模式尚未形成之前,就逐漸培養其計算思維,又顯然是這項任務的重中之重。

高中信息技術課程一般包括Visual Basic等編程語言的知識,但長期以來,受高考指揮棒的影響,全國各省市的小學、初中與高中教育普遍對計算機(信息技術)課程的重視程度不夠。在程序設計不作為會考要求內容的省份,一些學校甚至沒有開設編程語言課程,或者要不做任何要求,導致在高中階段,教師與學生的教學興趣度極低。一個最直接的后果是,即使是計算機相關專業的學生,剛進入大學時,也普遍對程序設計這類課程既陌生又恐懼。

由于這類課程本身的深度與難度,本科新生,特別是在高中階段沒有學過程序設計,甚至幾乎不曾接觸過計算機的新生,往往承受較大的學習壓力,如果不能很好地掌握程序設計的思維與方法,學生很容易喪失學習計算機相關課程的興趣與信心,從而影響整個大學階段的專業學習,因而承擔大一新生程序設計課程的教師也同樣承受較大的教學壓力。如前所述,這個問題產生的直接原因固然是高中信息科學知識儲備的不足,但根本原因還是學生在從多年來已經習慣的數理化式的定義與公式學習模式轉變為以計算機學科為代表的設計與實驗的學習模式時產生了障礙,或者說學生沒有能夠形成學習計算科學應具有的思維模式。因而解決這個問題的關鍵即是,要通過程序設計課程的教學使學生形成并逐漸強化計算思維。

三、計算思維的內涵及重要性

按照卡內基·梅隆大學Jeannette M. Wing教授提出的廣義概念[1],計算思維是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。而具體到程序設計這門課,計算思維可以理解為編寫高級語言程序的方式解決問題的思維活動。由此可以看出,程序設計課程是培養學生的計算思維最重要的方式之一,而培養學生的計算思維也是程序設計課程最重要的目的之一。

計算思維這一重要概念被提出后,引起高等教育界的廣泛注意。關于如何在程序設計課中培養本科生的計算思維能力這一問題也成為高校計算機教學中普遍關注的問題。文獻[2-4]討論了如何通過計算機基礎教學培養計算思維,文獻[5-7]討論了通過程序設計課程培養計算思維,文獻[8]討論了如何通過程序設計培養學生的多種思維能力,文獻[9;10]提出以計算思維為導向開展程序設計教學,文獻[11-13]提出了基于計算思維的程序設計教學改革方式,文獻[14;15]討論了通過程序設計課程培養計算思維的具體實踐方式,文獻[16]探討了如何以計算思維為訓練目標設計程序設計案例,文獻[17]討論了如何通過非計算機專業的程序設計課程培養計算思維。但圍繞如何針對新生開展高效程序設計課程教學[18],以及如何培養新生的計算思維這些方面的研究卻還很少。

計算思維,顧名思義,即“一切皆為計算的思維”,可以把它理解為一種將復雜的實際問題都轉換為可以用計算機解決的思維模式,而計算機解決任何問題的本質,顯然都是通過各種計算來完成的。掌握用計算機解決問題的方法,是當今社會中最重要也是最基本的技能之一。要實現這一目標,就要靠計算思維的長期漸進式培養與發展,這主要涉及兩個方面的任務:(1)需要了解計算機求解問題所使用的計算方式。只有了解計算機計算的方式,才能判斷一個問題是否可以直接被計算機求解,也才能將待求解的問題轉換為計算機可以求解的形式;(2)需要掌握用計算機求解問題的設計方法。只有能夠設計出讓計算機求解問題的計算方法,即算法,才算真正掌握了計算機科學。在眾多計算機相關課程中,程序設計是能夠實現以上兩個任務的重要載體課程,而計算,作為計算機解決問題的終極形式,又顯然應該是實現培養計算思維這一目標的核心訓練手段。

四、以《程序設計》培養計算思維的實踐策略

本人所在基礎教學部承擔上海電機學院全校非計算機專業及計算機專業本科一年級學生的程序設計課程教學任務,包括C/C++語言及Java語言,分兩個學期授課,理論課共64學時,實驗課共32學時。從字面意義就不難看出,“計算思維”的核心思想是計算的能力和技巧。在教學中,我們以計算作為最重要的訓練方式,貫穿于整個教學環境中,嘗試以計算促進計算思維的形成。具體地,我們主要采取以下方法:

1.用計算問題讓學生快速開始程序設計。學生都經過從小學到高中的數學訓練,普遍對各種基本數學問題非常熟悉。用一些最簡單的計算問題例如“從鍵盤輸入數值,計算其和差積商”可以使學生迅速上手,開始學習編寫程序。一方面,這樣可以避免在學習初就因受困于復雜的問題本身而影響編程語言語法規則的學習;另外一方面,也使學生通過解決簡單的計算問題獲得學習新課的成功感和自信心,提高對后續課程學習的興趣。

2.用計算問題使學生了解程序設計實現計算的規則。在講授選擇結構程序設計時,我們使用了“數學年份,輸出各月天數”的例子。一年中的各個月份天數不同,僅需分為三種情況;二月份的天數需要根據該年是否是閏年來判斷,而閏年的判斷是小學生都非常熟悉的:即年份能被400整除;或能被4整除但不能被100整除。為了用編程語言描述這種判定規則,就需要引入邏輯運算符表示“與”和“或”的關系并且要準確理解運算符的優先級。這樣就可以通過一個例子充分了解分支結構程序的設計規則和邏輯計算的規則。

3.用計算問題使學生了解用計算機解決問題所需要考慮的額外因素。在進行一般的數學計算時,除了有些情況要求數值只能是整數,我們一般不必考慮一個數是整數還是小數。但是用高級語言處理數據,除了比較特殊的Python等語言不區分數據類型,一般的高級語言如C和Java都是嚴格區分數據類型的。在數學上,我們可以很自然地書寫x=1,y=0.5,但是在編程語言中,如果x被定義為浮點型,那么整數轉換為浮點數,涉及表示方式的轉換,可能會丟失精度;如果y是整數,將浮點數轉換為整數會丟失小數部分。而后者,在類型嚴格的語言如Java語言中甚至是不允許的。雖然單純的數學計算幾乎不涉及整數和浮點數類型轉換的問題,但數據的類型轉換卻是程序設計中最容易出錯的。通過編寫測試性程序驗證0.1+0.2不等于0.3,學生的印象會非常深刻,并且能夠更直觀地了解在用計算機計算時,數據類型精度是一個必須要考慮的因素,從而形成一種思維模式,在設計計算方法時能夠處處考慮類型與精度的相關問題。

4.通過計算加深對計算中特殊規則的理解,強化計算思維。在教學中,我們會讓學生編程練習求“3斤2元的蔬菜,6斤多少錢”這樣看似極其容易的問題。大多數學生會因為按照數學的習慣書寫2/3*6這樣的表達式而得到看似荒謬的答案0,這樣的錯誤在程序設計中非常普遍地存在,并且在調試代碼時這類錯誤隱蔽性極大,不容易被發現。只有通過大量這類的計算練習,才能讓學生充分理解程高級語言(C/C++/Java等)中/的特殊運算規則,即整數除法的結果還是整數,如果要得到比較準確的結果,至少要把被除數和除數中的一個轉換為浮點數,對于變量需要使用強制類型轉換,對于常量,除了強制類型轉換,還可以在后邊添加.0,及2和2.0在計算中是截然不同的兩個數,產生的計算結果也是全然不同的。由此可以進一步強化對數據類型轉換的理解。

5.用計算問題使學生了解純粹的數學思維和計算思維的差別。在講解循環結構時,我們讓學生編程計算兩個數的最大公約數和最小公倍數。大多數學生會受困于小學數學中學過的短除法方法:用一個一個公因子依次去除兩個數,直到商是互質的。對于手工計算,這種方法當兩個數都不太大,公因子比較容易找且不都太大的情況是非常容易且直觀的。但是用計算機套用這種思路編程時就會遇到麻煩:手工計算式公因子是直觀“看”出來的,而計算機是沒有辦法一下子猜到一個公因子的。但是利用循環,這個問題就迎刃而解。按照定義,最大公約數,就是最大的可以整除兩個數的數,最大不會超過兩個數中較小的一個,只要用循環,從兩個數的最小值開始,一個一個嘗試,每次減1,找到一個能夠同時整除兩個數的數,就是答案而不必繼續找,而各種高級語言普遍都提供了求余的運算符。當兩個數變得很大時,這種方法的效率很低,于是可以利用循環實現更快尋找最大公約數的輾轉相除法;對最小公倍數的練習,也同樣可以強化循環的學習效果。通過這些例子可以使學生清楚地意識到,數學中的計算方式轉換為計算機的求解過程需要一定的轉換,而這種轉換正是計算思維的關鍵所在。

對以上幾種計算訓練模式,一個重要的環節是讓學生在實驗時犯錯誤,通過在計算中發生看似怪異的錯誤,而運算過程在數學上看來又無懈可擊,才能通過仔細的錯誤分析與代碼調試,發現按照一般思維無法發現的,由于計算機編程語言處理問題的特殊性而導致的錯誤,這樣才能使學生對這類錯誤的印象更深刻,從而盡可能減少今后出現同類錯誤的可能。

五、結語

在程序設計的教學中,我們利用學生普遍具有長期打下的良好的數學基礎這一特點,通過采取以上幾種方法,讓學生在解決計算問題時學會設計計算方法,逐步形成計算思維模式、加強計算思維方法,最終培養其計算思維能力。目前,課程教學改革正在持續進行階段,已初步取得一定成果,但還缺乏更久更大范圍的理論研究和實踐論證。我們希望能夠以這些改革措施改進理工科《程序設計》課程的教學效果,為大一學生學習后續課程打下良好的基礎,使他們受到全面的計算思維訓練,具有良好的信息素養,最終提升他們在走出校園進入當今信息社會時的核心競爭力。

參考文獻:

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

[2]朱鳴華,趙銘偉,趙晶,et al.計算機基礎教學中計算思維能力培養的探討[J].中國大學教學,2012,(03):33-35.

[3]陸漢權,何欽銘,徐鏡春.基于計算思維的“大學計算機基礎”課程教學內容設計[J].中國大學教學,2012,(09):55-58.

[4]李波.計算思維與大學計算機基礎[J].中國大學教學,2012,(07):43-45.

[5]馮惠妍,陳爭光,邰建華,et al.程序設計中“計算思維”的教學研究[J].農業網絡信息,2013,(04):120-122.

[6]王衛華.在程序設計類課程中培養學生計算思維能力的思考[J].武警學院學報,2013,(07):51-53.

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

[8]卜晨月.程序設計與學生思維能力培養的探討[J].林區教學,2013,(03):72-73.

[9]董衛軍,邢為民,索琦.以計算思維為導向的程序設計課程改革與實踐[J].工業和信息化教育,2013,(06):60-64.

[10]劉光蓉.以計算思維能力培養為導向的C程序設計實驗教學[J].實驗技術與管理,2013,(01):154-156+191.

[11]劉曉璐.基于計算思維的Java程序設計教學改革[J].廣東技術師范學院學報,2013,(05):108-110.

[12]孫麗君,楊志強,高枚.圍繞計算思維培養的程序設計課程改革[J].計算機教育,2013,(05):29-31+38.

[13]徐燕,潘亞平.計算思維與計算思維能力培養——談大學計算機基礎教學改革[J].江蘇技術師范學院學報,2013,(02):92-95.

[14]商書元.計算思維培養在程序設計課程中的實踐[J].教育教學論壇,2013,(39):203-205.

[15]張雪伍,常晉義.計算思維在C++程序設計教學中的應用[J].計算機教育,2013,(13):52-56.

[16]楊俊生,張潤.基于計算思維的“C程序設計”案例設計初探[J].工業和信息化教育,2013,(06):65-69+64.

[17]商艷麗,許美玲.基于計算思維的非計算機專業VB程序設計課程教學研究[J].河南科技,2013,(16):262.

[18]趙飛,荊光輝,張潤澤.如何培養大學新生計算機語言編程能力[J].計算機教育,2007,(10):13-15.

猜你喜歡
語言
詩之新,以語言創造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
Only Words慎用你的語言
主站蜘蛛池模板: 激情综合婷婷丁香五月尤物| 18禁影院亚洲专区| 国产精品人莉莉成在线播放| 91免费国产高清观看| 在线永久免费观看的毛片| 欧美国产三级| 久久这里只有精品国产99| 精品成人免费自拍视频| 欧美色99| 三上悠亚在线精品二区| 国产精品冒白浆免费视频| 欧美激情一区二区三区成人| 国产91导航| 国产一级毛片网站| 亚洲精品动漫| 真实国产乱子伦高清| 一本色道久久88综合日韩精品| 国产成人精品一区二区三区| 五月婷婷丁香综合| 日韩精品一区二区三区大桥未久| 一本大道视频精品人妻| 精品久久久久成人码免费动漫 | 亚洲va精品中文字幕| 亚洲福利网址| 亚洲第一中文字幕| 国产凹凸视频在线观看| 久久免费视频6| 亚洲最大看欧美片网站地址| 激情乱人伦| 国产欧美日韩专区发布| 日韩中文无码av超清 | 91在线精品麻豆欧美在线| 91精品视频网站| 久久99国产精品成人欧美| 欧美一区二区自偷自拍视频| 无码一区二区三区视频在线播放| 麻豆精品在线播放| 国产97视频在线观看| 欧美一区福利| 波多野结衣无码视频在线观看| 综合社区亚洲熟妇p| 免费Aⅴ片在线观看蜜芽Tⅴ | 青青草欧美| 91精品最新国内在线播放| 国产成人一区二区| 美女扒开下面流白浆在线试听| 国产精品偷伦视频免费观看国产 | 香蕉国产精品视频| 国产亚洲精品97AA片在线播放| 女人毛片a级大学毛片免费| 在线一级毛片| 色婷婷在线播放| 亚洲综合久久一本伊一区| 久久精品无码中文字幕| 制服丝袜一区| 91精品国产91久久久久久三级| 老色鬼欧美精品| 亚洲欧美人成人让影院| 激情综合五月网| 性视频久久| 不卡网亚洲无码| 五月婷婷综合网| 中文字幕久久亚洲一区| 色网在线视频| 日韩av电影一区二区三区四区| 热九九精品| 国产精品自在线天天看片| 天天婬欲婬香婬色婬视频播放| 亚洲嫩模喷白浆| 在线欧美国产| 91久久偷偷做嫩草影院| 一本久道久久综合多人| 亚洲精品中文字幕无乱码| 内射人妻无码色AV天堂| jizz在线免费播放| 午夜福利免费视频| 亚洲全网成人资源在线观看| 综合久久久久久久综合网| 毛片网站观看| 国产精品第5页| 综合久久久久久久综合网| 国产精品久久久久久影院|