摘 要: 為提高C語言程序設計課程的教學質量,讓學生更好地掌握核心技能,針對課程中教學難點多、語法知識多、學生重視程度不夠等問題進行了認真分析,同時結合筆者在長期的教學實踐過程中積累的經驗,從教學目標、教學設計、教學內容選取、教學方法應用、考核方式等方面進行教學改革,提出了相關的解決方案,取得了較好的教學效果,教學質量明顯提高。
關鍵詞: C語言程序設計; 教學改革; 教學方法; 教學設計
中圖分類號:TP311.11 文獻標志碼:A 文章編號:1006-8228(2014)07-65-03
Abstract: C language programming is a common core curriculum in software technical majors of vocational colleges and the software development knowledge essence. In order to enhance the teaching quality, the problems in teaching the C language programming in several years are studied. Based on the training objectives, a teaching reform plan is presented regarding to course contents, teaching material building, teaching methods and teaching results. Corresponding solutions are provided in this article. Teaching reform has obtained good effects and the teaching quality is progressed significantly.
Key words: C language programming; teaching reform; teaching methods; teaching design
0 引言
C語言課程通常在大學新生入校的第一學期開設,是學生接觸程序設計的第一門課程,學習難度大,要取得好的成績相對比較困難。如何在較短的時間內使學生掌握C語言的基礎知識,獲得編程能力,達到教學目標,是進行教學改革的重點。本文對實際存在的問題進行分析,結合作者近十年的C語言課程教學經驗,在教學設計、課程內容組織、教學形式、教學方法和考核方式上大膽嘗試改革,積累了一些實踐經驗,取得了不錯的教學效果。
1 C語言程序設計課程教學現狀及問題分析
長期以來,在“C語言程序設計”課程的教學過程中,存在著諸多影響學生學習積極性,影響教學質量的不利因素。從主觀上來說,如教學方法陳舊、教學手段單調、學生學習積極性不高等;從客觀上而言,C語言本身也有知識點多,概念抽象,編程算法使用靈活等特點。以下綜合分析現存的幾個具體問題。
1.1 教學方法沒有創新
教學方面仍沿用老一套的理論加實驗模式,實踐訓練與課堂教學未能很好地連貫,理論教學與實際應用脫節。教師的講授照本宣科,忽視培養學生的實踐能力和創新能力,較少考慮學生的實際學習狀況,提供給學生主動思考的機會不多,重點和難點把握不好,引導學生積極思維方面欠缺。
1.2 教學手段相對單一
在教學安排上,理論課和實驗課分離,在多媒體教室上理論課,然后過幾天再在實驗室安排實驗課,這樣對學習基礎和自覺性稍差的高職學生來說很不合適。C語言程序設計這門課程需要實踐教學,引入真實案例,培養學生分析問題和解決問題的能力,通過“教、學、做”達到對知識的深入理解和熟練應用。
1.3 學生基礎知識薄弱
用C語言進行程序設計需要較為靈活的思維,而高職學生數學基礎和邏輯思維能力較弱,習慣于死記概念、硬背知識點。教學中應訓練他們思考問題、分析問題和解決問題的獨立性。進而,培養其主動性。
1.4 概念抽象,知識點多
C語言中有大量的難以記憶和理解的概念,名詞術語多、使用靈活、邏輯性強,在使用時容易出錯。部分學生對抽象的內容始終難以掌握,甚至思維混亂,如++i,i--等。學生在學習中對一些復雜、靈活、綜合性的算法,感到太難接受,獨立編程時不知從何入手,漸漸失去學習的興趣。
1.5 對學習重視程度不夠
教師和學生均對本課程重視不夠。有很多學生認為,這只是一門基礎課,在以后的學習和實際工作中作用不大,在程序設計工作崗位中很少會使用到C語言,更愿意花較多的時間去學習C++、VB、JAVA等語言,從心理上抗拒這門課程的學習。而有的學校也對本課程重視不夠,少有安排具有豐富教學經驗的教師承擔本門課程的教學。
2 教學設計及課程內容組織的改革與實踐
為了探究適合高職軟件技術專業人才培養的C語言課程教學特點,筆者經過多年的一線教學實踐研究與探索,重新進行教學設計,對課程的設計思路是:以學生為主體,以教師為主導,基于實際工作任務精心構建課程內容,通過項目驅動、任務引領的模式培養學生的程序設計能力。
2.1 教學設計
從分析學生的基本特點入手,融入現代教育理念,重新進行課程的教學設計。本著“以學生為主體,以教師為主導,以實際案例為主線”的教學基本原則,積極鼓勵學生通過“認知、理解、應用、綜合”四個階段的學習,達到使用C語言熟練編寫程序的學習目標。
2.1.1 以學生為主體
教學以學生為主體,變常規的“教學”為創新的“導學”。充分利用現代化的教學設備提供學習資源,發揮學生的主體作用,提出問題,引導學生分析問題和解決問題。
對于第一次接觸程序設計的學生,其編程訓練應從小程序和一些簡單問題起步,通過一些常用的經典算法和相應的案例學習,逐步掌握編程方法,待有了一定的知識儲備后,再逐漸加大練習的難度,實現從算法到程序代碼的轉化,使學生能夠將一個實際問題描述為一個計算機算法,然后再編寫相應的程序代碼。
2.1.2 以教師為主導
教師課前要了解學生的基本學習情況,了解其已有的知識結構和技能,根據學生的實際情況設計教學環節,根據知識點設置可擴散思維的問題,有重點地講解,引導學生積極思維和主動學習。對于少數學習特別優秀且自學能力強的學生,可適當加快教學引導,增加學習難度和深度,這樣可以在學生中樹立榜樣,帶動其他學生自覺利用所學知識解決相關問題,提高學習質量[1]。
從第一次課開始,教師就要引導學生主動學習。選取的素材可以是當前最熱門的IT話題,也可以從不同的專業角度和實際應用為學生介紹學習本課程的意義和作用,同時介紹一些歷屆學生參加省級和國家級的程序設計競賽所取得的成績,列舉一些學生被選拔到知名企業實習的例子,如微軟實習生等,引導學生對學習本門課程產生較大的興趣。
2.1.3 以實際案例為主線
教學中引入實際案例,根據解決案例中的問題需要的知識結構選取教學內容,以實際編寫解決問題的程序代碼作為學習的主線。選用的案例如:“計算機三角形的周長和面積”、“計算機模擬抽獎”、“競賽現場評分統計”等,選擇案例的難度要形成一個梯度,隨著學習的深入,學生的編程能力增強,逐漸形成系統化的程序設計思維。
常規的程序設計課程通常都注重語句、語法,以程序設計語言自身的體系展開,學生學習時難免會感覺枯燥難學,學過后又少有用來解決實際問題。而以實際案例貫穿整個教學過程,訓練學生像程序員一樣思考問題,使之邏輯思維更加嚴密,有利于學生整體素質的提高,更有利于程序設計課程整體教學水平的提高[1]。
2.2 課程內容組織
2.2.1 課程內容選取的基本原則
教學改革首要任務是教學內容的選擇,如何選取教學內容是改革的第一步。“C語言”的語法結構復雜,對初學者學習難度大。高職學生雖然學習基礎比本科生略差,卻樂于動手、可塑性較強。基于此,課程內容選取的原則是:根據學生情況、課程特點以及后續課程對知識結構的要求,從實際工作需要出發,按所學知識夠用好用的標準,確定本課程的必修內容。
2.2.2 課程內容的選取
本課程選擇具有實際應用的典型案例作為具體的教學內容。將多個小項目按照編寫程序的難易程度漸次推出,使學生把所學內容緊密結合實際應用,在基于工作過程的學習中獲得職業能力。本課程具體內容的選取如表1[2]。
3 教學形式及教學方法的改革與實踐
3.1 教學形式
⑴ 根據C語言知識結構的內在聯系,依次安排教學內容。以各個小項目的開發工作主導教學過程,將課堂學習和工作過程學習融為一個整體。
⑵ 運用項目導向、任務驅動的方式,設計課程引入、啟發、講解、討論、實訓等過程,采用教學做一體化的形式帶動學生自主學習,通過工作任務進行能力訓練。
⑶ 在每個學習單元中均將應掌握的知識融入項目開發任務中,進而轉化為學習任務,激發學生的學習興趣,讓學生在主動學習中完成各個任務。學習過程中注重教、學、做相結合,從講解、演示、練習、討論,遞進到學生自主學習、獨立完成任務。
⑷ 教學過程中注重學生能力的培養。如自主學習能力及獨立思考、分析問題、解決問題的能力等。
3.2 教學方法
為確保課程教學目標的實現,讓學生通過學習高級編程語言的知識,能夠使用C語言編寫應用程序,同時培養學生程序設計的思維能力以及探索創新的能力,我們在教學中引入了多種方法進行改革,取得了不錯的教學效果。
3.2.1 分析案例,啟發引導, 增強學習興趣
每一次上課都引入一個實際案例。教師對案例進行分析,講解案例中涉及的知識點,然后提出相關問題,給出初步解決方案。比如遞歸算法一直是C語言教學中的難點,通過分析如“掃雷游戲”這樣學生比較有興趣的問題來講解算法的構造, 學生較容易理解遞歸算法的工作框架及流程。講解二維數組也是通過“學生成績計算與統計”這個項目來完成的。通過具體的案例分析, 既能把抽象問題具體化,又可以調動學生的學習興趣,較快接受新知識[3]。
3.2.2 知識講解與應用并重,訓練程序設計思維模式
講解C語言的知識點時,不能只側重于簡單的語法知識介紹,還應注重知識的連貫,同時輔以相應的應用技能訓練,以免學生死記語法而忽略了程序設計方法。強化“自頂向下、逐步細化分解”的程序設計思維訓練,培養學生在編寫復雜代碼之前能將復雜的問題分解為若干個邏輯結構合理的簡單算法的能力,探索解決問題的方法。
3.2.3 “教、學、做”一體化
“教、學、做”一體化的教學方法,符合學生的認知規律,適合運用于項目導向式的案例教學。課堂上教師注重把握好“應用為主線,減少抽象理論描述”的原則,將“精講多練,以教師為主導,以學生為主體”的教學設計理念貫穿于整個教學過程。注重調動學生的學習積極性,啟發學生勤思考、多動手,充分利用好學生的“聽、思、做、練”各個階段,及時檢查思和練的效果,培養學生求真務實的科學精神[4]。
3.2.4 分組討論,培養團隊協作能力
對于難度不大的學習內容,可安排學生自學,而對于綜合性較強的學習內容,則可以安排學生分組進行討論。自學和討論的結果由學生在課堂上向同學講述,讓每個學生都有積極參與的興趣,這樣既能活躍課堂氣氛,又能培養學生的自學能力和團隊協作精神[5]。
3.2.5 課內外訓練相結合,培養學生綜合應用能力
課內教師進行引導教學,通過典型案例講解程序設計的基本方法、程序測試方法、程序調試和排錯糾錯方法,并為每次課設計相應的實訓項目。課內時間有限,鼓勵學生課外進行自主學習,將課堂上學習過的內容融會貫通,充分地消化和吸收。安排有一定挑戰性的實訓項目,鼓勵學生課外多訓練,倡導學生課后以寢室為單位,組成學習小組,進行討論、分析和解決問題。鼓勵學生積極參加各類程序設計比賽,以賽促學。如參加廣東省舉辦的“高校杯”程序設計比賽,進一步提高學生程序設計的興趣,提升綜合應用能力。
4 考核方式的改革與實踐
考核采用閉卷上機編程和實訓項目答辯相結合的形式。
4.1 閉卷上機考試
上機測試占總成績的70%,考核基本知識的掌握情況。主要考核基本語法、常用算法、編寫小型程序、測試小型程序和解決一般問題的能力。
教師根據考核要求給出7個編程題,讓學生任選5個。題目涵蓋基礎知識的80%以上,對每個編程題提出具體要求,如使用冒泡法排序、使用選擇法排序、使用函數、使用指針等非常具體的要求,以較為全面的考核學生對知識的掌握情況。
4.2 實訓項目答辯
實訓項目答辯占總成績的30%,考核學生運用知識的能力、綜合程序設計的能力、分析問題和解決問題的能力,以及團隊合作能力。以下給出具體實施方法。
⑴ 教師給出8-10個實訓項目,供學生任意選擇一項。
⑵ 學生5-6人為一組,在給定的項目中選擇一項,也可以自行擬定其他的項目。
⑶ 成立答辯小組。答辯小組由任課教師、課代表和各小組指派的一名同學組成。
⑷ 答辯時,先由各小組指派一名同學對他們的項目設計進行講解,然后小組其他成員接受答辯小組的提問。
⑸ 成績由答辯小組各成員現場打分,分數統計后去掉最高分和最低分,取平均值記入小組每個成員的成績表。
這樣的考核方式,有利于學生靈活運用所學知識,有利于創新思維的培養。
5 結束語
通過改進課程教學方法、重新序化教學內容、不斷完善教學手段、改進考核方式等教學改革,有效提高了學生主動學習的積極性。以往不及格率最高的C語言課程,近三年的及格率均在90%以上,30%以上的學生獲得了優秀,對于課程設計絕大多數學生都完成得很好。我校大一學生在2013年的“藍橋杯”全國軟件專業人才設計與創業大賽中取得了一、二等獎的好成績,這從一個側面驗證了教學改革是卓有成效的。
雖然高職院校對基礎核心課程不斷提高重視程度,但C語言程序設計課程的教學方法、教學內容、考核方式的研究和改革是一個長期的課題,必須與時俱進,在教學實踐中不斷探索新思路。
參考文獻:
[1] 魯紅英,肖思和,孫淑霞.“C/C++語言程序設計”課程教學改革與實踐[J].計算機教育,2013.7:95-98
[2] 康玉忠,甘宏,段傳林.C語言程序設計項目教程(第1版)[M].中國商業出版社,2010.
[3] 李杰,劉延嶺,蘇建華.C程序設計課程教學方法的實踐與探索[J].計算機與網絡,2014.1:127
[4] 董淑娟.高職“C#程序設計”課程教學方案研究[J].教育與職業,2012.20:125-127
[5] 袁學倩.《C語言程序設計》課程教學改革的探討[J].職校論壇,2012.21:137-138
推薦訪問: 教學改革 實踐 課程 語言程序設計下一篇:中國版本圖書館月度CIP數據精選
XX委高度重視黨校的建設和發展,出臺《創建全省一流州市黨校(行政學院)實施方案》及系列人才培養政策,為黨校人才隊伍建設提供了有力的政策支撐。州委黨校在省委黨校的悉心指導下、州委的正確領導下,深入貫徹落
為推動“不忘初心、牢記使命”主題教育常態化,樹牢“清新簡約、務本責實、實干興洛”作風導向,打造忠誠干凈擔當、敢于善于斗爭的執紀執法鐵軍,經縣紀委常委會會議研究,決定在全縣紀檢監察系統開展“轉變作風工作
為進一步發展壯大農村集體經濟,增強村級發展活力,按照中共XXX市委抓黨建促鄉村振興工作領導小組《關于印發全面抓黨建促鄉村振興四個工作計劃的通知》要求,工作隊與村“兩委”結合本村實際,共同研究謀劃xx村
今年來,我區圍繞“產城融合美麗XX”總體目標,按照“城在林中,水在城中,山水相連,林水相依”以及“城鄉一體、景城一體、園城一體”的建設思路,強力推進城市基礎設施建設、棚戶區改造、房地產開發和城市風貌塑
同志們:新冠疫情發生至今已有近三年時間。三年來,在廣大干群的共同努力下,我們堅決打好疫情防控阻擊戰,集團公司范圍內未發生一起確診病例,疫情防控工作取得了階段性勝利。當前國際疫情仍在擴散蔓延,國內疫情多
我是畢業于XX大學的定向選調生,當初懷著奉獻家鄉、服務人民的初心回到XX,在市委的關心關愛下,獲得了這個與青年為友的寶貴歷練機會。一年感悟如下。一要對黨忠誠,做政治堅定的擎旗手。習近平總書記指出,優秀
同志們:今天召開這個會議,主要任務是深入學習貫徹習近平總書記重要指示批示精神,以及李克強總理批示要求,認真落實全國安全生產電視電話會議和全省、全市安全生產電視電話會議精神,研究我縣安全生產和安全隱患大
2022年市委政研室機關黨的建設工作的總體要求是:堅持以XXX新時代中國特色社會主義思想為指導,全面貫徹黨的XX屆X中X會和省、市第十二次黨代會精神,自覺運用黨的百年奮斗歷史經驗,弘揚偉大建黨精神,深
同志們:今天,我們在這里召開市直機關基層黨建示范點工作會議,一方面是對各示范點單位進行表彰授牌,另一方面是想通過這種會議交流的方式,給大家提供一個相互學習、取長補短的平臺和機會。市直工委歷來把創建基層
新冠疫情暴發以來,學校黨委堅決貫徹習近平總書記關于疫情防控工作的指示要求和黨中央的決策部署,嚴格執行×××部、×××廳關于疫情防控的系列要求,認真落實駐地防疫部門的工作舉措,繼承發揚優良傳統,以最高標