呂靜
摘要:作為一門最基礎(chǔ)的計(jì)算機(jī)程序設(shè)計(jì)課程,C語言的地位和作用是非常重要的。很多高等院校將C語言作為理工科學(xué)生的必修課程。文章根據(jù)教學(xué)現(xiàn)狀和教學(xué)要求,通過討論實(shí)際教學(xué)中面臨的一些問題,對如何教好該門課程進(jìn)行探索。文章同時(shí)也從培養(yǎng)學(xué)生計(jì)算思維的角度,討論如何提高學(xué)生分析問題解決問題的能力。
關(guān)鍵詞:C語言;計(jì)算思維;教學(xué)方法;翻轉(zhuǎn)課堂;任務(wù)驅(qū)動(dòng)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)03-0153-02
Thinking about the C Course Teaching
LV Jing
(School of Computer Science and Technology, Nanjing Normal University, Nanjing 210046, China)
Abstract: As one of the basic computer programming courses, the C language is very important. Many universities take the C language as a compulsory course for some engineering students. The paper based on the status quo of teaching, explores how to teach the course. At the same time, the paper also discusses how to improve the students ‘a(chǎn)bilities by computational thinking.
Key words: C language; computational thinking; teaching methods; flip classroom; task-driven
1 C語言教學(xué)現(xiàn)狀
1.1 學(xué)生現(xiàn)狀
C語言可以說是許多常用程序設(shè)計(jì)語言的母語,學(xué)會(huì)了C語言再學(xué)習(xí)其他的程序設(shè)計(jì)語言可以達(dá)到事半功倍的效果。C語言不僅具備高級(jí)語言的特點(diǎn),同時(shí)還具備匯編語言的優(yōu)越性,因此具有極好的實(shí)用性。但在實(shí)際教學(xué)過程中,存在以下問題:(1)語言內(nèi)容繁多,比如C語言有34種運(yùn)算符,運(yùn)算表達(dá)形式多種多樣。數(shù)據(jù)類型有實(shí)型、整型、數(shù)組類型、結(jié)構(gòu)體類型、指針類型等內(nèi)容。學(xué)生面對繁多的知識(shí)內(nèi)容,容易記不住,也會(huì)出現(xiàn)知識(shí)混淆的現(xiàn)象。例如在使用字符串賦值時(shí),學(xué)生很容易混淆指針變量和字符數(shù)組的賦值方式。(2)語法規(guī)則瑣碎,指針的應(yīng)用又使得編程靈活多變。在調(diào)試程序過程中,一個(gè)分號(hào)的漏寫,或是一個(gè)錯(cuò)誤的數(shù)據(jù)類型的賦值,就可能導(dǎo)致程序產(chǎn)生很多錯(cuò)誤,而剛接觸C語言的同學(xué),尤其是英文不好的同學(xué),找出這樣的疏忽比較困難時(shí)容易自暴自棄,從而導(dǎo)致學(xué)習(xí)興趣減弱,不利于后續(xù)課程的學(xué)習(xí)。
1.2 教學(xué)模式
目前大部分教學(xué)模式都是課堂教學(xué)+上機(jī)實(shí)驗(yàn)。教師基本以課堂知識(shí)講解為主,按照傳統(tǒng)的先語法后程序設(shè)計(jì)的教學(xué)模式進(jìn)行教學(xué),容易使得內(nèi)容枯燥無味。長期以往,學(xué)生會(huì)覺得學(xué)習(xí)C語言只是為了應(yīng)付期末考試和等級(jí)考試,而不知道為什么C語言中有指針,結(jié)構(gòu)體這些數(shù)據(jù)類型,從而失去學(xué)習(xí)興趣,同時(shí)也會(huì)阻礙學(xué)生編程思維的發(fā)散,導(dǎo)致有些學(xué)生學(xué)完C語言僅僅只是能通過考試,沒有實(shí)際解決問題的能力。在后續(xù)的課程中也不能有效銜接,學(xué)過就像沒學(xué)的一樣。上機(jī)實(shí)驗(yàn)以書本內(nèi)容為主,缺乏適當(dāng)?shù)耐卣?。大部分學(xué)校都是一個(gè)老師帶多名學(xué)生上機(jī)實(shí)驗(yàn),很難面面俱到,幫助每個(gè)同學(xué)及時(shí)解決問題,造成部分同學(xué)在問題得不到及時(shí)解答時(shí)覺得程序設(shè)計(jì)很難,很枯燥乏味也很容易放棄。
2 課程教學(xué)探討
2.1培養(yǎng)學(xué)生的計(jì)算思維能力
算法思維和系統(tǒng)思維是兩種重要的計(jì)算思維,程序設(shè)計(jì)是提高計(jì)算思維能力的重要途徑。在程序設(shè)計(jì)教學(xué)中要強(qiáng)化算法,弱化語法。算法是問題的求解過程,在設(shè)計(jì)過程中,對算法的可行性,時(shí)間空間代價(jià)的考慮,可以很好地培養(yǎng)學(xué)生的算法思維能力。當(dāng)學(xué)生將算法用具體語言實(shí)現(xiàn)時(shí),又很好地培養(yǎng)了系統(tǒng)思維。由于C語言是其他多種語言的基礎(chǔ),當(dāng)學(xué)生真正搞清楚某類問題的解決方法時(shí),再用其他語言可以很容易實(shí)現(xiàn)。但是學(xué)生在剛開始學(xué)習(xí)程序設(shè)計(jì)時(shí),往往沒有頭緒,對著電腦無從下手。因此在實(shí)際教學(xué)過程中,講透知識(shí)點(diǎn)內(nèi)容,帶著學(xué)生進(jìn)行編程,一步步讓學(xué)生從模仿到自己編程,逐漸提高學(xué)習(xí)興趣。上機(jī)實(shí)驗(yàn)時(shí)讓學(xué)生在實(shí)驗(yàn)之前畫流程圖,或是編寫程序代碼,然后上機(jī)調(diào)試,找出錯(cuò)誤的原因。通過不斷地編程學(xué)習(xí),可以逐漸培養(yǎng)學(xué)生的計(jì)算思維能力。
2.2 設(shè)計(jì)好的教學(xué)方法
1)案例遞進(jìn)驅(qū)動(dòng)教學(xué)法。在實(shí)際教學(xué)中教師設(shè)計(jì)教學(xué)案例時(shí)要根據(jù)思維規(guī)律,漸進(jìn)式地分析問題,找出內(nèi)在規(guī)律。題目不在于多而在于精。比如輸入若干學(xué)生成績,求最高分,最低分,平均分等。從基本輸入輸出開始,到數(shù)組,指針,文件,結(jié)構(gòu)體都可以圍繞該問題用不同方法進(jìn)行求解,同時(shí)題目難度也可以逐漸增加。這樣學(xué)生不至于覺得問題無從下手,能很自然地對熟悉的問題在不同方法下求解去比較異同,又從而達(dá)到對知識(shí)的掌握和運(yùn)用。
2)任務(wù)驅(qū)動(dòng)法。在實(shí)際教學(xué)中,教師的作用是一個(gè)引導(dǎo)者,而不再是傳統(tǒng)的“滿堂灌”。通過提出問題—設(shè)計(jì)算法—編寫程序這一系列的過程,可以有效提高學(xué)生的學(xué)習(xí)興趣。而在教學(xué)過程中提出有趣或?qū)嵱玫睦樱梢曰钴S課堂氣氛,提高學(xué)生的參與度。比如雞兔同籠問題,點(diǎn)名程序,學(xué)生檔案管理程序等既結(jié)合了書本知識(shí)點(diǎn),又吸引了學(xué)生,通過自己編寫程序提高決問題的能力。在教學(xué)過程中還可以結(jié)合如人臉識(shí)別系統(tǒng),嵌入式系統(tǒng)開發(fā)等當(dāng)前熱點(diǎn)或是與學(xué)生專業(yè)相關(guān)的C語言的最新應(yīng)用,要求學(xué)生查閱資料了解,拓寬自己的知識(shí)面。進(jìn)一步吸引學(xué)生,同時(shí)也重視C語言這門課程。
3)翻轉(zhuǎn)課堂模式。翻轉(zhuǎn)課堂模式與傳統(tǒng)的課堂模式最大的區(qū)別在于教學(xué)時(shí)間的分配環(huán)節(jié)。翻轉(zhuǎn)課堂主要通過網(wǎng)絡(luò)和現(xiàn)實(shí)課堂在教師引導(dǎo)和協(xié)助下,進(jìn)行教師與學(xué)生之間、學(xué)生與學(xué)生之間的互動(dòng)和交流。實(shí)現(xiàn)翻轉(zhuǎn)課堂,需要搭建相關(guān)的網(wǎng)絡(luò)教學(xué)平臺(tái),錄制重點(diǎn)內(nèi)容的微視頻或推薦網(wǎng)上好的Mooc視頻,將線上和線下學(xué)習(xí)有機(jī)結(jié)合。教師通過提問、討論、網(wǎng)絡(luò)測試等方式了解學(xué)生的課外學(xué)習(xí)情況,學(xué)生在課堂提出疑問,討論,上機(jī)編寫程序。這樣既可以促進(jìn)學(xué)生的學(xué)習(xí)主動(dòng)性,更深入地思考問題,又可以通過分析教學(xué)數(shù)據(jù),促進(jìn)教師有效地改進(jìn)教學(xué)過程。
3 結(jié)束語
在以后的教學(xué)過程中,教學(xué)方法主要從以教師為主向以學(xué)生為主轉(zhuǎn)變,以課堂教學(xué)為主向課內(nèi)外結(jié)合轉(zhuǎn)變,以一張?jiān)嚲矶ǔ煽兿蚓C合考核方向發(fā)展。通過設(shè)計(jì)好的案例激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生自主學(xué)習(xí)的能力,從而訓(xùn)練學(xué)生良好的編程思維, 為學(xué)生在后續(xù)課程的學(xué)習(xí)中打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1] 譚浩強(qiáng).C 程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.
[2] 占德臣. “大學(xué)計(jì)算機(jī)”一一所有大學(xué)生都應(yīng)學(xué)習(xí)的一門計(jì)算思維基礎(chǔ)教育課程[J].中國大學(xué)教育,2011(4).
[3] 耿國華.程序設(shè)計(jì)能力培養(yǎng)模式的探索與實(shí)踐[J].中國大學(xué)教學(xué),2009(3) : 30-32.
[4] 祁俊.《C語言程序設(shè)計(jì)》課程對學(xué)生思維能力的訓(xùn)練[J].青海大學(xué)學(xué)報(bào):自然科學(xué)版,2009(10):91-93.
[5] 王紅光,都麗霞.C程序設(shè)計(jì)教學(xué)方法改革實(shí)踐[J].城市建設(shè)理論研究:電子版, 2013,4(32):252-253.
[6] 王穎,楊文蓮,劉麗娟.C語言教學(xué)中不容小覷的思維能力培養(yǎng)[J].中國科技信息,2011(2):212-213.