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

面向計算思維能力培養的程序設計課程

2014-04-25 22:19:07李文生吳舜歆
計算機教育 2014年3期
關鍵詞:教學改革

李文生 吳舜歆

摘要:針對傳統程序設計課程教學存在的問題,提出將計算思維能力培養引入到程序設計課程中來,并從教學內容、教學方法、上機實踐和考核方式等方面討論程序設計課程的改革思路,培養學生計算思維能力和程序設計實踐動手能力。

關鍵詞:計算思維;程序設計;教學改革

0 引言

程序設計作為計算機類專業基礎課,是很多后續專業課程學習的重要基礎和鋪墊,在計算機類專業培養方案中占據重要位置。

程序設計是將分析和解決問題的思維活動轉化成計算機程序的過程。從這個角度講,程序設計最能夠體現語言級的問題求解思想方法,學生在學習程序設計課程中,可以通過問題分析、算法設計、程序實現來體驗問題求解的思維訓練過程。所以,對于計算機專業學生來說,學習程序設計課程的目的不應是單純掌握某門程序設計語言的語法規范,甚至不是單純學習一門程序設計技術,而是學習利用計算機分析和解決問題的基本過程和思維方法。

1 傳統程序設計課程教學存在的問題

程序設計課程主要涵蓋兩大部分內容:一是程序設計語言知識,主要包括某種程序設計語言的語法機制、形式、功能和意義;二是程序設計思想和方法,主要包括數據和數據抽象,流程和流程控制,思考、設計、組織程序的過程、方法和技術等。

傳統的程序設計課程將教學的重心主要放在第一部分,因而很容易陷入以程序設計語言為中心的誤區,具體表現在以下幾個方面:(1)教學內容過分關注程序設計語言的語法和語義細節,整個課程是以程序設計語言為綱來組織教學內容。由于程序設計語言具有大量繁雜語法知識點,教師只能采用灌輸式教學模式,花費大量課時用于講授瑣碎的語法知識上,而不是花在程序設計思想和方法的傳授上。(2)教學方法采用程序設計語言工具書的闡述方式,一般是先介紹一種語法結構的形式和意義,然后給出簡單示例或示例程序,這些示例和示例程序的主要作用只是用于對語法結構使用方法的說明,學生并不能通過這些示例體會到問題分析、程序思維和構造的方法。整個課程也很少引入綜合性的教學案例,讓學生體會到針對要解決的問題,如何進行分析并逐漸將其精確化;如何針對問題的計算需求,設計解決問題的過程;如何將問題解決過程精確化,選擇適當的程序結構實現它。(3)課程考核類似于某些計算機等級考試,偏重于考核程序設計語言的語法知識,有時甚至用一些生僻的語法知識折騰學生,而忽略對學生分析問題、程序設計和調試能力的考核。這直接導致學生只注重知識點記憶,而忽視程序設計能力培養。

2 程序設計教學改革中的計算思維能力培養

2.1 計算機思維的背景

計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為,它的本質是抽象和自動化。計算思維的核心是基于計算環境和約束的問題求解,即通過約簡、嵌入、轉化和仿真等方法,把一個看似困難的問題轉化成一個我們知道怎樣解決的問題的思維方法。

計算機學科的共同特征是基于特定計算環境和約束條件的問題求解,比如:計算機科學基礎理論研究實際上是基于抽象機(如圖靈機)的問題求解,計算機硬件體系的設計與研究則是一種指令級的問題求解,程序設計可以看成是基于語言級的問題求解活動。因此,可以認為,計算思維的本質特征是基于不同層次計算環境的問題求解。問題求解涉及3個部分內容:一是問題表示,即對象構造,建立計算環境所能理解的基本計算對象,進而為基于計算環境的問題求解提供可能;二是問題求解過程,即過程構造,通過約簡、嵌入、轉化、仿真、遞歸、并行、啟發式推理、平衡與折中等計算思維方法設計問題的求解方法和過程;三是計算過程正確性與效率的驗證,即驗證構造,典型方法有預防、保護、冗余、容錯、糾錯等,其中還需要多維度(時間、空間、簡潔、成本等)考量計算的效率。

既然程序設計是基于語言級的問題求解活動,那么程序設計課程也應當作為培養學生計算思維能力的重要手段,應當從教學內容、教學方法、上機實踐和考核模式等諸多環節改革著手,培養學生的程序設計能力和計算思維能力。

2.2 程序設計教學內容改革

程序設計課程的目標是培養學生的程序設計能力和計算思維能力,而不是單純地讓學生掌握某種程序設計語言的語法規范,所以程序設計課程教學內容的組織應當以培養學生解決實際問題能力和計算思維能力為主線,而不是以語言語法知識點為主線,從而學生不會在一開始就接觸到過多、過雜的語言語法規范細節,從而將主要精力集中到解決實際問題中來。下面以c語言程序設計為例給出一個可行的教學內容組織方式。

