陳勇 徐超
摘 ? ?要:針對“計算機系統(tǒng)基礎(chǔ)”課程的教學(xué)現(xiàn)狀,文章分析了目前課程教學(xué)中存在的知識點零散、過度依賴程序設(shè)計語言、學(xué)生學(xué)習(xí)興趣不高等問題,提出基于PBL的“計算機系統(tǒng)基礎(chǔ)”課程教學(xué)改革,從問題選擇、方案制定、技術(shù)點凝練、系統(tǒng)映射、方案優(yōu)化5個方面闡述教學(xué)設(shè)計。同時,利用一個常規(guī)計算問題的求解,闡明該方法如何融入“計算機系統(tǒng)基礎(chǔ)”課程的各知識點,使學(xué)生在典型問題求解過程中逐步提升學(xué)習(xí)興趣,實現(xiàn)零基礎(chǔ)構(gòu)建計算機系統(tǒng)思維能力。
關(guān)鍵詞:計算機系統(tǒng);PBL;系統(tǒng)思維
中圖分類號:G642 ? ? ?文獻標(biāo)識碼:A ? ? ?文章編號:1002-4107(2023)03-0090-03
為培養(yǎng)適應(yīng)現(xiàn)代社會信息化需求的計算機專業(yè)人才,提升計算機專業(yè)學(xué)生的系統(tǒng)思維能力,“計算機系統(tǒng)基礎(chǔ)”課程成為我國計算機專業(yè)系統(tǒng)能力培養(yǎng)的核心基礎(chǔ)課程[1]。該課程是由卡內(nèi)基梅隆大學(xué)的R. E.布賴恩特(R. E. Bryant)等人首先提出的,主要包括數(shù)據(jù)表示、機器級程序、存儲系統(tǒng)、并行計算、網(wǎng)絡(luò)等計算機系統(tǒng)的主要知識點及其相互之間的聯(lián)系,以求從程序員的視角對計算機系統(tǒng)的整體架構(gòu)進行闡述,讓學(xué)生結(jié)合已有的編程語言知識構(gòu)建計算機系統(tǒng)的整體觀[2]。國內(nèi)高校引入該課程后,主要面向本科低年級的學(xué)生開設(shè),并對內(nèi)容進行了本土化設(shè)計,在一定程度上提升了學(xué)生對計算機系統(tǒng)的整體認(rèn)識[3-5]。但在課程講授中,教師通常以單個知識點為重點,每個知識點采用獨立的案例進行講解,缺乏系統(tǒng)的整體性,對于計算機基礎(chǔ)較薄弱的低年級學(xué)生構(gòu)建完備的系統(tǒng)思維存在一定困難。
一、“計算機系統(tǒng)基礎(chǔ)”課程教學(xué)問題分析
“計算機系統(tǒng)基礎(chǔ)”課程的主要目標(biāo)是培養(yǎng)學(xué)生的系統(tǒng)思維能力,建立扎實的計算機系統(tǒng)概念,并能夠從系統(tǒng)層面分析程序調(diào)試、性能提升、程序移植和健壯性等方面的問題。然而,受課程內(nèi)容、課時及學(xué)生接受能力的影響,該課程在實際教學(xué)過程中遇到了不少挑戰(zhàn)。
首先,該課程是基于程序員視角組織教學(xué)內(nèi)容,大部分高校以C語言為導(dǎo)入點,因此,學(xué)生對C語言的掌握程度直接影響該課程的學(xué)習(xí)效果。不少學(xué)生在大學(xué)以前并沒有接觸過程序設(shè)計,在C語言的學(xué)習(xí)過程中只是初步掌握,且課后相關(guān)練習(xí)并不充分。如果教師直接通過C語言程序設(shè)計中可能出現(xiàn)的問題引入相關(guān)知識點,學(xué)生的接受效果不一定理想。其次,大部分授課教師在組織該課程內(nèi)容時,除第一章對整個計算機系統(tǒng)進行初步闡述外,后續(xù)內(nèi)容基本是以數(shù)據(jù)表示、程序轉(zhuǎn)換、存儲系統(tǒng)等具體知識點為教學(xué)內(nèi)容進行獨立講解,對于知識點之間的聯(lián)系缺乏合理的銜接。例如,存儲系統(tǒng)安排在程序優(yōu)化之后,導(dǎo)致學(xué)生在學(xué)習(xí)優(yōu)化時,不能理解與存儲相關(guān)的優(yōu)化,而基于存儲系統(tǒng)的優(yōu)化是程序優(yōu)化的一個重要方面。最后,案例缺乏整體性。由于該課程涉及的內(nèi)容比較基礎(chǔ),且面向本科低年級學(xué)生開設(shè),因此為提升學(xué)生學(xué)習(xí)興趣,不少教師在授課過程中采用了案例教學(xué)法。但這些案例通常是針對某個具體知識點進行單獨設(shè)計,案例整體上并不連貫。例如,在介紹程序轉(zhuǎn)換過程中,可能使用的是x86架構(gòu)指令集的案例,但在解釋指令流水線時,則使用MIPS或ARM架構(gòu)指令集的案例。這容易使學(xué)生陷入計算機系統(tǒng)的某個具體知識點中,難以從整體上把握整個計算機系統(tǒng),不利于學(xué)生系統(tǒng)思維的培養(yǎng)。
二、PBL教學(xué)法
PBL教學(xué)法是一種以問題為導(dǎo)向,以學(xué)生為中心,重點培養(yǎng)學(xué)生自主性和創(chuàng)造性的教學(xué)方法[6],已經(jīng)成功應(yīng)用于多學(xué)科的教學(xué)設(shè)計中[7-9]。它的基本過程如圖1所示。首先,通過對實際場景進行分析,構(gòu)建具體的項目或問題;然后,將學(xué)生分組,以小組為單位搜集資料,尋找解決問題的途徑,制定相應(yīng)的方案和計劃;接著,各小組圍繞制定的方案和計劃,進一步分析實現(xiàn)過程中存在的問題,并搜尋相應(yīng)的實踐途徑;最后,各小組進行思維碰撞,交流分享各自的方案及實踐途徑,并結(jié)合要解決的問題,進行反饋評價,有利于各小組之間優(yōu)劣互補,在實踐中成長。
PBL教學(xué)法圍繞一個項目或問題,讓學(xué)生有目的地逐步求解,其本身具有很強的系統(tǒng)性。因此,如果在“計算機系統(tǒng)基礎(chǔ)”課程的教學(xué)中融入PBL教學(xué)法,利用單個實際問題的求解將計算機系統(tǒng)各部分的知識點串聯(lián)起來,對于學(xué)生系統(tǒng)思維能力的提升具有較好的促進作用。
三、基于PBL的“計算機系統(tǒng)基礎(chǔ)”課程教學(xué)設(shè)計
由于“計算機系統(tǒng)基礎(chǔ)”課程的授課對象并不一定具有扎實的計算機系統(tǒng)知識,因此,要讓學(xué)生在有限的課時內(nèi)構(gòu)建出完整的計算機系統(tǒng)解決方案并不現(xiàn)實。而且該課程的主要目標(biāo)是培養(yǎng)學(xué)生形成整體的計算機系統(tǒng)思維能力,具體的實踐細節(jié)并不是重點,因此,作者在應(yīng)用PBL教學(xué)法時,進行了一些改進(圖2)。其教學(xué)過程主要分為問題提出、方案制定、技術(shù)點凝練、系統(tǒng)映射、方案調(diào)優(yōu)5個部分。
(一)問題提出
PBL教學(xué)法是根據(jù)學(xué)生已有的知識結(jié)構(gòu)及課程目標(biāo),選擇一個合適的問題供學(xué)生解決?!坝嬎銠C系統(tǒng)基礎(chǔ)”課程的授課對象是計算機相關(guān)專業(yè)本科低年級學(xué)生,學(xué)生對計算機系統(tǒng)的理解并不深入,而教學(xué)目標(biāo)是讓學(xué)生能夠?qū)τ嬎銠C系統(tǒng)有整體的認(rèn)知,并不是對某一方面有深入的理解。因此,教師在提出問題時,要遵循以下兩個原則。
1.問題應(yīng)足夠簡單,易于學(xué)生理解,盡量不要選擇計算機領(lǐng)域中的專業(yè)問題。
2.問題的求解過程應(yīng)能夠覆蓋計算機系統(tǒng)的主要知識點。
(二)方案制定
摒棄計算機概念,根據(jù)問題及限定條件,要求學(xué)生分組討論,對問題逐層分解,制定可行的解決方案。
(三)技術(shù)點凝練
根據(jù)所制定的解決方案,凝練出實施過程中需要的技術(shù)點,為后續(xù)與計算機系統(tǒng)相關(guān)知識點的融合做準(zhǔn)備。
(四)系統(tǒng)映射
根據(jù)討論的基礎(chǔ)解決方案,教師引導(dǎo)學(xué)生將其映射到計算機系統(tǒng)相應(yīng)的組成部分,讓學(xué)生自然地過渡到“計算機系統(tǒng)基礎(chǔ)”的基本知識點。
(五)方案調(diào)優(yōu)
通過新增條件等方式,對基礎(chǔ)解決方案進行討論,找出可能的優(yōu)化措施,進而引入程序優(yōu)化、操作系統(tǒng)、網(wǎng)絡(luò)等更深層的計算機系統(tǒng)相關(guān)內(nèi)容,逐步加深學(xué)生對現(xiàn)代計算機系統(tǒng)整體架構(gòu)的理解。
四、方法實踐
文章以一個基礎(chǔ)的計算問題為例(圖3),闡述如何基于本方法逐步融入計算機系統(tǒng)各層面的知識,引導(dǎo)學(xué)生自然地構(gòu)建計算機系統(tǒng)思維。
1.問題提出:教師可以以一個較復(fù)雜的計算問題為出發(fā)點,如求解“12×8192+123.87/26”,讓學(xué)生思考如何完成計算過程。
2.方案制定:針對該問題,最直觀的解決方法可以分為3個步驟。
a.計算12×8192;
b.計算123.87/26;
c.將步驟a與步驟b的計算結(jié)果相加。
3.技術(shù)點凝練:根據(jù)具體步驟,凝練出基本的技術(shù)點。
(1)所有的數(shù)據(jù)和結(jié)果都通過筆記錄到紙上,這里的紙是用來存放數(shù)據(jù)的,筆是用來將數(shù)據(jù)輸入到系統(tǒng)的,因此需要考慮數(shù)據(jù)的存儲和輸入。
(2)在解決方案中,要計算的數(shù)據(jù)是通過“12”“123.87”等阿拉伯?dāng)?shù)字加上小數(shù)點等相關(guān)符號給出的,所以要考慮數(shù)據(jù)的表達。
(3)使用的乘法、除法和加法等運算都需要根據(jù)具體的運算規(guī)則來確定,因此還需要考慮運算過程的實現(xiàn)。
(4)這里的3個步驟是有順序關(guān)系的,也就是步驟(1)和步驟(2)必須要在步驟(3)之前進行,因此還需要考慮如何組織計算的順序。
(5)最終的結(jié)果教師必須能夠獲得,因此還需要考慮數(shù)據(jù)的輸出問題。
4.系統(tǒng)映射:根據(jù)凝練的技術(shù)點,引申出對應(yīng)的計算機系統(tǒng)相關(guān)知識點,進而結(jié)合案例講解相關(guān)知識點。
(1)在技術(shù)點(1)中涉及利用紙來存儲信息。教師可以借助紙的類比,如紙有記錄內(nèi)容的作用,進而展開闡述計算機系統(tǒng)的多層存儲系統(tǒng)設(shè)計;對于使用的筆,教師將其類比為輸入設(shè)備,進而展開介紹計算機系統(tǒng)中輸入設(shè)備的相關(guān)內(nèi)容。
(2)在技術(shù)點(2)中涉及的數(shù)據(jù)不僅有整數(shù)(12)、小數(shù)(123.87),也有“+”“×”“/”等非數(shù)值數(shù)據(jù),因此在計算機中,對于數(shù)據(jù)的表達也需要支持這些相關(guān)內(nèi)容,進而可以闡述在計算機中有關(guān)各類數(shù)據(jù)的表示及編碼等。
(3)在技術(shù)點(3)中,由加、乘、除等基本運算的運算規(guī)則,可以引出計算機內(nèi)部的運算器和控制器,進而講解運算器和控制器如何相互配合,完成對應(yīng)的運算。
(4)在技術(shù)點(4)中,由運算步驟的順序安排,可以映射到程序的設(shè)計,闡述編程方式如何由二進制程序到匯編程序,再到高級編程語言的轉(zhuǎn)變,進而擴展到編譯器、匯編器、鏈接器等相關(guān)轉(zhuǎn)換工具的設(shè)計與實現(xiàn)等。
(5)在技術(shù)點(5)中,根據(jù)結(jié)果輸出的要求,可以直接映射到計算機系統(tǒng)的輸出設(shè)備。
通過以上映射過程,馮諾依曼計算機系統(tǒng)的主要部門將自然地銜接在一起,讓學(xué)生對計算機系統(tǒng)為什么這么設(shè)計,以及各部分基本的實現(xiàn)方式有整體的認(rèn)識。
5.方案調(diào)優(yōu):增加一些額外的資源或者限制條件,對系統(tǒng)進行改進。
(1)增加一個人,將步驟a和步驟b同時計算,此時需要考慮兩個步驟同時計算時的調(diào)度與協(xié)同,從而引出并行計算、操作系統(tǒng)等相關(guān)知識。
(2)增加移位運算的考慮,可以對步驟a的乘法進行優(yōu)化,從而引出程序優(yōu)化的相關(guān)知識。
(3)假設(shè)兩個同時計算的人不在同一個地方,引出網(wǎng)絡(luò)的相關(guān)內(nèi)容。
通過這個計算問題的求解,可以將計算機系統(tǒng)的相關(guān)內(nèi)容有機地聯(lián)系在一起,實現(xiàn)教學(xué)內(nèi)容和教學(xué)目標(biāo)更好地融合。即使對程序設(shè)計不熟練的學(xué)生,也能夠獲得較好的學(xué)習(xí)效果,提升其系統(tǒng)思維能力。
文章針對目前“計算機系統(tǒng)基礎(chǔ)”課程內(nèi)容組織銜接性不強、對程序設(shè)計知識過渡依賴等問題,提出了基于PBL的問題導(dǎo)入式教學(xué)方法。首先,從學(xué)生易懂的基本問題出發(fā),通過方案設(shè)計、技術(shù)點凝練、系統(tǒng)映射等步驟,讓學(xué)生將自己熟知的解決方法與計算機系統(tǒng)的解決方案建立自然的連接,從而了解計算機系統(tǒng)各部分設(shè)計的由來,激發(fā)其求知欲,了解基礎(chǔ)計算機系統(tǒng)的主要知識點及其關(guān)系。其次,通過增加額外資源等方式,對現(xiàn)代計算機系統(tǒng)中各種演變和優(yōu)化措施進行解析,讓學(xué)生能夠由淺入深,實現(xiàn)零基礎(chǔ)掌握計算機系統(tǒng),提高學(xué)生對計算機系統(tǒng)的綜合理解和運用能力。在未來的教學(xué)實踐中,教師將進一步探索適用于零基礎(chǔ)學(xué)生系統(tǒng)思維培養(yǎng)的“計算機系統(tǒng)基礎(chǔ)”課程教學(xué)設(shè)計,以最大限度提升教學(xué)效果。
參考文獻:
[1] ?張為華,李弋,趙文耘.面向系統(tǒng)能力培養(yǎng)的“計算機系統(tǒng)基礎(chǔ)”課程優(yōu)化[J].計算機教育,2018(9):108.
[2] ?BRYANT R E, OHALLARON D R. Introducing?Computer Systems from a Programmers Perspective[J].ACM SIGCSE Bulletin,2001,33(1):90.
[3] ?王志英,周興社,袁春風(fēng),等.計算機專業(yè)學(xué)生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設(shè)置研究[J].計算機教育,2013(9):6.
[4] ?孫清,魏晉雁,李薇,等.財經(jīng)類院?!坝嬎銠C系統(tǒng)基礎(chǔ)”課程教學(xué)探索及實踐[J].軟件導(dǎo)刊,2020,19(12):146.
[5] ?邊玲燕,史海濤.基于案例教學(xué)的“計算機系統(tǒng)基礎(chǔ)”課程教學(xué)研究[J].科技與創(chuàng)新,2021(19):100.
[6] ?WOOD D F. Problem Based Learning[J]. Journal ofBritish Medicine,2003,326(7384):330.
[7] ?余志遠,馮宏杰,閆銘.PBL教學(xué)法在旅游管理專業(yè)研究生教學(xué)中的應(yīng)用探索[J].高教學(xué)刊,2022,8(3):117.
[8] ?張霞,韓義德,王錦霞,等.結(jié)合PBL課例的無機化學(xué)線下對分課堂教學(xué)設(shè)計與實踐[J].化學(xué)教育(中英文),2022,43(2):44.
[9] ?周琴,張九紅,陳沈.PBL教學(xué)法在建筑物理實驗教學(xué)中的應(yīng)用[J].物理實驗,2022,42(1):34.
編輯∕李夢迪
收稿日期:2022-03-15 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?修回日期:2022-04-05
作者簡介:陳勇(1986—),男,湖南冷水江人,南京審計大學(xué)信息工程學(xué)院高級工程師,博士,研究方向:計算機系統(tǒng)結(jié)構(gòu)、軟件可靠性、大數(shù)據(jù)審計。
基金項目:2020年國家自然科學(xué)基金面上項目“區(qū)塊鏈技術(shù)支撐下高可靠易追溯審計電子數(shù)據(jù)構(gòu)建方法及應(yīng)用研究”(71972102);2019年教育部人文社會科學(xué)規(guī)劃基金項目“基于區(qū)塊鏈技術(shù)的大數(shù)據(jù)審計探索性研究:原型設(shè)計、方法變革與實證分析”(19YJAZH100);2020年江蘇省高等學(xué)校自然科學(xué)研究項目“基于歸一化表示的自適應(yīng)軟件缺陷預(yù)測方法研究”(20KJB520026)