肖 也
(廣東工業(yè)大學(xué)材料科學(xué)與能源學(xué)院,廣東 廣州510006)
C語言是一門面向過程的程序語言[1],其具有直接與硬件訪問的特性,在驅(qū)動軟件、嵌入式開發(fā)、物聯(lián)網(wǎng)芯片及人工智能領(lǐng)域具有獨一無二的優(yōu)勢,是計算機硬件開發(fā)、系統(tǒng)軟件編寫及應(yīng)用軟件研發(fā)的最重要的基礎(chǔ)工具。
如何讓大部分學(xué)生在一學(xué)期的課程設(shè)置中掌握好C語言的語法結(jié)構(gòu)、常見算法、數(shù)據(jù)結(jié)構(gòu)、項目模塊應(yīng)用本身是一件有挑戰(zhàn)性的實踐活動。
首先,C語言可以直接操縱硬件的特性,在學(xué)習(xí)的過程中需要提前掌握一些計算機硬件底層的相關(guān)知識,而這部分基礎(chǔ)知識往往在學(xué)生興趣最濃厚的課程前期,較為抽象、枯燥的學(xué)習(xí)過程讓部分學(xué)生產(chǎn)生畏懼心理。
其次,因為C語言簡潔高效及語義復(fù)用的歷史問題讓不少初學(xué)者花了大量的時間去掌握其基本語法結(jié)構(gòu),從而導(dǎo)致課堂教學(xué)效果不佳。
最后,與部分后置專業(yè)課程的聯(lián)系較弱,如單片機、嵌入式開發(fā)等,存在著學(xué)生需要回頭“補課”的現(xiàn)象,降低專業(yè)培養(yǎng)方案的系統(tǒng)性與連貫性。
針對相關(guān)教學(xué)問題,本教學(xué)設(shè)計從O-AMAS[2-3]有效教學(xué)方法的理念出發(fā),從教學(xué)目標、迅速激活、多元學(xué)習(xí)、有效測評、簡要總結(jié)等5個環(huán)節(jié)進行項目化教學(xué)設(shè)計。
在每個項目開始階段給學(xué)生提供前置知識點閱讀材料,說明完成項目過程后需要掌握并熟練的知識體系與操作技能,將其具體化為學(xué)生能夠理解的教學(xué)目標。
在每個課程體系的初始學(xué)習(xí)階段都是學(xué)生學(xué)習(xí)興趣最為濃厚的階段。因此,在項目化教學(xué)設(shè)計的前期,通過完成體項目的實機演示,迅速激活,引發(fā)學(xué)生主動學(xué)習(xí)的興趣,充分調(diào)動學(xué)生學(xué)習(xí)的積極性與創(chuàng)造性。
當(dāng)前時代背景下,學(xué)生終身學(xué)習(xí)、多元學(xué)習(xí)比簡單的課堂教學(xué)更為重要。教學(xué)方法不能局限于課堂PPT、板書、多媒體設(shè)備。在多元互動平臺學(xué)習(xí)里,可以方便進行實時反饋,在課堂上解決學(xué)生存在的共性問題,在課堂后解決學(xué)生的個性問題,做到基礎(chǔ)教學(xué)與深入學(xué)習(xí)的結(jié)合。
在教學(xué)方法中,有效并及時的評測考核方法是良好的“正負反饋”機制。教師可以通過反饋信息,適當(dāng)優(yōu)化教學(xué)進度與深度。在項目化設(shè)計的過程中,教師通過學(xué)習(xí)小組定制不同的項目內(nèi)容,或者提供具有開放性、創(chuàng)造性的模板項目,引導(dǎo)學(xué)習(xí)小組的主動性與原創(chuàng)性。
總結(jié)是回顧知識體系的重要手段。在掌握較為枯燥的知識體系后,通過課堂實踐小項目,簡單迅速地回顧當(dāng)前階段需要掌握的知識體系,通過該環(huán)節(jié)可以鞏固學(xué)習(xí)過程中產(chǎn)生的大量零碎的知識點,提煉出每個階段的知識框架與前后階段框架的邏輯聯(lián)系。
根據(jù)教學(xué)實踐中的進度安排,穿插“四大四小”項目教學(xué)內(nèi)容。小項目屬于課堂示范項目,可以在15 min之內(nèi)完成,系統(tǒng)化掌握前后聯(lián)系知識點。
第一個課堂項目設(shè)置在剛接觸IDE平臺,直接利用“stdlib.h”系統(tǒng)庫函數(shù)實現(xiàn)簡單的窗口按鈕操作,點擊調(diào)用系統(tǒng)軟件、用戶軟件等,掌握操作系統(tǒng)提供的若干應(yīng)用軟件接口。
第二個課堂項目設(shè)置在講授“操作符與語句”等內(nèi)容過程中,通過簡單的示范項目諸如實現(xiàn)讀數(shù)的進制轉(zhuǎn)化及顯示項目,基于位運算的加法器項目,讓學(xué)生掌握相關(guān)操作系統(tǒng)與底層硬件的相關(guān)知識。
第三個課堂項目設(shè)置在講授“函數(shù)”等知識體系,實現(xiàn)“cmd”命令行向圖形化編程的遷移,讓學(xué)生掌握函數(shù)封裝的實際意義。
第四個課堂項目設(shè)置在講授“指針”等重點內(nèi)容上,通過若干示范項目,諸如對給定數(shù)據(jù)塊實現(xiàn)排序查找,非排序查找以及進階型排序備份表單等,讓學(xué)生掌握指針變量具體的應(yīng)用方式,而不是拘泥于各類復(fù)雜的指針類型操作。
第一個大項目為C語言經(jīng)典游戲“打磚塊”[4],該項目需實現(xiàn)鍵盤操作小球擊打磚塊并消除磚塊,完成勝利及失敗判斷。項目需要掌握的能力體系有圖形化界面實現(xiàn)、二維數(shù)組的初始化與磚塊繪制的聯(lián)系、簡單的物理碰撞機制的計算機數(shù)學(xué)模型、各類功能函數(shù)的封裝及相互調(diào)用等知識點。重點考查學(xué)生在游戲項目設(shè)計過程中的邏輯思維能力,完成觸發(fā)、判斷函數(shù)的編寫,以及簡單的游戲項目勝利/失敗退出機制。
第二個大項目為“音樂電子相冊”[5],實現(xiàn)電子相冊左右按鈕點擊切換預(yù)覽視圖,以及對應(yīng)放大視圖等操作。需要學(xué)生掌握的能力體系有圖形化界面繪制、文件讀取、貼圖以及按鈕繪制函數(shù)等。重點考察鼠標進入按鈕的觸發(fā)判斷機制函數(shù)編碼及調(diào)用時機;以及左右按鈕點擊后,圖片上下切換在數(shù)據(jù)操作背后的邏輯關(guān)系,同時鼓勵學(xué)生分為小組完成個性化的音樂電子相冊。
第三個大項目為windows經(jīng)典游戲“掃雷”[6]。在掌握了前兩個項目的圖形化界面繪制及鼠標事件操作的基礎(chǔ)上,增加前后端項目設(shè)計結(jié)合的能力培養(yǎng),以及相關(guān)“雷區(qū)”數(shù)據(jù)加密解決算法的實現(xiàn)。在該項目中,“cmd”命令行窗口作為掃雷棋盤的雷區(qū)數(shù)組及“后端”數(shù)據(jù)平臺,觀察二維數(shù)組中雷區(qū)數(shù)據(jù)的變化,實現(xiàn)鼠標操作中左鍵解密空白區(qū)域,右鍵設(shè)置雷區(qū)標記等。在進階項目操作中,實現(xiàn)點擊空白區(qū)域展開全部數(shù)字標記的功能,該項目可以提高學(xué)生的深度學(xué)習(xí)及思考能力,讓學(xué)生掌握基本的前端后端編碼概念。
第四個大項目為C語言經(jīng)典的圖書信息管理模塊[7],該項目的衍生項目有學(xué)生信息管理模塊、人事系統(tǒng)管理模塊等。作為最后一個上機模塊,需要完成圖書信息的新增錄入、查詢、借閱、排序、歸還等功能。通過圖書信息掌握結(jié)構(gòu)體及返回結(jié)構(gòu)體函數(shù)的復(fù)合知識體系,并掌握動態(tài)鏈表的增、刪、查、改背后的邏輯操作框架。進階項目完善與文件聯(lián)系起來,實現(xiàn)日志文件的保存與讀寫。該項目的邏輯操作性很強,對鏈表等數(shù)據(jù)結(jié)構(gòu)掌握程度的考察生動且深入。
基于項目化的教學(xué),并結(jié)合O-AMAS有效教學(xué)理念,使得傳統(tǒng)的較為枯燥的課堂教學(xué)向積極的、實時反饋的項目化過程教學(xué)及差異化多元結(jié)果反饋轉(zhuǎn)換,可極大提高學(xué)生的學(xué)習(xí)興趣與教師的課內(nèi)課后教學(xué)水平。同時該教學(xué)改革理念能夠激發(fā)學(xué)生的創(chuàng)造性思維及邏輯思維能力培養(yǎng),對C語言教學(xué)的改革具有較強的推動作用。