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

論計算機類專業人才系統能力培養的起點

2020-12-02 21:07:44劉奇志陳家駿袁春風
計算機教育 2020年4期
關鍵詞:計算機語言能力

劉奇志,陳家駿,袁春風

(南京大學 計算機科學與技術系,江蘇 南京 210023)

1 計算機類專業人才系統能力的兩層涵義

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

方法論層面一般意義上的系統能力,通常表現為系統思維能力和系統實踐能力。系統思維建立在認知、邏輯思維和結構化思維基礎之上。系統實踐指在實際問題情景中,如何運用系統思維設計、實現和應用等。計算機類專業人才特有的系統能力,其核心在于掌握計算機系統內部各個組成部分的設計方法與工作原理、功能特征與運用策略、邏輯關系和相互作用。

通過分析計算機類專業人才系統能力的兩層涵義,可以看出:不管是一般系統能力,還是計算機類專業人才特有的系統能力,都不是一蹴而就的,需要專門的引導。

2 計算機類專業人才系統能力培養的起點

對應系統能力的兩個層面,系統能力培養也需要從兩個層面加以考量。

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

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

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

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

3 程序設計基礎在一般系統能力培養中的引導作用

方法論層面的系統思維能力以認知為基礎,系統實踐能力通常需要具有反饋習慣,而且在思維和實踐環節都應自覺關注系統的動態特征。程序設計基礎能夠較好地支持一般系統能力這幾個方面的基本訓練。

3.1 建立感性認知,夯實系統思維基礎

系統思維能力不是空中樓閣,從認知到擁有邏輯思維能力,進而發展到具備結構化思維能力,最后上升到系統思維能力,是一個循序漸進的過程。程序設計基礎首先引領學生認識程序的基本結構與要素,編寫解決簡單問題的小規模程序,并在通用平臺上運行起來,建立感性認知。然后結合具體實例,從C 語言的關系與邏輯操作和結構化程序設計方法出發,有針對性地介紹流程控制與模塊設計方法,啟發學生掌握分類、枚舉、迭代和遞歸等問題求解思路,逐步訓練學生的邏輯思維和結構化思維。最后引導學生通盤考慮問題和系統各個層面及其間的關系,揭示程序與程序設計的本質及相關概念。這一過程符合人們從感性到理性的認知特點,能夠為系統思維打下良好的基礎。

值得注意的是,程序設計基礎教學中應讓初學者盡快進入程序員角色,體驗認知和思考的樂趣,避免使學生在嘗試編寫程序之前,被抽象的概念和術語及計算機系統對數據的存儲方式等知識困擾[9]。

3.2 提供反饋機制,強化系統實踐基本功

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

另外,程序設計基礎是一門實踐性非常強的課程,實踐教學過程中的反饋式[10]教學設計,可以進一步加強訓練效果。教學中有針對性地布置訓練任務,并及時進行正反兩方面的反饋,展示好的做法,明確標注程序中存在的缺陷和不好的做法,可以激勵和督促學生不斷地思考、訓練,直至養成良好、規范的習慣。

3.3 關注技術演變,培育動態思維習慣

相較于關注要素,一般系統能力更善于把握各要素之間的區別和聯系,能夠在全面了解靜態特征的同時,洞悉動態特征。程序設計經歷了從采用低級語言到采用高級語言、從簡單編碼到全面軟件工程的發展歷程。在這一歷程中,體現了人們對程序設計活動的不斷認識和改進。以程序設計語言為例,自20 世紀70 年代貝爾實驗室發明C 語言以來,該語言得到了廣泛的使用和發展,形成了多種C 語言的實現版本,以及不同版本的語言標準。各種版本在功能和函數庫的設置及語法上存在差別,不同公司或團隊開發的集成開發環境對語言標準的實現程度也不盡相同。在這些內容的教學過程中,可以引導學生的動態思維習慣,深化一般系統能力的培養。

對于日新月異的計算機科學與技術,若能不斷優化程序設計基礎的教學設計,注重知識的前后關聯,給出問題的來龍去脈,不僅介紹早期經典做法與最新標準的差異,還能結合科研內容與方法介紹科技前沿動態,必定能盡早潛移默化地影響學生的動態思維。當然也要提醒初學者應以掌握程序設計基本方法為目標,避免被語言標準或語言的實現細節糾纏。

4 程序設計基礎在特殊系統能力培養中的引導作用

計算機類專業人才特有的系統能力,需要建立在對計算機系統各組成部分及相互關系的認知基礎之上,能夠分析、設計、實現、測試和優化計算模型。程序設計基礎用C 語言介紹過程式程序設計方法及相關基礎知識,可以為上述各種能力的培養奠定一個較為扎實的基礎,讓學生在初步了解計算機學科的同時,為其他核心課程(如計算機系統基礎、操作系統、編譯原理等)提供必要的準備。當然教學中要分清與相關課程內容的聯系、區別與邊界,盡量減少與后續課程內容的重復。

4.1 闡釋C 語言相關概念,無縫連接計算機系統知識

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

需要注意的是,程序設計基礎的課程內容應當圍繞程序設計本質和系統能力培養進行合理安排與組織,而不是圍繞語言元素展開,在講解過程中應適時提煉程序設計和特殊系統能力有關的思想方法。

