周曉琳 張占臣 尤楓 劉勇 彭冰
摘 要:結合當前信息化發展及國家全民智能教育項目的開展,以北京化工大學及其附屬中學程序設計類課程為參考,依托相關程序設計競賽,分析高校程序設計類課程教學存在的問題。在此基礎上,結合教學實踐經驗,從“注重理論與實踐相結合,提高學生自學能力與合作能力”“將學科競賽精神融入課堂,以賽促教”“優化課程體系,提高教學質量”“建設訓練題庫,加強習題練習”等方面深入探討提高學生程序設計能力的方法,希望為程序設計類課程教學提供有意義的參考。
關鍵詞:C語言;程序設計能力;課程體系;學科競賽;計算機教學;教學質量
中圖分類號:G642 文獻標志碼:A文章編號:1008-3561(2021)28-0032-03
一、前言
隨著信息化、智能化的快速發展,人工智能成為國際競爭的新焦點。2017年,國務院印發的《新一代人工智能發展規劃》指出,要以提升新一代人工智能科技創新能力為主攻方向,構建開放協同的人工智能科技創新體系。因此,要逐步開展全民人工智能教育項目,逐步推廣全民編程教育。當前,從中小學到大學,均加大了程序設計類課程的開設速度,且拓展了課程內容深度。對于各專業學生而言,擁有一定的程序設計能力,不僅有利于后續工作、學習、生活中對高科技智能產品的使用與維護,而且有助于提升自身的邏輯思維能力。
北京化工大學信息學院計算機系長期以來緊緊圍繞提高計算機專業人才培養質量,堅持“以學生為本,以能力培養為核心,以科學素養和創新教育為目標”的教學理念,不斷推進和加強學生程序設計能力的培養。同時,以學科競賽為支持,組織周賽、女生賽、校賽、寒暑假集訓等豐富的活動,以提升學生程序設計能力。僅2020年,學科競賽累計獲得省部級及以上獎勵133人次,其中國家級二等獎15人次,國家級三等獎22人次。
北京化工大學在提高自身計算機專業水平的同時,還不斷推動北京化工大學附屬中學C語言程序設計課程建設。附屬中學2018年9月開始準備開設C語言程序設計課程的相關事宜,包括指導教師的選拔、教材的選定、課件的制作、練習題的設計及訓練題庫的建設等。經過半年的努力,2019年3月C語言程序設計課程正式開課。自開課以來,學生在零基礎的情況下取得了較大的進步。2020年學校首次組織學生參賽,學生榮獲“藍橋杯”青少組北京賽區一等獎,成功晉級全國總決賽。
為了進一步提高學生程序設計能力,提升學校程序設計整體水平,作為C語言程序設計課程及相關競賽的指導教師,筆者結合程序設計類課程教學存在的問題,從教學與競賽等方面提出自己的幾點建議。
二、高校程序設計類課程教學存在的問題
經過多方調查,結合自身教學經驗,筆者以C語言程序設計課程為例,簡述課程教學存在的一些問題。
1.學生方面
首先,部分學生對課程中有一定難度的定義概念理解不充分,如數組、指針的概念。若不能透徹理解定義的概念,則使用時定會漏洞百出。其次,部分學生對知識點的掌握比較零碎,沒有形成完整的知識結構體系和科學的程序設計思維模式。最后,部分學生的編程拓展能力較差。一些學生對課本或者教案中的例題能夠熟練掌握,但是涉及其他綜合題,尤其是解決實際問題的綜合題,則捉襟見肘,無從下手。
2.教師方面
首先,部分教師偏重理論知識的講解,忽視實踐教學。C語言程序設計是一門綜合性、實踐性很強的課程,要求教師注重理論聯系實際,引導學生結合實踐加深對所學理論知識的理解。但調查發現,部分教師往往習慣于機械地講解理論知識,不重視培養學生的實際動手操作能力,所培養的人才不符合社會要求。其次,教學方法單一,不注重創設良好的教學情境,難以激發學生的學習興趣。調查發現,部分教師的教學方法比較單一,忽視學生的個性特點,導致課堂氣氛比較沉悶,學生學習積極性不高。
三、高校教師提高學生程序設計能力的建議
1.注重理論與實踐相結合,提高學生自學能力與合作能力
剛開始接觸程序設計類課程的時候,大部分學生習慣于按照數學、語文等課程的學習模式去學習編程,認為要先把理論搞扎實,再去編代碼。結果拿著書仔仔細細看一遍,包括書上的每一行代碼都去認真推敲,但是合上書寫程序的時候卻什么都記不清楚。如果按照這種模式去學習,效果就會非常差。因為程序設計課程屬于實踐類課程,一定的理論知識作為基礎是必要的,但是想要提高編程能力,就必須注重動手操作能力的培養。換言之,就是要培養運用計算機語言解決實際問題的能力。因此,筆者建議學生邊看書邊寫代碼去實踐,從示例程序入手去敲代碼,從最簡單的程序開始,循序漸進,積少成多。這樣在編寫代碼的時候就可以有更清晰的認識,也可以舉一反三地看到程序實際執行結果,對編程有更直觀的認識。
從更高的視野來看,實踐最重要的作用就是讓學生學會如何自學與如何加強團隊合作。對于自學而言,學習編程旨在解決實際問題,這也就意味著題目千變萬化。課堂上能涉及的內容是有限的,這時候教師必須摒棄“老師講多少、學生學多少”的觀念,努力鍛煉學生的自學能力。在課堂教學過程中,教師可以講解一些基本的數據類型、算法思想、解題思路等,至于細節部分則鼓勵學生自己鉆研。在自學鉆研的過程中,學生能夠鞏固知識,加深理解,為更高層次的學習打下基礎。對于團隊合作而言,學習是一個循序漸進的過程,自學更是不可能一帆風順,通常會遇到一些無論如何也看不懂的問題,單純自己鉆研已無法解決,這就需要同學之間的分享與互動。目前,北京化工大學及附屬中學都會根據學生對知識的掌握程度與習題的完成情況,選拔一位到兩位課堂小助理,協助指導教師一起做好課堂教學輔導工作。小助理可以通過相互之間的交流解決同學學習過程中遇到的問題,同時豐富自己的經驗,實現知識互補。課下可建立專門的編程討論微信群,便于課余時間學生遇到問題在群里尋求幫助,或者分享自己的解題心得。如果問題太難無人能解答,指導教師可以適當地給出思路或提示,引導學生深入探索。這種分享交流的學習方式,能夠增強學生的團隊合作精神,使學生對知識的理解更深、更全面,使學生的學習更有效。指導教師應積極創設這樣的交流環境,讓學生自主學習,自主分享。