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

基于ACM平臺的程序設計課程教學改革

2013-01-01 00:00:00穆寶良李晉韓雪峰
軟件工程 2013年4期

摘 要:針對程序設計類課程教學中存在的問題及原因,在分析ACM平臺特點的基礎上,給出了基于ACM平臺的程序設計課程理論和實踐教學方法,提出了具體措施,實踐中收到了較好的效果。

關 鍵 詞:ACM;教學改革;程序設計課程

0引言

高等院校計算機相關專業的課程中程序設計類課程占了較大的比重,程序設計類課程的實踐性很強,課程教學的最終目標是要求學生具有一定的程序設計能力。以往教學過程中主要強調程序設計語言的語法、實驗內容也相應分成不同的模塊,導致在教學過程中教師往往將重點偏向理論,忽視了理論和實際程序設計之間的聯系,降低了實際程序設計能力的訓練和考察,不能有效地培養也不能提高學生的程序設計水平。國際大學生程序設計競賽(簡稱ACM) 是由美國計算機學會主辦的,公認的規模最大、水平最高的程序設計競賽。競賽對程序設計語言和算法的學習使用作為整體來進行考察,將ACM 競賽的平臺與程序設計類課程的教學結合起來,提高學生的程序設計能力,是一個十分有意義的問題。

1傳統程序設計類課程教學中的問題

1.1理論教學中的問題

高級語言程序設計(C、C++)一直以來都是計算機相關專業的基礎課程,也是公共計算機教學的主要課程。高級語言程序設計及其后續課程(數據結構,算法分析和設計)同屬工科課程,實踐性很強,對實踐的要求很高。但是,傳統的課程安排基本上都是以理論教學為主,只安排了較少的實踐內容。以沈陽師范大學為例,實踐教學的比例一般為三分之一左右。理論教學以語法為主線,主要強調學生對語法和典型例題的掌握。實踐教學環節主要是模塊化的內容,學生只要掌握一兩個知識點即可完成實驗。最后的考核以筆試為主,實踐所占的比例很小。學生不需要調試程序,很多學生通過死記硬背也能得到比較高的分數。這種教學模式無法很好地考察實踐能力,對程序設計能力的訓練和提升也沒有實質的幫助,不能激發學生的學習興趣。

上述情況造成了計算機學科教學中的“學與用”的矛盾。一方面,基礎的程序設計類課程距離實踐運用相差甚遠,學生學了很多基礎語法和典型的數據結構及算法,卻不能使用所學內容去解決實際問題,以至于很多學生學過了所有課程,考試得了很高的分數,卻不會編寫程序,學生因此覺得課程沒有用處,不愿意去學習;另一方面,學生過分強調實踐,關注和學習最新的計算機技術。雖然開始的時候能夠學到一定的技術,但是隨著學習和應用的深入,由于缺少基礎課程的支撐,限制了學生水平的進一步提升。

1.2 實踐教學中的問題

相比傳統教學,程序設計類課程的實踐教學得到了一定重視,但是無論是教學計劃制訂者,還是教師和學生,都將實踐環節看作是理論教學的輔助手段。這可以從學時分配、課程內容的順序,以及考核所占的比重中體現出來。

以往的實驗基本是按照章節組織內容,主要考察單個的算法。 學生一般只關注對單個算法的理解和使用,對于從整體上掌握概念和應用多個算法解決相對復雜的問題關注的很少。驗證性實驗占實驗內容的很大部分,對于軟件開發過程中的分析、設計、實現,調試、測試等環節很少涉及。學生對實驗內容沒有整體的把握,綜合設計能力不能有效地提高[1]。

傳統實踐教學對學生實驗課內容的檢查存在不足。學生的程序是否正確,只是學生使用自己想到的和實驗指導書上提供的數據進行測試。實驗指導書不可能提供嚴格的測試數據集,學生自己也往往不能夠全面地考慮問題。并且現在的教學班人數普遍較多,教師不可能一一檢查,傳統方式根本無法發現程序中疏漏的情況和不易察覺的錯誤。由于精力有限,檢查實驗報告時教師很難區分是學生抄寫過程中的錯誤,還是程序實現過程中的代碼錯誤。另外,由于知識面限制和慣性思維的作用,教師有可能誤判學生的不同于參考答案的算法。綜上所述,傳統的檢查方式不能有效地發現程序中的非語法問題。同時,針對少數知識掌握比較好,實踐能力較強的學生開發的不同于參考答案的程序,也不能提供較好的檢查,而且不能對這部分學生的進一步提升提供幫助[2]。

