999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

“計算機系統基礎”課程建設探索與實踐

2023-06-12 00:07:18張浩宇呂成國高揚
關鍵詞:課程體系程序教材

張浩宇,呂成國,高揚

(黑龍江大學,黑龍江 哈爾濱 150080)

隨著后PC(Post- Personal Computer)時代的到來,原有的參照ACM(Association For Computing Machinery,國際計算機學會)和IEEE(Institute of Electrical and Electnaics Engineers,電子和電子工程協會)制定的計算機專業、軟件工程專業課程體系已經不能滿足現階段人才培養要求,其主要表現為:原課程體系設置了很多門獨立的課程,課程之間缺乏關聯和系統性,學生在學習過程中難以系統性地理解整個計算機系統的工作原理和方法,導致學生缺乏系統思維,因此亟需一門獨立的能夠貫穿整個計算機系統的基礎課程,培養學生系統思維能力,使人才培養目標由程序設計逐步變為系統設計。

基于以上原因,為了推動軟件工程專業課程的教學改革,利用2019 版人才培養方案的修訂契機,黑龍江大學軟件學院決定在軟件工程專業培養計劃中增設一門專業必修課程“計算機系統基礎”,該課程力求從程序員視角出發,重點介紹應用程序員如何利用計算機系統相關知識來編寫更有效的程序。以高級語言程序的開發和運行過程為主線,將該過程中每個環節所涉及的硬件和軟件基本概念關聯起來,使學生建立一個完整的計算機系統層次結構框架,了解計算機系統的全貌和相關知識體系,初步理解計算機系統中的每一個抽象層及其相互轉換關系,增強學生在程序的調試、性能優化、移植和健壯性保證等方面的能力。

目前,國內講授“計算機系統基礎”課程最為權威的是南京大學袁春風教授的教學團隊,該團隊出版了教材《計算機系統基礎》,該書以IA-32 架構和linux 操作系統為平臺,用真實的應用實例介紹在編寫程序過程中出現的各種錯誤,分析出現這些錯誤的原因,并指出解決這些錯誤的方法[1]。袁教授的教學團隊編寫了與教材配套的《習題解答和教學指導》,并在中國大學MOOC 平臺上發布了完整的慕課資源供學生學習。筆者基于袁教授教學團隊“計算機系統基礎”課程教學模式,對照黑龍江大學計算機科學技術學院的學生培養計劃在理論課程體系、實驗課程體系、考核方式三個方面進行建設。

一、理論課程體系的建設

關于理論課程體系的建設,課程組從教材選用、教學內容重組、教學內容增加三個方面進行了課程建設。

(一)教材選用

如前所述,袁春風教授的教學團隊將“計算機系統基礎”課程建設得非常完備,是“計算機系統基礎”課程建設的學習楷模,因此課程組決定選用袁教授編寫的最新教材——《計算機系統基礎(第2 版)》作為我們的教材。這本教材全書共8 個章節,分別是計算機系統概述、數據的機器級表示與處理、程序的轉換及機器級表示、程序的鏈接、程序的執行、層次結構存儲系統、異??刂屏?、I/O 操作的實現。袁春風教授在前言中建議軟件工程專業講授這門課程不僅要把全書的章節8 個內容全部講授,還要將附錄中的數字邏輯電路基礎也進行講授,這樣本課程需要分為兩個學期講授,每學期的總學時為60 學時左右。而黑龍江大學計算機科學技術學院制定的教學計劃是理論課講授48 學時,實驗課16學時,總學時64 學時,在這門課前開設一門總學時為34 學時的“數字邏輯”課程,以便為該課程奠定硬件知識基礎。考慮到課時設置的不同,課程組重新制定了教學計劃,以教材的第一、二、三章的內容作為講授的重點,第四、五、六章的內容略講,第七、八章的內容不作為考核內容,只作為學生自學內容。在講授教材前三章的內容時,如果涉及到第四、五、六章的知識點就把它們穿插進前三章的授課內容中,以求給學生展示一個相對完整的計算機系統。

(二)教學內容重組

“計算機系統基礎”課程是一門軟硬件系統兼顧,以培養學生系統思維、系統設計能力為目的的課程。在講授過程中必然要涉及許多硬件系統的知識,這些知識很多是“數字邏輯”課程上沒有講授而本課程又必須使用的。鑒于此,課程組就需要考慮教材第一章講授內容的順序以及與教材后續內容的重組問題。

