前言:尋找寫作靈感?中文期刊網用心挑選的應用型院校C語言程序設計教學探究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
摘要:應用型本科院校應為地方經濟建設培養和提供實踐技能型、創新型人才,加強學生的實踐動手能力。針對C語言課程教學存在的問題及學生遇到的困難,提出系統性認識C程序基本結構、啟發式教學、案例分析教學+項目驅動模式的實踐教學體系。通過實踐教學改革,學生主動參與學習,提高了學生學習的興趣和學習的積極性,培養了學生分析問題、解決問題的能力,增強了學生的實踐創新意識。
關鍵詞:應用型高校;C語言;編程思維;實踐教學改革
0引言
C語言程序設計幾乎是工科類院校各專業的公共基礎課程,也是應用型本科院校理工科專業學習計算機程序設計的首選課程。它的目標是培養學生的計算機編程思維,積累程序設計中常用的、經典的算法,達到熟練使用C語言編程,培養分析問題、解決實際問題的能力。由于C語言程序設計課程內容量大,知識點抽象、枯燥,理解困難,加大學習難度,學生難以上手,削弱了其學習興趣,導致學生參與的意愿削弱,感受不到知識的價值,學生的編程思想難以培養,分析問題解決問題的能力得不到提高。因此,筆者提出C語言程序設計實踐教學改革,探索一種以案例分析為主,結合項目實戰,注重培養學生計算思維、編程思想[1],提高實踐動手能力的教學方法。
1C語言教學中存在的問題
傳統的C語言程序設計教學注重知識內容的講授,忽略了C語言程序的實際應用,使學生陷入知識的細節。雖然經過一段時間基礎知識的學習和經典算法的練習,學生可以看懂、修改和編寫簡單的程序,但是面對于一個較難的題目或者實際問題,學生卻難以下手,不會分析問題、聯系生活實踐解決問題,自主創新[2]的意識更是難以培養。
1.1缺少課程間相互聯系。C語言課程是大學生入校以來第一門程序設計語言,對程序的計算思維不理解,沒有制定學習目標、學習計劃,盲目學習,缺乏主動性。學生很少從課程的培養目的、培養能力出發,很少考慮這門課程的學習對今后課程和工作的影響;沒有一個全面的、正確的認識,總覺得能及格就可以了。在學習的過程中,學生缺少前后課程之間的相互聯系,不能把已學的課程和現學課程聯系起來,從計算機的工作過程出發來考慮程序的執行過程,進一步來理解、學習C語言程序的結構組成,對本門課程缺乏系統性的認識。
1.2“填鴨式”教學模式。課堂傳授以教師講授為主,老師覺得重要的知識點,學生卻感受不到知識的價值;主動參與學習的意愿和興趣不濃,被動的接受知識;課堂采取“先理論,后實踐”的教學模式。只有知識內容的滿堂灌,學生的學習熱情沒有被調動,缺乏與學生的互動交流,難以了解學生對程序的理解情況。課本講述的內容主要是純數學的抽象案例,缺乏實際聯系、實際應用,學生理解比較困難。為了完成教學任務,追求教學進度,內容講得過多,實際操作少,學生來不及消化和吸收。這種教學模式下,學生上課無求知欲、無興趣,部分學生昏昏欲睡,聽課如聽天書;有的學生即使認真做筆記,課后合上筆記也沒有深刻的印象。這種教學模式只能引發淺層學習,即使學生對知識點了如指掌,遇到真實的情境卻未必能夠靈活運用。因此,這種教學模式需要很大程度的改進。
1.3教學內容細節化。傳統的教學注重基本概念、語法等知識點,教學內容瑣碎化、細節化。利用大量課時講解基本概念,如常量、變量、數據類型、表達式等概念,記憶的知識過多,知識過于瑣碎、細節化。學生即使掌握所學知識點,很難與實際問題聯系起來,解決問題。學生碰到問題,無從下手,產生畏難心理,進而對課程的學習失去興趣。
2思考與建議
2.1系統性理解C語言程序基本結構。1946年美籍匈牙利數學家馮·諾依曼提出程序存儲原理,程序如同數據來處理,并確定了程序存儲計算機的三大組成部件(I/O設備、存儲器、處理器)和基本工作方法。計算機與程序設計的關系:計算機的工作過程(IPO),輸入(Input):程序用到的數據;處理(Process);編寫的程序放于存儲器中用于數據處理操作;輸出(Output):對處理或計算后的結果進行輸出。C語言結構中定義變量相當于計算機分配存儲空間(存儲器);初始化相當于輸入設備;程序處理問題的過程(算法)相當于處理器;C語言輸出相當于計算機的輸出設備。計算機硬件結構與C語言程序基本結構對照關系,如圖1所示。
2.2深入淺出,啟發式教學。在教學過程中,教師注重引導、深入淺出地講解,采用啟發式[3]教學法來幫助學生理解程序的邏輯,訓練計算思維能力。筆者舉例:求全班50個同學C語言課程的平均成績及最高分。首先,先從簡單的題目出發,輸入兩個學生的成績,求其平均分,其代碼如下。intscore1,score2,aver;scanf("%d",&score1);scanf("%d",&score1);aver=(score1+score2)/2;其次,提出問題:輸入50個學生的成績,求其平均分?寫出代碼為:intscore1,score2,.,score50,aver;scanf("%d",&score1);scanf("%d",&score1);scanf("%d",&score50);然后,再提出問題:要反復地進行輸入50個同學的成績,然后累加,這種方法是否合適?計算機的快速、便捷有沒有應用?算法太過冗余,降低程序的執行效率,有沒有更好的辦法可以解決此問題,我們會想到反復地進行某個操作,利用循環,其代碼為:intscore,I,aver,sum=0;for(i=0;i<50;i++){Scanf("%d",&score);Sum=sum+score;}aver=sum/50;然后,問題又來了:如果要進行求最高分、排序等其他操作,使用一個變量能不能解決問題?優點:用一個score變量通過循環可以解決以上問題,避免重復,浪費內存空間,提高程序的效率;缺點:它只能保存最后一個學生的成績。要保存大量同類型的數據,順理成章引出數組,其代碼為:intscore[50],i,aver,sum=0;for(i=0;i<50;i++){Scanf("%d",&score[i]);Sum=sum+score[i];}aver=sum/50;深入淺出,啟發式教學能增強課堂趣味性,學生好理解,容易進入學習狀態,所學知識容易掌握,能提高學生學習的興趣和學習效果。通過上述過程一步步引導學生,既鞏固了以前所學知識內容又啟發了學生思維,使其容易理解容易學習。2.3“案例分析教學+項目驅動”模式依據人才培養目標、教學大綱、教學目的及要求,教師設計、規劃課堂內容[4],選取多個恰當的案例,以案例分析為重點,結合項目驅動深入淺出、啟發式引導,完成整個教學內容。在案例的選取當中,要以學生熟悉的、感興趣的、學生日常生活相接近的問題,并結合章節內容將知識點涵蓋其中,具有一定的難度、深度,引導學生學習,進一步學習相應的知識點。在學習案例的過程中,不斷地積累經典算法,學習編程思想,學習怎樣分析問題、解決問題。課堂堅持“精講多練”,每個案例讓學生通過特定的事件情景進行分析問題、解決實際問題,最終用C語言實現,從而培養學生運用理論知識,了解編程思維,通過動手實踐[5],培養動手能力,符合應用型院校人才培養目標要求,為培養應用型人才打下堅實的基礎。通過大量的案例分析學習,學生積累一定的算法,了解編程思維,掌握怎樣分析問題、怎樣把實際生活中的問題轉換成程序代碼,進而解決問題。但是學生所學知識點比較零碎、沒有系統性,沒有切身體會到C程序設計的真正用處。教師在部分章節具體案例選取中下功夫,設計案例內容與某表1中展示了在LS-SVM估算模型中,基于RBF核函數與Lin核函數輸出的不同結果。通過將實際值、RBF核函數與Lin核函數三種輸出結果進行對比可知,若選用傳統的Lin核函數,該模型的絕對誤差最小值為7.69萬元,絕對誤差的最大值為86.78萬元;當選用RBF核函數時,絕對誤差的最小值僅為2.58萬元,相對應的絕對誤差最大值則為14.84萬元。不同核函數的輸出結果對比圖如圖8所示。通過圖8不同數量的測試樣本的估算結果來看,選用RBF核函數的估算精度更高,其估算值更加接近于原始靜態值。當測試樣本個數為3時,原始靜態值為410萬元,Lin核函數的估算值為500萬元,二者間的誤差高達90萬元;與此同時,RBF核函數的估算值則為402萬元,與實際的原始靜態值之間僅存在8萬元的誤差。因此,RBF核函數的估算準確度顯著高于Lin核函數。
3總結
我國電力水平不斷提高,推動電力工程與社會經濟同步持續增長勢在必行。為了做好輸變電工程造價的管控,此次研究對輸變電工程造價中的各項影響因素進行了細致的探究,利用大數據相關技術構建了優化后的支持向量機模型,提出了一種新的工程造價管理方法。結果顯示,在輸變電工程的LS-SVM估算模型中,運用RBF核函數來對工程造價進行估算是最優選擇,其估算準確性更強,預測精度更高。此次研究有幸取得了一定的研究成果,然而由于個人能力的限制,在研究中仍然存在一些亟待完善的地方,如進行變電工程中不同核函數估算的工程數量較少。在未來的研究中,希望能進行更加全面客觀的探究。
作者:王倩麗 單位:西安航空學院圖書館