竇立君++張金鳳
摘要:通過對計算機二級C語言考試要求和大學公共課程《C程序設計》教學要求的分析,結(jié)合實際教學經(jīng)驗,探討了在C程序設計課程中應用課堂陷阱教學技巧的教學體會。
關鍵詞:語言;軟件技術;教學技巧;教學體會
中圖分類號:G424 文獻標識碼:A 文章編號:1009-3044(2015)11-0106-02
Introduction to C Program Design Course Teaching Experience
DOU Li-jun1,ZHANG Jin-feng2
(1. Nanjing Forestry University, Nanjing 210037, China;2Nanjing Communications Institute of Technology, Nanjing 211188, China)
Abstract:The computer second grade for c language examination requirements and College curriculum requires the teaching of c programming analysis and practical teaching experience, discusses the application of c-programming course trap teaching techniques in the classroom teaching experience.
Key words: languages, software technology; teaching skills; Teaching experience
《C語言程序設計》是軟件服務外包專業(yè)的專業(yè)基礎課,也是一門全校理工科專業(yè)學生公共基礎必修課程,同時它還是一門實踐性很強的課程,既要掌握理論概念,又要動手編程,還要上機調(diào)試運行。在計算機迅猛發(fā)展的21世紀,對計算機的了解和學習更加重要,C語言也愈加顯示出其重要性。故而各高校都希望通過對該課程的學習,學生不僅要掌握高級語言程序設計中數(shù)據(jù)類型、句法、語法等基礎知識,還要掌握在實踐中如何運用這些基礎知識的思想和方法,進而養(yǎng)成獨立思考的習慣和利用計算機解決實際問題的計算思維能力[1],同時也能順利獲得計算機二級C語言考試的證書。
而困擾學生的問題是,C語言比較難學。同樣的,對老師來說,如何讓學生學習起來更加輕松,就成為亟須解決的問題。
1 教學現(xiàn)狀
1.1 教學目標
通過計算機基礎的學習,大家都知道計算機語言分為機器語言、匯編語言和高級語言。機器語言就是二進制代碼,這個除了特別專業(yè)的研制計算機的人需要了解外,已基本無需了解。匯編語言則和計算機部分硬件內(nèi)容相關,掌握起來非常復雜,也只需要計算機專業(yè)的學生去了解。而大部分人使用的都是高級語言。在高級語言中,C語言是最早、最基本的語言,也是最接近匯編的語言。掌握了C語言的基本知識,對其它語言的學習則有了一個非常堅實的基礎,學習起來也事半功倍。
C語言課程主要講述了數(shù)據(jù)的基本類型,語言的三種基本結(jié)構—順序、選擇和循環(huán),數(shù)組,字符串等。這些內(nèi)容在現(xiàn)今流行的高級語言諸如Java、C#等中都是基本相同的。故而當掌握了C語言后,對其它語言來說,只是解決問題的工具不同,方法和思路都是一樣的。由此可以看出,本課程可以當作學習其它語言的一個基礎。
通過對本課程的學習,培養(yǎng)學生學會分析問題的方法和基本問題的解決能力,掌握程序設計語言的基礎知識,培養(yǎng)學生綜合分析和編制程序解決實際應用問題的能力,培養(yǎng)學生鍥而不舍的解決問題的精神,認真的學習態(tài)度和工作作風。使學生初步具備軟件開發(fā)的能力,為進一步的專業(yè)學習打下良好、扎實的理論基礎。
1.2 學生學情分析
在我國目前的教育結(jié)構中,大部分學生在中學階段對計算機已經(jīng)有所了解。在信息爆炸的時代,對計算機已經(jīng)不再感到神秘。無論是智能手機的使用、高效的通訊手段、多彩的游戲畫面、多功能的計算機軟件,都能引起大學生對計算機課程的學習興趣。故而學生的學習的興趣應該比較高。
另一方面,目前的課程大部分開在大學一年級或者二年級的第一學期,只學過計算機基礎課程,所以對語言的了解比較少,分析問題解決問題的能力相對較差。
1.3 教學條件
在本校的教學中,更加強調(diào)學生綜合素質(zhì)的培養(yǎng)。現(xiàn)在的學生,大部分已經(jīng)擁有自己的電腦。而學校也配備有專門的公共機房,學生隨時可以進行上機操作。
2 教學體會
2.1 強化學習目標
數(shù)學是一切自然科學的基礎,也是程序設計的基礎,程序設計是將數(shù)學應用于解決實際問題的技術。因此,計算思維能力是計算機科技工作者必備的能力[2]。
C語言的學習目標是掌握程序設計的基本思想,掌握數(shù)據(jù)的基本結(jié)構,了解簡單的程序設計的算法。學完整個課程后,能對程序設計有個基本的了解,對計算機的操作流程有大致的了解,知道所有計算機的操作都是在程序的控制下完成的。當然,對于一個本科生來說,獲得計算機二級C語言的證書也是基本要求。對于本科類院校,重點在理論知識的掌握上,后面我們很可能需要繼續(xù)深造。在進行科學研究的時候,很多計算機的解決問題的方法對別的學科來說都是通行的。比如,C語言程序設計的思想是“自頂向下,逐步求精”[3]。這一思想在解決實際問題的時候也可以拿來使用。在解決一個實際的大的問題的時候,也是采取“大事化小”的方法,將一個大的問題分解成許多小問題,再逐步針對對這些小問題一一解決,當小問題都解決完成后,大問題也就迎刃而解了。運用計算機解決問題的思想,可以解決很多類似的生活和學習中的問題,對學生今后的學習和生活都有很大的幫助。
2.2 教學方法及技巧
教學方法是教育中的重要組成部分。對于本科教育來說,已經(jīng)從原來的精英型教育逐漸過度到大眾化教育,培養(yǎng)能干活的工程師是最終目標。因此,基礎理論知識、實踐動手能力的培養(yǎng)是我們教學中需要重點考慮的。對應采取的教學模式主要包括教室理論授課和實驗室上機實習等。每種教學模式都包含教學目標、教學流程、實施要求等要素。
為了讓學生能夠更清晰地理解基本理論和,在C程序設計課程的理論教學過程中靈活運用了3W1H、現(xiàn)場提問和設問、對比教學、現(xiàn)場編程、課堂陷阱、任務分解、分散貫穿、分散集中、兩段教學、視頻演示、斷點追蹤、小組競賽、課前預習、課后復習、階段測評15種教學技巧。在課堂教學過程,并不是說所有的這些教學技巧都能隨時使用,而是要在教學過程中通過對教學內(nèi)容的詳細分析研究,以及結(jié)合課堂教學的進度情況選擇合適的一個或幾個教學技巧,才能發(fā)揮其作用,取得很好的教學效果。比如:比如現(xiàn)場編程,在完成一個程序設計方面的知識點的講授之后,為鞏固該知識點,及時的舉例,并現(xiàn)場編程實現(xiàn)可以進一步加深學生對該知識點的掌握。階段測評,在各類課程教學中都是廣泛使用的一種教學技巧,通過階段測評,教師可以清楚地了解學生近期知識點的掌握情況,并根據(jù)測評結(jié)果制定相應的后續(xù)教學計劃。
下面以算術運算符中的除法運算符(/)的應用為例,詳細介紹課堂陷阱教學技巧在該知識點的教學過程中應用如表1。
在這門課程的學習過程中,雖然授課和實踐操作時間有限,且課程也有一定的難度,但是通過教師的從為什么、如何用、怎么用和在什么場合用的具體分析,再通過合適的課堂陷阱的設置,讓學生從根本上弄清課程的理論知識,并逐步引導學生熟練運用相關知識編寫應用程序來解決實際問題。
表1 課堂陷阱教學技巧
[項目\&內(nèi)容\&課堂
案例\&除法運算符符的應用:從鍵盤上輸入華氏溫度,根據(jù)轉(zhuǎn)換規(guī)則,輸出對應的攝氏溫度。
轉(zhuǎn)換規(guī)則:[C=59(F-32)]\&教學技巧描述\&在課堂上針對整型數(shù)據(jù)算術運算符中的除法運算符(/)的知識點,設置該案例,現(xiàn)場給出有問題的程序,然后運行該程序,發(fā)現(xiàn)錯誤結(jié)果之后,再與同學們一起分析錯誤原因、修改程序,最終讓同學們切實理解除法運算符使用。\&實施
要點\&1、知識點講解:首先對每個算術運算符及其用作詳細講解,并舉例說明,然后將其應用到程序設計中,引入該案例。
2、順序方面:必須和同學們一起完成該案例實現(xiàn)的全過程。
1)分析該案例,然后一起現(xiàn)場編寫程序代碼。
2)現(xiàn)場執(zhí)行該代碼,查看程序運行結(jié)果,并發(fā)現(xiàn)問題。
3)與學生討論、分析該問題產(chǎn)生的原因。
4)找到問題產(chǎn)生的原因,并一起修改程序,重新執(zhí)行得到正確的結(jié)果。\&陷阱
舉例\&1、在該案例實現(xiàn)中,開始書寫代碼時將華氏轉(zhuǎn)換為攝氏溫度的轉(zhuǎn)換規(guī)則直接按給出的公式轉(zhuǎn)換為C語言中的數(shù)學表達式:
[C=5/9*(F-32)]
程序執(zhí)行之后,無論輸入什么華氏溫度值,輸出結(jié)果均為0,請同學們思考出現(xiàn)這個現(xiàn)象的原因是什么。
2、再次將講解運算符時的小算式拿來對比:
1/2=? 4/3=? 5/6=?
通過這些小算式讓同學找到當前案例執(zhí)行結(jié)果出錯的原因所在:除法運算符對于兩操作數(shù)都為整型數(shù)據(jù)時結(jié)果亦為整型,因此,案例中表達式5/9的結(jié)果永遠是0,后面的表達式不管結(jié)果是多少,與之相乘結(jié)果必然為0。
3、修改程序代碼:5.0/9*(F-32),運行后結(jié)果正確。\&]
3 總結(jié)
本文通過對《C程序設計》課程的教學背景、教學目標、學生學情、學校教學條件的分析,介紹本課程的作用、上課時所采用的教學方法和教學技巧等。經(jīng)過實際實施,課堂的教學效果良好,學生的分析問題、解決問題、編碼的規(guī)范程度、編程能力都有顯著提高,為后面課程的學習奠定了良好的基礎。
參考文獻:
[1] 寧雪靜,沈澤剛.高級語言程序設計課程整合研究[J].計算機教育,2009(2):108-109.
[2] 吳文虎.精心鑄精品理念須先行[J].計算機教育,2008(13):46-49.
[3] 譚浩強.C程序設計[M].3版.北京:清華大學出版社,2002(2):33.