• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      論計(jì)算機(jī)類專業(yè)人才系統(tǒng)能力培養(yǎng)的起點(diǎn)

      2020-12-02 21:07:44劉奇志陳家駿袁春風(fēng)
      計(jì)算機(jī)教育 2020年4期
      關(guān)鍵詞:計(jì)算機(jī)系統(tǒng)程序設(shè)計(jì)基礎(chǔ)

      劉奇志,陳家駿,袁春風(fēng)

      (南京大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,江蘇 南京 210023)

      1 計(jì)算機(jī)類專業(yè)人才系統(tǒng)能力的兩層涵義

      能力的涵義比較寬泛,通常可分為一般能力與特殊能力兩類。一般能力是指記憶力、想象力等掌握和運(yùn)用不同知識(shí)需要的共同能力;特殊能力是指完成某項(xiàng)活動(dòng)需要的專門能力,如數(shù)學(xué)能力、編曲能力等[1]。在計(jì)算機(jī)類專業(yè)人才培養(yǎng)語境下討論的系統(tǒng)能力實(shí)質(zhì)上也有兩層涵義:一是方法論層面的一般系統(tǒng)能力,即能夠從問題的全局把握各個(gè)組成要素及之間的關(guān)聯(lián)性、層次性和動(dòng)態(tài)性的能力[2-3];二是基于跟計(jì)算機(jī)系統(tǒng)有關(guān)的專業(yè)知識(shí)和技術(shù)發(fā)現(xiàn)問題、分析問題和解決問題的特殊系統(tǒng)能力。

      方法論層面一般意義上的系統(tǒng)能力,通常表現(xiàn)為系統(tǒng)思維能力和系統(tǒng)實(shí)踐能力。系統(tǒng)思維建立在認(rèn)知、邏輯思維和結(jié)構(gòu)化思維基礎(chǔ)之上。系統(tǒng)實(shí)踐指在實(shí)際問題情景中,如何運(yùn)用系統(tǒng)思維設(shè)計(jì)、實(shí)現(xiàn)和應(yīng)用等。計(jì)算機(jī)類專業(yè)人才特有的系統(tǒng)能力,其核心在于掌握計(jì)算機(jī)系統(tǒng)內(nèi)部各個(gè)組成部分的設(shè)計(jì)方法與工作原理、功能特征與運(yùn)用策略、邏輯關(guān)系和相互作用。

      通過分析計(jì)算機(jī)類專業(yè)人才系統(tǒng)能力的兩層涵義,可以看出:不管是一般系統(tǒng)能力,還是計(jì)算機(jī)類專業(yè)人才特有的系統(tǒng)能力,都不是一蹴而就的,需要專門的引導(dǎo)。

      2 計(jì)算機(jī)類專業(yè)人才系統(tǒng)能力培養(yǎng)的起點(diǎn)

      對(duì)應(yīng)系統(tǒng)能力的兩個(gè)層面,系統(tǒng)能力培養(yǎng)也需要從兩個(gè)層面加以考量。

      從方法論層面來看,系統(tǒng)思維能力和系統(tǒng)實(shí)踐能力的獲得,需要從認(rèn)知、邏輯思維和結(jié)構(gòu)化思維等角度,在實(shí)際系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)和應(yīng)用過程中,進(jìn)行全面訓(xùn)練和持續(xù)學(xué)習(xí),并且一般需要反饋訓(xùn)練,甚至需要建立在動(dòng)態(tài)思維習(xí)慣的養(yǎng)成之上。實(shí)際上,一般系統(tǒng)能力的培養(yǎng)早在大學(xué)之前的教育階段就開始了,甚至可以追溯到學(xué)前教育階段。在大學(xué)階段,這種能力需要在多門課程中進(jìn)行更有針對(duì)性的訓(xùn)練和提高,各門課程應(yīng)承擔(dān)不同的角色和任務(wù)。計(jì)算機(jī)類引導(dǎo)級(jí)課程應(yīng)承擔(dān)奠定系統(tǒng)認(rèn)知基礎(chǔ)和逐步引入邏輯思維乃至結(jié)構(gòu)化思維的任務(wù),并應(yīng)提供設(shè)計(jì)、實(shí)現(xiàn)和應(yīng)用過程的反饋訓(xùn)練機(jī)制及動(dòng)態(tài)思維實(shí)踐機(jī)會(huì)。程序設(shè)計(jì)基礎(chǔ)在系統(tǒng)認(rèn)知、邏輯和結(jié)構(gòu)化思維、反饋訓(xùn)練及動(dòng)態(tài)思維實(shí)踐等方面具有天然的優(yōu)勢(shì),適合作為大學(xué)期間一般系統(tǒng)能力培養(yǎng)的起點(diǎn),具體引導(dǎo)作用見本文的第三部分。

      從計(jì)算機(jī)系統(tǒng)層面來看,特殊系統(tǒng)能力培養(yǎng)需要圍繞計(jì)算機(jī)系統(tǒng)在分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、優(yōu)化等多個(gè)方面分別引導(dǎo)和訓(xùn)練:①分析給定系統(tǒng)結(jié)構(gòu)及輸入對(duì)應(yīng)的輸出;②根據(jù)給定輸入和輸出設(shè)計(jì)系統(tǒng),讓軟件和硬件協(xié)同工作,并合理構(gòu)建人機(jī)交互模式;③調(diào)試和修正系統(tǒng)各層面的錯(cuò)誤;④分析、驗(yàn)證和調(diào)優(yōu)系統(tǒng)整體性能[4-5]。傳統(tǒng)培養(yǎng)模式是按計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)切分,將知識(shí)點(diǎn)劃入不同的課程分別加以介紹,主要涉及數(shù)字邏輯電路、計(jì)算機(jī)組成原理、匯編語言程序設(shè)計(jì)、操作系統(tǒng)、編譯原理、計(jì)算機(jī)網(wǎng)絡(luò)等課程。新型培養(yǎng)模式引入計(jì)算機(jī)系統(tǒng)基礎(chǔ)等課程,著力從程序員視角將計(jì)算機(jī)系統(tǒng)基本概念在一門課中串起來,幫助程序員建立一個(gè)整體系統(tǒng)知識(shí)框架,并假定學(xué)生對(duì)C 語言程序設(shè)計(jì)有一定的基礎(chǔ)[6]。鑒于當(dāng)前國際國內(nèi)初等教育中的計(jì)算機(jī)教育水平參差不齊、缺乏規(guī)范,于是高等教育程序設(shè)計(jì)基礎(chǔ)成為特殊系統(tǒng)能力培養(yǎng)的排頭兵,具體內(nèi)容見本文的第四部分。

      是否以程序設(shè)計(jì)基礎(chǔ)作為計(jì)算機(jī)類引導(dǎo)級(jí)課程尚有爭(zhēng)議,但以其作為系統(tǒng)能力培養(yǎng)的起點(diǎn)卻不難達(dá)成共識(shí)。世界兩大著名的非營利性學(xué)術(shù)團(tuán)體ACM 及IEEE 發(fā) 布 的Computing Curriculum規(guī)范(如CC2001、CS2013 等)影響深遠(yuǎn)。CC2001[7]用3 層模型(Introductory,Intermediate,Advanced)來看待高校的計(jì)算課程,并總結(jié)了國際上現(xiàn)有引導(dǎo)級(jí)(Introductory)課程層6 種不同的導(dǎo)入模式(命令式優(yōu)先、對(duì)象式優(yōu)先、函數(shù)式優(yōu)先、廣度優(yōu)先、算法優(yōu)先和硬件優(yōu)先)。6 種模式中,跟計(jì)算機(jī)系統(tǒng)結(jié)合最為緊密的是第一種命令式優(yōu)先模式和第六種硬件優(yōu)先模式,分別對(duì)應(yīng)當(dāng)前系統(tǒng)能力培養(yǎng)的兩種主流模式。硬件優(yōu)先模式在計(jì)算機(jī)類專業(yè)中很少采用。以程序設(shè)計(jì)基礎(chǔ)作為引導(dǎo)級(jí)課程是命令式優(yōu)先導(dǎo)入模式的典型代表。因此,該課程作為引導(dǎo)級(jí)課程不僅是國內(nèi)外計(jì)算機(jī)學(xué)科廣為采用的導(dǎo)入模式,也是更利于系統(tǒng)能力培養(yǎng)的一種導(dǎo)入模式。

      此外,對(duì)系統(tǒng)能力培養(yǎng)的探討本身也需要系統(tǒng)觀。英國的彼得·切克蘭德(獲英國計(jì)算機(jī)協(xié)會(huì)授予的“最具杰出貢獻(xiàn)人員”獎(jiǎng))在systems thinking,systems practice 一書中指出,相對(duì)于基于系統(tǒng)工程方法的“硬”系統(tǒng)思維,“軟”系統(tǒng)思維更強(qiáng)調(diào)對(duì)系統(tǒng)復(fù)雜性的探究過程本身是一個(gè)開放的學(xué)習(xí)系統(tǒng)[8]。實(shí)際上,正如探究計(jì)算機(jī)系統(tǒng)和實(shí)際問題求解過程,開展計(jì)算機(jī)類專業(yè)人才系統(tǒng)能力培養(yǎng)過程本身也是復(fù)雜、開放的系統(tǒng),涉及多門課程的教與學(xué),并隨著科技的發(fā)展而變化,需要探究者持續(xù)學(xué)習(xí)和不斷總結(jié)。本文提供南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系程序設(shè)計(jì)基礎(chǔ)課程組在本專業(yè)人才系統(tǒng)能力培養(yǎng)過程中的階段性思考,以及在引導(dǎo)級(jí)課程中切實(shí)開展系統(tǒng)能力培養(yǎng)的具體策略。

      3 程序設(shè)計(jì)基礎(chǔ)在一般系統(tǒng)能力培養(yǎng)中的引導(dǎo)作用

      方法論層面的系統(tǒng)思維能力以認(rèn)知為基礎(chǔ),系統(tǒng)實(shí)踐能力通常需要具有反饋習(xí)慣,而且在思維和實(shí)踐環(huán)節(jié)都應(yīng)自覺關(guān)注系統(tǒng)的動(dòng)態(tài)特征。程序設(shè)計(jì)基礎(chǔ)能夠較好地支持一般系統(tǒng)能力這幾個(gè)方面的基本訓(xùn)練。

      3.1 建立感性認(rèn)知,夯實(shí)系統(tǒng)思維基礎(chǔ)

      系統(tǒng)思維能力不是空中樓閣,從認(rèn)知到擁有邏輯思維能力,進(jìn)而發(fā)展到具備結(jié)構(gòu)化思維能力,最后上升到系統(tǒng)思維能力,是一個(gè)循序漸進(jìn)的過程。程序設(shè)計(jì)基礎(chǔ)首先引領(lǐng)學(xué)生認(rèn)識(shí)程序的基本結(jié)構(gòu)與要素,編寫解決簡(jiǎn)單問題的小規(guī)模程序,并在通用平臺(tái)上運(yùn)行起來,建立感性認(rèn)知。然后結(jié)合具體實(shí)例,從C 語言的關(guān)系與邏輯操作和結(jié)構(gòu)化程序設(shè)計(jì)方法出發(fā),有針對(duì)性地介紹流程控制與模塊設(shè)計(jì)方法,啟發(fā)學(xué)生掌握分類、枚舉、迭代和遞歸等問題求解思路,逐步訓(xùn)練學(xué)生的邏輯思維和結(jié)構(gòu)化思維。最后引導(dǎo)學(xué)生通盤考慮問題和系統(tǒng)各個(gè)層面及其間的關(guān)系,揭示程序與程序設(shè)計(jì)的本質(zhì)及相關(guān)概念。這一過程符合人們從感性到理性的認(rèn)知特點(diǎn),能夠?yàn)橄到y(tǒng)思維打下良好的基礎(chǔ)。

      值得注意的是,程序設(shè)計(jì)基礎(chǔ)教學(xué)中應(yīng)讓初學(xué)者盡快進(jìn)入程序員角色,體驗(yàn)認(rèn)知和思考的樂趣,避免使學(xué)生在嘗試編寫程序之前,被抽象的概念和術(shù)語及計(jì)算機(jī)系統(tǒng)對(duì)數(shù)據(jù)的存儲(chǔ)方式等知識(shí)困擾[9]。

      3.2 提供反饋機(jī)制,強(qiáng)化系統(tǒng)實(shí)踐基本功

      程序設(shè)計(jì)過程中,從問題的分析和求解方案的設(shè)計(jì),到代碼的編輯、編譯、鏈接和執(zhí)行,每個(gè)環(huán)節(jié)都有可能出錯(cuò),需要學(xué)生返回過程前面某個(gè)階段進(jìn)行錯(cuò)誤修改,然后重新繼續(xù)過程的后續(xù)階段。例如,C 語言編譯器在編譯時(shí)發(fā)現(xiàn)源程序中存在語法錯(cuò)誤,鏈接器在鏈接目標(biāo)文件時(shí)發(fā)現(xiàn)外部引用錯(cuò)誤,程序運(yùn)行結(jié)果與預(yù)期不符等,需要修改代碼、設(shè)置環(huán)境、審查程序的邏輯重新設(shè)計(jì),直到程序產(chǎn)生正確結(jié)果為止。這是一個(gè)天然的反饋機(jī)制,而且常常存在多次反饋的情況。這樣的過程有助于強(qiáng)化基本的系統(tǒng)實(shí)踐訓(xùn)練,并能有效地將知識(shí)的記憶融入解決實(shí)際問題的過程。

      另外,程序設(shè)計(jì)基礎(chǔ)是一門實(shí)踐性非常強(qiáng)的課程,實(shí)踐教學(xué)過程中的反饋式[10]教學(xué)設(shè)計(jì),可以進(jìn)一步加強(qiáng)訓(xùn)練效果。教學(xué)中有針對(duì)性地布置訓(xùn)練任務(wù),并及時(shí)進(jìn)行正反兩方面的反饋,展示好的做法,明確標(biāo)注程序中存在的缺陷和不好的做法,可以激勵(lì)和督促學(xué)生不斷地思考、訓(xùn)練,直至養(yǎng)成良好、規(guī)范的習(xí)慣。

      3.3 關(guān)注技術(shù)演變,培育動(dòng)態(tài)思維習(xí)慣

      相較于關(guān)注要素,一般系統(tǒng)能力更善于把握各要素之間的區(qū)別和聯(lián)系,能夠在全面了解靜態(tài)特征的同時(shí),洞悉動(dòng)態(tài)特征。程序設(shè)計(jì)經(jīng)歷了從采用低級(jí)語言到采用高級(jí)語言、從簡(jiǎn)單編碼到全面軟件工程的發(fā)展歷程。在這一歷程中,體現(xiàn)了人們對(duì)程序設(shè)計(jì)活動(dòng)的不斷認(rèn)識(shí)和改進(jìn)。以程序設(shè)計(jì)語言為例,自20 世紀(jì)70 年代貝爾實(shí)驗(yàn)室發(fā)明C 語言以來,該語言得到了廣泛的使用和發(fā)展,形成了多種C 語言的實(shí)現(xiàn)版本,以及不同版本的語言標(biāo)準(zhǔn)。各種版本在功能和函數(shù)庫的設(shè)置及語法上存在差別,不同公司或團(tuán)隊(duì)開發(fā)的集成開發(fā)環(huán)境對(duì)語言標(biāo)準(zhǔn)的實(shí)現(xiàn)程度也不盡相同。在這些內(nèi)容的教學(xué)過程中,可以引導(dǎo)學(xué)生的動(dòng)態(tài)思維習(xí)慣,深化一般系統(tǒng)能力的培養(yǎng)。

      對(duì)于日新月異的計(jì)算機(jī)科學(xué)與技術(shù),若能不斷優(yōu)化程序設(shè)計(jì)基礎(chǔ)的教學(xué)設(shè)計(jì),注重知識(shí)的前后關(guān)聯(lián),給出問題的來龍去脈,不僅介紹早期經(jīng)典做法與最新標(biāo)準(zhǔn)的差異,還能結(jié)合科研內(nèi)容與方法介紹科技前沿動(dòng)態(tài),必定能盡早潛移默化地影響學(xué)生的動(dòng)態(tài)思維。當(dāng)然也要提醒初學(xué)者應(yīng)以掌握程序設(shè)計(jì)基本方法為目標(biāo),避免被語言標(biāo)準(zhǔn)或語言的實(shí)現(xiàn)細(xì)節(jié)糾纏。

      4 程序設(shè)計(jì)基礎(chǔ)在特殊系統(tǒng)能力培養(yǎng)中的引導(dǎo)作用

      計(jì)算機(jī)類專業(yè)人才特有的系統(tǒng)能力,需要建立在對(duì)計(jì)算機(jī)系統(tǒng)各組成部分及相互關(guān)系的認(rèn)知基礎(chǔ)之上,能夠分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和優(yōu)化計(jì)算模型。程序設(shè)計(jì)基礎(chǔ)用C 語言介紹過程式程序設(shè)計(jì)方法及相關(guān)基礎(chǔ)知識(shí),可以為上述各種能力的培養(yǎng)奠定一個(gè)較為扎實(shí)的基礎(chǔ),讓學(xué)生在初步了解計(jì)算機(jī)學(xué)科的同時(shí),為其他核心課程(如計(jì)算機(jī)系統(tǒng)基礎(chǔ)、操作系統(tǒng)、編譯原理等)提供必要的準(zhǔn)備。當(dāng)然教學(xué)中要分清與相關(guān)課程內(nèi)容的聯(lián)系、區(qū)別與邊界,盡量減少與后續(xù)課程內(nèi)容的重復(fù)。

      4.1 闡釋C 語言相關(guān)概念,無縫連接計(jì)算機(jī)系統(tǒng)知識(shí)

      在國際國內(nèi)計(jì)算機(jī)科學(xué)教育中,引導(dǎo)級(jí)課程采用何種編程語言存在相當(dāng)大的爭(zhēng)議。作為一種不再年輕或備受追捧的編程語言,C 語言與計(jì)算機(jī)系統(tǒng)關(guān)系緊密,對(duì)數(shù)據(jù)的描述和對(duì)數(shù)據(jù)的操作相分離的模式與馮·諾依曼體系結(jié)構(gòu)比較吻合,有助于學(xué)生理解現(xiàn)行主流計(jì)算模型,相關(guān)知識(shí)點(diǎn)與后續(xù)課程計(jì)算機(jī)系統(tǒng)基礎(chǔ)可以無縫銜接。例如,程序設(shè)計(jì)基礎(chǔ)中基本操作符、流程控制、單模塊設(shè)計(jì)、多模塊設(shè)計(jì)等概念,可以分別對(duì)應(yīng)計(jì)算機(jī)系統(tǒng)基礎(chǔ)中數(shù)據(jù)的機(jī)器級(jí)處理、選擇語句和循環(huán)結(jié)構(gòu)的機(jī)器級(jí)表示、過程調(diào)用的機(jī)器級(jí)表示、程序的鏈接等知識(shí)點(diǎn);基本數(shù)據(jù)類型、派生(構(gòu)造)數(shù)據(jù)類型、指針等概念,可以分別對(duì)應(yīng)數(shù)據(jù)的機(jī)器級(jí)表示、復(fù)雜數(shù)據(jù)類型的分配和訪問、地址空間和地址轉(zhuǎn)換、數(shù)據(jù)對(duì)齊等概念。

      需要注意的是,程序設(shè)計(jì)基礎(chǔ)的課程內(nèi)容應(yīng)當(dāng)圍繞程序設(shè)計(jì)本質(zhì)和系統(tǒng)能力培養(yǎng)進(jìn)行合理安排與組織,而不是圍繞語言元素展開,在講解過程中應(yīng)適時(shí)提煉程序設(shè)計(jì)和特殊系統(tǒng)能力有關(guān)的思想方法。

      4.2 剖析過程式程序結(jié)構(gòu),直通計(jì)算機(jī)系統(tǒng)功能分析

      分析給定計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)及輸入對(duì)應(yīng)的輸出是最起碼的計(jì)算機(jī)類專業(yè)人才特有的系統(tǒng)能力。作為引導(dǎo)級(jí)課程,程序設(shè)計(jì)基礎(chǔ)借助于C 語言介紹過程式程序設(shè)計(jì)的基本做法。一個(gè)過程對(duì)應(yīng)一個(gè)子功能,可以在程序執(zhí)行的任何一個(gè)時(shí)間點(diǎn)被其他過程或自身調(diào)用。過程內(nèi)部的計(jì)算步驟按順序、分支或循環(huán)流程執(zhí)行。這種程序有利于初學(xué)者根據(jù)輸入分析輸出,能盡快為系統(tǒng)分析能力打下基礎(chǔ)。

      在C 語言編程實(shí)踐中,學(xué)生會(huì)自然而然地希望進(jìn)一步了解計(jì)算機(jī)執(zhí)行程序的機(jī)理。例如,變量是過程式程序的重要實(shí)體,通過解釋C 語言變量的屬性,可以讓學(xué)生將代碼中的變量與內(nèi)存中的變量聯(lián)系起來,并能接觸地址概念,很容易激發(fā)學(xué)生對(duì)機(jī)器級(jí)相關(guān)概念的好奇心。函數(shù)是另一個(gè)重要實(shí)體,函數(shù)調(diào)用過程會(huì)引起學(xué)生對(duì)計(jì)算機(jī)系統(tǒng)中的堆、棧的好奇心。教學(xué)中,可以在此基礎(chǔ)上引導(dǎo)學(xué)生對(duì)比實(shí)現(xiàn)同一功能的不同代碼在計(jì)算機(jī)系統(tǒng)中運(yùn)行時(shí)的差別。此外,在教學(xué)過程中的不同階段,對(duì)比、總結(jié)函數(shù)間的不同通訊方式,還可以幫助學(xué)生建立相關(guān)計(jì)算機(jī)系統(tǒng)知識(shí)的整體框架。

      4.3 訓(xùn)練系統(tǒng)級(jí)語言編程,啟蒙計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

      計(jì)算機(jī)類專業(yè)人才特有的系統(tǒng)能力中,設(shè)計(jì)和實(shí)現(xiàn)能力極其重要,通常需要軟件和硬件兩方面的知識(shí)儲(chǔ)備,甚至需要諳熟系統(tǒng)與用戶之間的交互關(guān)系。C 語言是一種貼近硬件的高級(jí)編程語言,程序設(shè)計(jì)基礎(chǔ)可以從一開始在編程訓(xùn)練中幫助學(xué)生建立軟件和硬件兩方面的感性認(rèn)知,在此基礎(chǔ)上建立的程序設(shè)計(jì)意識(shí)更有利于后續(xù)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)能力的培養(yǎng)。例如,求兩個(gè)正整數(shù)m和n的最大公約數(shù),可以先分別求出m和n的所有約數(shù),然后找出兩者公共約數(shù)中的最大值,也可以用輾轉(zhuǎn)相除法,后者更便于計(jì)算機(jī)實(shí)現(xiàn)。輾轉(zhuǎn)相除法的缺陷在于,當(dāng)m、n非常大的時(shí)候,計(jì)算m除以n的余數(shù)將是一個(gè)復(fù)雜而耗時(shí)的過程,而只涉及整數(shù)的移位和加減法的Stein算法效率更高。學(xué)完該課程后,學(xué)生不難了解到利用計(jì)算機(jī)求解實(shí)際問題必須轉(zhuǎn)換為適合計(jì)算機(jī)系統(tǒng)的算法和程序,才能在計(jì)算機(jī)上有效運(yùn)行和獲得結(jié)果。

      當(dāng)然,要想獲得更好的實(shí)現(xiàn)能力訓(xùn)練效果,教學(xué)中還需突出重點(diǎn)、闡明難點(diǎn)。課堂教學(xué)可以選取典型例程深入講解,實(shí)驗(yàn)教學(xué)要精心設(shè)計(jì)訓(xùn)練題、上機(jī)測(cè)驗(yàn)和小項(xiàng)目,提供充分的上機(jī)指導(dǎo)來解決學(xué)生在實(shí)踐中遇到的技術(shù)難題。通過理論和實(shí)踐環(huán)節(jié)分別引導(dǎo)學(xué)生面對(duì)實(shí)際問題時(shí)的分析、設(shè)計(jì)和實(shí)現(xiàn)能力。

      4.4 提供多種程序調(diào)試手段,點(diǎn)撥計(jì)算機(jī)系統(tǒng)的糾錯(cuò)和優(yōu)化

      實(shí)際編寫的程序中可能含有語法、邏輯或運(yùn)行異常錯(cuò)誤。不符合語法規(guī)則的錯(cuò)誤可以由編譯器檢查發(fā)現(xiàn)。邏輯或運(yùn)行異常錯(cuò)誤往往較難發(fā)現(xiàn)。除了設(shè)計(jì)的算法或數(shù)據(jù)結(jié)構(gòu)不符合問題的求解之外,程序本身也有可能不符合算法或數(shù)據(jù)結(jié)構(gòu)的邏輯。例如分類情況考慮不周或部分重疊、代碼中分支或循環(huán)流程的誤寫等。對(duì)執(zhí)行環(huán)境的缺陷或用戶操作的失誤考慮不足會(huì)引起運(yùn)行期間程序異常終止,例如內(nèi)存空間不足、打開不存在的文件進(jìn)行讀操作、數(shù)組下標(biāo)越界、程序執(zhí)行了除以0 的指令等。這些邏輯和運(yùn)行異常錯(cuò)誤可以通過少量模擬數(shù)據(jù)進(jìn)行分單元分模塊乃至集成化的整體測(cè)試,并通過調(diào)試(debug)來對(duì)錯(cuò)誤進(jìn)行定位和排除。程序設(shè)計(jì)基礎(chǔ)教學(xué)過程中會(huì)介紹多種程序調(diào)試手段,例如通過邏輯分析和判斷、增加階段性輸出、利用C 語言的條件編譯或斷言、借助debug 工具設(shè)置斷點(diǎn)等,幫助學(xué)生分析、發(fā)現(xiàn)和調(diào)試程序的錯(cuò)誤,并在實(shí)踐中積累調(diào)試技巧、經(jīng)驗(yàn)和能力,以便靈活運(yùn)用,進(jìn)而能對(duì)系統(tǒng)整體性能進(jìn)行分析、驗(yàn)證、排錯(cuò)和調(diào)優(yōu)。

      當(dāng)然,由于C 語言具有較強(qiáng)的靈活性,適合熟練的程序員用來開發(fā)高效的系統(tǒng)軟件、支撐軟件或應(yīng)用軟件,而對(duì)于初學(xué)者,會(huì)存在一些羈絆。程序設(shè)計(jì)基礎(chǔ)教學(xué)中可以根據(jù)需要,介紹有關(guān)的C 語言元素及其使用方法,以及會(huì)使初學(xué)者迷惑的語言陷阱,不必完整介紹C 語言的所有規(guī)則或機(jī)制,以免把學(xué)生引入重點(diǎn)學(xué)習(xí)C 語言而不是程序設(shè)計(jì)基本方法的歧途。

      5 結(jié)語

      在計(jì)算機(jī)類專業(yè)人才系統(tǒng)能力培養(yǎng)課程體系中,基于C 語言介紹過程式程序設(shè)計(jì)范型的程序設(shè)計(jì)基礎(chǔ)這一課程扮演著不便替代的重要角色。盡管各個(gè)高校該課程的具體教學(xué)內(nèi)容存在一些差異,以該課程作為引導(dǎo)級(jí)課程至少可以培養(yǎng)學(xué)生圍繞計(jì)算機(jī)系統(tǒng)進(jìn)行編碼、調(diào)試和糾錯(cuò),在特殊系統(tǒng)能力方面提供有效訓(xùn)練。如果教學(xué)方法得當(dāng),還能幫助學(xué)生在思考系統(tǒng)各個(gè)組成部分的邏輯關(guān)系和相互作用等一般系統(tǒng)能力方面奠定一個(gè)較為扎實(shí)的基礎(chǔ)。

      猜你喜歡
      計(jì)算機(jī)系統(tǒng)程序設(shè)計(jì)基礎(chǔ)
      “不等式”基礎(chǔ)鞏固
      “整式”基礎(chǔ)鞏固
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      IBM推出可與人類“辯論”的計(jì)算機(jī)系統(tǒng)
      英語文摘(2019年3期)2019-04-25 06:05:32
      “防”“治”并舉 筑牢基礎(chǔ)
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      分布處理計(jì)算機(jī)系統(tǒng)研究
      MIMD 并行計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與定量分析
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      上饶县| 远安县| 龙南县| 通渭县| 江华| 五原县| 香河县| 临安市| 昌乐县| 望城县| 湛江市| 三门峡市| 镇平县| 双柏县| 佛冈县| 富平县| 陆良县| 开平市| 临汾市| 库伦旗| 延吉市| 固阳县| 应用必备| 太白县| 太康县| 克东县| 扶沟县| 永寿县| 林州市| 赤峰市| 五华县| 宜兴市| 西和县| 新邵县| 耿马| 荆门市| 朝阳区| 成武县| 汝南县| 重庆市| 广宗县|