受困于實踐教學學時的限制,實踐教學過程中很難安排具有難度和綜合性的題目。為了解決這個問題,很多院校設置了課程設計環節。學生以分組的形式在要求的時間內完成指定的實驗。課程設計的目的在于綜合所學知識,提高學生的分析能力、設計能力和解決問題的能力,以及培養學生的團隊精神和相互協作能力。但是實踐過程中,由于教師精力和學術水平的限制,所選的題目與實際聯系不夠緊密、考核的方式以小組報告和小組答辯為主,不能夠體現團隊分工,常導致學生對課程設計缺乏興趣,收效甚微。

2 ACM的特點

ACM是由美國計算機學會主辦,其宗旨是考察大學生使用程序設計語言和算法分析和解決問題的能力。ACM的模式對培養程序設計能力、團隊精神和創新意識都具有積極的作用。ACM 具有以下特點:

2.1 題目涉及面廣,要求高

ACM題目涉及相當廣泛的知識,包括程序設計語言、數據結構、算法、人工智能、離散數學等程序設計類課程的理論和方法。同時,為了提高參賽選手的興趣,與實踐相結合,ACM的題目注意生活化和趣味化,對數學建模、概率論、計算幾何、組合數學等一般計算機專業沒有開設的課程也有要求。參賽學生為了在比賽中取得好的成績,需要學習和應用很多上述課程的知識,使學生將做題和學習結合在一起,提高了學生的學習興趣,調動了學生的積極性。

2.2 對選手的團隊配合能力有很高的要求

ACM競賽中每支參賽隊伍由不超過3名隊員組成,每支隊伍只會分配一臺計算機。這就要求隊員明確每個人的特長,合理地根據問題進行分工,提高解題的效率。對于沒有明確解題算法的題目,要求隊員討論時有較高的對算法思路的描述能力以及對所提解決方案的合理論證能力。所有這些都要求隊員具有較高的協作能力。

2.3 要求學生具有較高的抗壓能力,能夠快速地理解和解決問題

ACM采用5個小時的全封閉現場比賽,根據每支隊伍解題的多少和總用時的長短排名。現場比賽要求隊員盡量避免受到其他隊伍的影響,在有限時間內盡可能多地解決問題,盡可能快地理解和解決問題。

2.4 采用在線評測系統,體現公平公正,要求高質量程序

ACM采用在線評測系統對參賽隊伍提交的程序進行評測,由于使用相同配置的服務器和評測軟件,避免了人工評測可能造成的誤差和不公正。自動評測系統不僅要求選手提交程序的正確性,對程序的運行時間、占用內存空間以及輸入輸出格式都有嚴格的限制。這就要求參賽選手既要選對算法,同時要有比較好的程序實現,既考察了算法分析能力又考察了代碼編寫能力。

3 基于ACM平臺的程序設計類課程教學

本文作者2008年開始作為領隊和教練帶領沈陽師范大學的學生參加遼寧省和東北地區的ACM比賽,其間一直在思考如何能夠讓ACM比賽更好地服務于教學,2009年開始從C和C++語言課程入手,嘗試基于ACM平臺對程序設計課程的理論與實踐教學進行教學改革。

3.1 使用任務驅動的教學方式

改變傳統的以知識點為中心的教學方式,讓學生圍繞著一個共同的任務活動中心,在問題的驅動下,積極應用學習資源、自主探索、協作學習,在完成任務的同時,引導學生進行實踐活動。

算法設計是計算機解題的核心,要求學生有較好的數學修養和熟練的程序編寫能力。使用數學的抽象思維方法進行建模是一個突出問題主要因素的抽象過程。抽象和形式化處理要運用計算思維方式,包括:整體與部分的關系的認識和處理;分類與分治;目標轉化思想;逆向思維;構造性思維;猜想與試驗等[3]。上述教學思想對程序設計類課程的教學具有很強的指導作用。