(1)C語言簡介。簡單介紹c語言的歷史和c語言程序的基本概念,通過簡單示例介紹c語言程序設計的基本流程。

(2)c語言程序設計的基本語法要素和程序流程控制。介紹數據和數據類型、運算和表達式、基本輸入輸出、典型的分支結構和循環結構等,討論良好的程序設計風格和結構化程序設計基本方法。

(3)函數和算法。包括函數的聲明和定義、函數調用與調用規范、程序的結構化與模塊化、算法概念與特征、算法描述方法、算法設計與實現、遞歸算法、程序的測試與排錯等。

(4)程序組織與軟件開發方法。主要討論函數庫與接口概念、作用域與生命周期、程序的組織方法和開發方法等。

(5)c語言符合數據類型。主要介紹數組、字符串、結構體等,同時討論基于字符串的相關函數和算法。

(6)指針。討論指針和存儲地址的關系、指針相關運算,同時討論指針與其他語法要件(數組、字符串、結構體、函數)之間的關系。

(7)文件與數據存儲。介紹文件的基本概念和基本操作,討論文件的讀寫方法以及實際編程時的數據存儲策略。

(8)程序抽象。通過學習數據抽象和算法抽象的基本方法與原則,掌握程序抽象的思考方法。

整個程序設計課程教學內容的安排是介紹最基本的程序設計語言知識之后,以程序抽象機制為主線逐步介紹程序設計方法,與程序抽象有關的必要的語法元素逐漸展開,并將計算思維能力培養的諸多要素融入到這條主線中。endprint

特別需要注意的是,函數絕不應該是學了各種基本編程機制之后的補充,而是培養學生抽象、分解等計算思維能力的重要載體和手段;合理的程序設計教學內容安排應當盡可能把函數這一部分提前,在之后學習過程中反復強調和應用,并與其他程序設計機制不斷碰撞融合。

2.3 程序設計教學方法改革

在確定了程序設計課程教學內容后,接下來就是如何進行教學方法的改革。改革的方向應當是幫助學生降低學習門檻,逐步展現計算思維方法和程序設計過程,從而幫助學生培養分析問題與通過程序設計解決問題的能力。具體做法如下:

(1)適當淡化語法細節,在“以程序抽象為主線”的思想指導下,對程序設計語言本身進行適當裁剪,去除較為復雜、較難理解、使用很少、不太規范的部分。事實上,在實際編程學習過程中,如果采用良好的編程風格,學生只需要掌握最基本、最重要的語法機制和最常用、最不容易寫錯的編程范式(編程模式、習慣寫法),就可以編寫程序解決實際問題了。這樣可以降低程序設計的學習門檻,讓學生能盡早開始編程,從而以漸進的方式在實際編程中學習程序設計,通過逐步深入的方式慢慢掌握思考、設計、組織程序的方法和技術,降低學生學習過程中的枯燥感和挫折感,提高學生解決問題的愉悅感和成就感。

(2)將教學重心放在計算思維能力和程序設計能力的培養上,將分解、抽象、自動化、約簡、轉化、遞歸、迭代、啟發式、折中等計算思維的主要特征融入到程序設計教學過程中,如通過順序結構把復雜工作分解為一系列較簡單的工作;通過分支結構,把整體處理分解為對一些互不相交、更為簡單的分支處理;通過循環,把復雜問題的處理分解為一系列類似處理;通過函數機制實現功能模塊的分解和抽象;采用抽象、分解來解決相對比較復雜的問題,通過約簡、轉化、遞歸、迭代來實現復雜問題的分而治之等。

(3)開發相對綜合的教學案例,如萬年歷程序、ATM自動取款機程序等,這些案例由部分到整體,由簡單到復雜,貫穿整個課程,幫助學生體會:如何從分析問題開始,通過分解、抽象、約簡、迭代等計算思維方法,最終設計出一個問題的計算過程;如何用程序設計語言將所設計的計算過程轉化成為一個程序;如何采用結構化程序設計思想方法,設計出具有良好的結構,使其易于修改和擴充;如何保證程序能合理妥當地處理不正確的輸入,提高程序的容錯性;如何合理地組成程序,以方便將代碼作為更大程序的組成部分。

(4)引入基于問題的互動教學,精選反映計算思維思想的問題案例或者相關知識模塊的引導性問題,通過課堂互動討論等方式,討論問題的分析、分解和精確化,找出問題解決的主要步驟,確定函數抽象,找出循環迭代、條件控制結構,最后進行程序實現。做完之后還應該分析討論所設計程序的優點和缺點,考慮其他設計實現的可能性。

