相林 張菲菲
關(guān)鍵詞:“自頂向下”;案例教學(xué)法;結(jié)構(gòu)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)14-0143-04
0 引言
程序設(shè)計(jì)語(yǔ)言是軟件開(kāi)發(fā)的直接工具,也是高校計(jì)算機(jī)專業(yè)開(kāi)設(shè)的必修課程之一[1]。程序語(yǔ)言課程內(nèi)容豐富、規(guī)則繁多,課程教學(xué)有一定的難度。許多高校都對(duì)課程進(jìn)行了教學(xué)改革,如以在線網(wǎng)絡(luò)為依托,對(duì)教學(xué)內(nèi)容、教學(xué)方法和考核方式進(jìn)行課程改革[2],或者將課程教學(xué)與教師的科研相結(jié)合,實(shí)現(xiàn)“產(chǎn)學(xué)研”一體化[3-5],還有院校以案例教學(xué)法來(lái)提高程序設(shè)計(jì)課程教學(xué)質(zhì)量[6-7]。但是,由于課程抽象且理論性較強(qiáng),學(xué)生對(duì)課程的理解和掌握存在較大難度,并且很難在解決實(shí)際問(wèn)題時(shí)靈活使用。本文深入分析當(dāng)前課程教學(xué)環(huán)節(jié)中的問(wèn)題,以具體案例的分析解決為例,討論將“自頂向下”的程序設(shè)計(jì)思想應(yīng)用于C++程序設(shè)計(jì)語(yǔ)言的教學(xué)中,引導(dǎo)學(xué)生對(duì)問(wèn)題進(jìn)行思考分析,將大問(wèn)題分解為若干小問(wèn)題,并逐個(gè)解決小問(wèn)題,最終完成大問(wèn)題的求解。根據(jù)分解的步驟,先設(shè)計(jì)算法,再設(shè)計(jì)程序,得到目標(biāo)代碼。將正確編寫(xiě)代碼這一最終的課程學(xué)習(xí)目標(biāo),分解為文字表述的算法設(shè)計(jì)和C++ 程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)的程序設(shè)計(jì)兩步驟,降低學(xué)生的學(xué)習(xí)難度,逐步提高學(xué)生的編程能力。
本文根據(jù)教學(xué)目標(biāo)設(shè)計(jì)案例,以喜聞樂(lè)見(jiàn)的熱門(mén)娛樂(lè)節(jié)目為切入點(diǎn),激發(fā)學(xué)生的學(xué)習(xí)興趣,并引出設(shè)計(jì)投票器的目標(biāo)問(wèn)題。利用“自頂向下”的思想設(shè)計(jì)程序后,通過(guò)對(duì)學(xué)習(xí)過(guò)程的總結(jié)歸納,讓學(xué)生深刻理解新知識(shí)點(diǎn)的內(nèi)涵與外延,并將知識(shí)點(diǎn)的學(xué)習(xí)升華到精神品質(zhì)的教育,從數(shù)據(jù)的和諧存儲(chǔ)上升到以和諧的態(tài)度對(duì)待萬(wàn)事萬(wàn)物,再立足到本專業(yè)的學(xué)習(xí)應(yīng)以創(chuàng)新的精神發(fā)展人工智能,使之與人類和諧共存的職業(yè)精神教育,從而將正確的科學(xué)發(fā)展觀自然融入教學(xué)過(guò)程,在教授新知識(shí)的同時(shí)完成對(duì)學(xué)生的思想教育及職業(yè)素養(yǎng)的培養(yǎng)。
1 教學(xué)背景
為了形成知識(shí)體系,每個(gè)章節(jié)的教學(xué)前都應(yīng)介紹該章節(jié)在整個(gè)課程中的地位和作用,以便與前面的章節(jié)聯(lián)系同時(shí)引出后續(xù)的內(nèi)容[8-9]。如C++程序設(shè)計(jì)中的結(jié)構(gòu)及其應(yīng)用,該部分內(nèi)容是C++程序設(shè)計(jì)語(yǔ)言課程的重要內(nèi)容,也是學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的核心概念——“類”的基礎(chǔ),更是從面向過(guò)程程序設(shè)計(jì)走向面向?qū)ο蟪绦蛟O(shè)計(jì)的口岸與橋梁,起著承前啟后的重要作用[10]。理解結(jié)構(gòu)的概念,對(duì)于后續(xù)學(xué)習(xí)面向?qū)ο笤O(shè)計(jì)中的核心概念——對(duì)象,有著關(guān)鍵作用。
首先,該部分內(nèi)容的教學(xué)目標(biāo)分為知識(shí)目標(biāo)、能力目標(biāo)和情感目標(biāo)三部分。具體而言,知識(shí)目標(biāo)包括掌握結(jié)構(gòu)的概念及作用,學(xué)會(huì)聲明結(jié)構(gòu)類型、定義結(jié)構(gòu)變量和訪問(wèn)結(jié)構(gòu)變量的成員兩大方面。能力目標(biāo)是利用結(jié)構(gòu)實(shí)現(xiàn)多類型組合數(shù)據(jù)的存儲(chǔ)及操作,學(xué)會(huì)編寫(xiě)結(jié)構(gòu)相關(guān)代碼并調(diào)試,能利用結(jié)構(gòu)解決實(shí)際問(wèn)題。情感目標(biāo)是要在編程過(guò)程中,和諧、高效地進(jìn)行溝通與合作,錘煉意志,培養(yǎng)扎實(shí)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和健全人格,同時(shí)享受編程的樂(lè)趣,懷有為中國(guó)軟件產(chǎn)業(yè)助力的遠(yuǎn)大理想。基于2018級(jí)-2020級(jí)學(xué)生期末試卷和同行教師教學(xué)反饋的數(shù)據(jù)得出,本部分內(nèi)容教學(xué)的重點(diǎn)和難點(diǎn)如表1所示。
2 案例分析——“中國(guó)好聲音”投票器
課程的自然引入是上好一節(jié)課的基礎(chǔ)[11]。C++程序設(shè)計(jì)語(yǔ)言是一門(mén)在解決實(shí)際問(wèn)題的過(guò)程中發(fā)展起來(lái)的學(xué)科[12],從貼近學(xué)生課余生活的問(wèn)題及案例入手,最能激發(fā)學(xué)生的興趣,并使其印象深刻。例如,以近年來(lái)廣受年輕人喜愛(ài)的娛樂(lè)節(jié)目——“中國(guó)好聲音”的觀眾投票器設(shè)計(jì)為案例,從問(wèn)題的引出、程序的設(shè)計(jì)、結(jié)果的驗(yàn)證,一步步帶領(lǐng)學(xué)生解決切實(shí)的實(shí)際問(wèn)題,體會(huì)理論內(nèi)容在實(shí)際問(wèn)題中的應(yīng)用,激發(fā)學(xué)生的興趣,調(diào)動(dòng)同學(xué)們學(xué)習(xí)的積極性和主動(dòng)性,往往會(huì)達(dá)到事半功倍的效果。
案例描述:在備受歡迎的選秀類節(jié)目——“中國(guó)好聲音”2015年度巔峰之夜總決賽中,有4個(gè)戰(zhàn)隊(duì)5名歌手,包括周杰倫戰(zhàn)隊(duì)的李安、陳梓童,那英戰(zhàn)隊(duì)的張磊,哈林戰(zhàn)隊(duì)的譚軒轅及汪峰戰(zhàn)隊(duì)的貝貝。通過(guò)觀眾投票,張磊以11113票進(jìn)入巔峰對(duì)決,并最終獲得年度總冠軍。如何設(shè)計(jì)程序在這場(chǎng)參與投票人數(shù)多達(dá)數(shù)萬(wàn)人的比賽中,用計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)票數(shù)統(tǒng)計(jì)得到冠軍?
通過(guò)案例的描述,學(xué)生自然會(huì)有疑問(wèn):如何以選手為基本單元進(jìn)行票數(shù)的存儲(chǔ)和訪問(wèn),從而實(shí)現(xiàn)票數(shù)的統(tǒng)計(jì),進(jìn)而得出冠軍的姓名?通過(guò)分析案例輸入數(shù)據(jù)的存儲(chǔ)形式,以示疑、質(zhì)疑、釋疑的教學(xué)方式,引導(dǎo)學(xué)生思考用學(xué)過(guò)的數(shù)組儲(chǔ)存數(shù)據(jù)的弊端,啟發(fā)學(xué)生使用結(jié)構(gòu)解決存儲(chǔ)問(wèn)題,實(shí)現(xiàn)新舊知識(shí)點(diǎn)的銜接,完成教學(xué)內(nèi)容的自然切入。具體而言,對(duì)于一名選手,需要存儲(chǔ)其編號(hào)、姓名和得票數(shù)三方面信息(圖2(a)),而它們的類型并不完全相同,因此用三個(gè)數(shù)組進(jìn)行數(shù)據(jù)存儲(chǔ)極為不便。進(jìn)而引導(dǎo)學(xué)生考慮使用結(jié)構(gòu),將描述一名選手所需的不同類型數(shù)據(jù)存儲(chǔ)在一起,實(shí)現(xiàn)以選手為基本單元進(jìn)行數(shù)據(jù)的存儲(chǔ)及訪問(wèn)(圖2(b))。因此,定義結(jié)構(gòu)類型Singer,包含選手編號(hào)ID、選手姓名name和得票數(shù)voteNumber三個(gè)成員。
進(jìn)一步,要存儲(chǔ)5名選手的信息,而選手信息的類型相同,啟發(fā)學(xué)生考慮使用數(shù)組完成數(shù)據(jù)的存放,從而引出結(jié)構(gòu)數(shù)組的使用。定義維度為5的Singer類型的結(jié)構(gòu)數(shù)組data(如圖3),數(shù)組的每個(gè)元素都是Singer 類型的數(shù)據(jù),分別包含選手編號(hào)ID、選手姓名name和得票數(shù)voteNumber三個(gè)成員。結(jié)合案例,根據(jù)問(wèn)題需求,循序漸進(jìn)引導(dǎo)學(xué)生思考問(wèn)題,找到解決問(wèn)題的辦法。在解決問(wèn)題的同時(shí),讓學(xué)生從舊知識(shí)自然過(guò)渡到新知識(shí),在已有知識(shí)儲(chǔ)備的基礎(chǔ)上,學(xué)習(xí)并靈活使用新知識(shí),從而對(duì)課程內(nèi)容有更為深刻的理解和把握。
3“自頂向下”的算法設(shè)計(jì)
利用自頂向下的程序設(shè)計(jì)思想,整個(gè)投票過(guò)程的實(shí)現(xiàn)可分解為4個(gè)模塊(圖4)。首先,以選手為單位,存儲(chǔ)每名選手的編號(hào)、姓名及得票數(shù)三方面初始信息,初始得票數(shù)都為0。然后,根據(jù)選票上的姓名統(tǒng)計(jì)各選手獲得的票數(shù),保存各位選手的得票數(shù)。接著,根據(jù)上一步的統(tǒng)計(jì)結(jié)果,查找得票數(shù)最多的選手。最后,輸出每位選手的票數(shù),并根據(jù)上一步找到的冠軍編號(hào),輸出冠軍姓名。
至此,利用“自頂向下”的思想,完成了模擬投票整個(gè)過(guò)程的程序設(shè)計(jì)。通過(guò)案例,學(xué)生能夠理解結(jié)構(gòu)的概念及使用領(lǐng)域,在語(yǔ)句中通過(guò)點(diǎn)運(yùn)算的設(shè)計(jì),訪問(wèn)和操作結(jié)構(gòu)變量的成員,讓學(xué)生通過(guò)實(shí)際操作更加深刻感受到結(jié)構(gòu)變量的定義及運(yùn)算,更利于把握知識(shí)重點(diǎn)和難點(diǎn)。而在整個(gè)程序設(shè)計(jì)過(guò)程中,通過(guò)宏觀設(shè)計(jì)對(duì)大任務(wù)分解,再對(duì)小模塊細(xì)化,實(shí)現(xiàn)投票器的程序開(kāi)發(fā),讓學(xué)生學(xué)會(huì)使用自頂向下這一重要的程序設(shè)計(jì)思想。
最后,通過(guò)對(duì)結(jié)構(gòu)的學(xué)習(xí),學(xué)生了解到可以將兩種及以上不同類型的數(shù)據(jù)和諧地存放在一起,既可以整體處理又可以按成員訪問(wèn),求大同存小異,體現(xiàn)了辯證唯物主義和諧觀。和而不同、和實(shí)生物,和諧是中國(guó)的文化傳統(tǒng),更是社會(huì)主義核心價(jià)值觀的重要元素。在當(dāng)前人工智能的新時(shí)代,作為計(jì)算機(jī)從業(yè)者要以創(chuàng)新精神發(fā)展人工智能,使其為人類服務(wù)的同時(shí)與人類和諧共存。
5 結(jié)束語(yǔ)
本文以設(shè)計(jì)“中國(guó)好聲音”投票器為例,展示了將課程內(nèi)容——結(jié)構(gòu),融入案例分析與求解的全過(guò)程,將學(xué)生喜聞樂(lè)見(jiàn)的娛樂(lè)節(jié)目與課程內(nèi)容聯(lián)系起來(lái),激發(fā)學(xué)生的學(xué)習(xí)興趣,提高課堂教學(xué)效果。通過(guò)知識(shí)點(diǎn)的自然融入,深入淺出,層層遞進(jìn),逐步講授新知識(shí),充分展示知識(shí)點(diǎn)的實(shí)際應(yīng)用,讓學(xué)生深刻體會(huì)知識(shí)點(diǎn)在實(shí)際問(wèn)題中的使用契機(jī)及方法。在案例分析過(guò)程中,將“自頂向下”的程序設(shè)計(jì)思想融于案例分析解決的過(guò)程中,著重培養(yǎng)學(xué)生形成正確的程序設(shè)計(jì)思維模式,不單著眼于編寫(xiě)某條語(yǔ)句,而是自主設(shè)計(jì)算法進(jìn)行編程,學(xué)會(huì)分析和解決問(wèn)題。教學(xué)中,將課程內(nèi)容與思政聯(lián)系起來(lái),以數(shù)據(jù)的融合升華到唯物主義和諧觀,在教授知識(shí)的同時(shí),培養(yǎng)學(xué)生形成正確的世界觀和人生觀,完成一名合格教師“傳道、授業(yè)、解惑”的使命。