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