2.4 程序設計的上機實踐環節改革

程序設計課程本身就是一門實踐性很強的課程,程序設計能力和計算思維能力的培養不能僅靠課堂教學,更多需要依靠上機實踐。上機除了強化學生的實踐動手能力外,更重要的是培養他們積極思維,自己發現問題、解決問題的計算思維能力。基于這個原因,我們從以下幾個方面進行程序設計上機實踐環節改革。

(1)以計算思維核心方法為指導,建立分層次的實踐教學案例。

首先是基礎層,要求學生在掌握某種語法規范后,可以使用它們解決相關的簡單實際問題,這一層次主要幫助學生跨越程序設計的門檻;第二個層次是拓展層,要求學生掌握基本的計算思維方法(抽象、分解等),掌握解決問題的典型策略或算法(如窮舉、迭代、遞歸、分治、查找、排序等),然后加以變通并用它們解決類似的問題;第三是綜合提高層,通過給出一些綜合的上機實踐題目,要求學生學會如何進行正確的思考,對一個相對復雜的問題進行問題分解和抽象描述,從而得到解決問題的方法和途徑。

(2)搭建一個“程序設計在線訓練和評測系統”,為程序設計課程上機教學服務。

該系統在設計時需要考慮如下因素:一是將實驗實踐教學案例轉化成程序在線訓練和評測系統相關題庫的題目,這些題目涵蓋基礎層(基本的編程語言知識的理解和復現)、提高層(基本計算思維方法和典型算法的編程驗證)、提高層(計算思維能力和編程技巧的綜合運用)不同層次,逐步培養學生的計算思維能力和程序設計能力;二是對于系統的題目通過設計比較全面的測試用例,培養學生更加全面思考問題求解方法的習慣,并加深學生對容錯、糾錯、冗余等計算思維的相關特征的了解;三是通過對測試用例設定時間和空間的要求,讓學生體會在設計正確程序的同時,還要考慮程序算法的優劣,進而設計高效的實現算法,不斷提高程序設計的技巧。

抽象和分解是計算思維的兩個最重要元素,也是程序設計的兩個重要手段,所以有必要強調學生在做題過程中通過問題分解和函數(或類)抽象建立清晰的程序結構,并引導學生關注程序的結構、易讀性和易修改性。但是傳統的“程序設計在線訓練和評測系統”采用黑盒測試,只是關心程序對于給定的測試用例能否得到預期的輸出,并不關心程序實現的方法,這導致學生往往只寫一個主函數,并沒有根據實際問題進行問題分解并抽象為相關自定義函數(或類),無法鍛煉學生抽象和分解的計算思維能力以及良好的程序設計風格。針對傳統“程序設計在線訓練和評測系統”的缺陷,我們開發一個全新的系統,能夠全面支持函數、面向對象等內容的程序設計和測試,并通過強制學生通過問題分解,定義相關函數(或類),達到培養學生分解和抽象等計算思維能力和良好的程序設計風格的目標。

2.5 程序設計課程考核改革

摒棄傳統課程考核方式,強調學習過程,強調實踐動手能力。盡管完全放棄筆試可能會帶來一些弊端,但可以大大降低筆試所占成績的比例(如40%以下),加大平時上機解題、階段性上機測試、大作業在課程考核評價的分量。

首先,學生可以通過“程序設計在線訓練和評測系統”隨時隨地做題,然后提交自己的源代碼。系統會實時地對學生的代碼進行評測,并給出相應的評測結果:編譯錯、答案錯、格式錯、運行時出錯、超時和接受。學生解題的數量可以比較好地反映其平時的學習過程和學習效果。盡管學生提交代碼不被系統接受時可以對代碼不斷進行修改和重新提交,也可以查閱相關資料,但這恰恰是學生自主學習和通過錯誤學習的過程,值得鼓勵。

其次,教師可以根據實際教學需要進行階段性測試,通過在“程序設計在線訓練和評測系統”里面布置測試題目,設定測試的截止提交時間。系統會對學生提交的代碼進行實時評判,并對學生的測試情況進行統計分析,不需要人工干預。

最后,教師可以布置一個大作業,然后3—4人組成一個小組,利用程序設計課程學知識和技能,合作設計和開發一個具有用戶界面、功能相對完整的應用程序,如萬年歷、ATM取款機程'序、簡易字典程序等。大作業采用開放形式,允許以任何方式查找資料,甚至在網上和其他人討論,但強調學生在大作業完成過程中的參與和投入。最后,小組成員需要參加最后的大作業答辯,在答辯中展示自己程序的設計思路和系統功能,并通過答辯防止學生簡單抄襲。