在C++程序設計課程中,我們改變以往的教學方式,使用了基于案例的教學方法。教材中以一個案例為全書的主線,在相關的語法知識教學中,我們在每一章都通過案例的一個實現部分和典型的例題引入程序設計思想和常用程序設計方法,并給學生安排了相應的任務[4]。這種新的教學方式讓學生從課程的開始就帶著任務在學習,嘗試著模仿案例,修改案例,最終對案例提出自己的實現方法。在學習程序設計的過程中,學生需要大量的程序設計訓練。通過程序設計訓練,學生掌握了枯燥的語法知識,提高程序設計的基本能力,理解和掌握了程序設計的思想和方法。上述的訓練會讓學生獲得解決問題的成就感,激發學生的求知欲,培養學生的自學能力。

3.2 基于ACM平臺的實踐教學

基于ACM平臺教學可以改變傳統的基于模塊的實驗內容。傳統的實驗課程按照知識點安排實驗題目,每個知識點的題目對所有學生都是相同的,很難滿足所有學生,基礎好的學生覺得沒有提高,基礎差的學生又不能按時完成。使用ACM平臺,可以在同一個知識點下設置多個題目,不同的題目具有不同的難度級別,學生可以根據自身的水平選擇合適難度的題目求解。對于部分學有余力的,基礎較好的同學可以安排一部分結合實際的應用型題目和解決較大規模問題的綜合型題目,這樣就可以滿足不同水平學生的學習要求。考核時要求學生完成一定分數,按照難度級別設置題目對應的分數,可以使每個學生的訓練量接近平均,不會差別太大。

傳統的實驗題目多是語法描述為主,學生感到枯燥,沒有學習興趣。而ACM的題目大多數都有一個背景描述,題目所有要求的算法隱藏在背景描述中,這就使得題目非常趣味化。學生要有較好的抽象和分析能力才能夠將描述的題目轉換成算法,并最終使用程序實現。由于題目具有一定的生活背景或歷史背景,提高了學生的積極性和主動性,可以更好地完成實踐教學要求。

ACM的在線測評系統使得考核方式更加嚴謹合理。ACM平臺使用的在線測評系統,使用黑盒測試的方式對學生提交的程序進行測試。在線測評系統使用預先設置的多組數據進行測試,這就避免了前述的學生自行測試的弊端,可以保證學生的程序不會遺漏題目中需要特殊處理的情況。同時大幅度地降低了教師檢查的工作量,使教師可以將主要精力放在學生程序編寫和程序調試的指導上。傳統實驗課程往往教師都有參考答案,教師根據參考答案和自己對問題的理解評判學生程序,給出分數。程序設計方法千差萬別,教師不可能掌握所有的風格和方法,所以有可能造成誤判。使用黑盒測試可以避免誤判的發生,保證了評判的客觀性和公正性,鼓勵學生寫出自己風格的程序,開發出不同的方法解決同一個問題,有利于創造性思維的培養。

ACM平臺延長了實驗時間。傳統的課程安排,實驗課時的設置普遍偏少,學生缺少上機編寫代碼的機會。實驗課程之外,學生編寫程序又不能得到很好的指導和測試。使用ACM平臺,學生可以在任何時間在線做題、提交程序,測評系統驗證程序的正確性,并返回給用戶程序的運行時間和內存占用情況。學生可查看其他人提交的該題目代碼的運行情況,比較自己代碼的運行情況和其他人提交程序的不同。系統還提供了做題數量的排名情況。以上兩點有助于激發學生的編碼熱情。在線測評系統除了具有上述功能外,還具有在線討論功能,學生可以針對某一個題目進行討論,也可以針對某一個算法進行討論。學生通過相互間的討論,可以學習算法、編程技巧,同時也鍛煉了學生的表達和溝通能力,使學生的學習時間延長到了課外。

ACM平臺可以提高學生的協作能力,提高團隊精神。實驗課程要求的是學生個人編寫代碼的能力,不能提高學生的溝通和協作能力。在課程設計環節,可以由教師根據學生的水平及特長分組,根據隊伍情況安排題目,要求明確分工,分工到每個人。每個學生按要求完成自己的內容,并且要集體討論,交流每個人所學的知識,共同完成小組任務。課程設計要求每個組員提交自己的報告,小組提交總體的報告。這種相互合作、共同負責、共同承擔的團隊精神和相互協作能力對學生從事研究和開發工作都會大有益處。

