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