教材第一章的講授內容主要圍繞以下四個方面進行:計算機基本工作原理、程序的開發與運行、計算機系統的層次結構、計算機系統性能評價。在具體講授的過程中,考慮到學生已經學習了“程序設計基礎”和“數字邏輯”兩門課,本著循序漸進、先軟件后硬件的原則,課程組調整了本章的講授順序,首先講授計算機系統的層次結構,然后講授程序的開發與運行,再講授計算機基本工作原理,最后講授計算機系統性能評價。在講授計算機系統的層次結構部分時,讓學生初步對計算機系統有一個完整的系統概念,厘清計算機軟件子系統和硬件子系統之間的關系,明確軟件子系統和硬件子系統在功能上具有等效性。在講授程序的開發與運行部分時,需要將第四章的編譯、匯編和靜態鏈接,目標文件這些知識融合進來,讓學生清晰地看到一個程序是如何從文本文件轉換成目標文件并在計算機中被執行的全部過程,以充分理解軟件子系統的功能。在講授計算機基本工作原理的部分時,將第五章的程序的執行過程、數據通路的知識,第六章主存與CPU 的連接及其讀寫操作的知識融合進來,讓學生深刻體會目標文件在存儲器中是如何存放的,又如何被CPU 讀取執行的,在此過程中CPU 與存儲器之間是如何配合工作的等一系列與計算機硬件子系統息息相關的操作過程。通過一個簡單程序做例子,把以上三個部分有機地聯系在一起,讓學生清楚地感受到軟件子系統和硬件子系統互相配合工作,形成了一個完整的計算機系統,達到了初步培養學生系統思維的目的。

(三)教學內容增加

教材第三章的講授內容主要圍繞以下六個方面進行:程序轉換概述、IA-32 指令系統概述、IA-32 常用指令類型及其操作、C 語言程序的機器級表示、復雜數據類型的分配和訪問、越界訪問和緩沖區溢出。其中前三部分知識是本章知識講授的基礎,由于學生之前沒有接觸過IA-32 匯編語言,如果完全按教材講授,學生對這三個部分知識體系學習不充分,會直接影響對后續三個部分知識的學習理解,因此課程組還要增加有關IA-32 匯編語言程序設計的內容。

課程組增加的有關IA-32 匯編語言程序設計的內容共有六部分:80X86 的寄存器、AT&T 匯編語言的格式、IA-32 匯編的尋址方式、IA-32 匯編指令系統、簡單匯編語言程序舉例與偽操作、帶子程序的匯編語言程序舉例。其中80X86 的寄存器、IA-32 匯編的尋址方式、IA-32 匯編指令系統三個部分教材中有介紹但不完整,課程組需要將其補充完整;AT&T 匯編語言的格式、簡單匯編語言程序舉例與偽操作、帶子程序的匯編語言程序舉例三個部分是根據后續學習需要增加的全新部分。通過講授相對完整的IA-32 匯編語言程序設計的知識,使學生可以讀懂并編寫IA-32 匯編語言程序,在學習過程中,可以讓學生利用C 語言與IA-32 匯編語言編寫相同功能的程序代碼,利用C 語言程序與IA-32 匯編語言程序的對比,加深學生對C 語言程序的機器級表示的理解,尤其是學習了帶子程序的匯編語言程序舉例部分的知識,可以促進學生對堆棧操作和內存存儲的理解,能夠使學生更好地掌握復雜數據類型的分配和訪問、越界訪問和緩沖區溢出這兩部分講授的知識。

二、實驗課程體系的建設

關于實驗課程體系的建設,課程組從實驗的設置、與教學內容相關實驗的目標、擴展實驗內容的目標三個方面進行了實驗課程體系的建設。

(一)實驗的設置

雖然袁春風教授的團隊有完整的教學資源,但是實驗教學環節與黑龍江大學計算機科學技術學院的實際教學情況不相匹配。袁教授團隊設計的實驗分小實驗和大實驗兩部分,小實驗主要是對理論課程講授的知識進行驗證性實驗,而大實驗主要是根據理論課程講授的知識進行綜合性、擴展性實踐。對于學生來說,小實驗的難度過于簡單,大實驗的難度又過難,使得課程組不能照搬現成的實驗項目,只能根據學生的具體情況自己設計難度適中的實驗。

課程組設計了8 個實驗,分別是:Linux 環境下C語言開發實驗,十進制數與二進制數、原碼、反碼、補碼互換實驗,十進制數與IEEE754 標準浮點數互換實驗,linux 環境下匯編語言開發實驗,匯編語言四則運算實驗;匯編語言子程序實驗,二進制炸彈實驗,Linux 進程管理、共享內存、多線程實驗。其中前6 個實驗是與教材直接相關的實驗,設置目的是通過實踐編程加深對理論知識的理解;后兩個實驗屬于綜合性擴展實驗,設置目的是提高學生綜合應用能力,培養系統思維能力,為后續課程的學習奠定基礎。

(二)與教學內容相關實驗