4 結束語

本文作者通過將ACM平臺和程序設計課程的理論教學與實踐教學相結合實施教學改革,顯著地提高了學生的程序設計能力和解題能力,提升了學生的學習熱情,取得了一定的效果。一部分學習優秀的同學代表沈陽師范大學參加了多次ACM比賽,取得了非常好的成績。但是,以上的探索還有待進一步的深入,程序設計類課程需要進一步同實踐相結合,才能為國家和社會培養出高水平和高素質的計算機人才。

參考文獻

[1] 張潤杰,劉維民,郭錦平.基于“案例”的探究式實驗教學[J].實驗技術與管理,2006,23(6):96-98.

[2] 郭嵩山,王磊,張子臻.ACM/ICPC 與創新型IT 人才的培養[J].實驗室研究與探索,2007,26(12):181-186.

[3] 吳文虎,王建德.程序設計中常用的計算思維方式[M].北京: 中國鐵道出版.2009.

[4] 王學穎,李航,張燕麗.C++程序設計案例教程[M].北京:北京科學出版社.2010.

Reform of Programming Course Teaching Based on ACM Platform

Mu Baoliang,Li Jin,Han Xuefeng

(College of Software Shenyang Normal University,Shenyang Liaoning 110034)

Abstract:After analyzing problem and its reason which exist in teaching of programming courses, we discuss the characteristics of ACM platform, then propose several theoretical and experimental teaching methods based on ACM platform, which makes some effects in practice.

Key Words:ACM;Teaching reform;Programming course

主站蜘蛛池模板: 毛片大全免费观看| 国产第一页免费浮力影院| 成年看免费观看视频拍拍| 少妇被粗大的猛烈进出免费视频| 久久久久人妻一区精品色奶水| 亚洲精品第一页不卡| 久久午夜影院| 91亚洲国产视频| 综合天天色| 潮喷在线无码白浆| 无码精品国产VA在线观看DVD| 免费啪啪网址| 2022国产91精品久久久久久| 国产乱子伦精品视频| 99在线视频免费观看| 91麻豆精品视频| 国产精品久久久免费视频| 四虎永久免费网站| 国产精品欧美激情| 日本一区二区三区精品国产| 欧美性猛交一区二区三区| 国产偷国产偷在线高清| 中文字幕无线码一区| 国产成人午夜福利免费无码r| 亚洲毛片一级带毛片基地 | 国产玖玖玖精品视频| 97国产成人无码精品久久久| 国产一级毛片网站| 亚洲日韩精品综合在线一区二区| 91亚洲免费| 亚洲狠狠婷婷综合久久久久| 成人自拍视频在线观看| 欧美午夜在线观看| 女人av社区男人的天堂| 国产xx在线观看| 欧美成人影院亚洲综合图| 亚洲三级色| 凹凸精品免费精品视频| 午夜日本永久乱码免费播放片| 制服丝袜 91视频| 久草国产在线观看| 成年人国产网站| 亚洲第一极品精品无码| 国产成人精品无码一区二| 国产91精品调教在线播放| 亚洲视频在线网| 国产女人综合久久精品视| 超碰aⅴ人人做人人爽欧美 | a毛片在线播放| 91色老久久精品偷偷蜜臀| 中文字幕久久波多野结衣| 国产一区二区影院| 波多野结衣在线se| 亚洲午夜福利在线| 自拍偷拍一区| 99偷拍视频精品一区二区| 亚洲Aⅴ无码专区在线观看q| 欧美特黄一级大黄录像| 国产一区二区三区在线观看视频| 91外围女在线观看| 成人福利在线视频| 91av成人日本不卡三区| 国产欧美日本在线观看| 暴力调教一区二区三区| 欧美自拍另类欧美综合图区| 中文字幕在线欧美| 亚洲乱伦视频| 亚洲欧美在线综合图区| 亚洲三级成人| 久久99国产视频| 日韩二区三区| 国产精品午夜电影| 欧美日韩福利| 国产一在线| 伊人久久影视| 欧美午夜久久| 亚洲精品国产乱码不卡| 激情综合网址| 久久亚洲高清国产| 国产微拍一区二区三区四区| 免费看美女毛片| 嫩草在线视频|