• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C語言程序設計實驗教學探索

      2017-11-18 02:34:00彭旭東王成霞王海燕
      中國輕工教育 2017年5期
      關鍵詞:提示信息程序設計錯誤

      彭旭東 王成霞 萬 紅 王海燕 李 可

      (天津理工大學,天津 300384)

      C語言程序設計實驗教學探索

      彭旭東 王成霞 萬 紅 王海燕 李 可

      (天津理工大學,天津 300384)

      C語言程序設計是目前高校很多非計算機專業(yè)開設的必修課。學習該課程,目的是培養(yǎng)學生使用和操作計算機的綜合能力,進而培養(yǎng)計算思維。為此,針對多數(shù)學生的學習現(xiàn)狀,從參與者的態(tài)度、實驗輔助系統(tǒng)和實驗題目三個方面探討了對實驗教學環(huán)節(jié)的改革,取得了比較好的效果。

      實踐能力;C程序設計;實驗教學

      目前,我國高校面向非計算機專業(yè)學生開設的程序設計類課程主要是C語言程序設計。該課程既適合培養(yǎng)學生的實踐動手能力,也適合培養(yǎng)計算思維。

      一、計算思維與研究現(xiàn)狀

      計算思維的概念由美國周以真教授于2006年提出:“計算思維是運用計算機科學的基礎概念去求解問題、設計系統(tǒng)和理解人類的行為?!浔举|是抽象和自動化。抽象是通過簡化、轉換、遞歸、嵌入等方法,將一個復雜問題轉換成許多簡單的子問題并進行求解的過程,……自動化是充分利用計算機運算能力來實現(xiàn)問題求解,……因此計算思維是一種形式規(guī)整、問題求解和人機共存的思維[1]?!?010年在西安交通大學舉辦了首屆“九校聯(lián)盟(C9)計算機基礎教學課程研討會”,會上提出,計算機基礎教學的核心任務是計算思維能力的培養(yǎng)[2]。

      為了更好地培養(yǎng)學生的實踐動手能力和計算思維,許多教師從多個方面對程序設計課程進行了改革。黃靜等借鑒任務驅動教學法來構建程序設計的教學模式[3]。喬淑云等提出在教學中采用大班授課小班實驗的方式,制訂低起點、小坡度、快節(jié)奏、高標準的教學策略,靈活運用多種教學方法進行授課[4]。劉光蓉提出把實驗分為驗證型實驗、設計型實驗和綜合型實驗,規(guī)范了預習、教師輔導、學生思考、總結、考核評價機制等各個實驗環(huán)節(jié)[5]。陳杰華等強調了實驗對于程序設計的重要性,提出把實驗分為驗證類、應用類和創(chuàng)新類[6]。蔡潔等規(guī)范了程序設計與開發(fā)方法、程序調試技術,提供輔助實驗教學的網絡資源,安排小班討論課和綜合實訓課,鼓勵學生展示和講解自己的程序[7]。此外,陳杰華、蔡潔等都建議實驗題目增加趣味性和綜合性,并鼓勵學生采用多種方法解決問題[6-7]。

      二、教學現(xiàn)狀

      由于本校C語言程序設計采用大班教學,再加上原教學大綱中沒有明確提出培養(yǎng)計算思維的要求,所以課程結束后,多數(shù)學生不但缺乏計算思維,實踐動手能力不理想,成績也普遍比較低。即使少數(shù)學生能夠建立起計算思維,也會因為缺少系統(tǒng)訓練而無法保證其實際水平。經驗表明,學生在學習過程中表現(xiàn)出來的典型問題包括如下四種。

      1.注重機械記憶程序,忽略實際應用

      此類學生能夠記憶并簡單模仿教師的程序,能夠比較順利地完成與例題相似的題目,取得比較理想的成績,但不能快速解決與例題差別比較大的題目。

      2.注重知識的學習,忽略動手能力的培養(yǎng)

      此類學生主要通過閱讀、書寫等方式來學習,很少編寫程序和調試程序。所以,他們能夠讀懂部分相對簡單的程序,但程序設計能力和程序調試能力相對比較差。

      3.注重學習概念,忽略設計與開發(fā)能力的培養(yǎng)

      由于課程的總評成績中,基本概念部分的分值比例比較高,程序設計部分的分值比例比較低,所以整個教學的重點往往會側重于學習和掌握基本概念。受此影響,部分學生會減少設計程序、調試程序方面的訓練。這些學生的程序設計能力比較差。

      4.產生畏難情緒,放棄學習機會

      C語言及其開發(fā)工具都是針對具有一定基礎的用戶而設計的,所以學生在學習的初期都會遇到很多困難。這些困難會讓許多學生產生畏難情緒。畏難情緒會從老生傳遞給新生,也會在同學之間傳遞。在傳遞的過程中,學生還會根據自己在學習和調試程序時遇到的困難來證明和放大這種感受。受此影響,最終將有部分學生喪失學習興趣,甚至對C語言產生排斥和反感情緒。

      鑒于這種情況,項目組教師從2013年開始探討有關教學改革的方案,從2015年開始選擇本校部分非計算機專業(yè)C語言程序設計的教學班進行教學改革試驗,試圖從教學的角度緩解上述問題,同時摸索訓練學生計算思維、提高學生實踐動手能力的教學方法。

      三、改革實驗教學

      通過研究各個教學環(huán)節(jié)的作用以及學生的實際情況,項目組老師認為:為了達到訓練目的,需要全面改革每個教學環(huán)節(jié)。限于篇幅,本文僅從參與者及其態(tài)度、實驗輔助系統(tǒng)和實驗題目等方面介紹與實驗教學相關的改革措施。

      1.參與者及其態(tài)度

      教師和學生是教學活動的主要參與者。兩者參與教學的態(tài)度能夠相互促進、相互影響。教師的熱情往往能夠帶動學生參與學習的積極性;反之,學生的學習熱情也是教師認真教學的源動力。沉浸理論認為,當人們在進行某些日?;顒訒r,能夠完全投入情境當中,集中注意力,并且過濾掉所有不相關的知覺,進入一種沉浸的狀態(tài)[8-9]。因此,在實驗中,教師需要隨時關注并調動學生的參與積極性,盡量讓更多的學生在更長的時間里處于沉浸狀態(tài)。

      學習C語言程序設計的學生主要是大學一年級的學生。該年齡段學生的自我體驗具有豐富性、波動性、敏感性、情境性等特點,容易受到外界因素影響。例如學習方面的挫折、其他同學(包括往屆學生)的感受等都會影響學生的心理[10]。學生一旦產生了負面情緒,在得不到及時調整的情況下,就會很容易出現(xiàn)消極、否定的情感體驗,進而影響學習。因此,教師要在教學過程中注意觀察學生的態(tài)度、學習方法、知識的掌握情況、學習能力等各個方面的表現(xiàn),及時表揚學生的優(yōu)點與進步;針對多數(shù)學生在學習方面的共性問題,調整教學方式、教學進度;對于個性化的問題,根據不同的情況進行及時提醒和指導。經過師生的共同努力,學生的學習態(tài)度和積極性普遍好于同專業(yè)的往屆生。

      2.實驗輔助系統(tǒng)

      傳統(tǒng)教學過程中使用的開發(fā)工具往往是Visual C++等專業(yè)開發(fā)工具。經驗表明,學生使用專業(yè)開發(fā)工具進行學習會遇到許多困難,其中主要包括如下幾類。

      第一,不能理解開發(fā)工具的提示信息。專業(yè)開發(fā)工具的界面、程序的各種錯誤信息和警告信息等通常都是英文的,而且其中還會使用很多術語和縮寫。由于存在語言障礙,多數(shù)學生都看不明白錯誤信息和警告信息。

      第二,遇到了開發(fā)工具漏檢的錯誤。為了提高效率,專業(yè)開發(fā)工具會假設用戶具有一定的基礎,所以它不會全面檢測程序中的所有錯誤,例如不檢查printf函數(shù)中輸出項的個數(shù)。而學生恰恰缺少開發(fā)經驗,他們錄入的程序中往往會包含漏檢的錯誤。對很多學生來說,發(fā)現(xiàn)和修改程序中被漏檢的錯誤,尤其是不影響運行結果的錯誤,是件比較困難的事情。

      第三,遇到了死循環(huán)等運行時錯誤。除數(shù)為0、指針訪問錯誤、死循環(huán)等很多問題都屬于運行時錯誤。運行時錯誤具有缺乏提示信息、錯誤表現(xiàn)形式多樣等特點。學生在經驗不足、知識掌握得也不夠牢固的情況下,很難獨立解決此類問題。

      在大班實驗中,受到師生比例的影響,只有少量的問題由教師指導解決,大部分問題由同學間討論解決,或者利用教材、筆記、互聯(lián)網等自行解決??陀^地講,利用討論或者互聯(lián)網解決問題不能保證學習效率和解答的質量。

      針對這種情況,項目組在設計本課程實驗輔助系統(tǒng)CAES時,設計并開發(fā)了C語言小程序解釋器CI。CI針對學生在實驗過程中遇到的問題進行了如下設計。

      第一,錯誤和警告的提示信息用英文、中文和中文解釋等三種形式給出。英文提示信息直接取自傳統(tǒng)編譯系統(tǒng)的提示信息,或者參考傳統(tǒng)編譯系統(tǒng)提示信息的形式撰寫。中文提示信息是英文提示信息的中文翻譯。中文解釋是錯誤信息的解釋說明。三種形式的提示信息既照顧到了培養(yǎng)目標,又兼顧了學生的實際水平和學習習慣。學生在調試程序時,可以自行選擇查看哪種提示信息。為了督促學生掌握英文信息,系統(tǒng)對中文提示信息和中文解釋信息設置了延時顯示功能。各種提示信息以及信息的顯示方式的示例如表1所示。

      表1 提示信息及信息顯示方式示例

      第二,重新定義了“錯誤”與“警告”。新的檢測項目以教學大綱和C標準99為基礎,增加了對教學重難點的檢測、學生易錯知識點的檢測、部分可移植性的檢測。例如,新增加的警告包括“將整數(shù)賦值給浮點型變量”、“使用空語句作為循環(huán)體”、“使用賦值表達式作為測試表達式”等;新增加的錯誤包括“需要使用存儲空間的地址作為scanf函數(shù)的參數(shù)”、“printf函數(shù)輸出項過少”等。

      第三,補充了對常見運行時錯誤的監(jiān)控與處理。監(jiān)控的運行時錯誤包括:死循環(huán)、無法結束的遞歸、對內存的錯誤訪問、輸入內容與scanf函數(shù)的格式字符串不匹配等。理論上講,死循環(huán)是不可判定的[11],但教學程序具有形式簡單、規(guī)律性強、循環(huán)次數(shù)少等特點,因此CI根據循環(huán)次數(shù)是否超過閾值以及內存的使用情況來判定程序是否進入死循環(huán)狀態(tài)[12],并用類似的方法,監(jiān)控遞歸是否結束。通過對內存和運算符的監(jiān)控,CI能夠發(fā)現(xiàn)各種常見的運算時錯誤。一旦檢測出運行時錯誤,CI將終止程序的運行、清理內存、給出錯誤提示信息以及程序中出現(xiàn)錯誤的大致位置。

      由于CAES針對初學者而設計,所以在應用過程中降低了對用戶的要求、提高了學生的實驗效率,為學生掌握基本概念、培養(yǎng)計算思維提供了必要的保證。

      3.實驗題目

      實驗題目方面的改革主要包括如下三個方面。

      (1)強調預習

      實驗題目包括預習部分和實驗部分。預習部分包括概念填空、程序填空、程序改錯等題型,題目圍繞實驗涉及到的知識點設計。實驗部分主要是編程題,重點訓練學生的程序設計能力。

      (2)提高要求,降低難度

      心理學上把一個問題分為三部分:給定(givens)、目標(goals)和障礙(obstacles)[10]。對于特定的題目,給定是學生已經掌握的知識點,目標是題目的最終要求,而障礙則是如何利用給定來實現(xiàn)目標。題目的障礙越多,難度就越大,學生在完成題目之后的成就感也越大。為了達到訓練目的,適當增加了每次實驗中編程題的數(shù)量和難度,同時為每道題都設計了一組要求,每個要求近似對應一個障礙。依次完成所有的要求,也就完成了最終的題目。這樣設計,降低了題目完成難度,減緩了學生的畏難心理,增強了自信心和成就感,同時也訓練了學生解決復雜問題的能力。

      (3)密切聯(lián)系實際

      由于人們存在習慣定勢和功能固著的心理特點[10],所以在實驗題目中補充了一些實際問題。例如計算積分、矩陣求和、身份確認等。這樣設計有助于學生提高學習興趣,從實際應用的層面理解概念,開闊思路,提高解決實際問題的能力。

      四、結束語

      由于本校是按專業(yè)劃分的教學班,而不同專業(yè)的學生之間往往存在很大的差異,因此最好比較同一個專業(yè)的成績,或者具有比較價值的不同專業(yè)。筆者在2015年至今的2個學年里進行了教學試驗。統(tǒng)計的數(shù)據來自從2013年至今的4個學年共11個專業(yè)的期末考試成績。成績統(tǒng)計情況如表2所示。

      表2 成績統(tǒng)計表

      總之,為了培養(yǎng)非計算機專業(yè)學生的實踐能力以及計算思維,需要在教育學、教育心理學等理論的指導下,改革課程的每個教學環(huán)節(jié)。本文圍繞實驗教學,以“高效率掌握基礎,高質量訓練思維”為宗旨,介紹了調整師生心態(tài)、實驗輔助系統(tǒng)、實驗內容等方面的改革方案。經過近幾年項目組老師的研究與探索、師生的共同努力,學生分析問題、解決問題的能力普遍得到了提高,好于往屆同專業(yè)的學生。

      [1]Jeannette M Wing.Computational Thinking[J].Communications of ACM,2006,49(3):33-35.

      [2]何欽銘,陸漢權,馮博琴.計算機基礎教學的核心任務是計算思維能力的培養(yǎng)[J].中國大學教學,2010(9):5-9.

      [3]黃靜,高延英,楊宇姝.基于計算思維的程序設計課程教學模式研究[J].計算機教育,2013(5):51-54.

      [4]喬淑云,黃剛.程序設計類課程教學改革與計算思維之培養(yǎng)[J].計算機教育,2012(19):17-19.

      [5]劉光蓉.以計算思維能力培養(yǎng)為導向的C程序設計實驗教學[J].實驗技術與管理,2013,30(1):154-156.

      [6]陳杰華,戴麗娟.以培養(yǎng)計算思維為核心的程序設計實驗教學[J].實驗技術與管理,2011,28(1):125-127.

      [7]蔡潔,楊勝,劉智明.促進計算思維的程序設計實驗教學研究[J].計算機教育,2014(3):79-82.

      [8]百度百科.沉浸理論[EB/OL].http://baike.baidu.com/view/2489206.htm.

      [9]余璐,周超飛.論我國高等教育中的沉浸教學模式與實踐[J].河南社會科學,2012,20(6):78-80.

      [10]教育部人事司.高等教育心理學[M].北京:高等教育出版社,2000.

      [11]Michael Sipser.Introduction to the Theory of Computation(Second Edition)[M].北京:機械工業(yè)出版社,2006.

      [12]張健.精確的程序靜態(tài)分析[J].計算機學報,2008,31(9):1549-1553.

      (責任編輯:張華凡)

      Experimental Teaching of C Programming Language

      PENG Xudong,WANG Chengxia,WAN Hong,WANG Haiyan,LI Ke
      (Tianjin University of Technology,Tianjin 300384,China)

      The C Programming Language is a compulsory course for many non-computer majors in colleges and universities.By studying this course,students’comprehensive abilities of using the computer can be improved,and then their ability of computational thinking can be cultivated.In the light of the present situation of most students’learning of the language,how to reform the experimental teaching is discussed from three aspects:the attitude of the participants,the computer assisted experimental system,and the experimental contents.

      practice ability;C programming;experimental teaching

      G642.0

      彭旭東(1971—),男,副教授,研究方向:計算機輔助教育、計算機應用。

      天津理工大學教學基金項目(YB14-09)。

      猜你喜歡
      提示信息程序設計錯誤
      在錯誤中成長
      基于Visual Studio Code的C語言程序設計實踐教學探索
      計算機教育(2020年5期)2020-07-24 08:52:56
      元征X-431 PRO 3S+實測:2018年吉普自由光保養(yǎng)歸零
      從細節(jié)入手,談PLC程序設計技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      元征X-431實測篇2015款路虎攬勝剎車片更換過程
      高職高專院校C語言程序設計教學改革探索
      PLC梯形圖程序設計技巧及應用
      號碼提示信息的呈現(xiàn)方法對手機操作的影響
      不犯同樣錯誤
      轉喻有無信息提示的眼動實驗對比研究*
      外語學刊(2014年4期)2014-10-23 10:48:10
      香格里拉县| 德保县| 连江县| 岳西县| 玉林市| 广西| 广南县| 故城县| 历史| 河间市| 铅山县| 汨罗市| 大理市| 贵德县| 台东县| 满城县| 南通市| 乐平市| 漳州市| 高邮市| 江阴市| 东乌珠穆沁旗| 长宁区| 平泉县| 天峨县| 县级市| 神农架林区| 炉霍县| 西平县| 江阴市| 东明县| 通化县| 乳山市| 石狮市| 达拉特旗| 龙江县| 平塘县| 当阳市| 巴林右旗| 绥江县| 玉田县|