4.2 剖析過程式程序結構,直通計算機系統功能分析

分析給定計算機系統結構及輸入對應的輸出是最起碼的計算機類專業人才特有的系統能力。作為引導級課程,程序設計基礎借助于C 語言介紹過程式程序設計的基本做法。一個過程對應一個子功能,可以在程序執行的任何一個時間點被其他過程或自身調用。過程內部的計算步驟按順序、分支或循環流程執行。這種程序有利于初學者根據輸入分析輸出,能盡快為系統分析能力打下基礎。

在C 語言編程實踐中,學生會自然而然地希望進一步了解計算機執行程序的機理。例如,變量是過程式程序的重要實體,通過解釋C 語言變量的屬性,可以讓學生將代碼中的變量與內存中的變量聯系起來,并能接觸地址概念,很容易激發學生對機器級相關概念的好奇心。函數是另一個重要實體,函數調用過程會引起學生對計算機系統中的堆、棧的好奇心。教學中,可以在此基礎上引導學生對比實現同一功能的不同代碼在計算機系統中運行時的差別。此外,在教學過程中的不同階段,對比、總結函數間的不同通訊方式,還可以幫助學生建立相關計算機系統知識的整體框架。

4.3 訓練系統級語言編程,啟蒙計算機系統的設計和實現

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

當然,要想獲得更好的實現能力訓練效果,教學中還需突出重點、闡明難點。課堂教學可以選取典型例程深入講解,實驗教學要精心設計訓練題、上機測驗和小項目,提供充分的上機指導來解決學生在實踐中遇到的技術難題。通過理論和實踐環節分別引導學生面對實際問題時的分析、設計和實現能力。

4.4 提供多種程序調試手段,點撥計算機系統的糾錯和優化

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

當然,由于C 語言具有較強的靈活性,適合熟練的程序員用來開發高效的系統軟件、支撐軟件或應用軟件,而對于初學者,會存在一些羈絆。程序設計基礎教學中可以根據需要,介紹有關的C 語言元素及其使用方法,以及會使初學者迷惑的語言陷阱,不必完整介紹C 語言的所有規則或機制,以免把學生引入重點學習C 語言而不是程序設計基本方法的歧途。

5 結語

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

猜你喜歡
計算機語言能力
消防安全四個能力
計算機操作系統
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
大興學習之風 提升履職能力
人大建設(2018年6期)2018-08-16 07:23:10
讓語言描寫搖曳多姿
你的換位思考能力如何
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
累積動態分析下的同聲傳譯語言壓縮
抄能力
主站蜘蛛池模板: 国产乱人乱偷精品视频a人人澡| 91麻豆精品视频| h视频在线观看网站| 国产精品成人不卡在线观看| 亚洲水蜜桃久久综合网站 | 91久久偷偷做嫩草影院精品| 欧美成人区| 久久香蕉国产线看精品| 欧美国产中文| 亚洲一级毛片在线观| 亚洲第一香蕉视频| 国产91色在线| 国产情精品嫩草影院88av| 日韩专区欧美| 天天激情综合| 黄色网址免费在线| 无码乱人伦一区二区亚洲一| 天堂成人av| 日本五区在线不卡精品| 欧美一区中文字幕| 四虎综合网| 伊伊人成亚洲综合人网7777| 毛片在线区| 日韩在线1| 少妇高潮惨叫久久久久久| 精品免费在线视频| 亚洲中文制服丝袜欧美精品| 福利片91| 欧美啪啪一区| yjizz国产在线视频网| 啪啪永久免费av| 亚洲精选无码久久久| 永久免费av网站可以直接看的 | 欧美激情,国产精品| 操美女免费网站| a级免费视频| 国产特级毛片aaaaaaa高清| 欧美中文一区| 日本免费新一区视频| 曰韩人妻一区二区三区| 日韩AV手机在线观看蜜芽| 久久免费视频播放| 欧美亚洲一二三区| 日韩欧美中文在线| 全裸无码专区| 色综合久久88| 国产午夜看片| 欧美日本中文| 亚洲精品黄| 免费一极毛片| 国产浮力第一页永久地址 | 四虎国产在线观看| 99re免费视频| 亚洲国产精品不卡在线 | 国产视频久久久久| 成人在线不卡| 真人高潮娇喘嗯啊在线观看| 国产精品太粉嫩高中在线观看| 欧洲亚洲欧美国产日本高清| 久久婷婷六月| 中日无码在线观看| 91亚洲精品国产自在现线| 久热re国产手机在线观看| 91精品人妻互换| 中文字幕亚洲乱码熟女1区2区| 婷五月综合| 无码福利视频| 露脸国产精品自产在线播| 国产精品亚洲专区一区| 国产打屁股免费区网站| 国产精品福利一区二区久久| 激情综合网激情综合| 91午夜福利在线观看| 欧美成人国产| 欧美成人午夜影院| 日韩国产欧美精品在线| 性欧美久久| 国产伦片中文免费观看| 久草美女视频| a在线亚洲男人的天堂试看| 毛片网站观看| 国产成人综合日韩精品无码首页 |