實驗一是培養學生在Linux 環境下使用GCC 編譯C 語言程序、使用GDB 調試C 語言程序和使用Make工具實現多個C 語言程序模塊化編譯一個工程的能力?!队嬎銠C系統基礎》這本教材中的例題幾乎都是在Linux 環境下進行分析,學生為了能重現教材中的例題就必須學會在Linux 環境下的C 語言程序設計方法,熟練掌握在Linux 環境下的C 語言程序的編譯、調試方法,以及多個C 語言程序利用Make 工具實現模塊化編譯的方法,基于此設置了實驗一。實驗二要求學生通過C 語言編寫二進制數與十進制數互相轉換程序,帶符號二進制數與原碼、反碼、補碼互相轉換程序。在理論教學過程中,我們已經講授了這些轉換的方法,但是我們要通過實驗加深學生對這些轉換方法的理解,引導學生思考在計算機中如何通過軟件編程實現這些方法,同時在編寫程序的過程中加強學生對程序模塊化設計的訓練。實驗三要求學生通過C 語言編寫十進制數與IEEE754 標準浮點數的互相轉換程序。通過實驗加深學生對IEEE754 標準浮點數表示中階碼、隱藏位等知識的理解,明確十進制數據如何與IEEE754 標準的浮點數進行互換。以上三個實驗與第二章的理論內容相關聯,通過C 語言編程實現相關理論內容,使理論與實踐更緊密地結合。

實驗四是培養學生在Linux 環境下使用AS 和LD編譯匯編語言程序、使用GDB 調試匯編語言程序的能力。由于理論教學部分在第三章增加了有關IA-32 匯編語言程序設計的知識,掌握IA-32 匯編語言程序的編譯、調試方法是必不可少的。實驗五要求學生用IA-32 匯編語言編寫四則混合運算程序、在無序數組中查找最大數程序。通過這個實驗讓學生親手編寫具有順序、分支和循環結構的IA-32 匯編語言程序,對比相同功能的C 語言程序,感受二者的相同點與不同點,進而體會C 語言程序的機器級表示,培養學生的匯編語言程序設計能力。實驗六要求學生編寫一個帶子程序的IA-32 匯編語言程序,求一個數組中所有數據的平方之和,求平方的過程必須使用子程序完成。通過這個實驗讓學生體會帶子程序的IA-32 匯編語言程序在主程序與子程序進行切換時系統堆棧段的變化,主程序與子程序之間參數的傳遞過程,進而促進學生對C 語言子函數中參數的作用域和生存周期的理解。以上三個實驗與第三章的理論內容相關聯,通過編寫IA-32匯編語言程序,加深學生對C 語言程序的機器級表示的理解,使學生能夠寫出更加優化健壯的C 語言程序代碼,同時對編譯原理有一個初步的認識。

(三)擴展實驗

實驗七是袁老師慕課團隊設計的一個實驗,該實驗要求運用第二章和第三章所學知識,拆除一個二進制炸彈程序中設置的多個關卡,在該過程中增強對程序與數據的機器級表示、匯編語言、調試器和逆向工程等方面知識與技能的掌握。二進制炸彈是一個Linux 可執行程序,包含了多個階段。在炸彈程序運行的每個階段要求輸入一個特定字符串,如果該輸入字符串符合程序的要求,該階段的炸彈就被拆除了,否則炸彈“爆炸”,即打印輸出“BOOM!!!”的提示。這個實驗考察學生對字符串比較、浮點數表示、C 語言循環機器級表示、C語言條件分支機器級表示、遞歸調用和棧的操作、指針的分配與訪問、鏈表與結構的分配與訪問七個方面的理解,系統地對本課程中第二章、第三章的教學重點進行了一次綜合考察,加深了學生對匯編語言程序設計的理解,同時也使學生對逆向工程有一個初步的了解。這個實驗難度略高,給學生一個挑戰自我的機會。

實驗八是一個擴展實驗,目的是使學生初步了解進程的概念、進程通信和多線程的執行三個方面的知識。實驗的內容有三個:第一,利用fork 和execl 族函數,實現進程的創建,并在進程中運行新代碼;第二,實現兩個進程間通過共享內存進行數據通信;第三,實現多個線程并行執行。考慮到這些內容屬于學生自學內容,實驗要求學生完成這三個程序的任意一個即可。這部分知識不在課堂講授范圍以內,但是在后續操作系統課程學習中一定會涉及到這些知識,為了能讓學生盡快在頭腦中形成操作系統課程的學習體系,在這里通過實驗的形式,要學生先行學習一些基礎知識。

三、課程考核方法