3 結語

面向計算思維能力培養的程序設計課程教學改革對該門課程的教學內容、教學方法、上機實踐和考核模式進行重新審視和定位,整個課程以培養學生的計算思維能力和解決實際問題能力為目標,同時在教學主線和實踐環節中融入計算思維的相關要素。電子科技大學中山學院計算機學院近年來一直在探索面向計算思維能力培養的程序設計課程教學改革,取得了一定的成績,學生的分析問題的能力和程序設計得到一定程度的提高,學生在ACM、軟件設計大賽、嵌入式設計大賽、飛思卡爾智能車大賽等大賽中屢獲佳績,在后續專業課程的課程設計以及畢業設計環節涌現出的越來越多的優秀作品。

(編輯:郭田珍)endprint

猜你喜歡
教學改革
完全學分制下選課管理的思考與實踐
考試周刊(2016年76期)2016-10-09 10:08:04
金工實習教育對工科院校創客教育影響分析
考試周刊(2016年76期)2016-10-09 10:04:11
新形勢下小學語文教學方法研究
考試周刊(2016年76期)2016-10-09 08:47:08
譯林版英語教材的人文特點研究
成才之路(2016年26期)2016-10-08 11:33:49
當前農村學校實施“新教育實驗”的研究
成才之路(2016年25期)2016-10-08 10:05:54
構建和改進現代化學校美育工作體系研究
成才之路(2016年25期)2016-10-08 10:04:29
中職學校“生本課堂”的調查研究與實踐
成才之路(2016年25期)2016-10-08 10:03:04
高校三維動畫課程教學方法研究
成才之路(2016年25期)2016-10-08 10:00:36
基于人才培養的技工學校德育實效性研究
成才之路(2016年25期)2016-10-08 09:51:08
現代信息技術在高職數學教學改革中的應用研究
科技視界(2016年20期)2016-09-29 12:59:03
主站蜘蛛池模板: 国产成人精彩在线视频50| 狠狠色婷婷丁香综合久久韩国| 色网站在线免费观看| 国产精品成人一区二区| 无码专区国产精品第一页| 日韩视频免费| 99re视频在线| 国产午夜人做人免费视频| 欧美α片免费观看| 国产成人综合久久精品下载| 色婷婷成人| 亚洲乱码视频| 91在线高清视频| 国产精品xxx| 波多野吉衣一区二区三区av| 国产麻豆精品久久一二三| 一级毛片免费不卡在线视频| 日韩欧美91| 一级高清毛片免费a级高清毛片| 中文字幕久久亚洲一区| 国产激情影院| 无码一区中文字幕| 欧美一区日韩一区中文字幕页| 女人18毛片久久| 亚洲中文字幕在线观看| 免费高清自慰一区二区三区| 国产一在线观看| 国产91九色在线播放| 麻豆精品国产自产在线| 午夜人性色福利无码视频在线观看| 免费网站成人亚洲| 91精品啪在线观看国产60岁| 一级毛片免费观看久| 992tv国产人成在线观看| 亚洲一区二区精品无码久久久| 国产一级毛片网站| 国产成人a在线观看视频| 国产精品页| 波多野结衣的av一区二区三区| 国产在线一二三区| 免费无码在线观看| 久久亚洲精少妇毛片午夜无码| 精品国产香蕉伊思人在线| 青草午夜精品视频在线观看| a网站在线观看| 国产欧美又粗又猛又爽老| 国产99视频在线| 国产剧情国内精品原创| 欧美无专区| 91青青草视频在线观看的| 亚洲欧美国产高清va在线播放| 制服无码网站| 婷婷综合在线观看丁香| 华人在线亚洲欧美精品| 激情成人综合网| 夜精品a一区二区三区| 久久国产免费观看| 九九九久久国产精品| hezyo加勒比一区二区三区| 成人午夜精品一级毛片| 嫩草国产在线| 毛片基地美国正在播放亚洲| 国产精品成人啪精品视频| 在线观看视频99| 欧美在线精品怡红院 | 国产在线观看91精品亚瑟| www.日韩三级| 67194在线午夜亚洲| 天天干天天色综合网| 亚洲中文精品久久久久久不卡| 久久精品无码一区二区日韩免费| 色噜噜狠狠狠综合曰曰曰| 欧美成人一级| 亚洲国产午夜精华无码福利| 1769国产精品免费视频| 亚洲国产成人精品无码区性色| 国产精品对白刺激| AV不卡在线永久免费观看| 中文字幕有乳无码| 久久一色本道亚洲| 亚洲成人网在线观看| 亚洲天堂网视频|