李飛 邱虹坤 孫玉霞 蔣寧 王亞杰
關(guān)鍵詞:五子棋;計算思維;程序設(shè)計
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2023)10-0142-03
1引言
隨著信息技術(shù)的不斷發(fā)展,很多學(xué)科與計算機技術(shù)的融合越來越密切,對大學(xué)生計算機應(yīng)用能力的要求也越來越強烈,用計算機解決問題的能力逐漸成為衡量大學(xué)生素質(zhì)的標(biāo)準(zhǔn)之一。許多高校都為非計算機專業(yè)學(xué)生開設(shè)計算機程序設(shè)計類的必修課,程序設(shè)計基礎(chǔ)作為一門計算機主干基礎(chǔ)課程,其目標(biāo)是讓學(xué)生掌握一門計算機語言,培養(yǎng)學(xué)生用計算機調(diào)試程序和解決實際問題的能力,為后續(xù)的專業(yè)課的學(xué)習(xí)提供技術(shù)支持。
近年來,計算思維成為計算機相關(guān)課程改革的主要方向,需要解決的是如何將計算思維能力的培養(yǎng)落實到教學(xué)內(nèi)容和過程中的問題。在2020年主題為“新時代、新計算、新教育”的計算機教育大會上,針對人工智能快速發(fā)展下,計算機教育的發(fā)展創(chuàng)新思路問題受到關(guān)注,會議提出要將人工智能賦能計算機課程教學(xué)中[1]。
計算機博弈又稱機器博弈,是指讓計算機模擬人的思維進(jìn)行棋類等游戲的對弈。計算機博弈是計算機思維培養(yǎng)的重要載體,是人工智能領(lǐng)域的重要研究方向之一[2]。它涉及的方法主要包括:博弈問題的提出、棋盤的數(shù)據(jù)描述、棋面的評估模型、搜索算法的選擇、算法的實現(xiàn)與優(yōu)化、人機交互處理等方面,這些內(nèi)容剛好與計算思維的思想相一致,非常適合培養(yǎng)學(xué)生的計算思維能力。
目前,很多學(xué)生沉迷于網(wǎng)絡(luò)和電子游戲,以何種方式引導(dǎo)青年學(xué)生遠(yuǎn)離網(wǎng)絡(luò)的危害一直是困擾家長和教師的難題[2]。而多個高校的實踐證明,計算機博弈項目能迎合青年學(xué)生的愉悅、冒險、好奇和高對抗需求,讓他們在快樂中分析、編程、斗智,既長知識,也長能力,既培養(yǎng)了計算機實踐與創(chuàng)新能力,也培養(yǎng)了計算思維、科研思維和團(tuán)隊合作精神。筆者將博弈項目——五子棋程序的部分基礎(chǔ)內(nèi)容編寫成適合程序設(shè)計基礎(chǔ)教學(xué)使用的案例,讓學(xué)生在博弈游戲中學(xué)習(xí),不但調(diào)動了學(xué)習(xí)積極性,還提高了課程的挑戰(zhàn)度和創(chuàng)新性符合“兩性一度”的一流課程要求,取得了良好的教學(xué)效果。
2計算思維及人工智能概述
周以真教授在2006年提出計算思維(CT,Compu?tational Thinking)的概念,將其定義為運用計算機科學(xué)知識進(jìn)行問題解、系統(tǒng)設(shè)計、人類行為理解等一系列思維活動。隨著計算機科學(xué)迅猛發(fā)展,計算思維對很多領(lǐng)域的發(fā)展產(chǎn)生了深刻的影響[3-4]。在我國,中科院自動化所的王飛躍教授提出,目前的小學(xué)和初高等教學(xué)都引入了計算思維,但是仍然沒有被提到一定的廣度和高度,只有借助計算思維之力才能提高全民族整體素質(zhì)[4]。教育部高等學(xué)校大學(xué)計算機課程教學(xué)指導(dǎo)委員會在《九校聯(lián)盟(C9)計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》中達(dá)成了C9共識,確定了以計算思維為核心的計算機基礎(chǔ)課程的教學(xué)改革[6-8]。
人工智能(AI,Artificial Intelligence)是計算機科學(xué)的新分支,該領(lǐng)域的研究包括機器人、語言識別、圖像識別、大數(shù)據(jù)處理等。其研究的主要目標(biāo)是使機器能完成一些需要人類智能才能完成的復(fù)雜工作。近些年,人工智能的普及沖擊著教育教學(xué)領(lǐng)域,許多高校不但開設(shè)了人工智能學(xué)院,在教育教學(xué)形態(tài)上,也發(fā)生了巨大變化,比如用機器閱卷取代人工批閱,使教師脫離了大量的重復(fù)性工作,用虛擬現(xiàn)實技術(shù)開展“沉浸式”教學(xué),使學(xué)生在玩中學(xué)、在學(xué)中玩。在計算基礎(chǔ)教學(xué)中,如何設(shè)計教學(xué)內(nèi)容將計算思維“落地”,如何將人工智能與教學(xué)內(nèi)容融合是值得我們思考的問題。
3五子棋博弈項目概述
五子棋(FIR,F(xiàn)ive in a row)又稱五子連珠,是一項起源于中國的棋類游戲。它是國際計算機奧林匹克大賽的競賽項目,也是我國大學(xué)生計算機博弈大賽的競賽項目。是一種集戰(zhàn)略、戰(zhàn)術(shù)和機會于一體的棋類游戲項目。下棋的棋盤與圍棋棋盤相似,由縱橫各15 條等距離的平行線組成,交叉形成225個落子點,如圖1所示。下棋的規(guī)則是:黑方先行,落天元點位(棋盤中心),黑白方輪流落子,每次落一子,先形成五子連珠的一方獲勝。在正式比賽中有隨機開局、指定開局、三手交換和五手N打等規(guī)則的加入,既增加了棋的難度,同時也增加了棋的趣味性和機會性。
4課堂教學(xué)實例設(shè)計
現(xiàn)存教學(xué)案例中存在一些弊端,比如案例不統(tǒng)一、缺乏系統(tǒng)性和連貫性等問題,使課程教學(xué)不能達(dá)到預(yù)期的目標(biāo)。針對上述問題,結(jié)合大學(xué)生計算機博弈項目,設(shè)計了一系列基于棋類游戲程序的教學(xué)案例[9-10]。在本文中,筆者選出五子棋程序中適合C語言教學(xué)的元素,設(shè)計成基礎(chǔ)案例,以任務(wù)驅(qū)動形式不斷完善案例,逐漸融入多個知識點,達(dá)到“寓教于樂”的目的。項目調(diào)動了學(xué)生的學(xué)習(xí)興趣,得到了較好的學(xué)習(xí)效果,部分實例如表1所示。
限于篇幅,選出兩個案例詳細(xì)描述。
實例一:五子棋的界面設(shè)計
C語言程序的執(zhí)行結(jié)果是DOS 命令形式的,因此,初學(xué)者認(rèn)為表示一個棋盤是很難實現(xiàn)的。該實例利用循環(huán)控制線條的輸出,使學(xué)生對C語言程序另眼相看。由于方便顯示,用表格表示棋盤,每一個單元格表示實際棋盤上的交叉點。部分代碼如下:
上述代碼運行后得到圖2這樣的棋盤:
實例二:統(tǒng)計黑白子個數(shù)
在該實例中,利用了多分支選擇結(jié)構(gòu)語句實現(xiàn)落子個數(shù)的統(tǒng)計。適合在選擇結(jié)構(gòu)程序設(shè)計的時候講解。通過該實例讓學(xué)生體會二維數(shù)組和if-else語句在解決實際問題中的用途。
5 上機實驗題目設(shè)計
程序設(shè)計基礎(chǔ)的實驗項目分成普通上機實驗和專項實驗。普通上機實驗的任務(wù)要求學(xué)生利用課堂2至4個學(xué)時獨立完成相同實驗內(nèi)容,鍛煉學(xué)生的程序編寫和上機調(diào)試能力。而專項實驗任務(wù)要求在幾周的課外學(xué)時完成,2至3人一組,合作完成一項比較復(fù)雜的編程任務(wù)。在驗收環(huán)節(jié),學(xué)生要演示和講解自己的工作,回答老師提出的問題。這不但鍛煉了學(xué)生的編程實踐能力,還引導(dǎo)他們在表達(dá)溝通、團(tuán)隊合作的方面不斷自我提升。
程序設(shè)計基礎(chǔ)的上機實驗任務(wù)難度要適中,在短學(xué)時內(nèi)可以實現(xiàn)。將五子棋程序中適合的元素提取出,制作成一部分實驗任務(wù),讓學(xué)生在課內(nèi)通過編譯環(huán)境實現(xiàn)將枯燥的編程實驗變成有趣味的游戲挑戰(zhàn),增加了學(xué)習(xí)樂趣。實驗內(nèi)容包括:統(tǒng)計棋盤上白子的數(shù)目和黑子的數(shù)目;產(chǎn)生落子位置(可用隨機落子法),判斷某一位置是否有落子;判斷是否行棋結(jié)束,如果結(jié)束,哪方獲勝。
綜合專項實驗是程序設(shè)計基礎(chǔ)課程實驗部分的最后一個實驗項目,要求學(xué)生完成一個復(fù)雜的綜合性的程序設(shè)計題目,任務(wù)有一定的難度。其中組長負(fù)責(zé)分工、總體程序框架建立及其他功能整合,組員合作完成。其目的是既要鞏固學(xué)生對C語言知識的綜合運用能力和用計算機解決復(fù)雜問題的能力,同時培養(yǎng)學(xué)生的溝通表達(dá)能力和團(tuán)隊合作精神。根據(jù)五子棋項目的特點,設(shè)計了一個綜合專項實驗案例,如表2所示。該題目有若干個功能,最后綜合成一個簡單的五子棋競賽程序,能夠?qū)崿F(xiàn)人機對弈的過程。
該綜合案例的設(shè)計,不僅鞏固了學(xué)生對程序設(shè)計基礎(chǔ)各個知識點的掌握,又將博弈游戲的趣味性和創(chuàng)新性融入課程,讓學(xué)生組隊實現(xiàn)一個完整的工程類項目,具有挑戰(zhàn)性,符合一流課程的“兩性一度”的要求。
6教學(xué)效果
大部分學(xué)生認(rèn)為程序設(shè)計基礎(chǔ)課程內(nèi)容比較枯燥乏味,缺乏興趣。陳舊的教學(xué)案例也已經(jīng)不適應(yīng)時代的教學(xué)方式,很多同學(xué)渴望學(xué)習(xí)先進(jìn)性、前沿性的新內(nèi)容。計算機博弈提供了很好的案例元素,它既有趣味性,又有前沿性,能很好地喚醒大學(xué)生的好奇心,激發(fā)學(xué)習(xí)興趣和潛能。從2019年逐漸引入博弈案例教學(xué)以來,學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效果明顯提升。圖3是2019年至2021年對我校機械專業(yè)學(xué)生《計算機基礎(chǔ)》課程的成績統(tǒng)計圖。雖然由于疫情原因,部分課時采用線上方式進(jìn)行,但是學(xué)生并沒有因此受到太多影響,從圖中可以看出學(xué)生的平均成績和及格率明顯提升,越來越多的學(xué)生對博弈項目產(chǎn)生了濃厚興趣,參加校級和省級博弈比賽的人數(shù)逐年提升。
通過課程實踐證明,利用博弈元素進(jìn)行教學(xué)案例的設(shè)計,既能增強學(xué)生的學(xué)習(xí)興趣,又能鼓勵學(xué)生參加校內(nèi)外博弈競賽,一舉兩得。學(xué)生還可以依托博弈申報大學(xué)生創(chuàng)新項目。希望這種案例設(shè)計方式能對計算機基礎(chǔ)教學(xué)提供參考和幫助。