為了提高學生學習主動性,課程組決定適當增加過程考核比重,過程考核占總成績的50%,期末試卷考核占總成績的50%。過程考核分為兩大部分:作業與測試成績、實驗成績。作業與測試成績占總成績的20%,其中作業成績占總成績10%,測試成績占總成績10%。作業由教師在學校的自主學習平臺發布,每次作業滿分為10 分,全部作業總分折合成10 分。測試部分以教材的前兩章內容為考核范圍,采用課堂隨堂測試的方式,在學校的自主學校平臺發布測試題目,滿分100分,在規定時間內完成,折合成10 分。實驗成績占總成績的30%,采用每個實驗按滿分10 分的標準對實驗程序的完整性、正確性以及學生完成實驗的速度進行綜合評測,然后將八個實驗的總成績折合成30 分。

四、結論

經過在理論課程體系、實驗課程體系、考核方式三個方面的建設,初步形成了較為完整的“計算機系統基礎”課程教學體系。經過兩輪課程講授取得了良好的效果,2019 級和2020 級軟件工程專業學生的期末成績及格率在90%以上,通過該課程的學習,給學生建立了計算機系統的整體概念,培養了學生的系統思維系統設計的能力,激發了學生自主學習的興趣,為后續操作系統課程打下了堅實的基礎。

“計算機系統基礎”是一門全新的課程,對課程組全體教師也是一項全新的挑戰。雖然本課程組教師有多年的主講“計算機組成原理”“80X86 匯編語言程序設計”課程的經驗,但他們缺少“程序設計基礎”和“操作系統”課程的主講經驗,課程的銜接方面有些不足,這需要教師進一步完善課程體系,補足短板。課程組下一步計劃根據學院教學特點編寫一本更加切合課程體系的教材,力求早日形成課程的無縫銜接。

猜你喜歡
課程體系程序教材
教材精讀
教材精讀
教材精讀
教材精讀
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
以創新課程體系引領學生發展
輔導員(2017年18期)2017-10-16 01:14:48
民法課程體系的改進和完善思路*——以中國政法大學的民法課程體系為例
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 欧美成人午夜在线全部免费| 亚洲一级毛片在线观| 国内老司机精品视频在线播出| 高清码无在线看| 亚洲日本在线免费观看| 色天天综合| A级全黄试看30分钟小视频| 亚洲中文无码h在线观看| 亚洲无码精彩视频在线观看 | 国产99免费视频| 成人福利在线观看| 欧美日韩另类在线| 国产男女免费视频| 国产在线拍偷自揄拍精品| 亚洲日韩精品伊甸| 国产精品漂亮美女在线观看| 久久国产免费观看| 久久婷婷五月综合97色| 国产综合在线观看视频| 亚洲首页国产精品丝袜| 日韩在线永久免费播放| 欧美中文字幕一区二区三区| 五月婷婷导航| 高清精品美女在线播放| 成年片色大黄全免费网站久久| 国产成人一区二区| 亚洲av成人无码网站在线观看| 国产免费久久精品99re不卡| 无码又爽又刺激的高潮视频| 美女高潮全身流白浆福利区| 国产特级毛片| 美女视频黄又黄又免费高清| 国产一区二区三区在线观看免费| 色哟哟国产精品一区二区| 国产精品久久久精品三级| 熟妇丰满人妻| 国产精品第一区在线观看| 国产一线在线| 久久香蕉国产线| 国产在线精彩视频二区| 国产精品久久久久无码网站| 最新国产在线| 国产经典三级在线| 欧美成人精品一级在线观看| 美女一级毛片无遮挡内谢| 伊人久久福利中文字幕| 成人福利在线视频| 日韩午夜伦| 亚洲精品视频免费看| 亚洲欧美一区二区三区蜜芽| 亚洲黄色成人| 精品午夜国产福利观看| 国产成人在线小视频| 欧美日韩资源| 日本不卡免费高清视频| 免费看久久精品99| 天堂成人av| 国产欧美日韩在线一区| 色综合天天综合| 国产福利免费在线观看| 手机成人午夜在线视频| 91成人免费观看| 欧美狠狠干| 亚洲天堂.com| 97人人做人人爽香蕉精品| 欧美午夜网| 在线免费亚洲无码视频| 国产亚洲精品97在线观看| 亚洲国产成人无码AV在线影院L| 园内精品自拍视频在线播放| 午夜在线不卡| 精品国产91爱| 久久国产亚洲欧美日韩精品| 茄子视频毛片免费观看| 91丝袜在线观看| 色婷婷国产精品视频| 久久黄色小视频| 激情综合婷婷丁香五月尤物| 天天综合亚洲| 狠狠色综合久久狠狠色综合| 又猛又黄又爽无遮挡的视频网站| 欧美黄色网站在线看|