程序設計實踐范文
時間:2023-04-03 05:32:14
導語:如何才能寫好一篇程序設計實踐,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
摘要:本文針對非計算機專業(yè)程序設計類課程實踐教學中存在的不足,結(jié)合我院綜合實驗設計的初始探索、發(fā)展穩(wěn)定和擴展提高三個時期的特點,介紹了我院實施綜合實驗設計改革的情況和效果。
關鍵詞:程序設計;應用能力;綜合實驗
中圖分類號:G642
文獻標識碼:B
1引言
目前,國內(nèi)許多高校把程序設計課程作為非計算機專業(yè)學生的計算機公共基礎課程,目的是為了使學生掌握計算機程序設計的基本方法和思路,培養(yǎng)學生綜合分析問題、靈活運用知識的能力。我院也和許多高校一樣,在理科非計算機專業(yè)的學生中開設了Visual Basic程序設計語言課程。
眾所周知,程序設計語言是實踐性非常強的課程。程序設計課程的實踐教學的設置一貫地被認為是程序設計課程重要的環(huán)節(jié)。在教學過程中,為貫徹我院“發(fā)展應用性教育,培養(yǎng)應用型人才,建設應用型大學”的辦學宗旨,在“學以致用”的教學理念的指導下,進一步深化教育教學改革,加強實踐能力的培養(yǎng),我們不斷地對Visual Basic程序設計語言課程的實踐教學進行改革和探索,在Visual Basic程序設計課程別設立了“綜合實驗設計”環(huán)節(jié),加強實踐教學力度,增設綜合性、創(chuàng)新性實驗,以提高學生們綜合應用所學計算機知識解決實際問題的能力。
2開展綜合實驗設計的必要性
過去一段時期內(nèi),我們學院VB程序設計語言課程所開設的實驗多是基礎性實驗。實驗方法死板,學生只要按實驗指導上的步驟做,就可完成實驗。操作的方法一致,實驗完成后的效果基本一致,成績也差不多。學生普遍感覺實驗單調(diào),積極性不高,有時還會出現(xiàn)拷貝結(jié)果應付老師檢查的現(xiàn)象。這種實驗模式一定程度上抑制了學生個性的發(fā)展,不利于對學生創(chuàng)新能力的培養(yǎng),阻礙了他們獨立思考的興趣和努力鉆研知識的熱情。
我們VB程序設計語言課程設立的綜合實驗是在傳統(tǒng)演示實驗和驗證實驗的基礎上的一種新型實驗。
學生在教師的引導下,根據(jù)自身的能力和特點自己選題,選題一旦確定以后,學生自己設計實驗完成方案。實驗具有一定的探索性和創(chuàng)造性。將過去的被動實驗改變成主動實驗,能充分發(fā)揮學生的主觀能動性和獨立操作能力。培養(yǎng)了學生的綜合設計能力和創(chuàng)新意識。
3綜合實驗設計的實踐探索
我院是從2003級開始在理科學生中開設“VB程序設計”課程的。這門課程的學習目標是使學生既要學會面向?qū)ο蟮?、可視化界面的程序設計方法,又要掌握程序設計語言的基本規(guī)則、常用算法。培養(yǎng)學生在VB集成開發(fā)環(huán)境下上機編制、調(diào)試程序的實際編程能力。通過本課程的學習,使學生具備可視化開發(fā)環(huán)境下的程序設計能力、良好的程序設計素養(yǎng)與規(guī)范的程序設計方法,從而能獨立開發(fā)出具有實際意義的程序。
為更好地實現(xiàn)教學目標,我們從2004級開始實施綜合實驗設計。綜合實驗設計的發(fā)展經(jīng)歷了三個階段:初始探索期、發(fā)展穩(wěn)定期和擴展提高期。
3.1初始探索期
實施初期,我們對VB綜合實驗設計提出了相應的要求。具體內(nèi)容是要以一個具體項目為背景,運用Visual Basic程序設計語言獨立編制完成一個程序系統(tǒng)。該程序具有一定的規(guī)模,能滿足某種需求,實現(xiàn)一定的功能,解決一個實際問題。要求有文字說明(Word文檔形式)和相應的源程序代碼(工程文件、窗體文件及相應的文件)。學生自我選定綜合實驗設計的題目,自我設計方案,自我設定功能,自我調(diào)制完成整個系統(tǒng)。
在此階段,教師和學生都屬于探索階段。總體來說,學生設計的水平參差不齊,有些同學把書上的例題稍加組合拼湊在一起,是為了完成作業(yè)而完成作業(yè)。作品的選題范圍集中、選題面也比較窄,個性化的體現(xiàn)較少,高質(zhì)量的作品數(shù)目不多。一方面反映了學生接觸面少、視點窄,另一方面也反映學生對所學的知識靈活運用的能力尚有欠缺,創(chuàng)新意識不足。
3.2發(fā)展穩(wěn)定期
經(jīng)過前一階段探索,我們及時分析現(xiàn)狀、總結(jié)經(jīng)驗。針對前幾屆學生出現(xiàn)的問題,加強指導采取了相應的措施:
(1) 引導學生開闊視野,擴大選題面。學生的選題往往集中在“多功能計算器”、“考試成績統(tǒng)計”、“計算與比較大小”這樣的題目,而沒有將眼光放開,解決生活中的各種問題。
(2) 修正、細化綜合實驗設計要求,統(tǒng)一封面內(nèi)容設計,統(tǒng)一評分標準。
(3) 加強輔導,及時和學生溝通,出現(xiàn)問題及時解決。
(4) 展示綜合實驗設計樣例和一些優(yōu)秀的作品,啟發(fā)學生的思維。
(5) 嚴格檢查,鼓勵創(chuàng)新,對于雷同設計決不姑息。
經(jīng)過學生和教師的共同努力,涌現(xiàn)了一些優(yōu)秀的設計作品。表1列出了部分VB綜合實驗設計的名稱。可以看出,學生的設計選題豐富,有些還和專業(yè)密切結(jié)合。圖1是一個學生的程序系統(tǒng)的界面。創(chuàng)意新穎,界面友好。該學生的“花語查詢系統(tǒng)”在程序結(jié)構(gòu)中使用了VB程序設
計語言的中分支、循環(huán)和嵌套結(jié)構(gòu),在界面設計上使用了多重窗體、菜單等,正確地運用了數(shù)據(jù)文件中讀取文本文件等命令。在系統(tǒng)設計上巧妙地將這些知識點結(jié)合在一起,使得整個系統(tǒng)的功能比較豐滿,也比較完備。
3.3擴展提高期
從2007年開始,我們進一步規(guī)范了綜合實驗設計文檔、文件的后期管理,逐一記錄每份設計的題目,按班統(tǒng)計。將統(tǒng)計后的結(jié)果提供給學生,使他們在確定綜合設計實驗題目的時候有所啟發(fā)。同時,也進行了問卷調(diào)查,調(diào)查開展綜合實驗設計對學生掌握VB程序設計是否具有幫
助。結(jié)果表明,絕大多數(shù)同學都認為是有幫助的。圖2和圖3是對2006級和2007級同學的問卷調(diào)查統(tǒng)計結(jié)果。很多同學都表示,通過綜合實驗設計,不僅鞏固了課堂所學的知識,更重要的是找到了學習新知識的方法和途徑,獲得更強的學習自信心和成就感,提高了自主學習能力、實際應用能力和創(chuàng)新能力。
4結(jié)束語
計算機基礎教育的改革在不斷深入,實施應用性教育的概念也在不斷強化。計算機基礎教育要面向應用,就是要面向各專業(yè)領域,使計算機技術更全面、更深入地與本專業(yè)結(jié)合,使計算機技術本專業(yè)化。
在這種指導思想下,為了高效地幫助學生在有限的教學時間內(nèi)掌握VB程序設計語言,提高應用到專業(yè)中的能力。我們和各專業(yè)的老師共同探討,擬為學生提供一些與所學專業(yè)知識相結(jié)合的綜合實驗設計題目,提升學生對知識的復合應用能力,強化使用VB軟件進行與本專業(yè)內(nèi)容相關的軟件開發(fā)的能力。
參考文獻
[1] 胡伏湘. 軟件設計類課程實踐性教學的研究與實踐[J]. 計算機教育,2008,(1):82-85.
篇2
關鍵詞:程序設計;教學改革;實踐能力
中圖分類號: G642文獻標識碼:A文章編號:1009-3044(2012)02-0366-02
Practice on the Teaching of the Programing Course
YUAN Hui-yong, YANG Si-qing, YI Ye-qing
(Department of Computer, Hunan Institute of Humanities, Science and Technology, Loudi 417000, China)
Abstract: This paper first analyses the problem in teaching of "C Language"," Data Structure" and "Algorithm Design and Analysis", and then propose a reform of teaching by improving teaching method, integrating teaching content and strengthening practice teaching. Results show that the reform of teaching can effectively stimulate students interest in learning, improve the efficiency of learning and the ability of programming.
Key words:programming; reform of teaching; ability of practice
1概述
目前C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、算法分析與設計是計算機及其相關專業(yè)中非常重要的專業(yè)課程。在以往教學中,這三門課程采用相對獨立、分開授課的方式,導致課程內(nèi)容脫節(jié)與重復,教學效果差,學習完三門課程后卻不能編寫程序的大有人在。這三門課程都以培養(yǎng)學生解決實際問題的程序設計能力為共同目標,因此,如何將三門課程有機地結(jié)合起來,構(gòu)建程序設計系列課程的新體系,整合教學內(nèi)容,改進教學方法,切實提升學生的程序設計能力,成了當前計算機專業(yè)教學改革中亟待解決的問題。
2教學中存在的問題
在傳統(tǒng)的教學中,C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、算法分析與設計三門課程的分開授課,課程知識沒有整合,對課程知識中存在重疊的內(nèi)容,只是做簡單的重復講解(如C語言和數(shù)據(jù)結(jié)構(gòu)課程中都有數(shù)組這個教學內(nèi)容),教學深度不夠。教學中注重講授基本理論,忽略了程序設計過程中涉及的方法和技術(如算法分析與設計課程通常是將已有的經(jīng)典算法在數(shù)學模型和數(shù)據(jù)結(jié)構(gòu)上給學生解釋),理論教學與實踐教學結(jié)合不夠緊密(如數(shù)據(jù)結(jié)構(gòu)在講授了某種抽象的數(shù)據(jù)關系和在計算機中的表示與實現(xiàn)后,并沒有將這種結(jié)構(gòu)用到解決實際問題中去),造成有些學生雖然具備了一定的理論基礎,但由于實踐教學薄弱,動手能力差。
3具體改革措施
我們改變了以往C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、算法分析與設計分開授課的模式,而是將這三門課程作為一個整體,以培養(yǎng)學生解決實際問題的程序設計能力為目標,從組織教學內(nèi)容、改進教學方法、突出實踐教學等方面進行教學改革與實踐。
3.1整合教學內(nèi)容
C語言程序設計是數(shù)據(jù)結(jié)構(gòu)的前導課程之一,學生對它的掌握程度直接關系到數(shù)據(jù)結(jié)構(gòu)課程的教學效果。算法分析與設計是計算機專業(yè)程序設計類的核心課程,在學習該課程之前,要求學生們掌握了基本的數(shù)據(jù)結(jié)構(gòu)知識,能熟練運用一門或多門編程語言,并具備一定的編程經(jīng)驗。
我校原來的C語言、數(shù)據(jù)結(jié)構(gòu)和算法分析與設計三門課程是相對獨立、分開授課的,學習效果不理想。我們將這三門課程的知識進行整合,采用同一教師授課,做到了前導課、后續(xù)課的有機銜接,并重新制定了三門課程的教學計劃,以知識點為單元,將這三 門課程很好地結(jié)合起來。在C語言的教學中,以C語言為主線,適當穿插數(shù)據(jù)結(jié)構(gòu)中的相關內(nèi)容,使C語言與數(shù)據(jù)結(jié)構(gòu)有機地結(jié)合在一起,如我們將C語言中的數(shù)組和數(shù)據(jù)結(jié)構(gòu)中的直接插入排序、冒泡排序、簡單選擇排序、順序查找、折半查找方法放在一個知識單元中。在數(shù)據(jù)結(jié)構(gòu)教學中,穿插了算法分析與設計的有關知識,如在講述哈夫曼樹和圖的最小生成樹時,穿插了講述了貪心算法,在講述圖的最短路徑時介紹了動態(tài)規(guī)劃算法。
我們不再把C語言當做一門語言來講解,加強了數(shù)據(jù)結(jié)構(gòu)、算法設計、邏輯思維和編程方法的教學。數(shù)據(jù)結(jié)構(gòu)課程不再只注重講授抽象的數(shù)據(jù)關系和存儲結(jié)構(gòu),而要求學生用C語言編程實現(xiàn)各種算法,并結(jié)合實際應用,在ACM/ICPC在線評測系統(tǒng)上完成相應的練習題目,學生不再感到枯燥無味,不僅較好地解決了數(shù)據(jù)結(jié)構(gòu)教學中學生上機困難的問題,也提高了學生的程序設計能力。在算法分析與設計課程教學中,我們選擇一些難度適中、能結(jié)合實際問題和相關課程的知識來講解,使學生既能理解,又能拓展創(chuàng)新。
3.2改進教學方法
我校屬于應用型本科院校,其教育目標著重于培養(yǎng)具有實際工作能力的技術型和應用型人才。在C語言的教學中我們采用了“案例”教學方法,從日常生活中選擇能典型反映教學內(nèi)容的案例,所選案例難度適中并能反映多個知識點。如選用了“學生的成績管理”,該案例覆蓋了C語言中的循環(huán)結(jié)構(gòu)與數(shù)組,涉及數(shù)據(jù)結(jié)構(gòu)中的排序與查找。在該案例中穿插介紹了數(shù)據(jù)結(jié)構(gòu)課程中的直接插入排序、冒泡排序、簡單選擇排序和順序查找;通過介紹C++中的排序函數(shù)qsort()激發(fā)學生自覺地學習C++標準模版庫;并提出如何保存學生信息以避免重復輸入數(shù)據(jù)的問題,引導學生自學C語言中的文件操作,培養(yǎng)學生的再學習能力。在算法分析與設計課程的教學中,我們采用了“任務驅(qū)動”教學方法,將具體的算法設計策略融入到一些“任務”中,課堂教學以任務為主,引導學生利用算法設計策略探索解決方案,在課后的實踐環(huán)節(jié),將結(jié)合實際應用且融入了知識點的任務放到ACM/ICPC在線評測系統(tǒng)上,讓學生在課后根據(jù)任務描述,自主探索問題解決方案,并提交程序代碼。
在教學過程中,對典型例題力求講透徹,并提出問題給學生思考。如斐波拉契數(shù)列,講解了分別使用變量交換的循環(huán)結(jié)構(gòu)、使用數(shù)組的循環(huán)結(jié)構(gòu)和遞歸三種編程方法,并比較了三種方法的優(yōu)缺點,使學生深刻體會到了采用遞歸求解斐波拉契數(shù)列的低效,引導學生理解使用數(shù)組的高效是基于算法分析與設計課程中的動態(tài)規(guī)劃的思想,并且穿插介紹了數(shù)據(jù)結(jié)構(gòu)課程中算法的時間復雜度與空間復雜度的度量;再提出大斐波拉契數(shù)列的求解問題,介紹使用數(shù)組進行高精度計算以及使用矩陣和二分法的求解方法,激發(fā)了學生的學習積極性。在例題的講解過程中,充分利用多媒體教學手段,加強了例題講解過程中的現(xiàn)場調(diào)試與分析,鼓勵學生對具體問題進行分析和研究,培養(yǎng)學生的邏輯分析和判斷能力,重視上機訓練,養(yǎng)成良好的編程習慣。
3.3加強實驗教學
這三門課程都是理論與實踐并重的課程,在教學中必須將理論教學與實踐教學緊密結(jié)合。我們從以下幾個方面來加強實驗教學:
1)重新編寫實驗指導書。按照教學內(nèi)容的知識點,綜合可操作性、趣味性和適當?shù)碾y度,編寫了適合教學要求的實驗指導書,既保證了實驗的可完成性,又增強了學生的興趣。
2)建立在線題庫。在ACM/ICPC在線評測系統(tǒng)上開設了C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、算法分析與設計的專題訓練,每個專欄按照教學知識點安排了不同難度的練習題,學生可以根據(jù)自身的能力,完成相應等級的題目,在探索與解決問題的過程中獲得學習成就感。
3)組織程序設計比賽。ACM/ICPC在線評測系統(tǒng)上安排了與教學知識點相關的競賽真題,鼓勵學生組隊、按照比賽規(guī)程進行模擬比賽。通過比賽,學生對教學知識點有了更深入的理解,不僅增強了學生的實踐動手能力,提高了學習興趣和積極性,也使學生提前了解ACM比賽的規(guī)則和比賽真題,訓練了學生的參與意識、競爭意識和團隊精神,為以后組織學生參加省程序設計比賽打下良好的基礎。
4)開設課程設計。課程設計的題目以典型的問題或?qū)嶋H的工程為主,如數(shù)據(jù)結(jié)構(gòu)課程選用了“教務計劃編制問題”,讓學生運用圖論中的拓撲排序來求解這個實際問題。通過課程設計,培養(yǎng)了學生綜合運用所學知識進行分析和解決實際問題的能力,使學生不僅學到了解決問題的辦法,同時加深了理論的理解與掌握,做到了理論教學與實踐緊密結(jié)合。
3.4改革考核與評分標準
考試作為課程教學的一個重要環(huán)節(jié),對學生的學習具有明顯的導向作用。這三門課程原來的考核分為平時成績和期末考試,這樣的考核方式很難考察學生的實踐能力,導致大部分學生只注重期末考試,而忽略學習過程,很難有效的提高學生的創(chuàng)新能力和實踐能力。我們認為這三門課程的考核應著重考核學生的程序設計能力,而不是死記硬背一些基礎知識。為此,我們引入了ACM/ ICPC在線評測系統(tǒng)及,對課程的考核進行了大膽改革,評分標準也作了修改,提高實驗考核成績在課程總評成績中的比重,以此來引導學生認真對待實驗和課程設計,切實提高學生的實踐動手能力。
4結(jié)束語
實踐證明,將C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、算法分析與設計這三門課程有機結(jié)合的教學改革,能夠很好地激發(fā)學生的學習興趣,學生在掌握基本理論和知識的同時,程序設計能力、數(shù)據(jù)結(jié)構(gòu)和算法設計的應用能力也得到了很好的培養(yǎng),我校學生在近二年的湖南省程序設計比賽中均取得了較好的成績。
參考文獻:
[1]譚浩強. C程序設計(第2版) [M].北京:清華大學出版社,2005.
篇3
關鍵詞:計算思維;實踐教學;面向?qū)ο蟪绦蛟O計;數(shù)據(jù)結(jié)構(gòu)
中圖分類號:G642.0 文獻標志碼:A?搖 文章編號:1674-9324(2013)39-0203-03
目前,計算思維已在教學當中逐步應用,但是,其本身還未成為獨立的學科體系,教學中的應用只是少數(shù)專家學者進行小規(guī)模探索性的實驗性教學,在培養(yǎng)過程中沒有系統(tǒng)性的應用計算思維的系列方法[1]。本文對OOP課程中計算思維培養(yǎng)的實踐教學進行了嘗試。
一、計算思維
計算思維是當前國際計算機界廣為關注的一個重要概念,也是當前計算機教育需要重點研究的課題。2006年3月,時任美國卡內(nèi)基·梅隆大學(CMU)計算機科學系主任、現(xiàn)任美國基金會(MSP)計算機和信息科學與工程部(CISE)主任的周以真(Jeannette M.Wing)教授,在美國計算機權(quán)威刊物(Communications of the ACM)上,首次提出了計算思維(Computational Thinking)的概念:“計算思維是運用計算機科學的基礎概念去求解問題、設計系統(tǒng)和理解人類的行為。它包括了涵蓋計算機科學之廣度的一系列思維活動?!睂τ谟嬎銠C科學的重要性,美國總統(tǒng)信息技術咨詢委員會認為:雖然計算本身也是一門學科,但是其具有促進其他學科發(fā)展的作用,21世紀科學上最重要的、經(jīng)濟上最有前途的前沿研究都有可能通過先進的計算技術和計算科學而得到解決[3]。《中國至2050年信息科技發(fā)展路線圖》報告指出:計算思維是克服狹義工具論的有效工具,是解決其他信息科技難題的基礎[4]。
二、面向?qū)ο蟪绦蛟O計
面向?qū)ο缶幊碳夹g從根本上改變了人們以往設計軟件的思維方式,降低了軟件開發(fā)的復雜度,能夠開發(fā)出具有高可靠、可重用和易維護的軟件,提高軟件的開發(fā)效率,是現(xiàn)今軟件開發(fā)的主流技術,對信息科學、軟件工程、人工智能以及系統(tǒng)科學等學科產(chǎn)生了巨大而深遠的影響[6]。
面向?qū)ο蠓椒ㄅc人類習慣的思維方法一致。
面向?qū)ο蟮姆椒ㄍㄟ^獲取客戶對系統(tǒng)的需求,建造需求模型;用基本的需求為指南來選擇類和對象,定義類的結(jié)構(gòu);由客觀實體的一般和特殊關系定義類的層次;而后建造對象關系模型,對象行為模型[7]。因此,面向?qū)ο筌浖O計通過抽象和分解來控制龐雜的任務或進行巨型復雜系統(tǒng)的設計,其分析過程是一個把問題闡釋為如何求解它的思維方法。
三、計算思維培養(yǎng)與程序設計工程化訓練
程序設計課程中,強調(diào)學生對語言規(guī)則的掌握和對基本編程能力的培養(yǎng),而不重視工程化思想的潛移默化,容易造就個體化編程思想的孕育。按照軟件工程理論,軟件研發(fā)過程中存在的軟件危機問題,一方面與軟件本身的特點有關,另一方面是由于軟件開發(fā)與維護過程中方法的不正確決定的。與軟件開發(fā)和維護有關的許多錯誤認識和做法的形成,可以歸結(jié)為在計算機系統(tǒng)的早期階段軟件開發(fā)的個體特點。錯誤的認識和做法主要表現(xiàn)為忽略或輕視軟件分析、設計的重要性,對問題和目標沒有正確認識的情況下,就匆忙進行代碼實現(xiàn),認為軟件設計就是編寫程序并設法使之運行。
程序設計課程涉及到了詳細設計階段、程序?qū)崿F(xiàn)階段的軟件開發(fā)工作。詳細設計階段的根本目標是確定怎樣具體地實現(xiàn)所要求的系統(tǒng),經(jīng)過這個階段的設計工作,應該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。詳細設計階段的任務不是具體的編寫程序,而是要設計出程序的藍圖,以后程序員根據(jù)這個藍圖寫出實際的程序代碼。因此,詳細設計的結(jié)果基本上決定了最終的程序代碼的質(zhì)量??紤]程序代碼的質(zhì)量時,必須注意程序的讀者除了計算機還有維護程序的程序員。在軟件的生命周期中,涉及測試方案、診斷程序錯誤、修改和改進程序等都必須首先讀懂程序。實際上對長期使用的軟件系統(tǒng)而言,人讀程序的時間可能比寫程序的時間要長得多。因此,衡量程序的質(zhì)量不僅要看它的邏輯是否正確,性能是否滿足要求,還看它是否容易閱讀和理解。
因此,在語言訓練的過程中,培養(yǎng)學生在掌握語言規(guī)則的基礎上,先進行問題分析,算法設計,最后代碼實現(xiàn)的程序設計過程,與培養(yǎng)學生的計算思維是一致的。
四、案例教學及題解多樣性
程序設計在計算機學科知識體系中處于核心地位,對計算機專業(yè)的學生來說不僅是職業(yè)技能的培養(yǎng),也體現(xiàn)著創(chuàng)造性思維的信息素質(zhì)培養(yǎng)過程。程序設計也是有形表達抽象思維的方法,在程序設計過程中貫穿閱讀判斷、分析思考、工具利用、抽象表達、綜合創(chuàng)造等多項技能,對計算機專業(yè)人才素質(zhì)的培養(yǎng)至關重要[8]。程序設計實驗教學的教育價值在于突出計算思維,培養(yǎng)學生的創(chuàng)新意識、探索精神和問題求解能力。課程目標不僅僅是培養(yǎng)學生的操作技能,還要通過強調(diào)算法多樣性來提高學生的計算思維能力[9]。教學過程中要使學生經(jīng)歷算法化過程并體驗計算思維,它有利于培養(yǎng)學生的理性思維和形式邏輯能力。培養(yǎng)學生通過計算機編程,最終形成計算思維[10]。
下面列車車廂重排的實例,對面向?qū)ο蠓椒▉碚f,涉及到類的設置,類的繼承,功能的擴展等重要知識。對于培養(yǎng)學生的計算思維有較好的作用。一方面可以對棧數(shù)據(jù)結(jié)構(gòu)算法的特點加深理解,對其的應用有較深了解,另一方面,在解決問題的過程中,引導學生形成解決問題的思路,鼓勵不同的解決方案,用一定的形式將形成的思路描述下來,最后完成程序的設計。數(shù)據(jù)結(jié)構(gòu)的基本算法與程序設計課程相結(jié)合,在教學內(nèi)容上相融合,加強了課程之間的聯(lián)系,將孤立的知識點聯(lián)系起來。
一列貨運列車共有n節(jié)車廂,每節(jié)車廂將停放在不同的車站。假設n個車站的編號分別為1~n,貨運列車按照第n站至第一站的次序經(jīng)過這些車站。車廂的編號與它們的目的地相同。為了便于從列車上卸掉相應的車廂,必須重新排列車廂,使得個車廂從前至后按照編號1~n的次序排列,當所有的車廂都按照這種次序排列時,在每個車站只需卸掉最后一節(jié)車廂即可[11]。將在一個轉(zhuǎn)軌站里完成車廂的重排工作,假設在轉(zhuǎn)軌站中有一個入軌、一個出軌和k個緩沖軌道(位于入軌和出軌之間),如圖1所示。
任務分析:在重排的過程中,車頭只能將車廂在入軌、轉(zhuǎn)軌、出軌三者之間移動,車頭不能跳躍到車廂之間,車廂的進出操作符合后進先出的特點。因此,可以該重排可以利用棧數(shù)據(jù)結(jié)構(gòu)。一般,棧的基本算法包括進棧、出棧、取棧頂元素值、棧判空、棧判滿和棧的初始化操作。進行車廂重排,需要在棧中遍歷,查找指定編號車廂的位置。因此,可以進行公有派生,在派生類中增加遍歷和查找操作。
方案一:在待排車廂中查找最小編號車廂,依次排入出軌棧。
A?搖在緩沖軌A和入軌棧查找最小編號車廂,如果所有車廂遍歷完成,轉(zhuǎn)F;
B?搖如果最小編號在緩沖軌A,則將最小編號車廂至最尾的車廂依次通過轉(zhuǎn)軌棧,進入到入軌棧;
C?搖將緩沖軌A尾車廂(編號較?。┩ㄟ^轉(zhuǎn)軌棧進入出軌棧,轉(zhuǎn)A;
D?搖如果最小編號在入軌棧,則將最小編號車廂至最尾的車廂依次通過轉(zhuǎn)軌棧,進入到緩沖軌A;
E?搖將入軌棧尾車廂(編號較小)通過轉(zhuǎn)軌棧進入出軌棧,轉(zhuǎn)A
F?搖重排完成。
方案二:同時在待排車廂中查找最小和最大編號車廂,小編號車廂依次排入出軌棧,大編號車廂排入緩沖軌B,待排車輛處理完成后,將出軌車輛和緩沖軌B中的車輛鏈接,即可完成重排。
A?搖在緩沖軌A和入軌棧查找最小、最大編號車廂,如果所有車廂遍歷完成,轉(zhuǎn)F;
B?搖如果最小編號在緩沖軌A,則將最小編號車廂至最尾的車廂依次通過轉(zhuǎn)軌棧,進入到入軌棧;如果最大編號在緩沖軌A,則將最大編號車廂至最尾的車廂依次通過轉(zhuǎn)軌棧,進入到入軌棧;
C?搖將緩沖軌A尾車廂(編號較?。┩ㄟ^轉(zhuǎn)軌棧進入出軌棧;最大編號車廂通過轉(zhuǎn)軌棧進入緩沖軌B,轉(zhuǎn)A;
D?搖如果最小編號在入軌棧,則將最小編號車廂至最尾的車廂依次通過轉(zhuǎn)軌棧,進入到緩沖軌A;如果最大編號在入軌棧,則將最大編號車廂至最尾的車廂依次通過轉(zhuǎn)軌棧,進入到緩沖軌A;
E?搖將入軌棧尾車廂(編號較?。┩ㄟ^轉(zhuǎn)軌棧進入出軌棧;最大編號車廂通過轉(zhuǎn)軌棧進入緩沖軌B,轉(zhuǎn)A;
F?搖將緩沖軌B中車廂順序鏈接到出軌棧,重排完成。
方案一和方案二的區(qū)別,在于是否查找最小編號車輛的同時查找最大編號車輛。方案二提高了重排的效率。
由于數(shù)據(jù)結(jié)構(gòu)具有抽象性和靈活性等特點,這給教學和學習帶來一定的困難。從算法的一題多解入手,對培養(yǎng)學生學習興趣和提高其程序設計及編程實踐能力起到了極大的促進作用[12]。
五、結(jié)束語
程序設計課程在計算機相關專業(yè)的作用不僅是掌握一門計算機語言,更重要的是通過這樣一個平臺,理解計算機一些重要的理論和方法,并將這些方法用于實踐,解決實際問題。在程序設計課程中,有意識地將課程之間的內(nèi)容融合,開展案例教學,將軟件工程的軟件開發(fā)過程和方法貫穿于課堂和實踐教學活動中,不僅有利于培養(yǎng)學生的職業(yè)能力,也有利于對學生計算思維的培養(yǎng)。
參考文獻:
[1]牟琴,譚良.計算思維的研究及其進展[J].計算機科學,2011,(3):10-15,50.
[2]Wing J putational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[3]President’s Information Technology Advisory Committee. Computational Science:Ensuring America’s Competitiveness[EB/OL].http://nitrd.gov/pitac/reports/20050609_computational/computational.pdf,June 2005.
[4]中國科學院信息領域戰(zhàn)略研究組.中國至2050年信息科技發(fā)展路線圖[M].北京:科學出版社,2009.
[5]陳國良,董榮勝.計算機思維與大學計算機基礎教育[C].第一屆“技術思維與大學計算機課程教學改革研討會”,西安交通大學教師教學發(fā)展中心,高等教育出版社,2012.07:21-26.
[6]張海藩.軟件工程導論(第5版)[M].北京:清華大學出版社,2008.2.
[7]錢樂秋,趙文耘,牛軍鈺.軟件工程[M].北京:清華大學出版社,2007.3.
[8]耿國華.程序設計能力培養(yǎng)模式的探索與實踐[J].中國大學教學,2009,(3):30-32.
[9]陳杰華,戴麗娟.以培養(yǎng)計算思維為核心的程序設計實驗教學[J].實驗技術與管理,2011,(1):125-127.
[10]陳杰華.程序設計課程中強化計算思維訓練的實踐探索[J].計算機教育,2009,(2):84-85.
[11]曹衍龍,林瑞仲,徐慧.C語言實例解析精粹(第二版)[M].北京:人民郵電出版社,2007.8.
[12]吳紹兵.計算思維和程序設計能力的培養(yǎng)[J].計算機教育,2011,(16):11-14,25.
篇4
關鍵詞:翻轉(zhuǎn)課堂;教學模式;C程序設計
1概述
翻轉(zhuǎn)課堂是學生在課前采用視頻方式進行學習,在課堂教學過程中通過測試,討論多種形式對知識掌握的一種新的教學模式,它打破了傳統(tǒng)課堂知識老師講授方式,將知識講授和知識理解翻轉(zhuǎn),形成“視頻———課堂———討論”的學習形式,將傳統(tǒng)課上學習,課下練習進行翻轉(zhuǎn)。教師將“上課內(nèi)容”提前錄制教學視頻,并在課前布置學習任務清單,學生在清單的引導下自主學習視頻內(nèi)容,課上內(nèi)容由原來的上課改變?yōu)槔蠋熀屯瑢W們互相探討疑難問題,教師不再局限于單純的課堂教授,而是學生自主學習的指導者,學生在課堂中充分發(fā)揮了學習主動性。
2傳統(tǒng)教學模式的存在問題
傳統(tǒng)教學模式中,存在三方面的主要問題。其一是由于程序設計類大部分課程課時縮減,教師為了按照教學大綱要求完成課程內(nèi)容講授,導致對學生比較難以掌握的知識點不能充分講解,學生在課堂中遇到的困難逐漸增多,慢慢也會就失去了學習的興趣;其二課堂教學目前普遍存在以教師為中心的“滿堂灌”、多采用多媒體課件授課方式更加劇了老師照本宣科的現(xiàn)象,課堂缺乏互動,教師和學生在整個課堂教學過程中幾乎零交流,學生自主學習的主動性幾乎被完全扼殺了;其三是傳統(tǒng)的試卷型考核方式,教師在考試前畫重點,學生針對重點突擊復習,應付考試,在這種考核方式下,學生的創(chuàng)新能力沒有發(fā)揮的空間,使得經(jīng)常出現(xiàn)考試拿高分,但實踐能力測試時不能有滿意成績現(xiàn)象。
3程序設計類課程翻轉(zhuǎn)課堂教學模式
程序設計類課程翻轉(zhuǎn)課堂教學模式是結(jié)合我校計算機專業(yè)程序設計課程特點和學生特性相結(jié)合,進行翻轉(zhuǎn)課堂式教學模式研究與實踐。主要包括以下幾個方面:
3.1構(gòu)建適合我校本土化的翻轉(zhuǎn)課堂教學模式和實施規(guī)則
選擇C語言程序設計課程成為研究對象,以課前教學資源設計,課堂組織活動,學生參與性,能動性以及教學效果反饋為主運用課例分析法、觀察法、歸納法等進行分析總結(jié)構(gòu)建出合適我校本土化的翻轉(zhuǎn)課堂教學模式和實施規(guī)則。
3.2建設“翻轉(zhuǎn)課堂”的課程教學資源
對中國大學MOOC提供的浙江大學翁凱教授開設的C語言程序設計幕課進行異步SPOC,針對本校專業(yè)要求和學生特點,在浙大的幕課資源基礎上進行修改,增加新的視頻、課件、習題等信息資源、重構(gòu)新的基于“翻轉(zhuǎn)課堂”的信息資源,形成不斷優(yōu)化的資源庫。
3.3設計翻轉(zhuǎn)課堂教學模式下“課前預習菜單”
課前預習菜單是幫助學生在課前明確具體學習任務、學習方法。學生在菜單引導下,課前利用網(wǎng)絡學習平臺開展課前視頻自學、測試,為課堂討論做好充分準備。
3.4重建翻轉(zhuǎn)課堂教學模式下的課堂教學活動的基本結(jié)構(gòu)
在翻轉(zhuǎn)課堂教學模式下,課內(nèi)教師是引導者,學生是課堂的主體,教師需要提前對課堂教學活動進行總體規(guī)劃設計,設置小組討論的主題,組織學生在課堂上圍繞此主題討論,通過討論提升學生“吸收內(nèi)化”學習過程效果,從而讓學生成為課堂的主人,學生在課堂上達到人到,心到,手到效果。
3.5建立翻轉(zhuǎn)課堂教學模式中形成性考核評價體系
在翻轉(zhuǎn)式教學的全過程,從線上學習、課堂小組表現(xiàn)、課堂個人表現(xiàn)、上機實驗、期中考核、期末考核等方面設立考核評價指標,目的在分析翻轉(zhuǎn)課堂教學活動中存在的問題和改進的方向,便于及時進行調(diào)整。
4C語言翻轉(zhuǎn)課堂教學實施
在借鑒各類對翻轉(zhuǎn)課堂教學模式與實踐的研究基礎上,結(jié)合《C語言程序設計》課程的特點和學生的學習特征,翻轉(zhuǎn)課堂模式組織的課堂教學組織過程一般分為兩個階段,第一階段為回顧測試,主要是對慕課學習情況總結(jié),慕課測試中普遍出現(xiàn)問題講解,以及針對慕課中重點掌握的知識點進行課堂測試,培養(yǎng)學生掌握對自學知識的靈活運用能力。第二階段為進階學習階段,在高校教學中借助慕課讓學生在課前完成理論知識學習可以在課堂中有更多時間培養(yǎng)學生對知識運用能力和創(chuàng)造力,但同時也要考慮到如果將所有教學內(nèi)容放到慕課上讓學生先行學習,學生一方面會出現(xiàn)因有些教學內(nèi)容難度過大,學生無法掌握現(xiàn)象,導致課堂討論教學活動開展受限,另一方面也會打擊學生對課程學習的積極性。因此本課程的慕課的教學內(nèi)容只放置容易理解的,簡單的一部分教學內(nèi)容,教學重點,難點在課堂上除了講授之外,還采用多種形式引導學生深入學習。
篇5
關鍵詞:C語言程序設計;以應用為本位;啟發(fā)式教學
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2013)10-2412-03
C語言功能豐富,應用面廣,當下,很多高校依然把C語言作為非計算機專業(yè)學生的一門通識平臺課開設。然而,在C語言課程的開設過程中,教師和學生不同程度地存在著缺位和誤區(qū),教與學的效果不盡如人意。在C語言的教學過程中,不少任課教師因循守舊,教學目標不清,教學方法單一,教學觀念陳舊,使C語言的課堂蛻化為單純的語法規(guī)則的灌輸,使C語言的學習變?yōu)楹唵蔚恼Z法知識的學習,學生普遍反映難學厭學。C語言程序設計課程一般面向的都是大學一年級的新生,他們剛剛結(jié)束高中生活步入大學校園,對一切充滿了新鮮感和不適應感,學習觀念、學習目的和學習方法有待轉(zhuǎn)變和調(diào)整,學習的主體意識和自覺性有待增強和提高。針對這些問題和現(xiàn)象,筆者在自己的教學過程中進行一些了探索和實踐,取得了一定的效果。
1 教師自覺轉(zhuǎn)變教學觀念,提高自身素質(zhì)
縱觀C語言程序設計課程的教學,現(xiàn)在最典型影響面最大的教學模式就是由教師和學生構(gòu)成一個教學體,教師在講臺上自我表演,學生充當看客或聽眾【1】。所謂知識也好、信息也好,都是一個從教師到學生的單向流動。在這種以教師為主導、以教材為核心、以課堂為中心的教學模式下,教學蛻化成為一種單純的知識傳授,學生學習的積極性和主動性的調(diào)動,學生創(chuàng)新能力和創(chuàng)新思維的培養(yǎng),都無從談起。面對這樣的現(xiàn)狀和背景,教師教學觀念的轉(zhuǎn)變和自身素質(zhì)的提高顯得尤為重要。本著對學生負責,對學校負責的態(tài)度,教師應在自身責任感的驅(qū)使下,主動了解先進的教育思想和教學理念,像教學互動性、學生主體性和知識建構(gòu)性等等;認真思考大學教育的功能,比如授人以魚還是授人以漁;結(jié)合教學實際,轉(zhuǎn)變教學觀念,改變傳統(tǒng)的教與學的地位,由過去的“以教師為中心”轉(zhuǎn)變?yōu)椤敖處熤鲗?,以學生為主體”,營造民主的教學氛圍;改變課堂老師單向灌輸、學生被動聽講的授課模式,引入多元化的教學方法,比如啟發(fā)式,探究式,引導學生獨立思考,鼓勵學生主動參與學習。
2 引導學生轉(zhuǎn)變學習觀念,培養(yǎng)學生學習的主體意識
C語言程序設計課程的開設面對的多數(shù)是大學一年級的新生,而對于剛?cè)胄5拇髮W生來說,受中學養(yǎng)成的學習習慣的影響,學習的自主意識淡薄,學習還習慣性地全部寄托在老師身上,對老師的依附心理嚴重。同時,面對大學里比中學多得多的自由學習時間不知如何有效地管理和支配,對新的學習環(huán)境和新的學習生活有不同程度的不適應和困惑。面對這樣一個處在比較特殊階段的學生群體,承擔C語言程序設計課程的任課教師要有針對性對學生進行引導和管理。首先,任課教師從一開始就讓學生明確一個觀點,即C語言是學生自己學會的,而不是老師教會的。俗話說,“師傅領進門,修行在個人”,盡管教師的教在教學活動中起著主導作用,但更重要的是學生的學,學習的主體是學生本人,只有學生充分發(fā)揮自己學習的自覺性和主動性,教師的教學思想才能得到很好地貫徹,教學效果才能得到很大的提高,整個學習活動也才會成功。其次,強化學生的責任意識。對絕大多數(shù)學生來說,如果單從年齡判斷,步入大學校園也往往意味著步入成年人的行列。而成年人也就意味著要對自己負完全責任了。教師在教學過程中要不斷強化學生對這一點變化的認知,讓他們知道要對自己負責,對自己的學習負責,而不應再完全依賴教師或家長的監(jiān)督。最后,教師的指導和管理。學習觀念的轉(zhuǎn)變,新的學習習慣的養(yǎng)成,不是一蹴而就的事情,需要在實際的學習活動中逐步完成。課前的預習、課堂的參與、課后的作業(yè)、實驗的完成、期末的考試等是C語言教學活動不可或缺的環(huán)節(jié),每一個環(huán)節(jié)里需要學生完成的任務,任課教師從一開始都給出一個明確的要求并嚴格按照要求去管理,將大大有益于轉(zhuǎn)變學生的學習觀念,培養(yǎng)學生學習的主體意識。
3 激發(fā)學生的學習興趣,調(diào)動學生學習的積極性
在C語言程序設計課程的教學過程中,往往有學生反映C語言比較抽象,課堂教學又枯燥無味,很容易喪失學習的興趣和熱情。如何激發(fā)學生學習C語言的興趣并始終保有這種興趣,也常常是教授C語言課程的老師很頭疼且又不能回避的問題?!芭d趣是最好的老師”,每位教師都深知學生的學習興趣對教學活動成功的重要性,但C語言程序設計課程側(cè)重思維訓練的特點又決定了在這方面留給任課教師的空間是有限的。筆者在自己的教學實踐中做了一些嘗試。
1)演示典型的完整的C語言應用,培養(yǎng)學生的學習興趣
學生在學習C語言程序設計課程之初,對該門課程的學習目的和學習目標多數(shù)是模糊的,對C語言的認識也多半是空白,任課教師適當?shù)囊龑Ш苋菀滓饘W生學習的興趣和探究的欲望,因此該門課程的開篇很重要。筆者摒棄了以往通過文字抽象地介紹C語言的產(chǎn)生、C語言的特點和C語言的應用的做法,直接從演示典型的完整的C語言的應用開始。演示的程序有難有易,涉及的范圍涵蓋實際生活中的應用、有趣的數(shù)學問題、圖形動畫、游戲等。筆者一度選擇了圖書管理系統(tǒng)、文本編輯器、學生成績管理系統(tǒng)、兔子產(chǎn)子問題、百錢百雞問題、圖形時鐘、撲克牌的自動發(fā)牌、猜數(shù)游戲、五子棋游戲等應用,引起了學生濃厚的學習興趣。
2)營造輕松的學習氛圍,創(chuàng)造愉快的學習體驗,強化學生的學習興趣
要引起學生對C語言一時的興趣不是一件難事,但要讓學生在整個C語言程序設計課程的教學過程中始終抱有這樣的學習興趣就不是一件易事了。哪位任課教師做到了這一點,他的教學活動無疑就是成功的。C語言比較抽象,課堂教學容易枯燥無味,是一個不爭的事實。為此,在實際的教學活動中,選擇難易適中貼近生活的問題,比如利息的計算、持有的股票價值的計算、學生成績的管理、募捐活動的模擬等;涉及C語言的語法特性時,盡量使用生活化的直白的語言,少用專業(yè)術語;課堂教學的開展過程中鼓勵學生積極參與,對學生提出的任何有意義的問題都及時地給予肯定;面對問題,對學生做出的任何有價值的回答都及時地給予表揚,都有助于營造輕松的學習氛圍,有助于讓學生體驗到成功的歡樂,有一種成就感,有助于強化學生學習的學習興趣和熱情。
4 踐行以應用為本位的教學思路,有選擇性地采用以知識為本位的教學思路
C語言程序設計課堂教學的組織有兩種思路兩種模式。一種是以知識為本位的教學思路下形成的“建筑模式” 【2】,課堂教學以講授語法為主,先是提出語法概念,然后解釋該語法概念,最后舉例說明其應用,強調(diào)先系統(tǒng)學習理論打下寬厚的理論基礎,然后再進行應用,講究的是理論的系統(tǒng)性與嚴密性。另一種是以應用能力為本位的教學思路下形成的“生物模式”,課堂教學以程序設計為中心,以編程為目的,從應用的角度切入,先是提出問題,然后引導學生分析解決問題,最后著重介紹涉及的C語言的語法特性,強調(diào)結(jié)合應用學習必要的理論知識,隨著應用的展開,編程難度的逐步提高,算法和語法的學習同步趨向深入,有利于學生能力的培養(yǎng)。
C語言系人工設定的具有確定內(nèi)涵的概念和知識體系[3],同時C語言程序設計又是一門實踐性很強的學科。為此,在C語言程序設計課堂教學的組織上,筆者始終踐行以應用為本位的教學思路,同時根據(jù)課程內(nèi)容的特點有選擇性采用以知識為本位的教學思路,比如C語言中的基本數(shù)據(jù)類型、運算符和表達式、文件等基本概念和語法知識,在教學中只需把規(guī)定的內(nèi)容闡述清楚,使學生理解并接受,同時又不破壞這些理論知識的系統(tǒng)性,就適宜采用以知識為本位的教學思路。
5 根據(jù)課程內(nèi)容特征,選擇靈活多樣的教學方法
教學方法是在教學過程中,教師為了實現(xiàn)教學目的、完成教學任務而采取的教與學相互作用的活動方式的總稱。C語言程序設計課程的教學目的是使學生掌握用C語言進行程序設計的基本思想和方法,并具有靈活應用這些思想和方法分析解決實際問題的能力。實現(xiàn)這一教學目的要完成的教學任務包括C語言基本語法的介紹,結(jié)構(gòu)化、模塊化程序設計思想和方法的引入,基本程序設計訓練以及程序調(diào)試方法的演示等。面對這些多樣的教學目標和任務,靈活多樣的教學方法的選擇和恰當應用成為必須。筆者在自己的教學實踐中,結(jié)合課程內(nèi)容的特點,有選擇性地應用了如下的教學方法。
1)啟發(fā)式教學,引導學生思考,在應用中學習。
在C語言程序設計的課堂教學中,根據(jù)課程內(nèi)容的特點,精心設計任務或場景,引導學生發(fā)現(xiàn)問題、思考問題,使學生在啟發(fā)誘導下獲取知識,解決學習中的疑難問題。比如,在引入數(shù)組時,筆者設計了這樣一個任務,即編寫一個C語言成績管理程序,要求能夠統(tǒng)計出學生C語言成績的平均分、最高分、最低分以及各個分數(shù)段的人數(shù)(為了說明問題的方便,假設當前要處理的有10個學生的成績)。第一步,引導學生描述出10個學生的成績。根據(jù)之前的學習經(jīng)驗,學生很容易想到用10個float類型的簡單變量表示,比如score1,score2,、、、,score10。第二步,為節(jié)省時間,直接給出用這10個相互獨立的簡單變量實現(xiàn)的程序,引導學生觀察。在學生感嘆程序復雜之余,帶領學生讀程序,引導學生發(fā)現(xiàn),當前的程序無論是成績的錄入、求學生成績的最高分、最低分,還是統(tǒng)計各個分數(shù)段的人數(shù),對每位學生成績的處理方法都是一樣的,存在大量的相似的操作。同時提出問題,這些相似的操作能不能用循環(huán)結(jié)構(gòu)描述和實現(xiàn),讓學生思考。誘導學生分析發(fā)現(xiàn),要想用循環(huán)結(jié)構(gòu)描述這些相似的操作,學生成績的描述必須有一個統(tǒng)一的表示方法。適時地給出score[i]這一表示方法,指出讓i從0到9變化表示10個學生的成績,和學生一塊用該表示形式改寫之前程序的關鍵部分。讓學生比較改寫前后的兩個程序,很容易得出結(jié)論,用score[i]描述批量數(shù)據(jù),方便和循環(huán)結(jié)合起來使用,數(shù)據(jù)的處理更為有效。最后指出score[i]這一描述形式就是數(shù)組,接下來介紹數(shù)組的定義完善改寫后的程序。
和學生一塊模擬執(zhí)行該程序,由之前的知識積累學生知道,形參m、n和實參a、b對應的是不同的存儲單元,m、n和temp是自動變量,從變量的作用域和生存周期的角度,容易得出一個讓學生意外的結(jié)論,該swap函數(shù)中形參m、n值的交換影響不到實參a、b。在學生詫異之余,啟發(fā)學生思考,誘導學生嘗試給出不同的解決方法。往往有學生提出定義a、b為全局變量,誠然這不失為一種解決方法,在鼓勵學生的同時,再次誘導學生發(fā)現(xiàn)問題的關鍵并在此基礎上找解決方法。和學生一塊梳理思路,發(fā)現(xiàn)swap函數(shù)中形參m、n值的交換傳遞不到實參a、b,一方面是因為彼此對應的是不同的存儲單元,另一方面是由于變量的作用域和生存周期的問題。學生提出的定義a、b為全局變量的解決方法顯然是從后者考慮的,現(xiàn)在有意識地誘導學生只從前者考慮,讓學生大膽假設在什么樣的前提下形參m、n值的交換即是實參a、b值的交換。毋庸置疑,只有當形參m、n和實參a、b對應的是相同的內(nèi)存單元時。在學生給出了這一假設之后,啟發(fā)學生思考該假設能不能成立以及如何成立。和學生一塊分析,要使形參m、n和實參a、b對應的是相同的內(nèi)存單元,表面上看它們不能是相同的類型,但實現(xiàn)又要求形參m、n操作的對象是實參a、b,顯然形參m、n操作的對象和實參a、b應該是相同類型,同時形參m、n指向的是和實參a、b相同的內(nèi)存單元,學生相對容易想到形參m、n應該是指向?qū)崊、b的指針變量,問題由此迎刃而解。最后結(jié)合該任務的完成引導學生總結(jié),在主調(diào)函數(shù)和被調(diào)函數(shù)之間雙向傳遞數(shù)據(jù)變化,全局變量和指針變量都是不錯的解決方法。
2)注重當堂實踐,現(xiàn)場編程互動,在學習中應用。
C語言程序設計是一門實踐性很強的課程,在踐行以應用為本位的教學思路的過程中,筆者不僅重視實驗課這一實踐環(huán)節(jié),更是把實踐延伸到課堂教學中。在帶領學生對特別設計的問題做了充分的分析之后,引導學生當堂實踐,或者師生現(xiàn)場編程互動,不僅可以調(diào)動學生學習的積極性,更能培養(yǎng)學生解決實際問題的能力。
參考文獻:
[1] 李克東.教育技術學研究方法[M].北京:北京師范大學出版社,2003:132-137.
篇6
一、課程教學改革措施
1.選取項目要明確教學目標VB課程具有數(shù)理思維高、邏輯性強的特點,但不少學生在邏輯數(shù)理思維方面是短板,所以制定教學目標時就不能過高。在實踐中,筆者認為VB課程教學目標不是培養(yǎng)程序員,而是讓學生快樂學習,培養(yǎng)學習興趣,引導感興趣的學生入門并有所提高,拋磚引玉,指導大多數(shù)學生掌握VB的學習方法,順利完成學習任務。
2.所選項目應與學生實際能力相適應所選項目難易度要考慮學生實際應用能力,符合學生的“最近發(fā)展需要”,充分考慮學生現(xiàn)有的文化知識、認知能力、年齡、興趣等特點,做到因材施教?,F(xiàn)在中技學生的數(shù)學和英語水平普遍較差,所以在理解VB程序時有一定的困難,特別是一些算法,而學生對動畫、繪畫、多媒體、游戲等比較感興趣。所以所選取項目要給予考慮,才能被大多數(shù)學生所喜愛,讓學生有自我發(fā)揮的空間,通過自己的努力能完成項目中的任務,從而使學生體驗到成功的快樂。標準要求可根據(jù)具體項目,不能制定得很高,如果學生難以完成,很容易知難而退,不利于他們自信心、成就感、學習興趣的培養(yǎng)。例如,讓學生完成一個如學生管理系統(tǒng)之類的項目。這種項目對中技學生不妥,如果教學對象是大學生,那么讓他們完成此類項目應該不成問題,但現(xiàn)在所要面對的是中技學生,他們的底子薄,理解力和自學能力都不如大學生,如果讓他們完成如管理系統(tǒng)之類的項目,那么效果肯定是不如人意的,隨之就會失去學習的興趣。
3.所選項目要分散實施的重點、難點掌握VB程序設計知識和技能是一個逐步積累的過程,項目選取時要考慮“項目”的大小、知識點的含量、前后的聯(lián)系等多方面的因素,有助于知識的理解和消化及技能的掌握?;谝陨显瓌t,就以設計學生成績管理系統(tǒng)項目為例來談談開發(fā)的過程。首先確定一個作品,開發(fā)一個學生成績管理系統(tǒng)為項目目標。教師指導全班學生成立一個VB項目開發(fā)部,教師就是開發(fā)部的經(jīng)理,指導學習項目,分析資料,使大家掌握所開發(fā)的項目有哪些主要功能,然后根據(jù)系統(tǒng)的功能確定整個系統(tǒng)由幾個窗體組成,對于中技學生,一般三個窗或四到五個窗體就足夠了。現(xiàn)在就以三個窗體為例,也就是封面窗體,登錄窗體,主控窗體,設計一個窗體需要一個任務小組,最后還要一個整合及評估考核小組,共確定4個小組。(1)第1小組由全班學習VB成績最好的5~6名學生組成,由課代表任組長,其余3個小組任務整合完成一件完整作品的任務。(2)第2小組的任務是完成設計兩個“封面窗體”的任務。小組成員特點:12~15名同學,1名組長,其余為組員,組長有較強的學習管理能力,對VB學習興趣高,有較強程序設計能力。組員中2/3是成績中上水平的學生,負責代碼編寫與調(diào)試程序,其余的為中下水平的學生,負責窗體設計,二者在組長協(xié)調(diào)下有機結(jié)合。在組長的帶領下開展工作,分配各位組員的任務內(nèi)容:①設計思路:快閃窗體(封面1),利用線條的橫向坐標X2每次增加30的方法或用進度條來產(chǎn)生線條延伸的動畫效果,用標簽顯示執(zhí)行進度,進度達到100%時卸載當前窗體。封面2:使用定時器控制“制作人:”“張三”兩個標簽從窗體的兩側(cè)向中間移動,窗體右下角用標簽顯示系統(tǒng)時間;單擊“進入”標簽,調(diào)用登錄窗體,單位“取消”,退出系統(tǒng)。②窗體中控件:標簽、圖像、線條、進度條、定時器控件的使用、屬性設置等。③窗體的布局、屬性設置。④設計運行代碼:變量、load、unload、show方法、click事件、if程序控制語句等的使用。⑤進行運行測試,調(diào)試運行沒有錯誤。⑥寫出開發(fā)報告,供其他小組閱讀。(3)第3小組的任務是完成設計“登錄窗體”任務。小組成員特點:10~12名同學,1名組長,其余為組員,組長有一定的學習管理能力,對VB學習興趣濃厚,有很強的程序設計和理解能力。組員盡可能分配成績中上水平的學生,分為負程序代碼設計和窗體設計兩個部分,學習后進生最好不要分配到該組,二者在組長協(xié)調(diào)下有機結(jié)合。在組長的帶領下開展工作,分配各位組員的任務內(nèi)容:①窗體中控件:標簽、組合框、文本框、圖像控件的使用、屬性設置等。②窗體的布局、屬性設置。③設計思路:使用組合框選擇用戶名,不同用戶在文本框中輸入不同的密碼,單擊“立即登錄”按鈕,判斷各用戶密碼是否正確。密碼錯誤時有提示,密碼正確時進入成績管理主控界面,單擊“退出登錄”返回。④設計運行代碼:load、unload、show方法、click事件、if雙分支程序控制語句等的使用。⑤進行運行測試,調(diào)試運行沒有錯誤。⑥寫出開發(fā)報告,供其他小組閱讀。(4)第4小組的任務是完成“主控窗體”任務。小組成員特點:班級中前幾個小組沒分配去的同學,1名組長,其余為組員,組長有特別強的學習管理能力,對VB學習有一定的興趣,有很強的窗體設計能力。組員可以是中等水平的學生,負責代碼設計,學習后進生負責窗體設計工作,二者在組長協(xié)調(diào)下有機結(jié)合。在組長的帶領下開展工作,分配各位組員的任務內(nèi)容:①設計思路:控制功能。在窗體的右邊利用框架控件組織三組功能,分別對應窗體左邊的三組功能標簽,單擊標簽時,切換顯示不同的功能界面。②窗體的布局、屬性設置。③窗體中控件:框架、標簽、圖像控件的使用、屬性設置等。④設計運行代碼:unload、show、hide方法、click事件等的使用。⑤進行運行測試,調(diào)試運行沒有錯誤。⑥寫出開發(fā)報告,供其他小組閱讀。最后由第1小組進行整合成一個完整的學生成績管理系統(tǒng),測試無誤后對工程文件壓縮,寫出完整的工程開發(fā)報告。還要通過各組開發(fā)報告對各小組進行評估考核打出分數(shù),全班公布。通過以上的改革實踐,既讓教師解放出來,做一些更高級的項目設計分析工作,也對全班學生分層指導,對不同小組成員的有機分配,充分發(fā)揮每個人的最大潛能,使每位成員都能體會到成功的快樂,學習的快樂,而且通過項目開發(fā),使學生通過明確任務目標的情況下,完成一個完整的作品,還可以培養(yǎng)一種團隊的協(xié)作意識。
二、VB項目化教學改革成效
篇7
關鍵詞:程序設計基礎;實踐教學;改革探討
中圖分類號:G423.7 文獻標識碼:A
1 引言(Introduction)
“程序設計基礎”是計算機專業(yè)的專業(yè)基礎主干課程,為計算機科學與技術、網(wǎng)絡工程和軟件工程方向的后繼專業(yè)課學習和獨立學習計算機高級語言打下基礎。配套的課程有“程序設計基礎實驗”,該課程配合“程序設計基礎”理論課教學,“程序設計基礎實驗”課程主要包括結(jié)構(gòu)化程序設計、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、共用體及文件等實驗內(nèi)容。本課程擬進行的實驗,將充實課程教學的內(nèi)容,提高學生的應用設計能力,它為學生學習“面向?qū)ο蟪绦蛟O計”“數(shù)據(jù)結(jié)構(gòu)”等其他與程序設計有關的后繼課程打下基礎。
“程序設計基礎”是教學難度較大的語言類課程。作為計算機程序的入門課程,是學生進一步接觸計算機學科領域知識的首門課程,因此,學生往往對理解程序設計的思維方式有一定的困難,對教學內(nèi)容難以很好的消化,對掌握良好的程序設計方法產(chǎn)生畏懼。通過本課程的學習,應讓學生了解計算機高級語言設計的特點,熟練掌握結(jié)構(gòu)化程序設計的方法,掌握程序設計的系統(tǒng)分析方法和將一般的數(shù)學模型轉(zhuǎn)換為程序的步驟以及編程設計方法,使學生初步具有獨立分析和獨立設計的能力。
關于課程教學實踐中的有關問題討論,已經(jīng)有若干論述[1,2]。本文就該課題進行更深入的探討,提出以下見解。
2 課程的目標定位與教學設想(Targeting andcurriculum ideas)
“程序設計基礎”課程的教學基本內(nèi)容,包含了過程型高級程序設計語言的基本內(nèi)容,及其程序設計方法學、算法基礎與數(shù)據(jù)結(jié)構(gòu)等相關方面的初步內(nèi)容。該課程定位為計算機專業(yè)的專業(yè)平臺課。本課程的培養(yǎng)目標是使學生掌握程序設計的基本思想和方法,并具有靈活應用這些思想和方法解決實際問題的能力。使學生具有:“較強的程序設計能力、良好的程序設計風格、優(yōu)秀的團隊精神”。在教學實踐中,根據(jù)本課程教學實施過程中存在的問題,以及課程自身的定位,應該重點考慮以下兩個方面的問題:
(1)程序設計能力的培養(yǎng)。建立良好的編程編寫能力和實踐訓練體系,使大多數(shù)學生能達到應有的基本編程訓練,并且使那些基礎較好的學生能得到更加多的訓練機會。
(2)教學內(nèi)容的傳授和組織。合理地組織好教學內(nèi)容,使之更好地反映課程教學的重點和學生對程序設計方法的認知規(guī)律;從而進一步解決教學內(nèi)容中的重點和難點,使學生對有關知識點能較好地理解。
3 組織教學中的探究性教學研究(Teaching and research organization teaching inquiry)
探究性學習是以培養(yǎng)學生探索能力、創(chuàng)新意識、合作精神為目的的學習方式,該模式使學生積極、主動地嘗試探究,并從中獲得大量的、各種各樣的體驗,從而提高綜合分析問題和解決問題能力,培養(yǎng)發(fā)散思維能力和勇于探索的良好個性品格,激發(fā)學生學習興趣,促進學生創(chuàng)新能力的發(fā)展及學習效果的提高。教師在課堂教學設計中要經(jīng)常引導學生深入挖掘教材中每個知識點的背景,我們可以應用多媒體技術配合教學,使學生通過觀察、類比、聯(lián)想、拓展,發(fā)現(xiàn)新問題,對知識進行深化和再創(chuàng)造。在思維活動的教學中,問題是誘發(fā)思維的直接動因,創(chuàng)設問題情景,把學生置于問題之中,激發(fā)學生興趣,誘發(fā)學生探究動機。
“程序設計基礎”這門課程教學內(nèi)容的組織方式采取這種模式進行,可以取得意想不到的效果。如我們在教學過程中可嘗試以程序語言知識為主線的方式進行探究式進行教學,這種方式主要是根據(jù)語言的表達功能,同時考慮到程序設計的相關學習進程,以較完整的語言表達模塊為基礎進行的教學探究。程序設計語言的核心主要是兩種表達功能:數(shù)據(jù)表達與控制表達。為了實現(xiàn)使用有限的語法表達客觀世界中的各式各樣的數(shù)據(jù)類型,程序設計語言在提供標準數(shù)據(jù)類型的同時,也提供了構(gòu)造數(shù)據(jù)類型的相關手段,比如數(shù)組、結(jié)構(gòu)、指針等;在控制表達語句方面,則提供了相關語句級控制(如分支、循環(huán))和模塊級控制(如函數(shù))。所以,以語言知識作為主線的教學探究組織方式,一般是以上述語言表達模塊為單位,并且考慮程序設計的學習進程來進行組織教學內(nèi)容。典型教學內(nèi)容的組織路線是:概論―數(shù)據(jù)類型與表達式(標準類型)―分支―循環(huán)―數(shù)組―函數(shù)―指針―結(jié)構(gòu)―文件。
4 處理好教學中的重點與難點(Deal with importantand difficult teaching)
本課程重點為:算法設計、“自頂向下、逐步求精”的程序設計思想。包括:程序的流程控制、模塊化程序設計(函數(shù)的定義,函數(shù)間的數(shù)據(jù)傳遞,參數(shù)結(jié)合規(guī)則等)、數(shù)據(jù)組織(批量數(shù)據(jù)組織、表單數(shù)據(jù)組織、動態(tài)數(shù)據(jù)組織)。
本課程難點為:與指針相關的內(nèi)容,包括變量指針,指向數(shù)組的指針,指針數(shù)組,指向指針的指針,文件指針,函數(shù)指針,返回指針值的函數(shù),指針作函數(shù)參數(shù),基于指針實現(xiàn)的動態(tài)數(shù)據(jù)結(jié)構(gòu)等。
針對上述重點和難點,從思維方法入手,引導學生獨立思維,達到提高學生思維能力和程序設計能力的目的。教師應該從學生的角度體會“學”之困惑,不斷反思“教”之缺陷,才能因材施教,明了如何通過“教”幫助學生學習,樹立教育以人為本的思想。因此,教師不但要研究教學內(nèi)容,而且更要研究教學的對象――學生,根據(jù)學生的學習特點,研究教學內(nèi)容傳授中重點和難點的解決辦法。授課過程中突出算法概念,對C語言采取“有所取、有所不取”的策略,對與講授程序設計方法密切相關部分重點介紹;對與講授程序設計方法關系不大的部分根本不介紹;注意由淺入深地介紹程序設計知識,把難點化解和分散到各個章節(jié)中去。以多媒體為主,板書為輔,并現(xiàn)場編程演示等多種教學手段相互補充,使課堂教學與實驗教學有機結(jié)合。為了及時解決學生學習中遇到的問題,調(diào)動和保護學生的學習積極性,我們充分發(fā)揮網(wǎng)絡的優(yōu)勢,借助于課程網(wǎng)站等網(wǎng)絡教學方式作為常規(guī)教學的補充,拓展“教”與“學”的空間。
5 課程與教材之間的關系(The relationship betweencurriculum and textbooks)
課程教學效果如何與教材的選取密切相關,有經(jīng)驗的老師體會到,教材選好了就已經(jīng)有了上好該課程50%的把握。因此在“程序設計基礎”的教材選取時,應當從教學內(nèi)容的制定,學習素材和呈現(xiàn)方式等方面在基于我們國情的前提之下,發(fā)揚傳統(tǒng)教材的優(yōu)點,突破其缺點,為課程與教材的有機結(jié)合做出實質(zhì)性的工作。根據(jù)社會科學的發(fā)展與信息技術的漸漸普及,數(shù)學教材也要與時代緊緊結(jié)合,因此在教材的選取上應注意以下幾方面:
(1)應力求使內(nèi)容全面廣泛、生動活潑,能突出所用教材的重點難點。除此外,要適當增加讓學生自己解決問題的機會。這樣才能很好的提高學生主動學習的興趣,同時注重培養(yǎng)學生的創(chuàng)新能力和動手實踐解決問題的能力,培養(yǎng)學生運用計算機技術進行學習的能力。
(2)盡量與生活實際相結(jié)合,所選教材內(nèi)容與現(xiàn)實生活的聯(lián)系,體現(xiàn)教學與日常生活的密切聯(lián)系,杜絕出現(xiàn)那種理論與實際脫節(jié)的情況。
(3)要針對不同層次因材施教,每個學生的學習能力,興趣都有所不同,這樣的話,學習的層次也不可能一樣。因此對教學對象的考慮分析要全面,為不同層次的學生提供教學發(fā)展的支持。
6 結(jié)論(Conclusion)
信息技術在不斷發(fā)展,“程序設計基礎”教學實踐探討還必須通過大量的教學過程不斷總結(jié),才能更好地指導教學[3,4]。教師在教學過程中,同時應注意與后續(xù)課程“數(shù)據(jù)結(jié)構(gòu)”“軟件工程”等的聯(lián)系,通過前后教學環(huán)節(jié)的更好銜接,發(fā)揮該課程的作用。同時我們對學生,應該將學習方法的探究擺在首位,正所謂:“授人與魚,不如授人與漁”,這一精神應貫徹于整個教學過程中。
參考文獻(References)
[1] 張華,劉萬海.論“研究性學習”的課程與教學論意義[J].教育科學研究,2005,1:42-45.
[2] 張華,鐘啟泉.課程與教學論[M].上海:上海教育出版社,2003,9:37-440.
[3] 張志青.C語言可視化編程實驗在電路輔助教學中的應用[J].廣州大學學報,2007,7:28-31.
[4] 張志青.基于智能教育平臺的數(shù)學探究性學習教學模式實踐研究[J].中國科教創(chuàng)新導刊,2008,11:17-20.
作者簡介:
張志青(1954-),男,學士,碩士生導師,副教授.研究領域:教育信息技術.
曾細平(1971-),女,碩士,講師.研究領域:教育信息技術.
篇8
《程序設計》這門課程是一門實踐性、連貫性很強的課程。通過這門課程的學習不僅僅要求學生掌握一門計算機語言,更重要的是理解和掌握程序設計的方法和技巧,訓練學生的思維能力、動手能力、分析問題和解決問題的能力。因此,筆者在實踐內(nèi)容的組織上,將實踐內(nèi)容劃分為基礎實踐、綜合實踐兩個部分。
1 基礎實踐的教學設計
基礎實踐是在平時授課過程中隨課程進度而同步進行的,穿插滲透在理論教學中?;A實踐項目的內(nèi)容是一一對應理論教學模塊的。在教師的啟發(fā)帶領下,歷經(jīng)模仿、改寫、提問、思考、總結(jié)等幾個環(huán)節(jié),其主要目標是幫助學生理解掌握相應課程的基本原理和基本知識,同時驗證這些基本原理的正確性,訓練和增強學生的動手能力,激發(fā)學生的學習興趣。
另外,在基礎實踐過程中,教師也對全體學生的學習和能力情況有了一定的了解,這樣為接下來的綜合實踐的順利實施做好了準備。
2 綜合實踐的教學設計
綜合實踐內(nèi)容是在綜合考量所有基礎實踐內(nèi)容的基礎上精選出來的具體項目,選取的項目必須貼近學生的生活,讓學生能夠聯(lián)系實際,比如:學籍管理系統(tǒng)、圖書館管理系統(tǒng)、學生選課管理系統(tǒng)等等,重點考查學生的理解記憶能力和基本技能,也要考查學生認知能力、動手能力、知識轉(zhuǎn)化能力、再學習能力和創(chuàng)新能力,以培養(yǎng)學生綜合素質(zhì)、開拓創(chuàng)新精神。
由于目前高職學生存在較大的群體差異性,他們的專業(yè)基礎知識、認知水平、能力層次參差不齊,若以統(tǒng)一的要求來對待每一個學生勢必會給綜合實踐項目教學的進行帶來很大的難度。以往在進行綜合實踐項目教學的時候,通常會將學生分成幾個實踐小組,每個小組會搭配不同層次的學生,希望能夠?qū)崿F(xiàn)能力強的學生帶動能力弱的學生,希望小組的各個成員可以通過互相協(xié)作、互相學習、互相幫助共同完成綜合實踐項目的設計,從而使所有的學生都能得到相應知識的獲取與能力的提升。但是,經(jīng)過幾屆學生的實際操作以后,發(fā)現(xiàn)總有一些學生有畏難情緒和嚴重的偷懶依賴現(xiàn)象存在,有極個別學生在綜合實踐的時候什么工作都不做,所有工作都是小組其他成員替他完成的。為了杜絕這種現(xiàn)象,以后的綜合實踐教學將不再給學生分成幾個小組,而是根據(jù)基礎實踐教學過程的摸底情況,根據(jù)機房實際布局情形,將整個班級的學生劃分成兩大組,學習情況好能力稍強的一組、差的一組,分別完成兩個難易程度不同的綜合實踐項目,每位同學都必須獨立完成自己組對應的綜合實踐項目、撰寫獨立的綜合實踐報告。
在傳統(tǒng)的實踐授課過程,教師往往處于被動指導的地位,許多學生往往有了問題不知道問什么、怎么問甚至不敢問,這樣一點點小問題越積越多,最后產(chǎn)生了畏難情緒從而失去了學習的興趣。因此,筆者在綜合實踐項目的實施過程中,采取的是以學生為主體、以學生為中心的學習過程,教師所起到的作用是組織者、指導者、幫助者和促進者。教師要充分發(fā)揮學生的主動性、積極性和創(chuàng)造性,最終達到使學生有效地實現(xiàn)對當前所學知識的意義建構(gòu)的目的。
在綜合實踐過程中,教師要對綜合實踐的全過程進行掌控,即對全程進行管理、跟蹤和指導。通過有針對性、有重點的觀察學生項目的設計、制作與完成情況,對兩組分別提出各種難易程度不同的問題來啟發(fā)學生,讓學生克服畏難情緒、多多獨立思考,最終使學生能夠自己主動發(fā)現(xiàn)問題并解決問題、獨立完成綜合實踐項目的設計。
篇9
關鍵詞:面向?qū)ο蟪绦蛟O計;教育方法改革;綜合實踐能力
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2014)50-0246-02
近些年來,絕大多數(shù)的高等院校都對計算機、編程等方面的課程愈加重視,例如,C語言程序設計、計算機操作系統(tǒng)、面向?qū)ο蟪绦蛟O計等等。隨著現(xiàn)在學生的綜合素質(zhì)逐年提高,在這些課程的教育上一些古老的方法已經(jīng)難以滿足新時代學生的需要,在知識的教授方式、課程的合理安排和最后的考察方法上都需要一種新的更行之有效的方案來綜合處理上述問題,以提高學生的綜合能力和面對社會的綜合競爭力。
一、存在的問題
由于原本枯燥而簡單的教學方式已經(jīng)難以跟上知識系統(tǒng)的更新和學生的需要,使得教學環(huán)節(jié)無法真正發(fā)揮和理論知識之間的紐帶作用?;镜慕虒W理念和教學觀念已經(jīng)無法在學生與老師之間,學生與課堂之間搭建一條合理的橋梁,這讓教學變得愈加困難,學生也無法從課堂中收獲更多的知識。這種不合理的教學問題主要表現(xiàn)在以下方面:
(一)教學方法的枯燥與學生的學習動力不足之間的矛盾
隨著這個社會的發(fā)展,計算機學科以及一系列的附屬學科的知識系統(tǒng)都在不斷地更新?lián)Q代,這對正統(tǒng)的教學系統(tǒng)發(fā)起了強烈地沖擊,而最主要的影響自然是學生的學習態(tài)度和學習的動力問題。當下傳統(tǒng)的教學方式還是用大量的知識強迫填充學生的大腦,讓學生沒有自己獨立思考的空間和時間,慢慢喪失了發(fā)現(xiàn)新問題的能力,對新奇事物強烈的求知欲也在慢慢退化,只能被迫地學習枯燥的書本知識和早已定式的內(nèi)容,這種傳統(tǒng)的教學方式極大地影響了學生對知識的興趣和學習積極性。中國有句古話“興趣是最好的老師”,這句話點明,只有先提高了學生對這門課的興趣點和求知欲,才能一步步的讓學生自然地進入知識的海洋中盡情遨游。學生能達到主動地學習才是目前教育界提倡的最好的教育理念。所以,目前,高校最冗待解決的問題便是如何激發(fā)學生主動的學習欲望。
(二)教學形式的單一與學生缺乏“實戰(zhàn)練習”之間的矛盾
當前計算機專業(yè)課程的教學工作主要還是依托課本作為基礎,課本上的課程目錄基本上就是教學的大致流程,大綱的知識點也基本都涵蓋在整個課本中,而學生聽授老師的教課并不僅僅是來獲取課本上的內(nèi)容,這些內(nèi)容有些自學能力強的學生已經(jīng)可以迅速掌握,而更多的學生急迫地想要得到書本上不能得到的東西,即為這些知識真正的應用方法。就如面向?qū)ο蟪绦蛟O計這門科目來說,書本上的語法內(nèi)容即使通篇背下也是作用不大,有些知識點需要在教師教課的過程中現(xiàn)場演示,才能讓學生明白如何在程序運行過程中體現(xiàn)這些知識的價值,這才是讓學生快速掌握知識點的最佳方法,而且更是現(xiàn)在教育教學方法中需要改進的問題,要讓知識點的教學與具體的實踐演示有機的結(jié)合起來,才能達到更好的教學效果。
(三)教學過程的單向性和缺乏與學生進行互動的矛盾
教育工作的主要目標就是用合理簡單的語言來讓學生掌握所需要掌握的知識。這個目標看似簡單,卻需要合理的教學方法作為依托,可是目前的教育方法主要還是強調(diào)教師單向模式的講授,而作為受體的學生只能在課堂上機械被動地聽課,這樣不僅使學生的知識接受效率偏低,長時間單一的聽課也會影響學生的學習積極性,甚至會導致學生昏昏欲睡的感覺,這是教學改革上一個相當重要的矛盾,也是現(xiàn)在教學理念上一個急需創(chuàng)新的環(huán)節(jié)?,F(xiàn)在最新的教學目標需要教師與學生更好地互動,這樣不僅可以調(diào)動學生的積極性,使其能夠更好地投入到接下來的學習中,也能讓學生在最短時間內(nèi)掌握知識,以達到最好的教學效果。
二、教學改革解決方案
(一)教學內(nèi)容的改革
眾所周知,面向?qū)ο蟪绦蛟O計這門科目屬于大學基礎教育課程,是一種“語言工具”型的教育課程,其教學內(nèi)容與許多相似的課程都相互聯(lián)系、相互影響。電子類課程極強的相關性注定了不能僅僅對單一的一門課程精通,還要對相關的課程有所了解,這樣做才能成為一個更加全面的優(yōu)秀人才。為了更好地發(fā)揮學生的主觀能動性和學習積極性,我們創(chuàng)造性地提出了將面向?qū)ο蟪绦蛟O計和嵌入式系統(tǒng)這兩門課綜合起來學習,理由如下:面向?qū)ο蟪绦蛟O計這門課是一門“基礎工具”類型的科目,主要涉及的內(nèi)容是一些關于基礎語法和基礎編程,可以讓學生的基本編程能力迅速地提高,對C++語法概念有一個深入的了解。可是面向?qū)ο笳n程設計這門科目難度較低,實際應用度不高,必須有一個更好的平臺來進行實戰(zhàn)演練,而嵌入式操作系統(tǒng)這門科目的設計便能很好地彌補這一缺憾。嵌入式系統(tǒng)課程是一門關于便攜式移動設備開發(fā)相關的課程,課程內(nèi)容是基于嵌入式系統(tǒng)開發(fā)板,涉及到Linux操作系統(tǒng)的平臺的編程等相關問題,是應用C++編程語言進行實戰(zhàn)演練的最佳平臺之一。如果能通過對教學計劃的稍作變更,在面向?qū)ο蟪绦蛟O計課程中后期后添加部分課程用來進行嵌入式系統(tǒng)相關代碼的編程練習,是對學生編程能力的一個相當不錯的檢驗和提高的方法,而且可以讓學生在實踐中獲得寶貴的編程經(jīng)驗,從而可以讓書本上的知識在學生的腦海中融會貫通。
(二)教學模式的改革
傳統(tǒng)的教學模式在教育業(yè)內(nèi)已經(jīng)廣受國內(nèi)外教育專家所詬病,傳統(tǒng)的教學模式單一乏味,會導致大學課堂氣氛壓抑,學生昏昏欲睡,直接導致其學習效率過于低下。而本文便針對這一問題,提出了一個創(chuàng)新性的教學計劃:開放式教學理念。這一理念可以定義為學生和老師的雙向互動教學,由老師傳授學生的基本知識,由學生自己來處理問題和改進問題。例如,在課堂上老師講述C++課程中“for循環(huán)”這一語法過后,可以提出一個討論話題:如何用C++編程語言來解決著名的數(shù)學邏輯問題――“漢諾塔”問題,而后學生便可以分為若干小組,分別分析其中的數(shù)學模型,思考程序的大致運行流程圖,而后以組為單位在講臺上進行大致演示。不同小組的學生也可適當?shù)剡M行競賽,在競賽中通過不同小組的展示來分析自己的思路中有什么優(yōu)勢,有什么需要改進的地方,可以借助他人的思想來使自己的程序更加的完善,這樣既可以讓學生有充足的時間來對自己的程序進行總結(jié)與分析,又可以讓老師知道不同學生的知識掌握程度,而且不會壓抑學生的發(fā)散性思維。這種模式的優(yōu)勢來源于同學之間的思想交流,遠比單單從課堂或者書本上的知識來的更加直接,更加易于接受。而這種教學模式的最終裁定者仍然是老師,授課老師可以將學生反饋出的思想進行評判,褒獎其中的優(yōu)點,指出存在的不足,這種有的放矢的評講模式更加貼近學生的思維理念,獎罰分明的評判方式也可以提升學生的學習動力。這樣的改變既可以加強課堂的趣味性,又可以讓學生充分享受到編程的樂趣,學生與學生之間,學生與老師之間也加強了互動,是有一舉兩得的功效。
(三)教學細節(jié)的改革
著名學者汪中求說過這么一句話,“細節(jié)決定成敗”,同樣,通常情況下,在教學過程中重視細節(jié)的老師會博得學生的喜愛,相應的教學質(zhì)量也會提高。而這里我們就提出兩個仍需在教學中改變的細節(jié):課堂藝術和課前準備。何為課堂藝術?就是身為授課老師,要盡可能用自己的課堂感染力來激起學生學習的興趣,要發(fā)揮學生學習編程語言的主觀能動性。那么到底如何才能激發(fā)學生對于學習編程語言濃厚的興趣呢?這就必須要求授課講師在傳授知識時不能太過于書本化,多舉一些與生活實際密切聯(lián)系的例子。例如,在面向?qū)ο蟪绦蛟O計這門課上,可以通過課堂上提出上網(wǎng)安全密碼程序的設計問題,以及小型網(wǎng)絡病毒程序的開發(fā)等問題來提高知識的新鮮感,提升學生學習的興趣。這樣做的效果是顯而易見的,能讓學生從中明白到語言的實用性和趣味性,讓學生能自發(fā)地坐在計算機前面來動手實現(xiàn),設計自己的程序,而不是單純模仿書本上的程序。當有了學習的興趣自然而然地有了學習的主動性,學習效率自然便有了顯著的提高。細節(jié)的把握僅是提升學習的興趣還不夠,還需要在授課的準備過程中加以變化。目前還說,語言類課程的主要授課方式還是要以PPT作為輔助,而一套PPT的設計精美程度直接影響到學生在課堂上的聽課效率,一副僅僅含有枯燥的文字和繁瑣的代碼的PPT是無論如何也吸引不了學生數(shù)個小時的聽課注意力的,所以在備課過程中,教師需要在PPT適當?shù)牡胤教砑右恍┯腥さ膭赢嫽蛘吒鞣N文字效果,這樣便可以盡可能地吸引學生的注意力,讓課堂不至于太過枯燥乏味。
通過大量的經(jīng)驗總結(jié)和學生反饋,本文總結(jié)了現(xiàn)階段教學方式存在的“三大矛盾”,而為了解決這些突出的問題,本文提出了一個解決這些矛盾的方案,即對教學內(nèi)容、教學模式、教學細節(jié)三方面的改革方案。當然,在實際教學過程中,這些方案還需要通過現(xiàn)實的驗證,不過,相信通過我們不斷的努力,改革后的高校教學成果一定會得到顯著的提高,學生也會愛學習,更愛上學習。
參考文獻:
[1]張迎新.面向?qū)ο蟪绦蛟O計課程的研究[J].北京工商大學學報,自然科學版,2003,(4).
[2]朱清華.面向?qū)ο蟪绦蛟O計的教學改革[J].教書育人:大學頻道,2005,(4).
[3]張永.面向?qū)ο蟪绦蛟O計的教學研究[J].電腦知識與技術,2006,(1).
篇10
【關鍵詞】C語言程序設計 實踐教學方法 實踐實踐能力 積極性
【基金項目】2013年防災科技學院教研教改項目(2013B24); 2012年防災科技學院教研教改重點項目(2012A04)。
【中圖分類號】G42 【文獻標識碼】A 【文章編號】2095-3089(2013)05-0246-01
公共基礎課程C語言程序設計是面向非計算機專業(yè)本科生開設的,這門課程的教學目標是通過理論學習和編程訓練,使學生較全面、系統(tǒng)地理解和掌握C程序設計的基本概念、語法知識和計算機程序設計的基本思想和方法,初步具備運用C程序解決實際問題的能力。通過本課程的學習培養(yǎng)學生利用計算機處理問題的思維方式,啟發(fā)學生主動將計算機引入到其他基礎課和專業(yè)課[1]。
C 語言是一門實踐操作性很強的課程,要學好C 程序設計不僅要掌握好理論知識,實驗教學更不容忽視。通過上機實驗,不僅可幫助學生消化和鞏固課堂所學知識,也可幫助學生驗證學習中的疑難問題,更重要的是可激發(fā)和提高學生學習C 語言程序設計的興趣[2]。
1.C語言程序設計實踐課存在的問題
通過進行問卷調(diào)查非計算機專業(yè)學生,有69%的學生認為C語言課程對自己今后的學習與工作中比較有用;有81.25%的學生希望理論和實驗課時比例為1:1,有56.25%的學生把影響學習積極性的主要原因歸咎于教師、課程內(nèi)容等方面;主動研究、解決問題的學生僅占37.5%,68.8%的學生課下基本不看有關C語言程序設計的書籍,75%的學生基本不會進行學習小結(jié),68.75%的學生課下基本不會主動復習、預習新課;在C語言程序設計課程學習過程中遇到的問題,出錯時希望得到教師輔導的占51.3%,只有37.5%的學生課下會花時間編寫程序。
筆者從事C語言程序設計教學工作多年,通過實際教學和綜合調(diào)查分析,學生層面問題突出主要體現(xiàn)在以下幾個方面:
1)對課程認識不夠重視
有的學生對C 語言認識不足,覺得沒什么用,學習上缺乏主動性和積極性;有的同學又覺得C 語言很難,學習缺乏信心,對計算機程序產(chǎn)生一種畏懼的心理。有的學生對實驗課不重視,抱著應付的態(tài)度,不愿投入很多的時間和精力[3]。
2)學生學習興趣有待提高
在C語言的教學中,實驗課的時間僅占課程的三分之一,明顯感覺學生無法按時完成當次實驗所要完成的任務,只能依靠學生課下自己找時間再繼續(xù)完成,這樣勢必會存在一些問題,學生可能抄襲現(xiàn)象嚴重,還可能因為在完成實驗任務的時候,對于遇到的問題不能及時得到輔導與解決,而會“知難而退”,大大消減了學生對課程學習的積極性[4]。
3)課下投入精力不足
有的學生只是在課堂上聽講,課下沒有進行總結(jié)歸納、認真復習、做習題、主動查閱學習資料、不能將實驗作業(yè)提前預習準備。導致知識掌握不牢固,不能有效利用實驗課有限時間。
4)有效學習方法欠缺
有的學生在實踐過程中過分依賴指導老師,有任何問題就找老師,自己缺乏必要的思考。在學生逐漸掌握并積累一些常用的編程方法和技巧后,可以把總結(jié)歸納作為一種重要的學習方法,提高學習效率。
由于以上的各種問題,使得實驗課效果不佳,從而影響了C 語言課程的整體教學效果。
2. C語言程序設計實踐教學方法的探討
經(jīng)過幾年的教學實踐、觀察總結(jié)以及研究嘗試,本文針對以上問題,總結(jié)提出幾點建議來改善實踐教學的效果。
1)明確學習目的,加強對C 語言認識的重要性
讓學生認識到學習C 語言是具有普遍適用性的,根據(jù)各專業(yè)的不同特點,使學生明白C 語言作為一門基礎性程序設計語言,對理工科各專業(yè)后續(xù)課程的開設起著開路先鋒的作用,而且通過C 語言培養(yǎng)起來的邏輯思維和計算能力,是伴隨我們學習全程的。另外,要使學生樹立信心,使他們能正確地認識到自己在經(jīng)過一段時期的學習以后是可以編寫程序的,可以通過計算機解決本專業(yè)領域的問題,從而提高學習的主動性和積極性[3]。
2)培養(yǎng)學習興趣
興趣是學習的最好動力之一,興趣源必須由教師來創(chuàng)造,并貫穿于教師授課全過程的各個環(huán)節(jié)中。針對C 語言程序設計這門課程的特點教師可采用以下方法提高學生對本課程的興趣。
教師在課程剛開始時,能夠?qū)W生指出日常生活中哪些產(chǎn)品或工作可以是C語言進行程序設計完成的,并能夠演示,以便吸引學生的眼球和激發(fā)學生學習的興趣。在日后的課程中,逐漸利用已學知識來解決生活和專業(yè)學習中的實際問題。
3)充分利用實踐課程
在實驗教學中,由于實驗課時間相對有限,建議老師在布置作業(yè)時一般要難易適當,使學生在經(jīng)過努力后,基本都能編程實現(xiàn),這樣學生編完程序后就有一種成就感。如果作業(yè)太簡單,學生輕松實現(xiàn),印象不深,成就感不強烈,覺得太容易,沒有興趣。如果作業(yè)太難,學生難于實現(xiàn),就會出現(xiàn)放棄或抄襲現(xiàn)象,也會喪失學習本課程的興趣,更無從談起學生的成就感。
對于后續(xù)課程的綜合程序設計,可以將實驗任務提前布置,留給學生更多的準備和預習時間,可以要求學生將作業(yè)在實驗課之前寫在作業(yè)本或編輯為電子版,對于出現(xiàn)的問題在實踐課上進行獨立、求助老師來解決,這樣有助于問題的解決和提高學習效率,并且能夠督促學生利用課余時間來進行復習和預習。這樣學生對每個題目已經(jīng)了解,避免學生上機時現(xiàn)看教材、現(xiàn)編程序的現(xiàn)象。
4)建設課程資源平臺
創(chuàng)建資源豐富的課程資源平臺,網(wǎng)站資源包含課程介紹、教學大綱、教學日歷、教學材料、課程通知、答疑討論、教學郵箱、課程作業(yè)等豐富的基本教學資源,所有資源實現(xiàn)資源共享,學生可以自行下載課件、學習資料,并進行交流討論,為教師的教和學生的學提供學習和交流的平臺,能更好地提高學生的學習主動性和學習效率。
3.結(jié)束語
本學期的C 語言程序設計課程在實踐環(huán)節(jié)采取了上述教學方法后,學生對實驗課的學習態(tài)度發(fā)生了根本變化,學生雖然有壓力,卻很有成就感,感覺學有所用。實踐證明,以上實踐教學方法極大地提高了學生,學習主動性和動手實踐等綜合能力,取得了良好的教學效果,在C語言程序設計實踐課程教學中切實可行。當然,要真正上好《C 語言程序設計》的實驗課,還必須將各種有效措施有機地結(jié)合起來,我們要在教學實際中總結(jié)新經(jīng)驗、勤于探索新方法并不斷改進,才能在教學實踐中取得好的教學效果,提高學生用C語言解決實際問題的綜合能力。
參考文獻:
[1]王冰.C 語言程序設計課程教學方法的探討[J].計算機教育,2009 (2):142-144.
[2]程志梅,劉光萍,李榮.非計算機專業(yè)C 語言程序設計實驗課程教學探討[J].電腦知識與技術,2009(7):1649,1660.