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