前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的計算機程序設計基礎主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:高職;程序設計;翻轉課堂
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2015)23-0059-02
隨著信息技術的發展和教育改革的需要,翻轉課堂在全球教育界獲得了廣泛的關注。翻轉課堂把學習的主動權還給學生,被認為是一種有效的教學方法,能培養學生的自學能力、交流溝通能力、團隊合作能力,增強學生的自信心。對師生的走訪和調查表明,計算機程序設計課程普遍存在學生“難學”、教師“難教”的情況,在程序設計課程中使用翻轉課堂教學模式,為解決現有的困難提供了可能性。
1 高職程序設計課程教學現狀
程序設計課是高校理工類專業普遍開設的一門基礎課,它注重操作性,對培養學生的信息技術和計算思維能力具有重要作用,也是國家計算機等級考試(二級)的必考科目。目前,高職院校程序設計課程教學主要采用教師講授和學生上機操作相結合的方式。
1)學生對程序設計課程失去興趣。大部分學生都能認識到信息社會中程序設計課程對后續學習、工作的重要性,剛開始學習積極性比較高,但學習過程中普遍認為上課節奏太快,很難理解計算機的思維方式,不會寫程序,更不會調試程序,逐漸失去學習的熱情和興趣。
2)教師覺得課時不夠用。教師都知道這門課程的重要性,也一直在嘗試通過教學改革提高學生的積極性,但效果不太理想。程序設計課程一般開設于大一下學期,教學課時為60。程序設計需要用計算機的思維方式來解決問題,對初學者而言,本來就面臨著思維方式轉變的困難。況且每種程序設計語言都有特定語法,自然語言向程序設計語言轉變需要一個過程。程序設計是一門以實踐為主的課程,編譯工具的使用和熟悉也需要一段時間,況且還有那么多的教學內容,所以教師覺得課堂時間遠遠不夠用。
3)學生缺乏學習主動性和毅力。中小學教育中學生已習慣被動接受教師傳授的內容,不愿意去思考。而程序設計課程需要學生有自己的觀點和想法,還要將自己的想法轉變成程序設計語言。通過分析和設計,編寫代碼并調試。調試程序也是一個枯燥的過程,很多學生碰到困難就放棄了。
翻轉課堂將大量的學習內容安排在課前讓學生自學,課堂時間則用于答疑、討論、應用和評估,有效地解決了課堂時間不夠用的問題,教師作為一個觀察者和引導者,對學生的關注度更高,還可以適時進行個別指導;翻轉課堂上,學生從被動接受者變成主動學習者,以小組為單位完成項目,成員間可以相互啟發和鼓勵,程序調試不再單調和枯燥。翻轉課堂為計算機程序設計課程教學改革提供了可能性。
2 翻轉課堂概述
翻轉課堂(Flipped Classroom)起源于美國。一般認為,翻轉課堂是柯羅拉多州林地公園高中的兩位化學老師喬納森?伯爾曼和亞倫?薩姆斯為解決學生因病缺課,無法跟上課程進度而提出的,取得了較好的效果,進而翻轉課堂在美國中小學得到了快速推廣。
傳統教學模式是教師在課堂上講授知識,學生課后通過復習鞏固學習內容,有時候教師也會在課前布置預習任務,基本限于讓學生提前看教材;在翻轉課堂上,學生課前通過教師或第三方機構(在國內,課前學習資源主要是教師提供提供)的各類教學資源進行自學,這些教學資源包括學習內容相關的音視頻、文字材料、學習測驗等。課堂上,學生可以就學習資源中的疑問進行提問和交流,通過參與討論、項目應用等教學活動加深對學習內容的理解,提高實踐應用能力。翻轉課堂上,學生由被動接受知識轉變成積極主動參與學習活動,面對面的課堂時間被更好地用于師-生、生-生間的交互、協作和深層次思考[1]。
翻轉課堂不僅轉變了教學流程,將原先“課上”與“課下”的活動進行互換;翻轉課堂還轉變了課堂組織形式,將傳統教師單向講授形式轉變成自學為主,師生、生生交互多種形式;翻轉課堂也改變了教學主體,由傳統的教師為主體轉變為學生為主體;翻轉課堂還轉變了主要的授課地點,傳統教育中主要授課地點為教室,翻轉課堂主要授課地點是網絡;翻轉課堂也轉變了知識傳播的載體,傳統課堂上,知識傳播載體是老師和教材,翻轉課堂是以種電子資源為知識傳播載體。
3 翻轉課堂的實施
翻轉課堂通常被認為由兩部分組成:課前基于電腦和網絡的學生自學,課上交互式的小組學習活動[2]。
3.1 課前準備與學習
3.1.1 學習素材準備
在翻轉課堂中,學生基礎理論知識的學習主要通過課前教師提供的學習材料來完成。教師是教學資源的主要創作者,學期開始前要根據學生特點和課程目標選擇合適的項目,再對項目進行分解,確定具體的單元目標和課時目標,再根據課時目標選擇和制作教學資源。
課程教學資源一般包括課件、軟件項目庫、案例庫、各種媒體素材(視頻類素材、音頻類素材、動畫類素材)以及文獻資料等[3]。教師可以從網絡上搜索可用資源,但我國翻轉課堂尚處于起步和摸索階段,可用資源不多,從國外網站搜索的資料因為語言、教學目標等不同,通常也不能直接使用,所以教師需要自己設計、錄制、編輯和教學視頻。這對教師而言,不僅是增加了工作量,也是一個挑戰,視頻內容的選擇、視覺效果、互動性、時間長短等對學生的學習效果有著重要的影響。
視頻內容要與教學目標一致,而且要能夠簡明、清晰、到位地解釋新知識點[4]。每個視頻長度最好不超過15分鐘,知識點較多或者操作復雜的部分,可以分成多個短視頻,這樣可以滿足不同學生的個性化學習需求。學習能力較強、學習時間充裕的學生,可以根據個人興趣一次學習幾個小單元,對于學習基礎稍差、時間緊的學生,可以根據自身情況,每次學習一個小單元,而且可以反復觀看和練習[5]。在教學視頻后面緊跟一個小測驗或幾個小問題,便于學生及時檢驗學習效果,對自己的學習情況作出判斷。如果發現問題回答得不好,可以再看一遍,仔細思考后重新回答,直到自己滿意為止[6]。
3.1.2 學生自學
教師將教學資源到網上后,學生就可以開始學習。學生通過網絡資源進行自主學習,在時間上和空間上都有充分的自由度。學生可以根據實際情況安排自己的學習時間,什么時候有空或者狀態最好就什么時候學習,生病了也不要擔心學習進度會落下;學生也可以根據自身情況和接受能力選擇看一遍或多遍視頻,沒有學習的壓力,不必擔心老師同學異樣的目光,真正實現了個性化學習。學生在自學過程中碰到問題的時候,一方面可以借助互聯網查找更多資源來補充,還可以將問題發到QQ群或者網絡討論區,及時跟老師同學互動、討論。
每個教學單元學完后,一般都有簡單的測驗或任務。實踐中,我們除了在視頻后面增加小測驗,還要求學生在課前6小時提交1-3個跟材料相關的問題,學生可以問材料相關的任何問題。通過學生提交的問題,教師也可以看出學生對材料的掌握程度,是否停留在表面還是有自己的思考。也有時間根據大家的討論內容和尚存的問題,及時調整課堂內容和教學策略。
3.2 課堂內化
因為學生已經在課前完成了基礎知識和技能的學習,課堂時間主要用于討論、分析和內化。教師根據教學目標和學生自學后的反饋信息,設計課堂上的各種活動,合理安排課堂時間,把握好課堂節奏,更重要的是課前學習材料和課堂學生活動要能夠進行無縫對接[7]。
3.2.1 答疑與提問
課堂的前10-15分鐘一般用來解釋、檢查學習材料中的內容。學生在課前自學時提交的問題,以同學間相互解答為主,教師進行適當提示并引導學生進行深層次思考。
由于學生是帶著已知的知識和一定的問題來上課,教師可針對不同水平的學生給予更多一對一的針對性的指導和具體的幫助,從而成為學生學習的主要指導者和推動者。
3.2. 2 分組探究
對于一些重難點內容,可以通過設計有針對性、能發揮學生能動性和創造性的探究任務,為學生提供整合和應用知識技能的機會。
根據任務需要,模擬軟件開發企業組建開發團隊,4人組成一個團隊,每個團隊設項目經理、分析師、程序員和測試員各1名,團隊中的每個成員都有自己的角色和任務。每個項目都要經過需求分析、流程圖設計、編碼和測試等環節,每個環節以一名成員為主要負責人,其他成員必須參與,項目經理對項目全面負責。在項目進行過程中,教師作為指導者,進行巡視和個別指導,遇到共性的問題,則統一講解。
學生通過小組合作的方式分析、討論問題,在對程序的不斷修改和調試過程中領悟新知識,最終完成項目。每個人都為項目的完成貢獻著自己的智慧和力量,團隊意識和合作能力提到加強;在不斷的分析、編碼和改錯過程中,分析問題、解決問題和探究能力都得到了提升;“探索―訓練―思考―創新”的過程中知識得到了內化[8]。經過多次嘗試終于解決了困難,學生能感受到成功的喜悅,增加學習的自信心和積極性。
3.2.3 成果展示
每個項目完成后,都需要以團隊為單位提交項目源代碼。根據項目大小,每隊派一個或多個成員運行項目,并講解主要算法思想,就項目完成過程中碰到的問題以及解決過程跟全班同學交流。項目展示環節能促使學生積極認真地投入到程序開發過程,學生也能從其他團隊介紹的問題解決方式中受到啟發,或者能為解決問題提供新思路,或者能避免犯類似的錯誤,教師也可以從中了解各組的學習情況。
3.2.4 交流評價
翻轉課堂中評價方式有多種,以過程性評價為主。在課前自學和課堂內化的各個環節,教師都可以根據學生的表現進行評價;在所有組展示完項目后,也可以讓小組互評;還可以通過反饋性寫作,如“這節課你學到了什么”、“你還有什么不清楚的地方”、“你最想知道的問題是什么”等問題來了解學生的學習效果。
4 小結
翻轉課堂將學習的主動權還給學生,能調動學生的學習積極性;學生在課前自學知識和技能,節約了大量課堂時間。翻 轉課堂為計算機程序設計課程的教學改革提供了新途徑,但翻轉課堂在我國剛剛起步,對教學模型、教學策略、評價體系等的研究都處于摸索階段。一方面,我們可以借鑒國外研究成果和實踐經驗,另一方面也要結合學生和學科特點,真正做到以學生為中心,構建具有中國特色的翻轉課堂新模式。
參考文獻:
[1]Pang Nai Kiat, Yap Tat Kwong.The Flipped Classroom Experience[C]// Software Engineering Education and Training (CSEE&T), 2014 IEEE 27th Conference. Klagenfurt, Austria:39-43.
[2]Bishop J L,Verleger M A.The flipped classroom:A survey of the research[EB/OL]. http://dts.drake.edu/wp-content/uploads/sites/2/2014/03/The-Flipped-Classroom-A-Survey-of-the-Research.pdf,Paper presented at the meeting of American Society of Engineering Education, Atlanta, GA,2013-6.
[3]曾明星,周清平,蔡國民,等.軟件開發類課程翻轉課堂教學模式研究[J].實驗室研究與探索,2014(2):203-209.
[4]楊偉杰.翻轉課堂:轉變與挑戰[J].教學與管理,2013(10):93-95.
[5]王健,王京菊.翻轉課堂模式在服裝實踐類課程教學中的運用[J].教育與職業,2015(3):98-100.
[6]宋金[,郭新峰,石明吉,等. 翻轉課堂在大學物理實驗教學中的應用[J]. 實驗技術與管理,2015,32(3):33-37.
關鍵詞:信息的編程加工;講解演示法
中圖分類號:G434 文獻標識碼:B 文章編號:1671-7503(2013)01/03-0119-04
【設計思想】
以程序為基礎,以算法為核心,不以代碼編寫訓練為要義,而以程序設計方法和算法思想的體驗為旨歸。
充分利用與學生生活、學習經驗聯系緊密的例子,碰撞出思維的火花,讓學生了解信息編程加工的方法,理解算法的作用,嘗試簡單代碼的書寫?熏體驗編程的魅力,激發學生的學習興趣,同時,也鍛煉學生的思維。
【教材分析】
《信息的編程加工》是教育科學出版社出版的《信息技術基礎(必修)》第三章第二節的內容。本節課主要是通過分析、編寫簡單程序?熏讓學生初步了解信息編程加工的一般過程?熏感受利用計算機編制程序解決問題的魅力,解開計算機程序的神秘面紗。教材沒有詳細介紹編程加工的關鍵步驟:算法,但是這部分內容是編程的核心,所以,引入了算法的概念及算法的簡單設計。
【學生分析】
高一學生思維活躍,邏輯思維能力也日趨嚴密。所教學生大部分來自城市,基礎整體相對較好。但是,程序設計很少有學生接觸過,再加上內容本身相對枯燥,因此,創設情景,激發學生興趣,消除他們對程序設計的陌生感和畏難情緒,調動他們學習和探究的主動性、積極性,顯得尤為重要。學生一節課的時間對編程掌握不了多少,但讓他們在體驗中理解編程加工的主要過程,了解其內在機制,并通過簡單的修改實現小小的目標,有成功的體驗和收獲是完全能夠達到的。
【教學目標】
知識與技能:對比人類是如何分析問題、解決問題,了解計算機求解問題的過程;掌握算法的基本含義及設計思想,從而了解計算機信息編程加工的內在機制;理解并能夠用VB語言實現算法,嘗試簡單代碼的書寫。
過程與方法:通過教師的實例講解和學生的親身實踐,讓學生理解計算機解決問題的一般過程與方法;感悟信息編程加工的基本思想和基本流程。
情感、態度與價值觀:消除程序設計的神秘感,產生對程序設計的求知欲,形成積極主動地學習算法與程序設計的態度;逐步養成嚴謹、科學的程序設計思想;通過小組協作,培養學生的探索精神與合作精神。
【教學重、難點】
重點:體驗了解計算機解決問題的主要過程,了解其內在機制;簡單算法的設計。
難點:算法的理解及其設計;認識、書寫簡單代碼。
【教學方法】
講解演示法、討論法、任務驅動法。
【教學環境】
硬件:多媒體網絡教室;軟件:極域電子教室、Visual Basic 6.0。
【教學過程】
一、創設情境問題,引入課題
問題:祖沖之如何計算圓周率?
分析:人的特點是有分析、思考能力,但計算能力有限;計算機的特點就是算得快、準確,但需要依靠人為它設計程序。計算機的靈魂是程序,沒有程序,計算機是無法運行的。
二、講授新課:以求解“水仙花數”為例講解信息編程加工的一般過程
問題:“水仙花數”是指一個三位數,它的各位數字的立方和等于其本身,比如:153=13+53+33。同學們能找出所有的水仙花數嗎?
學生兩人一組,各盡所能,找出100-999之間的水仙花數,看哪一組找的最多?
(1)分析信息。確定要解決的問題,即要求計算機“做什么”。
讓計算機找出100~999之間各位數字的立方和就是這個數本身的數,并顯示出來(如圖1)。
(2)設計算法。對某一特定的問題設計的一組(有限個)求解步驟和方法(如圖2)。
學生體驗小游戲,青蛙過河,找出過河的方法。
分析完成的步驟:公1母1向前一步,母2向前一步?熏公1公2公3向前一步,母的均向前一步,公的均向前一步,接下來很簡單。
(3)編寫代碼。把人們設計的算法轉換成計算機能夠識別的代碼。
程序設計語言有很多,已經從最初的機器語言發展到現在的比較接近自然語言的高級語言,例如:C、Pascal、VB、C#、Java等都是高級語言。
我們使用VB來實現。VB基于事件驅動編程方法。
學生實踐:根據流程圖(如圖3)完善程序代碼(算法一的代碼實現)。
(4)調試運行。剛編寫的程序不一定完善,必須在計算機上實際運行,排除程序中的錯誤,測試其能否達到預期的結果。
小結:計算機運行的程序就是人思維的延伸。
信息編程加工的一般過程:分析問題設計算法編寫代碼調試運行。其中,設計算法是最核心的部分。
三、輕松一下:加深算法的印象?熏編程算法是核心
(3)小結:只要能設計出算法,程序設計就不神秘了。
四、總結提升
關鍵詞 低級語言;高級語言;輸入/輸出設備
中圖分類號:TP311 文獻標識碼:A 文章編號:1671—7597(2013)041-133-01
1 計算機的編程語言的發展
1.1 計算機編程語言的概念
計算機編程語言的誕生是為方便人與計算機的溝通交流,為了讓計算機更好的服務于人類,計算機所能識別的語言就只有“0”和“1”,該語言人類記憶非常麻煩,因為表達一句簡單的話,機器語言卻非常復雜、非常長,所以人們就開始研究一種簡單的語言,然后編譯器誕生了,人們至于要記住簡單的語法,編寫想要計算機完成的程序代碼,至于翻譯成機器語言就交給編譯器來完成。就這樣隨著計算機業發展,計算機編程語言從機器語言到匯編語言再到高級語言,也有很多語言從鼎盛到消亡,這也是發展趨勢。
1.2 計算機輸入/輸出設備的發展
首先我們要知道輸入輸出設備的分類,字符輸入設備:鍵盤;光學閱讀設備:光學標記閱讀機,光學字符閱讀機;圖形輸入設備:鼠標器、操縱桿、光筆;圖像輸入設備:攝像機、掃描儀、傳真機;模擬輸入設備:語言模數轉換識別系統。輸出設備:顯示器、打印機、繪圖儀、影像輸出系統、語音輸出系統、磁記錄設備等,這些輸入輸出設備存在很多優勢,第一物理鍵盤比虛擬鍵盤更方便輸入,更有存在感,另外鼠標的存在,對于精確地操作也比觸摸板更準確,另外還有光筆,操縱桿,攝像儀等等這些設備都給辦公帶來了極大的方便,雖然蘋果公司開創了一個觸摸的時代,平板電腦開始流行,人們都開始喜歡用手指觸摸,但那只是娛樂方面更方便,但是真正用到專業性的工作,是離不開物理的輸入輸出設備的,像制圖,像會議速記等等,這些工作不可能脫離物理鍵盤,而使用虛擬鍵盤的,因為這樣影響效率和工作的質量,所以即使計算機技術發展如此迅速,虛擬的輸入輸出設備,也無法替代物理的輸入輸出設備,就計算機誕生而言,當時的計算機是巨型計算機,和現今的個人PC不一樣,當時的計算機有一個房間那么大,但是當時人們也意識到了輸入輸出設備的重要性,也就發明了相應的輸入輸出設備,當時要想輸入一段指令要讓工作人員用紙帶,通過紙在紙帶上打孔,來代表的“0”和“1”。因為當時還沒有計算機的編譯器,可以說機器只認識機器語言,還不懂java、donet、c、c#、c++等等這類語言,所以那個時候的編程人員是工作量非常大的,因為往往讓計算機實現一個算法,要需要好多卷紙帶記錄人類所要表達邏輯命令。隨著時代的發展,計算機也逐漸開始小型化,從房間式巨型機到現在的便攜筆記本電腦,在計算機發展的同時,輸入輸出設備也隨著發展,從紙帶到鍵盤,從打印機到掃描儀,手寫板等等,另外計算機再為人類提供工作上的方便的同時,也逐漸要滿足人類的娛樂要求,這就要求輸入輸出設備要有顯示器,要有音響,綜合說起來,計算機的發展,帶動了輸入輸出設備的發展。計算機的發展,人們發現工作中如果有計算機的參與,會使工作效率突飛猛進的提高所以各種的管理系統也如雨后春筍般應運而生。這些系統就得通過程序編寫者通過輸入輸出設備進行編寫,然后通過IDE環境的編譯器翻譯成機器語言轉達給計算機來完成人們想要計算機完成的工作。
2 根據編程語言不同種類闡述輸入輸出設備
2.1 編程語言的分類對輸入輸出設備的要求
計算機語言可以分成機器語言和高級語言兩種,而機器語言顧名思義就是計算機可以直接理解的一種語言,其語言形式是“0”和“1”這種二進制碼,這種語言不需要編譯的幫助,計算機可以直接讀懂,所以這種語言執行起來會非常迅速,例如匯編語言。另外還有一種語言被稱為高級語言,高級語言還可以簡單的分為兩種,一種是面向過程的語言,一種是面向對象的語言,面向過程語言就是以過程或函數為基礎的,這種語言對底層硬件,內存等操作比較方便,但是寫代碼和調試維護等會很麻煩。例如:c語言、C++等等,面向對象語言是指一切操作都以對象為基礎,它是由面向過程語言發展而來的,但正是它的這個特性使得面向對象語言對底層的操作不是很方便。例如:java語言、C#語言等等,這類語言的誕生,使程序編寫人員從枯燥乏味,冗長的機器語言得到解放,是編程更容易,不再那么神秘和抽象,高級語言的誕生促進了應用軟件的發展,因為更容易編程,很多軟件也如雨后春筍般的誕生了,這樣方便了人們的工作和娛樂生活。
2.2 不同編程語言輸入/輸出設備的使用
每個輸入、輸出設備的連接口控制器中都有用于存儲設備運行狀態、控制設備運行模式以及具體存儲讀或寫數據的存儲器,每個存儲器都有一個獨立的地址編碼。通過定義文件數據類型的結構體,創建輸入、輸出設備在環境中的編程實體,并用邏輯設備名在編程實體與具體輸入、輸出設備之間建立聯系。程序其實是通過計算機調取計算機上存儲的數據,進行程序所命令好的操作方式。計算機按照程序開發者所規定好的邏輯來進行數據的操作。算機底層輸入輸出存貯方式在改變,隨著技術的進步,而物理硬件的變化也隨之發展。
3 結論
綜上所述,現在的編程語言已經越來越接近用戶,反之離機器越來越遠,隨著科技的進步,計算機不斷發展,編程方式也會逐漸改變,隨之而來的輸入輸出的設備也將越來越人性化,簡單化,人們與計算機聯系也越來越緊密,相信未來輸入輸出設備的進步,計算機的發展,編程不再是程序工作人員的技能,而是只要會使用計算機的人,就會編程、就實現會與計算機“交流”!
參考文獻
[1]陳火旺.程序設計語言編譯原理[M].北京:國防工業出版社,2003.
[2]Karen L.Design of Compilers-Techniques of Programming Language Translation[M].CRC Presss,1992.
[3]譚浩強.C語言程序設計[M].北京:清華大學出版社,1999.
【關鍵詞】 計算機程序 課程群 方法
計算機技術的不斷發展下,在教學領域的教學也有著更高的要求,注重教學模式的創新應用是促進計算機專業教學質量提高的基礎。在計算機程序設計課程教學中,對課程群的建設工作得以優化對實際的教學發展就比較有利。通過從理論上加強計算機程序設計的研究,就能有助于計算機程序設計課程群建設的良好發展。
一、計算機程序設計課程群建設研究內容及建設遵循的原則
1.1計算機程序設計課程群建設研究內容分析
計算機程序設計課程群建設研究的內容方面比較多樣化,其中對各門課程科學設置和其內涵外延的研究內容是比較重要的。還有就是對教和學的視角對C語言結構化程序設計到VC++面向對象程序設計思想方法的轉化銜接[1]。以及在轉換銜接中的難度措施方法的研究。再有就是從教和學的角度對計算機程序設計課程群當中各門課程教學的方法的研究,以及對實踐和理論相結合的方法研究,在考試的內容方法層面的研究,對教師隊伍建設層面的內容研究,以及在軟件產業和人才市場需求間的關系方面的研究。
1.2計算機程序設計課程群建設遵循的原則
對計算機程序設計課程群建設過程中,要遵循相應的原則,只有如此才能保障計算機程序設計課程群的建設優化。課程群的建設作為專業建設當中比較重要的部分,就要能在知識點方面得以明確化。具體建設中對應用型人才的培養目標要能有針對性,將程序設計作為建設的核心,以及對實踐方法方面得以重視,對客觀學習的這一規律要能尊重,以及對學生的興趣培養也要能得以充分重視[2]。對教學內容的設置注重驗證以及模仿內容的核心地位,在實踐后對程序設計的方法得以掌握。在實際教學過程中的程序設計語言種類比較多,并且也有著不同的層次,所以這就需要在實際的建設過程中,在內容上要連貫性的呈現,將課程群間的內容能夠和諧的融合以及深化等,在技術層面要能進行相互的參照。計算機程序課程群的教學主要是讓學生能熟練編程語言,以及對程序的開發方法和工具能熟練的掌握,所以在實際的課程群建設過程中,就要能夠注重建設的科學合理性。
二、計算機程序設計課程群建設研究的主要方法探究
加強計算機程序設計課程群建設研究,在方法上要能科學重視,在四階段的課程體系方面能科學的構建。將C語言程序設計和課程設計作為基礎,并注重數據結構核心的程序設計方法的培養,然后把C++程序設計在程序實際理念當中加以貫穿,對學生數據庫程序設計能力的培養得以重視[3]。還要在這些基礎上對Widows程序設計、 Java程序設計、net程序設計等作為選修課程,通過這一教學課程體系的完善構建,對學生的專業知識技能的提高就比較有利。對計算機程序設計課程群建設研究的目標方面要明確化,以及對課程間的關系能得以理清。在這一專業的教學中,主要就是讓學生對計算機的軟硬件理論以及技能和應用方法的熟練掌握,讓學生在工程實踐能力上能不斷加強。老師要能對課程間的關系有充分的認識,并要能夠進行合理科學的規劃,在這些方面得到了加強,才能有助于課程群的良好建設。計算機程序設計課程群建設研究中,要充分注重教師隊伍的科學建設。由于教師是課程群的主要實施者,所以其自身的專業水平以及素養,對課程群的實施質量效果就有著直接的影響。在具體的措施實施上,教師隊伍就要在教學研討以及集體備課等環節得以重視,對課程群中的各門課程內在聯系能夠得以熟練的掌握,以及注重理論知識的學習,和教學實踐進行緊密的結合[4]。然后將教學實踐和教研的專題進行緊密結合,在學科課程建設工作上加以充分重視。最后,就要能對計算機程序設計課程群的平臺進行構建。在課程資源以及實驗平臺、評價反饋等模塊方面加以完善化。這些都比較有助于實際的課程群建設的作用充分發揮。如在實驗平臺區的模塊應用上,能對每門課和同一門課程實施不同實驗,這就能夠提供相應的軟件支持,在課堂的講解以及具體的實驗指導等方面的實施,對學生的實踐能力培養就比較有利。
結語:通過對計算機程序設計課程群建設研究的加強,對實際的發展就比較有利。在改革教學發展的環境下,在對計算機程序設計課程教學的模式上加以優化,對解決實際專業課程間的不足,以及加強課程間的聯系性就比較有利。通過此次的理論研究,希望能促進實際的課程群良好建立。
參 考 文 獻
[1]張曉.計算機程序設計的應用開發[J]. 信息與電腦(理論版). 2015(09)
[2]柳泉.微課引入計算機程序設計課程教學的探索[J]. 物聯網技術. 2016(08)
關鍵詞:計算機;程序設計;快速排序
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)27-0202-02
計算機程序設計是計算機軟件開發的核心部分,其質量的高低影響著軟件投產運用。而計算機程序設計時,有關排序問題的處理是計算機軟件開發的重要部分,其處理方法又很繁瑣。所以排序問題能否優化處理,直接影響軟件的開發質量。因此,在做計算機程序設計時,必須加強軟件排序問題綜合考慮,而且要做到計算機程序設計時涉及的排序情況心中有數,并選用最優化的排序方法,最終完美解決計算機程序設計時的排序問題。為提高軟件開發質量,并為全面提升軟件的功能打下堅實的基礎。從而加快計算機程序開發行業的發展。
1 計算機程序設計中排序問題的概述
計算機程序設計的目的是為了給有關的計算機軟件正常執行提供保障。然而,排序問題已對計算機程序設計的質量產生了較大的影響,這個問題也是因繞著軟件開發人員的大事。因此,加強計算機程序設計時有關排序問題的分析及妥善處理是很重要的事情。針對計算機程序設計時有關排序問題研究發現,其有如下特征。
(1)復雜性。計算機軟件開發是為了實現某些功能,這就決定了計算機程序設計需要涉及很多方面,因此其排序的操作過程時的有關數據也很多很雜,這就直接導致了計算機程序設計時排序問題復雜性。雖然我們可以選用最佳的程序設計方案,但是因為軟件本身的強大功能的要求決定了計算機程序設計時排序問題依然是復雜的。
(2)不確定性。在具體的計算機程序設計過程,程序運行時有時需要對有關數據或記錄進行修改等各種的情況的發生,這些操作有時會引起程序的排序問題發生改變,這樣的情況時有發生,因而也就加大計算機程序設計時排序問題的不確定性。
(3)多約束性。排序問題對計算機程序設計的功能影響是很明顯的。在實際的軟件開發時,各種數據資源是相互約束及制約的,數據之間的這些約束及制約關系對程序設計時排序也會產生相應的影響。因此,多約束性也是計算機程序設計時排序問題的一個特點。
(4)多目標性。程序設計時有些數據資源是隨機存放的,然而這樣的數據資源又很重要,可以同時被不同的目標選用。所以在程序設計時,處理排序問題還要參照有關數據的選用目標及其有關標準,優化數據排序問題,以免發生數據資源引用混亂。所以,多目標性也是計算機程序設計時排序問題的一個特點。
2 計算機程序設計中的排序方法分析
根據計算機程序設計的具體功能要求,研究計算機程序設計時的各種不同排序方法的優缺點,選出適合程序設計要求的排序方法,優化排序問題,從而提高計算機程序設計的質量及增強軟件功能,最大限度的發揮程序功能的實際作用,促進計算機軟件開發行業的快速發展,提高生產力。
計算機程序設計時的排序方法主要有以下幾種。
2.1 冒泡排序
冒泡排序是計算機程序設計時最基本的排序方法,其核心思想對緊鄰的兩個數據進行兩兩比較,根據比較結果調整兩個數據的位置。如在比較的時,將兩兩比較時較小的數據調整到前面,較大數調整到后面,然后再將較大的數與后面緊臨的數進行比較,直到所有數據都比較完成,并將數據按從小到大的順序排放。冒泡排序最主要的是一次只對兩個數據比較,并根據結果不斷調整數據位置,直至數據比對完。一般情況下,冒泡排序只用一個輔助單元,并利用該輔助單元的基本功能,完成數據的重新排放。冒泡排序的空間復雜程度為 O(1),選用冒泡排序方法特別要注意的是需要排序的數據以及完成這些數據的排序所需要的時間。根據程序設計功能的實際要求以及冒泡排序的特點,確定冒泡排序的平均時間復雜度為 O(n^2)。是部分數據的冒泡排序圖。
2.2 選擇法排序
選擇法排序也是解決計算機程序設計時有關排序問題的常用方法。選擇法排序能夠較大的提升計算機程序設計的質量。選擇法排序的基本思想是,先對一組數據進行分析比較,每次選出其中最小或最大的數據放在數列的開始位置,直至所有的數據排列完成。選擇排序法是一種不穩定的排序方法。如每次比較時選出最小的數據放在數列的開始位置,則需要對數列中所有數據進行比較與改變存放位置,為斷的進行這個比較和位置交換操作,以達到數據排序的需要。實現計算機程序設計質理的提高。這種選擇排序法的空間復雜度也是 O(1),而且其的時間效率一樣與數據的多少有關,其平均時間復雜度為 O(n^2)。
2.3 快速排序法
快速排序法是計算機程序設計時一種較常用的數據排序方法,選用這種排序方法也可以極大的提高計算機程序設計的質量,增強其功能,降低程序的誤差。快速排序法與冒泡排序法及選擇排序法不同,它核心思想是每次將原始數據分為兩部分,并且保證一部分的數據比另一部分的數據都小(或都大),也就是說每次都將小數(或大數)放在一起。因此選用這種排序方法需要設計兩個指針,分別指定小數及大數的初始值,然后根據快速排序法的思想,分別大數部分及小數部分進行排序,最后將兩部分數據合并。根據每次替換掃描的結果,比較兩個指針數據的大小,兩個指針數值相同,則完成數據排序工作。快速排序方法較好,且符合計算機程序設計的具體要求。在快速排序法中,如果將數據進行n 次劃分,所選擇的基值依然是未排序中的最大值(或最小值),那么將得到總的比較次數也達到一個最大值,而且這個最大值是 O(2^n)。結合快速排序法的具體操作,能夠算出其平均時間復雜度為 O(log2n)。
2.4 合并排序
合并排序即歸并排序,其基本思想是分法。即將待排序數據分為多個小序列,然后將每個序列分別排序,最后將排序好序列合并在一起,成為一個有序的排序數列。將每個未排序數據進行排序,選用雙子集合的方式進行排序,最終得到各個排序好的集合,并合并起來,很到較好的排序結果。在最差的情況下,其時間復雜度如下式(1)計算:合并排序與快速排序相似,但其穩定性高于快速排序。合并排序已是計算機程序設計中最常用的效果較好且較穩定的數據排序方式。
2.5 具有多目標性
程序設計人員在執行數據排序時,還要考慮同組數據資源信息或記錄被多個目標選用的情況。這就需要設計人員在程序設計開發時一定要嚴格要求自己,執行程序開發的有關標準,提高程序設計的適用性。
綜上所述,計算機程序排序問題是一個復雜問題,影響著計算機程序的質量與功能,所以計算機程序設計者要持續提升自己的專業水平,跟上計算機技術發展的趨勢,在計算機程序設計開發時根據軟件功能要求盡可能的選用最佳的排序方法。
3 計算機程序設計中排序方法的選擇
在進行的計算機程序設計開發時,通常要選用的計算機排序方法,要能滿足軟件功能的要求,并提高軟件功能的質量,這就要求計算機程序設計人員要用合理的方法選用計算機程序設計的排序方法,以滿足軟件開發的要求,并保證軟件正常使用。
3.1 排序方法的優化
在計算機程序設計的排序方法選擇時,通常要考慮數據的實際情況,選用合適的最優的排序方法,以保證程序的功能要求。如在程序設計時選用冒泡排序方法,則可選擇標志設置的方法,并將其寫到數據交換代碼程序中,這樣可以很大的提高冒泡排序法的質量,從而提高計算機程序設計的質量和功能。如果采用排序法來處理計算機程序的排序問題,那么可以通過去掉不必要的操作,并記錄每個數據的存放位置,然后根據指定的規則查找對比數據,實現數據比對,位置交換的操作,從而達到優化排序功能。對計算機程序設計時數據排序問題的優化操作,其核心是要注意樞紐的選用,保證樞紐的功能要求,這樣才能提高快速排序效果。
3.2 排序方法的比較與總結
計算機程序設計開發時有較多的數據排序處理方法,具體程序開發選用哪種,則要綜合考慮各種排序方法的所需平均時間及最壞情況時的時間以及存儲空間等幾個方面的差異,選出最適合程序需求的排序方法。通過上面的分析可以看出,平均時間為O(n^2),最壞情況下的時間為O(n^2),輔助存儲空間為 O(1),數據的變化情況對排序的最終處理結果的影響很大。所以,在計算機程序設計時有關排序問題選擇,需要綜合考慮各種因素對排序結果的影響,既要考慮排序時所需要的時間,要考慮排序時所需要的內存,平衡多方因素,合理選擇排序方法,以提高程序的性能。
在計算機程序設計時,要盡可能的選用最優的選擇排序方法,以增強計算機程序設計的性能。由于選用不同的排序方法對程序設計的性能影響是不一樣的。計算機程序設計時,各種排序方法所耗費的時間不盡相同,所需時間與 n 有很大關系。假如n 值不大,則一般選擇直接插入法、選擇排序法等,這樣可以記錄信息數據量相比較多的內容,選擇排序法是較適合程序的需求。假如n 值相比很大,則一般選用復雜度相比較小的排序方法,如快速排序法等。另外快速排序法所耗費的時間也相比不多,一般常用。還有,在選用排序方法時,程序人員有時還可參考數值文件的初始狀態。假如關鍵字初始狀態是正序排列,那么此時可選用冒泡排序方法。假如程序設計時,要求對兩種或多種的關鍵字進行對比時,則選用二叉樹的排序方法較合適等等,這樣根據程序設計的具體要求,綜合考慮選用哪種排序方法以提高程序的性能。
4 結束語
討論計算機程序設計時排序問題的特征,根據計算機程序設計時常用的排序方法,合理的選用排序方法,以滿足計算機程序設計時數據排序的需求,從而保證計算機程序設計軟件的功能性。在計算機程序設計時,要重視排序問題的處理。優化程序的排序方法,加強程序設計性能,是拓展計算機技術應用領域的重要手段。選用不同排序方法,實現計算機程序功能的不同點,以符合各種應用需求。因此,在計算機程序設計時,程序設計人員要選用適當的排序方法以滿足程序開發的需求,并盡可能的優化計算機程序功能。這樣可以減少提高程序設計的流程,調整程序設計的難度,而且還能提高軟件的性能。
參考文獻:
[1] 薛輝.冒泡排序的口訣教學法[J].陜西教育(高教版),2012(5):103-104.
關鍵詞:認知教學;組織;粒化;因果;計算機程序設計
作者簡介:彭珍(1981-),女,山東東明人,華北科技學院計算機學院,講師。(北京 101601)吳立鋒(1978-),男,河北隆堯人,首都師范大學信息工程學院,講師。(北京100048)
基金項目:本文系華北科技學院教育科學研究2011年指導類課題“計算機程序設計課程教學方法的研究”、華北科技學院試題庫項目“《C++與面向對象程序設計》試題庫建設”、首都師范大學青年教師教學研究項目“以培養能力為核心的《ACCESS 數據庫》課程教學方法的研究與探索”的研究成果。
中圖分類號:G642 文獻標識碼:A 文章編號:1007-0079(2012)11-0059-02
目前已有的問題教學、[1]任務驅動教學、[2]案例教學、[3]引導教學等都側重于教學形式與手段的變新與改革,[4]很少從教授內容的本質出發,研究教學內容的認知規律。為此,本文基于教學賴以存在和發展的認知機理,提出一種新的認知教學方法,條理地、邏輯地、系統地組織教學內容,符合學生學習思維的邏輯認知過程。
“程序設計”是計算機領域中一門重要的軟件技術,是其他軟件技術的基礎。“程序設計”課程是伴隨著計算機應用和程序設計語言的發展而發展起來的一門重要學科,已發展成為計算機專業中重要的專業必修課程,在高等教育中確立了不可缺少的公共基礎課的地位。作為使用和開發計算機的重要工具,程序設計課程具備統一的抽象與規律。
本文將這種認知教學應用于“計算機程序設計”課程的教學過程中,有組織、有規律地將該課程的教學內容貫穿始終,為學生掌握程序設計方法、提高學生程序設計能力與邏輯思維能力打下堅實基礎。
一、認知教學的概述
本文提出的認知教學是基于Zadeh的認知原理,Zadeh將人類的認知概括為:[5]組織(organization)、粒化(granulation)和因果(causation)。“組織”指從部分合并為整體,“粒化”指將整體分解為部分,“因果”指原因和結果的關聯。前兩者可看作互擬的過程,因果結構是一切知識的共性,它是對知識的一種本質抽象,因果有直接因果關系和間接因果關系,也有潛在因果關系和真實因果關系。所謂潛在因果關系是指一個具有普遍適應范圍的概括性的因果規律,表示給定一定的條件,原因X的滿足將引起結果Y的滿足;而真實的因果關系則是在一個特定情形下實際發生的事實,即X和Y事實上發生了,而且是因果相關的。在知識表示的層次上,教師所研究的是潛在因果關系,真實因果關系可以看作是潛在因果關系在某一特定情形下的一個實例。人類認知事物是從事物的不同側面、不同層次上認知事物的本質,將復雜的信息結構化(粒化),然后研究在不同結構層次上新事物具有的特性和不同側面或層次上新事物特征之間的關系,進而從本質上全面認知事物。
認知教學,就是按照人類認知事物的規律進行教授知識,即將教學知識組織、粒化、因果化,從而使得學生抓住知識的本質、全面地掌握知識。這里,組織可以理解為對知識宏觀的掌控,粒化是對知識微觀的演化,因果則是知識之間的關聯。因此,認知教學能夠條理地、邏輯地、系統地組織教學內容,是一種符合學生學習邏輯認知過程的科學方法。
二、計算機程序設計課程
幾乎所有高等學校的每個專業的學生都要學習諸如C、VB或VF語言這樣的程序設計課程(必修課程),而且隨著各具特色的高級程序設計語言(C++、Java等)及網頁程序設計語言(JSP、等)的不斷涌現,程序設計課程是高等教育中不可缺少的公共基礎課,而且已成為計算機專業的一門獨立必修專業課程。程序設計是大學生必備的一種計算機技能,更重要的是對其思維的特殊訓練和對其智慧的重大挑戰。
“計算機程序設計”課程主要是學習如何用某種計算機語言編寫程序來解決問題。程序=數據結構+算法,所以程序設計的本質就是設計出合理的數據結構與算法。
根據軟件工程理論,[6]程序設計大致可以分為結構化程序設計(Structured Programming,SP)、面向對象程序設計(Object-Oriented Programming,OOP)、面向數據結構的程序設計(Jackson System Development,JSP),國內主要用的是前兩種程序設計方法。
同一類型的計算機程序設計有若干不同程序設計語言,同一類型的語言采用的數據結構大致相同,比如結構化程序設計語言采用的數據結構絕大多數是基本數據類型,還有其他構造類型如結構體等;面向對象程序設計語言主要采用的數據結構則是類,其中還涉及繼承機制等。因此,程序設計課程首先介紹的都是數據結構,在程序中體現在數據的定義上。
算法的設計與具體問題有著密切的關系,但無外乎是對數據結構的操作,比如輸入、計算與輸出。其中計算最為復雜,可能是函數,或標準的表達式語句,或帶有順序、選擇、循環結構的混合。因此,程序設計課程中的重點和難點都在算法部分。
三、認知教學在計算機程序設計課程中的應用
根據計算機程序設計課程的抽象特征,擬從以下幾個方面將認知教學應用于計算機程序設計課程中。
按照數據結構+算法的思路將計算機程序設計教學知識合理組織在一起,形成程序設計知識的宏觀體系結構;對宏觀架構中的每一個知識點進行細化,即構建出每一知識點的微觀結構;搭建宏觀知識點之間、微觀知識點之間以及相互的關聯。
以“C程序設計”課程為例,[7]圖1概括了C程序設計的所有知識點,形成了一個多層次、逐層深入的組織結構。每一層次可以看作其上層的粒化,每一層次與其上層和下層都有直接或間接的因果關系,同層次知識點之間也存在因果關系。比如定義數據、輸入數據、計算數據和輸出數據構成了程序的基本步驟,前一步是后一步的基礎和條件;比如定義數據中的基本數組類型是所有定義的基礎,為了存儲多個有序數據(同一類型)形成了構造性數據即數組;為了存儲不同類型的數據才有了構造型數據即結構體和共用體;為了便于表達更為復雜的數據結構及方便有效地使用數據提出了指針,所以在定義數據中各部分之間存在著關聯。
最底層中的知識點還可以進一步深入細化。“C程序設計”課程中,有關數組的認知體系以包含10個整型數據的一維(10*10二維)數組、字符數組為例,如圖2所示。數組認知按照數組的組成和編程的思路分別從縱向和橫向展開。縱向坐標:一維數組、二維數組和字符數組,一維數組是二維與字符數組的基礎,二維數組又是二維字符數組的基礎;橫向坐標:定義、輸入、計算和輸出數組。特別地,(一維)字符數組的輸入/輸出的因果關系來看,它采用類似于一維數組的輸入/輸出方法,將輸入/輸出格式中的%d改為%c,進一步可以簡單地采用%s格式輸入/輸出(去除了循環結構),更進一步采用函數gets/puts調用來完成。
四、結束語
科學的教學方法應該遵循教學賴以存在和發展的認知機理和學生學習思維的邏輯認知過程,認知教學即從牢牢抓住教學本質出發,深化知識的組織、粒化與因果關系,將所有知識融為一體,尤其對于程序設計,這類邏輯性強的課程,該方法更適合。本文以“C程序設計”課程為例,闡述了認知的應用,并通過實際教學,驗證了該方法的有效性。
參考文獻:
[1]羅祖兵.教育學問題教學:涵義、價值與操作[J].高等教育研究,2010,31(3):71-75.
[2]王春婷.淺談任務驅動教學法在計算機教學中的應用[J].太原大學教育學院學報,2011,(2):103-105.
[3]趙月坤,高常.案例教學法在數學教學實踐中的應用[J].中國成人教育,2011,(15):162-163.
[4]陳越,何欽銘.計算機專業研究型課程教學模式與創新能力培養的探索[J].計算機教育,2009,(24):99-101.
[5]Zadeh L.Some reflections on soft computing,granular computing and their roles in the conception,design and utilization of information/intelligent systems[J].Soft Computing,1998,(2):23-25.
[關鍵詞]培養方案 Visual Basic 教學改革 教學質量
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2015)11-0141-03
為了適應社會經濟發展對高等教育人才培養的需求,各個專業的培養方案往往隔幾年就要修訂一次。
在山東科技大學2008版的培養方案中,通識教育課程包括人文社會科學、自然科學基礎、體育、外語、計算機基礎和公共選修課。其中,非計算機專業的計算機教學分為“計算機文化基礎”(60學時),“計算機技術基礎”(共60學時,其中理論授課30學時,上機實踐30學時),“計算機應用基礎”(共60學時,其中理論授課30學時,上機實踐30學時)三個層次組織教學。地球科學與工程學院的“計算機技術基礎(VB)”安排在大學一年級的第二學期,“計算機應用基礎(VB)”安排在大學二年級的第一學期。
2013年,我校進行了新一輪的培養方案修訂工作。在2013版的培養方案中,公共基礎課程包括人文社會科學、自然科學基礎、體育、外語、計算機基礎和公共選修課。對計算機基礎課程,要求非計算機專業的計算機教學實行分層、分類教學,開設“計算機文化基礎”和“計算機程序設計”兩門課程。最終,地球科學與工程學院確定“計算機程序設計(VB)”課程共60學時,其中理論授課40學時,上機實踐20學時,安排在大學二年級的第一學期。
轉眼2014級的“計算機程序設計(VB)”就要開課,如何應對教學學時的巨大變化,又保證教學質量,是目前必須要思考的問題。
一、課程的性質與教學基本要求
(一)課程的性質
“計算機程序設計(VB)”是為地質類專業開設的一門公共基礎課。通過本課程的教學,使學生掌握面向對象程序設計的基本概念,了解程序設計的基本原理、技巧和方法,并且能夠利用VB語言編寫相應的程序,具有一定的程序調試能力,為以后進一步自習其他程序語言和提高程序設計能力打下堅實的基礎。
(二)教學基本要求
本課程以“計算機文化基礎(VB)”為先修課程,通過學習應達到以下基本要求:
1.掌握VB的基本內容和一般規定;
2.能夠獨立上機編輯、調試、運行程序,并能得到正確結果;
3.能夠閱讀和分析VB語言源程序;
4.能夠使用VB語言編寫簡單的應用程序,解決實際問題。
二、教學基本內容及學時分配
根據地質類專業對“計算機程序設計(VB)”的基本要求,結合學時及學生的接受能力和水平,教學基本內容及學時分配如表1。
表1 教學基本內容及學時分配表
三、教材選擇
當前,Visual Basic程序設計方面的教材主要有:英文影印版,主要用于高校雙語教學試點、教學參考和圖書館館藏;編譯版,主要用作教學參考和圖書館館藏,較少用作教材;中文編著版,多數配有習題解答、實驗指導和課件等配套教材,主要用作教材、圖書館館藏和教學參考。[1]
雖然市場上現有的Visual Basic教材種類繁多,缺乏針對性的教材是目前教學上最突出的問題[2],真正切合高校地質類學生實際情況的教材很少。
由同濟大學龔沛曾等人編寫的《Visual Basic程序設計教程(第4版)》[3]是在第三版的基礎上實施“問題驅動”教學法修訂而成的,教學目標明確,易于學生了解和掌握知識點。該教材不再集中介紹常用控件,而是將常用控件分散在程序設計語言的相應知識點中介紹,解決了教學學時少的矛盾;每章末配備了“自主學習”內容,以滿足不同學習對象和教學學時的要求。因此,該教材是一個比較合適的選擇。
四、教學方法改革
面對教學學時壓縮的壓力,如果仍然沿用以往“以老師為中心”的教學方法顯然是行不通的,必須實行教學方法的改革。因材施教,靈活運用各種恰當的教學方法,以學生自主學習為中心,以問題為中心,才能有效地調動學生的學習興趣,促進學生積極思考與實踐,提高教學質量。[2]
(一)課堂理論教學
實踐證明,適用于Visual Basic程序設計的方法很多,下面結合具體內容,以《Visual Basic程序設計教程(第4版)》(龔沛曾,等編)為例作簡要說明。
1.興趣教學法
“興趣是最好的老師”。現在的大學生對計算機已經非常熟悉,但對計算機語言了解不深。要從第一章授課開始(包括每一章開始)就激發學生的興趣,讓學生接受它,喜歡它。比如,“字幕動畫”這個例子一定要講好,從一開始就吸引學生的注意力,對VB的學習產生興趣。[4] [5] [6]
2.案例教學法
案例教學法生動、簡潔,具有啟發和創造性,在促進學生對知識點的理解、提高學生的創新能力等方面比傳統教學方法具有優勢。實例教學法要求教師對VB語言及要講解的內容非常熟悉,課前要認真動腦,準備與知識點相關的典型例題,這是前提和必要條件。[7] [8] [9] [10]
3.任務驅動教學法
“計算機程序設計(VB)”是一門理論與實踐并重的課程,教授根據理論教學的進度和內容,向學生提出由易到難、循序漸進的一系列“任務”,使學生在完成“任務”的過程中獲得知識,培養分析問題、解決問題的能力。[4] [6] [11] [12]
4.項目教學法
項目教學法是一種以項目為驅動的教學形式,讓學生全面參與到教學中去,在項目中引入新的知識激發學生的積極性,加深所學知識的印象,提高學生綜合運用所學知識的能力。[13] [14] [15]
5.CDIO工程教育理念
CDIO是當前高等工程教育的一種人才培養理念,以構思、設計、實施及運作全過程為載體來培養學生的工程能力,以學生為中心,通過項目實踐,邊做邊學,激發學生的學習興趣,引導學生主動學習。[16] [17] [18]
表2 部分知識點教學方法設計表
■
此外,在教學過程中,要時刻注意深入淺出、舉一反三、歸納總結[19],引導學生熟練掌握并運用所學知識,解決相關問題。
(二)上機實踐教學
上機實踐是“計算機程序設計(VB)”教學的關鍵環節,對提高VB教學質量至關重要。[20]只有經過上機實踐操作,學生才能真正地領會和應用相關知識點。
課堂理論授課結束后,要給學生布置適量的上機實踐內容,讓學生充分準備好。上機實踐課上,學生的主要任務是調試程序,在此過程中遇到的問題,教師應盡量啟發學生自己解決。對共性的問題,可以采用集中講解的方式。[21]在上機實踐課結束之前,教師要針對本次課的總體情況加以點評,以利于學生的課后自學和總結。
五、結語
Visual Basic程序設計是一門重要的基礎性編程語言,雖然相對于有些計算機語言而言簡單易學,但仍需在教學中綜合運用多種方法,善于探索,敢于改革,增強學生的學習興趣,培養學生運用所需知識解決實際問題的能力。
[ 注 釋 ]
[1] 艾菊梅,王曉燕,宋文琳.基于案例的VB立體化教材建設研究[J].大學教育,2012(11):21-22.
[2] 張榮華,殷士勇.以教材建設為中心的VB課程改革與實踐[J].吉林農業科技學院學報,2009(1):83-84.
[3] 龔沛曾,楊志強,陸慰民,等編.Visual Basic程序設計教程(第4版)[M].北京:高等教育出版社,2013.
[4] 王鵬宇.VB教學改革的幾點認識[J].科技信息,2007(5):33.
[5] 李林,劉毅,秦洪英.“VB程序設計”教學模式改革[J].現代計算機,2009(10):97-98,106.
[6] 朱智謀,陳建軍.就“應用型”人才培養下的《VB語言程序設計》課程教學改革探討[J].軟件,2013(11):166-167.
[7] 何小年.VB程序設計教學的改革與實踐[J].湖南第一師范學報,2006(1):55-57.
[8] 楊潞霞.“VB程序設計”教學的改革與實踐[J].計算機教育,2007(8):24-26.
[9] 劉洪坡,石磊.Visual Basic程序設計課程教學改革的探索與實踐[J].廣州番禺職業技術學院學報,2010(3):32-35.
[10] 史媛.案例驅動法對VB程序設計課程的改革[J].宜春學院學報,2011(4):168,185.
[11] 王洪艷.高校“VB程序設計語言”課程教學改革探索與實踐[J].鞍山師范學院學報,2013(6):56-59.
[12] 鐘玉峰,運海紅,葛冬梅.高校VB程序設計課程教學改革研究[J].黑龍江教育(高教研究與評估),2013(5):26-27.
[13] 金林樵.基于項目教學法的VB課程教學改革與實踐[J].浙江樹人大學學報,2012(1):61-65.
[14] 張小衛,謝巧玲.VB課程項目化教學改革的探索與實踐[J].河南科技,2013(9):274-275.
[15] 程鵬.VB課程項目化教學改革的探索[J].延安職業技術學院學報,2014(6):84-85.
[16] 廖麗嶸.CDIO工程教育理念下《VB程序設計》課程教學改革研究[J].韶關學院學報(自然科學),2011(8):96-98.
[17] 李艷梅,張亞峰,燕振剛.面向CDIO理念的VB程序設計應用型本科教學改革初探[J].農業網絡信息,2012(1):112-114.
[18] 周蚌艷,欽明皖.基于CDIO理念的VB程序設計基礎課程教學改革初探[J].中國電力教育,2014(35):123-124.
[19] 文靜.淺議VB教學方法改革的探討和實踐[J].吉林省教育學院學報,2012(2):17-18.
關鍵詞:獨立學院;課程改革;人才培養;程序設計
隨著計算機軟件行業的發展與普及,十幾年來計算機軟件技術發生了翻天覆地的變化,而高等學校的教學內容、教學模式與教學方法卻沒有多大的改變,課程教學理念嚴重滯后于實際需要,教學效果存在相當大的問題。現在的計算機軟件專業學生擁有的優勢越來越少,就業壓力也越來越大。對獨立學院的計算機軟件專業學生而言,更是如此。比專業理論知識,他們沒有一本、二本的學生全面扎實,比實踐操作能力,他們又遠不及高職學生。那么獨立學院應該培養怎樣的計算機軟件人才呢?學生將來畢業以后,憑借什么在社會上立足呢?這是我們老師一直在思考和探索的問題。
為適應新的形勢,我院明確了計算機軟件人才的定位:培養應用型軟件人才。這個培養目標既是從獨立學院學生的自身條件出發,又符合當前社會對計算機軟件人才的需求。在這個培養目標的指導下,我們在計算機程序設計課程教學上進行了大膽嘗試,修訂了教學大綱,增加、刪除了部分教學內容,并將新的教學模式與教學方法引入計算機基礎教學中,取得了較好的效果。
1存在的問題
已往的教學經驗表明,學生在學習程序設計類課程時最難的地方不是掌握某種程序設計語言的語法規范,而是掌握程序設計的基本方法。
程序設計語言的語法規范是死的,并且與任何一種自然語言相比,程序設計語言的語法規范更簡單規則。因此,只要學生掌握好了程序設計的基本方法,再花費一定的時間掌握某一種程序設計語言的語法規范,就能用該程序設計語言設計程序,甚至達到精通水平。
具體而言,目前教學中存在的主要問題有:教學內容與教材組織過于陳舊;教學目標沒有反映新形勢的需要。其典型表現在:程序設計方法強調不夠,抽象思維能力培養不足;某些程序設計中重要的概念講授力度不足,如庫與接口、UML建模以及目前流行的軟件開發方法等,學生在實際的軟件開發中無法滿足企業的需要。
2構建程序設計基礎培養四階段課程體系
大多數獨立學院的本科計算機軟件專業現行的課程設計,與普通的一本、二本院校相比相差無幾,沒有突出獨立學院的特點,也沒有明確獨立學院的培養目標。因此,對獨立學院計算機軟件專業課程體系進行改革迫在眉睫。我院以“計算機導論與C語言程序設計”為公共基礎的程序邏輯訓練、以“高級程序設計技術”為核心的程序設計方法培養、以“數據結構”為支持的數據與程序抽象能力培養、以“C++程序設計”貫穿面向對象程序設計新理念,并在大三大四高年級開設了Java、Linux、UML建模等程序設計類選修課程,形成了“基礎訓練+方法培養+提高能力+拓展層面+實踐應用”的程序設計教學新模式[1],在強化程序設計能力培養過程中發揮了重要的作用。
3提出并實施四層次軟件人才培養新模式
我院以課程體系為基礎,提出并實施了“基礎訓練+提高能力+拓展層面+實踐運用”的四層次軟件人才培養模式。
3.1基礎訓練
程序設計基礎訓練課程開設在大學一年級,是大學階段系統認識計算機、應用計算機的入門課程,通過程序設計的詞法、語法及使用方法的學習,要求學生掌握、體會計算機解決問題的基本技能。在基礎訓練中,通過對計算機導論課程的學習,讓學生認識并能熟練運用計算機編寫程序;通過對C語言程序設計課程的學習,讓學生初步掌握程序設計的方法,訓練程序設計中的邏輯思維。
3.2能力提高
程序設計能力提高課程開設在二年級,主要從兩個方面提高學生的程序設計能力:一是高級程序設計技術課程,重點學習典型的程序設計方法技術,便于學生系統地學習并掌握程序設計方法技術。二是數據結構課程,通過構造性思維的訓練,重點突出數據抽象與程序抽象能力的培養,讓學生在基礎訓練階段之后能更深入地理解程序設計的概念。
3.3層面拓展
主要以市場需求為基礎,包括工具類別與應用環境的拓展,以選修課形式開設在三、四年級。在具有良好C程序設計能力基礎上,展開其他程序設計工具層面,如開設Java、VC++、VB等程序設計類選修課程,增強學生掌握新工具,舉一反三的能力。隨著我國經濟發展,國外市場份額不斷增加,熟悉和使用Unix環境已成為計算機軟件專業應當掌握的重要技術,開設Unix環境編程和Linux程序設計等課程,將拓展應用環境,提高學生適應新環境的程序設計能力。
3.4實踐應用
自2006年以來,我院就加大了程序設計課程中的實踐課時比例,實踐課時占到總學時的1/2或1/3,每門實踐課都單獨安排了實踐課老師,指導學生更好地進行實踐。在實踐課設計中,我們既重視學生理論知識的鞏固,又注重其解決實際問題能力的培養,因此,我們把實驗自下而上分為知識層、應用層和綜合層3個層次。
知識層注重對知識的理解和掌握,數據結構、數據庫原理和Java程序設計等理論課增設了相應的課程設計,課程設計的主要內容是:按軟件企業先進的項目管理和開發模式,以“項目驅動”進行軟件系統開發的實訓。應用層重點在于鞏固與應用,學生在校期間參加課外興趣小組或在畢業論文設計中,大部分學生都能使用VC++做系統級深層次應用。綜合層則關注綜合與創新,學校鼓勵學生參加大型的綜合性IT比賽,如ITAT、大學生挑戰者杯創業大賽等。
3.5創造性思維能力的強化
計算機程序設計能力,對計算機專業學生的知識結構、技能的提高和智力的開發變得越來越重要,技能培養的重要程度決不亞于知識傳授。對程序設計能力的提高來講,編程序不難,編好程序不易。質的飛躍來自量的積累、艱苦的磨煉,所以良好的專業技能和創造性思維培養的關鍵在于實踐。程序設計是高強度的腦力勞動,是創造性的藝術,只有提高了科學思維,學會了程序設計的真本領,才會將知識與技術變成能力,應用自如。
3.5.1案例驅動教學:興趣引導
針對獨立學院學生思維靈活但學習自覺性較差的特點,我們采用案例教學法,避免了傳統填鴨式教學方法的呆板,通過實例演示,讓學生對所學知識產生興趣,有了一定的感性認識之后,再提升到理論高度,循序漸進地掌握知識。經過多次教學的探索,總結出重點講授解題思路、算法設計及編程構思,突出上機訓練,在編寫程序過程中讓學生自己進行探索性的學習,程序設計中的成果能極大地增加學生的成就感、培養學生程序設計的興趣,并達到更加牢靠地鞏固理論知識的目的。好的程序設計案例所采用的程序設計方法教會學生用適當的語言清晰地表達其思考過程。
3.5.2指導―大運動量實踐―反饋訓練:加強創造性思維培養
數據結構[2]的學習過程,是進行復雜程序設計的訓練過程。技能培養的重要程度不亞于知識傳授。難點在于讓學生理解,習慣算法構造思維方法。針對數據結構技術性與綜合性較突出的特點,我們提出并實施了“指導―大運動量實踐―反饋訓練”教學法。通過作業練習、課程實習、課程設計3個環節實現實踐過程,前者偏重于對課程內容的理解,后者側重于軟件設計綜合訓練,促進了專業學生邏輯抽象能力和創新能力的培養。
3.5.3項目訓練:提高應用能力
通過“項目訓練”[3]方法,我們提出課程設計規范要求,突出關鍵技術要點,貫穿基本技能訓練主線,精心設計綜合性實驗,體現加強實踐能力培養的重要思路。數據結構課程設計時進行軟件開發綜合訓練的第一門課,通過選用具有一定實用性的綜合題目,采用學生個人進行和小組合作的方式,通過問題分析、總體結構設計、用戶界面設計、程序設計基本技能和技術的一系列過程,培養學生動手實踐、合作研究、協作開發大型軟件項目的能力,培養學生采用軟件工程正規方法進行設計與實現,為專業技能訓練奠定了基礎。“項目訓練”方式將學生引入具體的項目研發,使學生有更多的主動學習機會,培養了科研能力。
3.5.4提高學生的興趣與創新能力
競賽等多種活動為學生提供了展現程序設計能力的舞臺,激發了學生學習的主動性。我們已連續3年開展全校“電腦文化節”、“網頁設計大賽”、“Flash競賽”、“計算機知識競賽”;學生參加省級、國家級數學建模比賽,6人次獲國家級獎勵,20人次獲得省級獎勵;學生在程序設計大賽中取得優異成績,獲得多項獎勵,3人次獲ITAT國家級獎,多人次獲省大學生挑戰杯一等獎。
4結語
計算機課程改革勢在必行,特別是對于獨立學院來說,更是迫在眉睫。改革的成功與否將直接關系到學生以后的就業。在進行計算機課程改革的基礎上,我們針對軟件人才的培養,提出程序設計教學的新模式和以設計為中心的能力培養新方法。作為一種有益的嘗試,新的課程體系通過一種有趣的、面目可親的方式向學生說明了創造性思維能力在程序設計中起到的重要作用。
參考文獻:
[1] 翟玉慶,鄧建明. 計算機科學研究型人才培養模式的探討與實踐[J]. 計算機教育,2005(1):31-33.
[2] 耿國華. 數據結構[M]. 北京:高等教育出版社,2007.
[3] 王志英,寧洪,戴葵. 強化計算機專業實踐教學[C]//第七屆全國計算機系系主任論壇論文集. 北京:高等教育出版社, 2004:37.
Reform of Computer Courses and Training of Software Personnel in Independent Colleges
LIU Ya, TAN Qian-mao, ZHOU Li
(Computer Science and Engineering Department, Jinjiang College, Sichuan University, Pengshan 620860, China)
>> 技工學校計算機程序設計課程教學的研究 技工學校計算機程序設計課程教學的思考 技工學校VB程序設計課程教學方法淺析 技工學校計算機基礎教學探討 談技工學校計算機教學 技工學校工程制圖與計算機輔助設計課程教學構想與設計 技工學校《計算機應用》課程教學的探索 技工學校計算機應用基礎課程教學淺議 淺析技工學校計算機應用課程教學改革 略談技工學校計算機應用基礎課程教學 技工學校《計算機應用基礎》課程教學特點及講授策略 民辦技工學校《計算機應用基礎》課程教學的研究與探索 淺議技工學校計算機基礎課程教學質量的提高 淺談機械類技工學校的《計算機基礎》課程教學 淺議技工學校計算機應用基礎課程的教學 技工學校計算機課程的創新教學淺析 淺談高級技工學校計算機教學課程的設置 新時期技工學校計算機高效課堂的構建思路分析 淺談技工學校計算機應用課程考試試卷設計的基本原則 技工學校計算機專業一體化課程的開發與設計 常見問題解答 當前所在位置:內容如下:
1
2
3
4
5 function information(name,sex,height,weight,score)
6 {
7 this.name=name;
8 this.sex=sex;
9 this.height=height;
10 this.weight=weight;
11 this.score=score;
12 this.way1=function outprint1()
13 {
14 alert("姓名:"+this.name+",性別:"+this.sex+",身高:"+this.height+",體重:"+this.weight+",成績:"+this.score);
15 }
16 this.way2=function outprint2()
17 {
18 document.write("
"+this.name+"
"+this.sex+"
"+this.height+"
"+this.weight+"
"+this.score);
19 }
20 }
21 var Information=new information("陳普光","男","170cm","60kg","90分");
22 Information.way1();
23 Information.way2();
24 //-->
25
26
27
程序第5行至第20行是一個對象的構造部分,其中第7行至第11行是對象屬性部分,絕大多數學生對“對象屬性是對象所具有的性質”經過老師的對上例的講解能很快掌握,但對從第12行至19行的對象方法部分即“對象方法是對象可執行的操作”絕大多數學生無法理解。面對這種局面,結合大多數學生對“函數”的理解比較好,接著深入下一層:
3.2 拿學生已經掌握的知識和新知識進行比照教學
根據大多數學生對“函數”的理解比較好,我將上述程序變形為程序ch_y.htm內容如下:
1
2
3
4
5 function information(name,sex,height,weight,score)
6 {
7 this.name=name;
8 this.sex=sex;
9 this.height=height;
10 this.weight=weight;
11 this.score=score;
12 }
13 function outprint1()
14 {
15 alert("姓名:"+Information.name+",性別:"+Information.sex+",身高:"+Information.height+",體重:"+Information.weight+",成績:"+Information.score);
16 }
17 function outprint2()
18 {
19 document.write("
"+Information.name+"
"+Information.sex+"
"+Information.height+"
"+Information.weight+"
"+Information.score);
20 }
21 var Information=new information("陳普光","男","170cm","60kg","90分");
22 outprint1();
23 outprint2();
24 //-->
25
26
27
我將程序ch_x.htm中封裝在對象第12行至第19行的方法,在程序ch_y.htm變形為第13行至第20行的函數,由于大多數學生對“函數”理解比較好,通過對這兩個程序的對照講解,特別對兩者不同用“加粗”重點講解,使絕大部分學生最終理解了“對象方法”。
為了鞏固教學效果,進入最后一個環節:
3.3 布置課堂實操作業,讓學生自己動手舉一反三
著名的美國新行為主義心理學家斯金納提出“強化理論”,指出人類學習必須經歷強化,特別要遵循“及時強化原則”,因此布置課堂實操作業如下:①根據自己的個人信息用“函數”設計一個類似ch_y.htm的程序②根據自己的個人信息用“對象”設計一個類似ch_x.htm的程序
通過以上分三層次剖析教學,全班25名學生有20名順利完成了課堂作業,達到了較理想的教學效果。
4 結束語
從事技工教育多年,總結技工學校計算機程序設計課程教學思路如下:一是素材要貼近學生的日常生活,二是講解要拿學生已經掌握的知識和新知識進行比照教學,三是讓學生自己動手舉一反三,達到鞏固教學成果的目標。
參考文獻:
[1]吳以欣,陳小寧.動態網頁設計與制作:CSS+JavaScript[M].人民郵電出版社,2009,8.
[2]段智毅.Visual C++程序設計教程[M].人民郵電出版社,2009,5.