徐濟惠 顏晨陽


摘 要 C語言是高職計算機類專業的一門重要的專業基礎課程,課程學習的好壞,對后續課程的學習起到位至關重要的作用。基于多年教學經驗,提出了“教學中思考、思考中教學”的C語言程序設計課程教學方法,目的是讓學生能夠“學得會,有興趣的學、并且學有所成”。
關鍵詞 教學方法 C語言 計算機課程 高職教學
中圖分類號:G424 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ?DOI:10.16400/j.cnki.kjdkx.2020.09.049
Abstract C language is an important professional basic course for computer majors in higher vocational colleges. The quality of course learning plays an important role in the follow-up course learning. Based on many years of teaching experience, this paper puts forward the teaching method of "thinking in teaching and teaching in thinking" in C language programming course. The purpose is to enable students to "learn well, learn with interest, and achieve what they have learned".
Keywords teaching methods; C language; computer course; higher vocational teaching
1 簡介
C語言是一門面向過程的計算機語言,囊括了程序設計的基本概念,是計算機類專業的一門重要的專業基礎課程,其目的是培養學生的程序設計理念,掌握程序設計的基本方法,為后繼課程(數據結構、面向對象程序設計、操作系統、編譯原理和軟件工程等)打下堅實的基礎。C語言對一般初學者來說,規則較多,使用太靈活,不易掌握,學習會有一定的困難。因此,單純地講一些語法、規則,就顯得比較抽象、枯燥、難學,讓學生望而生畏。在現在的各大高校計算機類專業中,一般情況下,它是大一新生接觸到的第一門專業課,因此本課程的教學效果好比一把雙刃劍,學得好,能鍛煉學生的邏輯思維能力,培養學生的學習興趣,為后續課程打下扎實的基礎。學得不好,將影響后續課程的學習,更會使學生對未來的學習喪失信心,自暴自棄。因此,作為專任老師,在教學中應該學會思考,如何上好C語言這門課程,讓學生能夠“學得會,有興趣的學、并且學有所成”。通過思考,將一些好的教學方法和手段應用于教學,最終達到我們的教學目標。
2 教學內容
“C語言程序設計”課程的主要目的是使學生能夠初步掌握計算機程序設計的基本思想和方法,培養學生分析和解決問題的能力,提高學生的學習和編程興趣,為后續課程的學習打下扎實的基礎。所以在課程內容的設計上,不應過分注重于語法知識(抽象),而應重點強調程序設計的基本方法。因此,在教學內容的選取上,采用“有所取、有所不取”的策略,對于那些與程序設計方法關系不大,也不常用的部分,根本不選取;對哪些不太重要的,在遇到程序舉例時簡單介紹;對哪些常用的語法成份,則穿插在程序設計中詳細介紹。另外,“C語言程序設計”課程的重點是訓練學生的邏輯思維能力,其中掌握常用的算法是關鍵,如:計數、累加、累乘、排序、分類等。為學生以后編寫程序、軟件設計打下基礎。同時典型算法的學習掌握,也可以增強學生的信心和學習的興趣。因此在課程的教學中,就應想辦法讓學生將這些算法必須全部掌握,讓學生感到學有所成。
3 教學方法
3.1 運用實例,變抽象為具體
在C語言的教學中,一開始就要學習基本數據類型及運算符,格式化輸入函數scanf()和格式化輸出函數printf(),如果單一地介紹數據分為整型、實型、字符型,對應的格式為%d、%f、%c等,學生就會感到枯燥乏味。如果這時我們能夠選擇一些實際的例題,提出通過我們學習,利用相應的數據類型,就可以編程,如:要求學習者給幼兒生成一道加法題“25+67=”,可用下面4種方法實現(圖1)。
通過類似于這四種方法的變化,使學生在學習%d、%f等格式符和格式化輸入函數scanf()、格式化輸出函數printf()的時候,做到不抽象,而變得生動起來。
3.2 層層遞進,激發學習興趣
C語言中,在語句結構的學習中,就會講到條件語句if,循環語句等,這時我們可以繼續引用前面的例子,進行進一步的深化。這樣可以做到環環緊扣、層層遞進,相互聯系。前面出的題,在幼兒在答題時,不知道題是否答對,現在利用if語句,就可以生成一道題,具有及時告知幼兒答題情況的功能:
if (x+y==z) printf(“恭喜你答對了!”);
else printf(“不對,請繼續努力,加油!”);
這樣我們每次只能出1道題,如果需要學生一次性生成10道加法題,如何解決?這樣我們可以進一步提出循環的概念,利用循環解決問題。讓學習者感到有一定的成就感,引發學習者對編寫程序學習的興趣。
3.3 探究性學習,提高教學質量
在學生有了一定的興趣后,我們可以向學習者提出更高的要求。通過對知識的擴展,讓學生感覺到只要通過努力,進行一定的深入思考,可以達到更高的水平。針對上面例題,我們提出是否可以讓計算機自動生成2位數加數和被加數,這時我們提出隨機數rand()的產生,并且可以統計出答題對錯情況。在這個基礎上我們教師可以進一步思考,可以繼續提出一些問題,完成讓小學生進行“加、減、乘、除”運算,以菜單的顯示方式供學生進行選擇(圖2)。這樣看似提高了難度,實際上就是在原來的基礎上,將加法程序相似地改成“減、乘、除”,同時可以介紹swith()語句的功能和使用。讓學生感覺到以前做不到的,通過學習現在做到了,有了一定的成就感,更加激發了他們的學習興趣。同時也讓他們堅定一定的信念,只要通過有效的學習,他們也可以編寫出有效的代碼程序。
3.4 融入課程思政,提升學生素質
在程序設計的教學過程中,我們不僅要教會學生編程的方法和技巧,而且更應該通過課程的教學,教會學生踏實的工作作風,提升分析問題的能力以及團隊合作的精神等方面的內容。首先是樹立踏實細致的工作作風。編寫程序,我們必須有編譯、調試改錯的環節,這時,我們就應該教導學生養成“獨立、細致、耐心”的工作作風,只有這樣才能達到成功的彼岸。其次是提升分析問題的能力。通過具體實例,教導學生“處理任何復雜的問題,應做到先分析、再處理,將復雜問題分步處理”。提高學生的邏輯思維能力和今后處理工作問題的能力。最后是培養學生團隊合作的精神。在教學的過程中,灌輸學生團隊合作的重要性,對于一個大型的軟件,現有的軟件公司都是組成一個團隊進行分工合作、共同開發,需要進行相互的溝通、配合才能完成最終軟件開發。因此我們在平時的教學中也應該有意識的安排一些合作完成的項目,培養學生的團隊精神。
4 結論
這樣,我們通過一道小學生的加法題入手,通過精心的設計,由淺入深,層層推進,貫穿始終,讓學生在不知不覺中學到了相關的知識點,同時提高了編程的興趣和能力,讓學生感覺到編程既不神秘也不是太難,同時也激發他們要進一步學習和深入研究的動力。同時在教學中進行適當的拓展和延伸,培養學生今后進入工作崗位所需要的職業素質。這就需要我們教師在教學過程中必須不斷探討適合學生的教學方法和手段,激發學生的學習興趣,更新教學理念,精心研課磨課,努力提高課程的教學質量。真正做到“教學中思考、思考中教學”。
參考文獻
[1] 孫雪巖.C++程序設計基礎教學方法改革研究探索[J].新教育時代電子雜志(教師版),2018 (022):237.
[2] 彭穎,梁俊斌.以CDIO教育理念為引導的程序設計基礎教學改革研究[J].大學教育,2016(1):27-28.
[3] 楊梅,王楊.以計算思維為導向的程序設計基礎課程教學研究[J].計算機教育,2015(16):98-101.
[4] 馬曉娟.校企合作下的《程序設計基礎》教學模式研究[J].軟件導刊.教育技術,2014(7):13-14.
[5] 鐘娟,章曙光,程遠,等.程序設計基礎課程多元化教學體系的研究[J].電腦知識與技術,2018.014(022):92-94.