計算機畢業(yè)設(shè)計論文開題報告
計算機的應(yīng)用廣泛,為人們的生活提供了便捷的服務(wù)。隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們的生活、工作和學(xué)習(xí)已經(jīng)離不開計算機,人們對計算機的依賴程度使得計算機的安全問題,受到廣泛的關(guān)注。下面是學(xué)習(xí)啦小編為大家整理的計算機畢業(yè)設(shè)計論文,供大家參考。
計算機畢業(yè)設(shè)計論文范文一:計算機工程教育體驗
1現(xiàn)有實踐教學(xué)體系的不足
1.1專業(yè)課程設(shè)置定位不準(zhǔn)確
當(dāng)前很多高校計算機工程專業(yè)是在社會大量需求下匆匆上馬,沒有相應(yīng)的學(xué)科基礎(chǔ),新教師多,是參照其他學(xué)校的教學(xué)大綱開設(shè)自己的專業(yè)課,沒有深入研究本校學(xué)生的基礎(chǔ)素質(zhì)和能力,以及本校教師的專業(yè)素養(yǎng)和能力,使其專業(yè)課程不能滿足現(xiàn)代高等教育的理念,造成其實踐教學(xué)體系先天性不足。
1.2課程實驗師資不足
學(xué)校規(guī)模的擴大,在校學(xué)生規(guī)模劇增,致使專業(yè)教師和實驗指導(dǎo)人員嚴(yán)重不足。每年分配到校的年輕老師幾乎都是從學(xué)校到學(xué)校,缺乏實踐經(jīng)驗。暑假的教師崗前培訓(xùn),不到一個月的時間也只是形式而已。同時計算機工程專業(yè)高級教師的大量流失,使實驗課程的指導(dǎo)教師嚴(yán)重缺失。
1.3實驗教學(xué)內(nèi)容質(zhì)量不高
師資專業(yè)水平不高,使開出的實驗內(nèi)容水平也不高。主要是以驗證性和觀察性的實驗為主,設(shè)計性、綜合性的實驗較少,研究性和創(chuàng)新性的實驗幾乎沒有?,F(xiàn)在的實驗很多都是表面的形式,沒有達(dá)到實際的效果。
1.4實驗指導(dǎo)和管理落后
計算機工程專業(yè)的實驗以鍛煉學(xué)生的能力為主。但是當(dāng)前實驗內(nèi)容陳舊,指導(dǎo)教師的實踐經(jīng)驗不足,不能很好滿足學(xué)生學(xué)習(xí)的需要。實驗課程的安排隨意性很大,不能與課堂教學(xué)相輔相成,學(xué)生理論和實踐脫節(jié)。實驗室管理手段比較落后,采用人員綁定實驗室,手工登記和監(jiān)督,致使實驗教學(xué)非常忙亂,更不用說實驗室開放了,使很多教學(xué)設(shè)備閑置,學(xué)生的需求得不到滿足。
1.5實驗設(shè)備不足和陳舊
計算機設(shè)備是更新非常快、投入非常大的,與其他學(xué)科的實驗設(shè)備性質(zhì)差別很大。很多學(xué)校的領(lǐng)導(dǎo)和相關(guān)部門不能認(rèn)識到計算機教學(xué)的特點,在實驗設(shè)備上投入不夠,使很多設(shè)備落后,數(shù)量也不足,根本達(dá)不到教育部規(guī)定的4:1的指標(biāo)。
1.6實習(xí)基地較少
學(xué)校與企事業(yè)單位聯(lián)系的渠道較少,相互的合作不多。學(xué)生的畢業(yè)實習(xí)基本由學(xué)生自己解決實習(xí)的單位,學(xué)校只能提供較少的實習(xí)單位給學(xué)生,根本無法滿足學(xué)生增長的需要。針對當(dāng)前計算機工程專業(yè)實踐教學(xué)體系的不足,參照國內(nèi)外高校中計算機工程專業(yè)教學(xué)體系,按照學(xué)校的實際情況重新制定培養(yǎng)計劃,對本校的專業(yè)教師和實驗人員進(jìn)行繼續(xù)教育和培訓(xùn),加大設(shè)備的投入。本文按照實踐教學(xué)的各個環(huán)節(jié)分開討論如何設(shè)置實踐教學(xué)的內(nèi)容、目標(biāo)和教學(xué)的手段,給出一個符合當(dāng)前社會需求的計算機工程專業(yè)實踐教學(xué)體系的設(shè)置方案。
2以素質(zhì)教育為目標(biāo)的實踐教學(xué)體系
2.1課程實驗
課程實驗是課堂教學(xué)的重要組成部分,它是和課堂理論教學(xué)相輔相成的。通過課程實驗,不僅可以傳授實驗基礎(chǔ)理論知識,而且可以使學(xué)生更加深入地理解理論,完成理論與實踐的結(jié)合。通過實驗可以訓(xùn)練學(xué)生的基本技能,嚴(yán)格按照實驗過程進(jìn)行,分析實驗中出現(xiàn)的問題,排除一般故障,對實驗的結(jié)果進(jìn)行分析和解釋,鍛煉學(xué)生的動手能力,培養(yǎng)學(xué)生的技能,提高其計算機軟件和硬件設(shè)計和實現(xiàn)的技能。實驗也是教師和學(xué)生深入交流的通道,啟發(fā)學(xué)生深入思考,敢于創(chuàng)新。計算機工程專業(yè)的課程實驗按照實驗的性質(zhì),可以分為觀察性實驗、驗證性實驗、設(shè)計性實驗、研究性實驗等不同類型?,F(xiàn)在實行多媒體教學(xué),觀察性的實驗一般可以在課堂上簡單演示,一般不列入實驗體系。自從20世紀(jì)90年代以來,互聯(lián)網(wǎng)在全世界大規(guī)模推廣,現(xiàn)在的很多學(xué)生在大學(xué)入學(xué)之前都接觸過使用過計算機,很多中學(xué)都開設(shè)了計算機課程,使學(xué)生具備了初步的計算機技能,能夠使用可視化的開發(fā)工具進(jìn)行編程,這使得計算機工程專業(yè)的低年級學(xué)生可以有少量的驗證性試驗,驗證性實驗可以在理論教學(xué)中簡單演示,給出詳細(xì)的輔導(dǎo)材料指導(dǎo)學(xué)生利用課余時間自己實驗,其他的實驗為設(shè)計性實驗和綜合性實驗。在計算機工程專業(yè)有全校理工課基礎(chǔ)教育,包含的物理實驗、化學(xué)實驗等公共基礎(chǔ)系列實驗本文不予討論。軟件技術(shù)系列實驗要強調(diào)實驗內(nèi)容的設(shè)計,按照學(xué)生的能力和當(dāng)前的素質(zhì)以及教學(xué)大綱重新規(guī)劃實驗的內(nèi)容,追求變化以適應(yīng)社會的需求。
當(dāng)前重點加強的實驗是基礎(chǔ)理論系列實驗和硬件技術(shù)系列實驗?,F(xiàn)在學(xué)生都是輕理論重應(yīng)用,計算機工程專業(yè)的本科教育是以素質(zhì)為核心的,理論是應(yīng)用的基礎(chǔ),只有掌握理論應(yīng)用才能夠深入的探討,否則其應(yīng)用僅僅是模仿,不能夠進(jìn)行創(chuàng)新。為此要加強數(shù)值分析實驗、離散數(shù)學(xué)實驗、算法設(shè)計與分析實驗等為主的基礎(chǔ)理論系列實驗,其中離散數(shù)學(xué)原來僅僅是講授原理,不能和實踐應(yīng)用結(jié)合脫離實際。這些實驗應(yīng)該在驗證性的基礎(chǔ)上變換為一定設(shè)計性實驗,重點強調(diào)理論的實踐。軟件實驗的可操控性強,對于硬件實驗需要一定的技術(shù)和經(jīng)驗,當(dāng)前很多學(xué)生和教師都不愿開設(shè)這類的實驗,多數(shù)是按照實驗設(shè)備教程進(jìn)行驗證性操作,沒有任何的設(shè)計性,更談不上創(chuàng)新試驗了,為此電路分析、模擬電子技術(shù)、數(shù)字電子技術(shù)、數(shù)字邏輯、計算機原理、微機原理及應(yīng)用、嵌入式系統(tǒng)、計算機接口設(shè)計、計算機網(wǎng)絡(luò)[2]等課程實驗要增加趣味性,不要僅僅是枯燥的理論驗證,而是結(jié)合理論設(shè)計實驗內(nèi)容以激發(fā)學(xué)生興趣為主,寓教于樂,在設(shè)計性實驗中掌握理論,在實驗中培養(yǎng)學(xué)生的創(chuàng)新思維。在設(shè)計實驗內(nèi)容時要考慮到學(xué)生的起步基礎(chǔ)不同和素質(zhì)高低不同,設(shè)計出可以選擇的實驗,滿足多方面多層次的需求,提高實驗的質(zhì)量。課程實驗應(yīng)該包括適當(dāng)?shù)拈_放性實驗,目的是進(jìn)一步提高教學(xué)水平、培養(yǎng)學(xué)生實驗技能與創(chuàng)新能力。為此需要實驗管理采用開放性,采用自動式的學(xué)生認(rèn)證系統(tǒng),提高設(shè)備的利用效率,為學(xué)生創(chuàng)造良好的實驗環(huán)境。
2.2課程設(shè)計和協(xié)作設(shè)計
在課程實驗的基礎(chǔ)上,以提高學(xué)生的綜合能力為出發(fā)點,應(yīng)該選擇比較重要的課程作為單獨課程開設(shè)綜合性課程設(shè)計,這對學(xué)生實踐教學(xué)能力培養(yǎng)是非常重要的,考慮到整個實踐教學(xué)必須占到整個學(xué)時的比例,應(yīng)該開設(shè)以下綜合課程設(shè)計。(1)高級程序語言課程設(shè)計:高級語言是計算機工程專業(yè)的基礎(chǔ)課,通過課程實驗學(xué)生僅僅是掌握語言的詞法、語法和語義,不能從整體上掌握整個系統(tǒng)。特別是現(xiàn)在高級程序語言的開發(fā)環(huán)境雖然比較方便使用,但是其知識結(jié)構(gòu)比較復(fù)雜,但是掌握其可以直接在程序中使用,大大提高編程效率。課程設(shè)計指導(dǎo)書中給出10多個題目,以學(xué)生綜合掌握高級程序設(shè)計語言和集成設(shè)計工具為目的,學(xué)生能根據(jù)題目的目的,獨立完成分析、設(shè)計和調(diào)試。使學(xué)生能更進(jìn)一步地理解程序設(shè)計方法,熟練掌握常用的數(shù)據(jù)結(jié)構(gòu)和算法,培養(yǎng)學(xué)生的實際設(shè)計能力和分析解決問題的能力,保持良好的程序設(shè)計風(fēng)格。(2)數(shù)字電路課程設(shè)計:使學(xué)生基本掌握數(shù)字電路設(shè)計和調(diào)試的方法,增加集成芯片的使用知識。教師根據(jù)學(xué)生的基礎(chǔ)列出10多個的選題,給出設(shè)計的目標(biāo),提供相應(yīng)的數(shù)字電路分離的器件,要求學(xué)生獨立完成設(shè)計、系統(tǒng)裝配和調(diào)試。能力比較強的同學(xué)可以獨立完成選題設(shè)計,完成系統(tǒng)的裝配及調(diào)試,教師只需給予一定的指導(dǎo)。(3)計算機原理課程設(shè)計:使學(xué)生加深對計算機原理和相關(guān)課程的理解,實踐和鍛煉計算機硬件的設(shè)計能力和調(diào)試能力。要求了解實驗所能提供的硬件基礎(chǔ)和計算機體系結(jié)構(gòu),以及現(xiàn)在硬件設(shè)計語言的一般設(shè)計過程和方法,能夠按照指令體系和功能進(jìn)行邏輯設(shè)計和實現(xiàn)CPU,并進(jìn)行軟件的模擬。(4)嵌入式系統(tǒng)課程設(shè)計:現(xiàn)在機電設(shè)備的智能化都來自于嵌入式系統(tǒng),嵌入式課程深入需要綜合性的課程設(shè)計,能夠使學(xué)生掌握嵌入式的環(huán)境應(yīng)用的限制性、功能的限制性,根據(jù)設(shè)計的目標(biāo),綜合使用嵌入式系統(tǒng)的接口、通信的基礎(chǔ)知識、嵌入式微處理器構(gòu)成控制系統(tǒng),掌握實際控制設(shè)備運行的實際知識,培養(yǎng)學(xué)生硬件方面的綜合設(shè)計能力和動手能力。(5)操作系統(tǒng)課程設(shè)計:要求學(xué)生掌握流行大型操作系統(tǒng)的系統(tǒng)結(jié)構(gòu)、各種實現(xiàn)機理和各種典型算法,系統(tǒng)地了解操作系統(tǒng)的設(shè)計和實現(xiàn)思路。該實驗可以采用開源的Linux系統(tǒng)為實驗平臺,運用所掌握的知識對內(nèi)核某個部分進(jìn)行替換,運用內(nèi)核開發(fā)環(huán)境實現(xiàn)內(nèi)核的重新組合。這樣可以鍛煉學(xué)生進(jìn)行系統(tǒng)編程的能力,為今后開發(fā)驅(qū)動程序、網(wǎng)絡(luò)接口等打下基礎(chǔ)。(6)軟件工程課程設(shè)計:使學(xué)生系統(tǒng)地掌握軟件工程及軟件管理的過程、方法和工具,教師可以按照學(xué)生比較熟悉的需求,設(shè)計多個相對比較大的項目作為題目,方便學(xué)生需求分析,這些需求分析可以是一定條件下現(xiàn)場的調(diào)研,多數(shù)數(shù)據(jù)是通過其他材料整理匯集出來的,也可以通過網(wǎng)絡(luò)收集具體項目的需求,這個不能是真正的現(xiàn)場調(diào)研,這是課程設(shè)計中非常重要,而且是需要特別處理的部分。在此基礎(chǔ)上學(xué)生要完成軟件的設(shè)計,給出測試和維護(hù)的基本原則和文檔。由于教學(xué)時間的限制,不可能完成編程和具體的測試,僅僅是完成必要的文檔標(biāo)準(zhǔn)化和內(nèi)容完整性檢測。
在計算機工程專業(yè)的課堂實驗和課程設(shè)計是按照教學(xué)計劃一個年級同步進(jìn)行的,為此可以在達(dá)到實驗?zāi)繕?biāo)的同時,在班級內(nèi)部進(jìn)行計算機技能比賽,比賽解決實驗相關(guān)內(nèi)容及問題的能力、比賽編寫程序的質(zhì)量、比賽編程程序的規(guī)范程度,比賽學(xué)生各種能力,促進(jìn)學(xué)生內(nèi)部有序良好的競爭,提高他們學(xué)習(xí)的積極性。也在同一個課程的不同班級進(jìn)行比賽,培養(yǎng)整個專業(yè)的學(xué)生能夠具有注重技能訓(xùn)練的精神。課堂教學(xué)和課程設(shè)計都是以班級為單位的獨立設(shè)計來和完成,當(dāng)前現(xiàn)實的項目是需要多人的系統(tǒng)完成,為此需要增加一個大作業(yè)和項目開發(fā)的實踐教學(xué)環(huán)節(jié),幫助學(xué)生增強交流能力、解決問題能力和技術(shù)技能[3]。(1)綜合性作業(yè)課程:需要綜合多門課程,可能需要多個學(xué)期,成立班級內(nèi)部的小組分工協(xié)作共同完成。該作業(yè)具有一定的難度,綜合多個知識點,需要系統(tǒng)的規(guī)劃,能夠鍛煉學(xué)生的綜合能力,同時也可以實現(xiàn)信息溝通技巧的掌握,達(dá)到交流技巧的掌握。(2)項目小組開發(fā):團(tuán)隊精神是當(dāng)今計算機工程專業(yè)必須具備的,可以按照當(dāng)前社會需求和科研需求,設(shè)置多個項目,讓高低年級學(xué)生自由組合,組成開發(fā)小組和興趣小組,協(xié)同完成一項任務(wù)。項目過程包括開發(fā)、軟件管理、經(jīng)濟、風(fēng)險管理、需求工程、設(shè)計、實現(xiàn)、維護(hù)、質(zhì)量保證、標(biāo)準(zhǔn)以及協(xié)同工作等。這樣不僅提高了他們的實踐能力和技能訓(xùn)練,關(guān)鍵是協(xié)同工作能力的鍛煉,使學(xué)生更加容易地融入社會工作中。項目小組也是高級學(xué)生向低年級學(xué)生傳遞知識和技術(shù)的最佳場所,也可以大大提高高年級學(xué)生的管理能力和各個方面協(xié)調(diào)的能力團(tuán)隊開發(fā)課程。這也是課堂教學(xué)有益的補充。在項目開發(fā)的需求分析中要注意相關(guān)的法律和道德的可行性研究,清楚涉及的有關(guān)問題,鍛煉采用何種策略來應(yīng)對。這樣的項目可能是多個學(xué)科綜合的,可以把相關(guān)科目的同學(xué)吸引到小組中,比如自動化控制、通信工程、信息技術(shù)、電子商務(wù)、經(jīng)濟管理等等,實現(xiàn)高層次的綜合。
2.3實習(xí)和畢業(yè)設(shè)計
實習(xí)不僅是學(xué)生發(fā)揮本專業(yè)特長服務(wù)社會、接觸社會;也在實踐教學(xué)中起著重要的作用,使學(xué)生在實踐過程中即能達(dá)到提高個人能力的目的。當(dāng)前實習(xí)有多種形式,多數(shù)分為校外的實習(xí)基地和校內(nèi)實習(xí)基地,使學(xué)生能夠到實踐單位接觸和了解科研和開發(fā)中存在的各種現(xiàn)實的技術(shù)或管理問題,參與實際課題或項目的開發(fā)等。實習(xí)基地的選擇和建設(shè)是非常關(guān)鍵的,為了保證實習(xí)的質(zhì)量。必須定期對實習(xí)基地進(jìn)行評估,包括接收學(xué)生的數(shù)量、提供實習(xí)題目的質(zhì)量、管理學(xué)生實踐過程的情況、學(xué)生的實踐效果等。實習(xí)指導(dǎo)教師必須有實踐經(jīng)驗、教學(xué)經(jīng)驗,校外實習(xí)基地聘請業(yè)務(wù)水平高、責(zé)任心強的人員擔(dān)任校外指導(dǎo)教師。畢業(yè)設(shè)計是一個科研和教學(xué)結(jié)合最為密切的實踐環(huán)節(jié)。在畢業(yè)設(shè)計中學(xué)生可以理論聯(lián)系實際,鍛煉解決實際問題的能力。畢業(yè)設(shè)計應(yīng)當(dāng)緊密結(jié)合科研項目或課題,從科研任務(wù)中選擇有價值的題目進(jìn)行設(shè)計、實驗和研究,還可以通過與企業(yè)緊密合作的實踐教學(xué)活動來進(jìn)行。
3結(jié)束語
隨著計算機技術(shù)的日新月異的發(fā)展和深入應(yīng)用,將會對實踐教學(xué)提出了更高的要求;這就要求高等學(xué)校按照自身辦學(xué)的定位和社會的當(dāng)前需求對計算機工程專業(yè)的實踐教學(xué)體系進(jìn)行修訂。以培養(yǎng)學(xué)生技能和實踐能力為核心,高校教師要轉(zhuǎn)變教育思想,更新教育觀念,以構(gòu)建主義為教學(xué)指導(dǎo)思想,推動計算機教學(xué)向著“培養(yǎng)全面高素質(zhì)人才”的方向發(fā)展,為學(xué)生以后更好地為社會服務(wù)打下堅實的基礎(chǔ)。
計算機畢業(yè)設(shè)計論文范文二:計算機工程能力教學(xué)體會
1現(xiàn)狀分析
培養(yǎng)高質(zhì)量的軟件開發(fā)人才一直是社會和行業(yè)關(guān)注的焦點。早在11年前,對于工程教育的迫切性就被人提出來[1]。工程教育本身也作為一個系統(tǒng)問題被討論[2]?,F(xiàn)在從國家層面在戰(zhàn)略上建立了軟件學(xué)院進(jìn)行專門培養(yǎng),各個高校也不斷推出新的課程、新的措施方案。在這一領(lǐng)域雖然比過去似乎已經(jīng)有了翻天覆地的變化,但來自企業(yè)的呼吁似乎一直反映出諸多不盡如人意。更多的思路希望將企業(yè)的力量直接引入到教學(xué),比如實訓(xùn)基地等[3];而國家層面也非常關(guān)注實訓(xùn)[4]。但實際效果可能變得流于表面,因為企業(yè)往往難以將核心的工作拿給學(xué)生做,而其訓(xùn)練的項目也并未從更全面系統(tǒng)的角度去設(shè)計,其鍛煉效果就有限了。在軟件開發(fā)這一領(lǐng)域,由于其具有變化迅速,新技術(shù)不斷涌現(xiàn)的特點,導(dǎo)致不少在教育內(nèi)容上選擇了追逐新技術(shù)、新語言、新平臺,以能用會用這些流行主流技術(shù)為目標(biāo)。典型的代表就是北大青鳥,有些二本的學(xué)生在畢業(yè)前專門花錢去青鳥學(xué)習(xí),似乎可以看到這種教育的優(yōu)勢。但另一個矛盾的情況是,往往那些關(guān)注員工后勁的公司卻不愿意招聘青鳥的學(xué)生。如果將目光投向國外的頂級大學(xué),例如斯坦福,其教學(xué)上并沒有去“依賴”校企合作,以及很熱門的“實訓(xùn)”。其核心課程依然是過去的傳統(tǒng)經(jīng)典課程。以一個研究生為例,一學(xué)期能修2門課是正常,3門就很優(yōu)秀。它并沒有追逐所謂的新技術(shù)。但無人質(zhì)疑其學(xué)生的工程能力、科研能力和創(chuàng)造能力。
2什么是計算機工程能力的核心
什么才是我們軟件開發(fā)教育的核心知識架構(gòu),怎樣才能培養(yǎng)學(xué)生可持續(xù)發(fā)展的核心競爭力?我們調(diào)查過一些非常高水準(zhǔn)的軟件開發(fā)者,發(fā)現(xiàn)他們往往在底層軟件上持之以恒地進(jìn)行長時間深刻的鍛煉,然后在未接觸的新領(lǐng)域才能非常迅速地掌握核心。例如,一個非計算機專業(yè)的系統(tǒng)分析員曾經(jīng)“只”在DOS這種原始的操作系統(tǒng)下玩了10年,甚至自己寫過一個漢化的DOS。他只有書本上的一點點網(wǎng)絡(luò)知識時,就用一兩天時間解決了一個學(xué)通信的研究生1個月都不能解決的網(wǎng)絡(luò)故障。這是一個典型的例子,他并沒有“實際的”網(wǎng)絡(luò)經(jīng)驗,什么使得他如此輕松地進(jìn)入了新的領(lǐng)域呢?而另一個曾就職于vmware、google等頂級公司的程序員,在Unix下只用C語言做了10年系統(tǒng)級編程。當(dāng)用Java,C++甚至是javascript時,其學(xué)習(xí)時間只是1天,很快就比做了幾年專門java編程的程序員還精通。如何才是軟件開發(fā)人員的本質(zhì)力量?什么才能讓他們在變化萬千的新技術(shù)面前屹立不倒,乘風(fēng)破浪?
2.1計算機工程能力
我們認(rèn)為計算機工程能力包含兩方面的內(nèi)容:(1)核心知識架構(gòu);(2)計算機的思維方式。什么是核心知識架構(gòu)呢?是反應(yīng)該領(lǐng)域最基本規(guī)律和支撐技術(shù)的知識。簡單地說就是傳統(tǒng)的操作系統(tǒng)、編譯、數(shù)據(jù)庫。操作系統(tǒng)將硬件、軟件、高級語言和匯編融匯在一起,它幾乎包括了軟件工程中所有重要的因素。舉一個簡單的例子,似乎只有面向?qū)ο筮@種“高級東西”才有的虛函數(shù)運用,其實在Linux中就有相應(yīng)的虛文件系統(tǒng)。操作系統(tǒng)是最為復(fù)雜的計算機工程之一。編譯融匯了大量的算法,而且能讓大家真正看“穿”語言的外表,深入到其內(nèi)里,體現(xiàn)了最根本的計算機技術(shù)。其優(yōu)化技術(shù),也深刻地和硬件交融在一起,很好體現(xiàn)了底層風(fēng)范。數(shù)據(jù)庫,不僅是運用算法最多的地方,甚至是超越操作系統(tǒng)的一個復(fù)雜的系統(tǒng),從緩存技術(shù)到i/o優(yōu)化,到索引,再到事務(wù)處理,無一不是反映計算機最深刻規(guī)律。大家可以發(fā)現(xiàn),所謂核心知識架構(gòu),都具有兩個特點,反映本質(zhì)規(guī)律,體現(xiàn)軟硬融匯交織。也只有這樣,才能建立下面談到的“計算機思維方式”。
2.2核心知識架構(gòu)
為什么我們沒包括一些新興的語言和技術(shù)呢?似乎它們很“實用”。而且已經(jīng)出現(xiàn)的問題是,按照傳統(tǒng)科目和方式學(xué)習(xí)后,學(xué)生在企業(yè)什么都不會。這也正是大家關(guān)注工程教育的初衷。為什么不強調(diào)這些新興實用技術(shù)的教育還在強調(diào)“古老”的“基礎(chǔ)”。計算機領(lǐng)域一個顯著的特點是,表面上知識更新非???,新技術(shù)、語言層出不窮。這很容易導(dǎo)致當(dāng)我們發(fā)現(xiàn)學(xué)生能力欠缺時,將問題歸罪于新技術(shù)的學(xué)習(xí)不得力,知識結(jié)構(gòu)老化。但其實目前的問題可以從另外一個角度考慮,是否是基礎(chǔ)教育不得力?分析國外著名大學(xué),如斯坦福、伯克利的課程,我們發(fā)現(xiàn)兩個特點:(1)關(guān)鍵的基礎(chǔ)課程,如操作系統(tǒng)、編譯原理、數(shù)據(jù)庫,始終是其最重要的課程,并沒有過分追逐各種“新潮”技術(shù)。(2)學(xué)生一學(xué)期能修的課程非常有限,一般為3門課。而國內(nèi)卻呈現(xiàn)相反的狀況,比如編譯原理被降到了選修課的角色,新潮課程層出不窮,一個學(xué)生二年級一學(xué)期要修13門課。在這種走馬觀花的狀況下,計算機這種具有強烈“手藝”色彩和工程實踐的學(xué)科,被完全紙上談兵化。而一些可憐的實驗內(nèi)容,還被學(xué)生的復(fù)制拷貝所湮沒。我們認(rèn)為,恰恰是這種情況,使得基礎(chǔ)核心知識教育沒有工程化,沒有充分動手,導(dǎo)致了基礎(chǔ)知識教育某種程度上的巨大失敗。從以下鮮明的對比可以窺見問題的端倪:國內(nèi)學(xué)生反映操作系統(tǒng)課程是文科課程(只需要背條款考試即可);而相對地,國外著名高校操作系統(tǒng)課程要求學(xué)生實現(xiàn)“小”操作系統(tǒng)。國內(nèi)數(shù)據(jù)庫只講其應(yīng)用(如大量講解sql等運用,sql即使非計算機專業(yè)人士也很容易學(xué)習(xí),這也是它被發(fā)明的初衷)。斯坦福的數(shù)據(jù)庫課程中有一門需要實現(xiàn)一個數(shù)據(jù)庫系統(tǒng)。在筆者走訪的計算機工程上優(yōu)秀的人才,發(fā)現(xiàn)其共同的特點就是在諸如操作系統(tǒng)或數(shù)據(jù)庫上都有很深入的學(xué)習(xí)經(jīng)歷,比如前面提及的自己構(gòu)建過漢化DOS系統(tǒng),或者在Unix下,做內(nèi)核以及驅(qū)動很多年等。而當(dāng)他們接觸新技術(shù)時,之前深刻的經(jīng)驗和淬煉的思維就讓他們?nèi)缁⑻硪恚烊艘坏取8猩跽?,國外真正的最頂級專家,都是在這些領(lǐng)域有無與倫比水平的專家,從delphi的締造者,轉(zhuǎn)戰(zhàn)到微軟并入主.net平臺的開發(fā),也可看到雄厚的底層知識和能力的巨大作用。所以“老”知識并不是障礙,而是通向天堂的階梯。究其原因,就涉及到工程能力的第2個方面,計算機思維方式。
2.3計算機思維方式
對非專業(yè)人士它是很抽象的概念,而對真正專業(yè)人士,這又是一個非常鮮活的概念。這里限于篇幅,我們只舉一個簡單的例子。面對在C++中外部代碼如何直接修改私有變量的問題,計算機的思維方式就是:對象也是放在內(nèi)存中,只要能拿到對象的地址,并知道對象的布局,那么就可修改。而沒有建立這種思維的人,就完全被高級語言的語法所左右,無從下手。一句話,無法看到本質(zhì),沒有從下而上的底層思維。核心知識課程的有效深入教學(xué)和計算機思維方式建立有何直接關(guān)系呢?我們認(rèn)為核心知識因為其反應(yīng)了計算機本質(zhì)規(guī)律,而且從底層建立起來,所以對其深入掌握運用后,它從開始的逼迫到最后的陶冶,最終潛移默化地讓受眾建立起“計算機思維方式”。而這正是計算機工程師安身立命之本,就如同音樂家有其獨特的音樂思維方式一樣。為什么諸如java之類的課程于建立計算機基本思維不太合適呢?因為它更高層,無法讓學(xué)生看到最下面。而唯有徹底、深刻和系統(tǒng)的底層淬煉,才能真正建立起“計算機思維方式”。
3如何打造強大的計算機工程能力
大家一方面指責(zé)基礎(chǔ)課程的“空洞”、“無用”、“陳舊”;另一方面在不斷開設(shè)的海量新課和技術(shù)中壓得學(xué)生更加遠(yuǎn)離編程,遠(yuǎn)離實踐。即使能培養(yǎng)出熟悉某種語言的學(xué)生,也無法看到他們和培訓(xùn)學(xué)校有何不同。實訓(xùn)也似乎沒有根本解決問題,我們在實踐中發(fā)現(xiàn),往往是那些自己醉心于編程的學(xué)生最后有著卓越的表現(xiàn)。讓基礎(chǔ)知識能支撐和指導(dǎo)實踐,而非僅僅“符號”,并引導(dǎo)學(xué)生進(jìn)行高效的實踐。
3.1“3塊連一線”,4門基礎(chǔ)課程整合打造核心知識架構(gòu)我們將4門基本課程進(jìn)行貫通式整合,著力塑造學(xué)生的“計算機思維”。下層的是3門基礎(chǔ)課(在上一小節(jié)探討了其在工程能力訓(xùn)練上不可替代的重要地位),對軟件開發(fā)環(huán)境產(chǎn)生支撐。而軟件開發(fā)環(huán)境又通過精心的設(shè)計和工程實踐,從應(yīng)用角度將3門課程所學(xué)的知識串聯(lián)起來。從而將基礎(chǔ)知識和工程開發(fā)更有機整合在一起。首先,闡述為什么將以上課程整合在一起的理由。要回答這個問題,必須先回答什么東西支撐了優(yōu)秀程序員。在我們的調(diào)查人員中,無一例外地都具有很深厚的底層軟件開發(fā)背景。有長期從DOS的Hack入手的;有長期從事Unix內(nèi)核編程的;有從Windows的driver起步的;有以反匯編逆向為根基的。長期在最底層的經(jīng)歷,使他們建立了最真實和能觸摸的系統(tǒng)觀,能以計算機的方式思考。所以面臨新技術(shù)時,他們能透過新形式很快把握其精髓,深刻地把握其實質(zhì)。“太陽下面沒有真正的新事物”,例如號稱21世紀(jì)最新的重要的軟件技術(shù)AOP(AspectOrientedProgramming,AOP),其實在20世紀(jì)60年代就出現(xiàn)在了匯編一級的軟件技術(shù)中,它本質(zhì)就是鉤子技術(shù)的系統(tǒng)化。在底層的軟件世界,我們不僅能夠用到那些所謂的最新的技術(shù),而且能看到其本質(zhì)(我們可能就是用機器碼自己構(gòu)建出來的,而不被新技術(shù)的華麗外衣障目)。這些使得具有底層經(jīng)驗的開發(fā)者,更有創(chuàng)造力,更能創(chuàng)造,也更能洞察迷亂后的本質(zhì),庖丁解牛,解決那些異常復(fù)雜的工程問題。舉一個筆者遇到的真實例子,一個具有深刻底層經(jīng)驗的程序員(一直只有C語言和操作系統(tǒng)編程經(jīng)驗)和一個只有深刻Java經(jīng)驗的程序員,在同時學(xué)習(xí)Javascript的閉包概念時,后者一個禮拜都還有些似是而非。前者很快就能自如運用,且最后指點了后者1個小時,后者頓時豁然開朗。這是典型的“新”與“老”,上層和底層經(jīng)驗在面對新事物時的對比。既然底層軟件賦予我們?nèi)绱藦姶蟮哪芰?,那么哪些是底層軟件?大家公認(rèn),操作系統(tǒng)、編譯和數(shù)據(jù)庫由來就是計算機工程自身的根基。所以,我們必須將這3門課涉及的知識好好淬煉。而如何將3門課的知識和我們?nèi)粘5能浖_發(fā)聯(lián)系起來呢?如何用它們指導(dǎo)平時程序的開發(fā)呢(我們大多數(shù)是開發(fā)用戶級軟件,不會開發(fā)內(nèi)核軟件,因此許多人認(rèn)為幾乎整個在內(nèi)核中的操作系統(tǒng)對用戶級軟件開發(fā)無從指導(dǎo))?另一門課,《軟件開發(fā)環(huán)境》解決了這一問題。它有一條主線,通過反匯編將C語言和匯編串聯(lián)起來,讓系統(tǒng)級的知識從高級語言的面紗下展現(xiàn)出來。同時用逆向工程這把庖丁之刃,將編譯、鏈接、面向?qū)ο蟮溶浖_發(fā)中的重要知識塊剖剔,讓底層與上層貫通一氣。而逆向的技術(shù)技巧,本身也是非常高級的軟件開發(fā)技術(shù)。因此,我們用“3塊連一線”來總結(jié)4門課的關(guān)系是最好不過了。為什么不納入語言課程,比如C/C++語言?從我們的工程經(jīng)驗來看,語言只是計算機原理和思想的載體,是表述方式而已。為了表述形式而專門花大力氣是不值得的。比如,國外的著名大學(xué)很多都不開設(shè)語言課,在其他課程作業(yè)中必須用C語言編程,學(xué)生們就在那里鍛煉了。真正的語言的力量并非來自語言本身,而是底層知識為支撐的項目鍛煉。我們的思路是以構(gòu)建式完成大量的完整系統(tǒng)的編寫,這樣就很好鍛煉了軟件開發(fā)和工程能力。同時,“軟件開發(fā)環(huán)境”本身從逆向?qū)用嬉矊φZ言有了深刻的剖析,這是純粹的語言課難以完成的。另外,從大綱安排上,我們在大一就會讓學(xué)生用C語言來初步接觸程序編寫,這時并不適合放入太高級主題。而在教學(xué)中,語言的力量已經(jīng)滲透到一個個工程構(gòu)建中,隨風(fēng)潛入夜了。為什么不納入算法課程?從某種程度上,“程序就是算法與數(shù)據(jù)結(jié)構(gòu)嗎”?我們認(rèn)為在系統(tǒng)中運用算法,算法才具有生命力。而編譯、操作系統(tǒng)、數(shù)據(jù)庫以及我們專門設(shè)立的一些課程設(shè)計將全面運用各種算法和數(shù)據(jù)結(jié)構(gòu)。在實戰(zhàn)中運用并學(xué)習(xí)提升才是王道。這也正是構(gòu)建式學(xué)習(xí)的精髓所在,這也正是探索式學(xué)習(xí)培養(yǎng)學(xué)生的創(chuàng)造能力的精髓所在。算法課已經(jīng)為我們準(zhǔn)備了元件,就看你怎么去組裝甚至改造。
3.2以構(gòu)建主義的思路,深度實踐的風(fēng)格改革課程
前面我們論述了底層知識架構(gòu)的重要性,那么怎么來將它們實際地建立在學(xué)生的工程實踐中呢?簡單地說就是“構(gòu)建一個具體而微的系統(tǒng)”。講操作系統(tǒng)就構(gòu)建一個小操作系統(tǒng),講編譯原理就構(gòu)建一個小編譯器。同時,設(shè)計一些跨度較大的課程設(shè)計覆蓋這些課程的一些重點內(nèi)容。構(gòu)建完整系統(tǒng)本身就可真實淬煉工程能力,而這些內(nèi)容的復(fù)雜性、難度以及運用知識點的廣度,本身就超越了簡單的企業(yè)實訓(xùn)項目,在培養(yǎng)人才方面具有系統(tǒng)性、完整性、挑戰(zhàn)性獨特優(yōu)點。我們需要的是運用團(tuán)隊的思路和現(xiàn)代軟件工程的手段,將其開發(fā)過程管理發(fā)起來,從而熟悉企業(yè)級開發(fā)的工具鏈,將軟件工程學(xué)到的知識貫通到實作中。這也回答了“和以前相似的強調(diào)基礎(chǔ)課程教育,什么特點使得我們的做法能獲得強大的工程能力?”這一問題。以前更多注重理論知識的學(xué)習(xí),而現(xiàn)在的做法是回歸計算機工程的自身科學(xué)規(guī)律———實踐為王。
3.3改革考核評價標(biāo)準(zhǔn),充分強調(diào)動手實踐
以前我們一直是卷面考試,實驗分?jǐn)?shù)只是象征性的點綴。這本身違反了計算機工程的特點。只有改變評價考核標(biāo)準(zhǔn),才能真正驅(qū)動學(xué)生充分鍛煉工程。在課程軟件開發(fā)環(huán)境中,我們采取了平時的考試結(jié)合期末考試的方式,而兩者均為軟件編寫。期末考試在實驗室上機編撰指定題目。不強調(diào)對一些函數(shù)名等死知識點的記憶,可以用在線幫助。這本身也符合軟件開發(fā)的規(guī)律。
4結(jié)束語
我們在計算機工程教育上試圖做一些回歸本質(zhì)的工作,也取得了一些效果。比如在軟件開發(fā)環(huán)境中,學(xué)生普遍認(rèn)為:“似乎將3年學(xué)的程序課全學(xué)習(xí)了,收獲很大”。更有同學(xué),在外企公司的面試中,直接運用了課堂上的知識,這在傳統(tǒng)的教學(xué)環(huán)節(jié)中是難以獲取的。但整個工作尚在起步階段,所以仍有很多工作需要做,許多環(huán)節(jié)需要優(yōu)化。我們希望在以后的工作中更深入探索工程教育的規(guī)律和本質(zhì)。
計算機畢業(yè)設(shè)計論文開題報告相關(guān)文章: