真人一对一直播,chinese极品人妻videos,青草社区,亚洲影院丰满少妇中文字幕无码

0
首頁 精品范文 c語言程序設計實例

c語言程序設計實例

時間:2022-11-17 23:43:59

開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇c語言程序設計實例,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。

第1篇

關鍵詞: 一體化教學 課程模式 任務驅動 考核機制 以賽促學

一體化教學改革已經在廣大職業教育院校廣泛開展,所取得的成效已經逐步體現。一體化教學中,學生提高了學習興趣,學習的積極性、主動性得到了充分調動,知識的掌握更牢固,運用能力更強。為了推進和全面開展一體化教學,計算機專業的一體化教學改革迫在眉睫。

數據結構很多是用C或類C語言描述的,所以在傳統教育中,通常先開設C語言課程,隨后的學期中學習數據結構,但在實際教學中發現存在以下問題:一是先學的C語言注重語法的學習,沒有太多實際應用,掌握不夠牢固,在下學期學數據結構時需要花很多時間復習C語言的知識;二是花時間復習C語言,自然就會占用學習數據結構的時間,導致數據結構講授時時間倉促;三是過多的語法和細節的學習并沒有讓學生覺得掌握好了C語言,反而覺得太過瑣碎,難以掌握。為了解決上述問題,我們把《C語言程序設計》和《數據結構》這兩門課程整合,并進行一體化教學改革,具體從以下方面開展和實施。

一、針對學生特點,設計課程模式為“由果到因”

教學是教師的教和學生的學所組成的一種人類特有的人才培養活動。傳統教育中,教師是教學主體,傳道授業解惑,這種方式強調教師的主體地位,側重考慮教師所教授的知識和方法,而忽略了學生學習的主觀能動性,我們俗稱“填鴨式”教學;現在的教育倡導以學生為主體,充分調動學生的主動性和積極性,讓他們從原來的“要我學”轉變為“我要學”,這樣可以大幅提高學生的學習效率,取得更好的效果。另外,職業院校的學生普遍存在基礎薄弱、自覺學習能力較差的現象。基于上述理念,課程模式設計為“實例―理論―設計實例”,即教師先給出實例讓學生模仿操作,操作過程中或操作后(依據不同實例的具體情況確定)講解實例相關理論知識,然后讓學生自己設計實例。通過模仿―學習―應用的過程,達到學以致用。

如C程序的入門,傳統的課本都是先講授C程序的結構、數據類型、運算符、表達式,直到順序結構程序設計講完,學生才可以自己寫簡單的程序,這個過程大致需要8到10個學時的理論學習,如此漫長的時光中,很多學生已經失去了學習C語言的興趣,等到讓他寫程序的時候,大部分學生很難寫出來。改用新的方式后,簡短地對C語言進行介紹后,就給出幾個經典的程序,讓學生上機操作,熟悉上機環境和C程序的調試方法。學生在操作過程中,切實感受到程序在計算機中的運行,并看到運行的結果,這些直觀的沖擊會讓學生保持良好的學習狀態和持續的求知欲望。然后講解C程序的結構和實例中用到的數據類型、運算符等理論知識,為學生答疑解惑。有了基本的概念后再模仿已經操作過的實例,自己設計程序完成指定的任務,實現復習、鞏固和靈活應用的既定目標。

二、使用任務驅動模式,依據課程內容,合理劃分任務

為了配合第一點的實現,將現有的《C語言程序設計》和《數據結構》課程進行整合編排,設計如下幾個任務:C程序入門、程序設計的三種結構、順序表、鏈表、堆棧、隊列、樹、排序、搜索、圖。各個任務進一步細分,劃分成若干個子任務,方便具體實施,如順序表又分為順序表的創建、插入、查找、刪除等。

任務的劃分是一體化教學改革中的重點,任務的難易程度、規模的大小、實例的選擇,都直接關系到課堂的組織、學生的學習效率、學習的積極性等,這些因素都直接影響教學效果。要做到任務劃分合理、實例選擇得當,需要注意以下兩點:第一,任務劃分要經過專業教師的討論和分析,條件允許的話,最好請企業的專家進行指導,得出哪些內容是需要整合的,哪些內容是需要拆分的,拆分到哪些任務中是合理的,便于教學實施,有利于在以后的學習和工作中應用。第二,每個任務下的子任務拆分要合理,規模大小要盡量適合每次課(一般為2學時)的實施;實例的選擇要遵循從簡到難、循序漸進的原則,并能通過兩到三個實例將相應的子任務的內容分解。同時應該考慮到學生的興趣,盡量從學生感興趣的實例入手,提高學生的主觀能動性。

三、理論知識做到夠用就好,最好隨時補充

傳統教學中,我們習慣于先把理論知識全盤講給學生聽,要求學生理解、掌握,然后會應用。實際教學過程中,枯燥的理論知識很快就會讓學生感到厭煩,他們不等你把這些知識講完,就已經將注意力投入到了其他跟課堂內容根本不相關的事物上。結果大部分學生只掌握了整堂課中小部分的內容,教學效果很不理想。采用任務教學后,學生首先拿著程序上機操作,在做的過程中會發現不懂的地方,隨之產生這是什么,這個可以做什么的疑問,從而吸引學生的注意力,提高課堂教學效率。

以前教C語言,我發現到寫順序結構的程序時,學生寫程序無從下手,幫助他回憶程序書寫的整個過程,其實只需要三分鐘的時間就夠了,我疑惑:既然短短幾分鐘就能夠讓學生了解程序的基本組成,為什么先前要花那么多時間講?最關鍵的是,講的那些理論知識,根本就沒有幾個學生能掌握,效率極低。由此得到啟發,不如先讓學生操作,然后探究為什么這么做,這樣順理成章地將理論知識傳授給學生。顯然這時候的理論講解要簡明、扼要,切忌長篇大論。當然,這樣也會產生一些問題,理論知識會被分割得支離破碎,沒有系統性。目前我們采用的是一個任務結束后讓學生討論、總結,教師補充的方式將相應的理論知識串聯,使之完整和系統化。課堂上當學生有疑問或用到已學過的知識時,也要隨時補充和復習,通過多次強化,幫助學生牢固掌握相應的理論知識。

四、防止“重操作、輕理論”

在任務驅動模式實施過程中應避免出現“重操作、輕理論”的狀況。也就是片面強調學生的動手操作而忽略了理論知識的傳授。教學過程中,教師對于整個課堂的組織把控顯得更重要。盡管我們強調課堂的主體是學生,要充分發揮學生的主觀能動性,但并不是讓學生放任自由。教師應在課堂中做好組織引導工作,合理劃分時間段內任務,讓整堂課有序、有效進行。如可以將一堂課劃分為操作、同學討論、教師小結、設計實例等環節。將理論知識滲透在每堂課中,學習了這些操作中遇到的理論知識后,能夠運用這些知識設計實例,而不是簡單機械地重復操作,達到理論指導實踐的目的。

五、制定完備的考核體系,保證教學順利進行

為了監督學生保質保量完成每個任務,并保持一定的積極性,需要對整個教學過程進行有效監督和管理。傳統教學中結果考核顯然已經不適用于任務制教學模式,而應該采用全新的過程考核機制。過程考核的細則在制定時要考慮到學生的操作能力、態度、學習效果等因素,使考核起到監督學習過程、端正學習態度、肯定學習效果、促進學生努力的作用。良好的考核機制可以有效保證教學的順利進行,防止課堂監管失控。學生在被考核的過程中,會更好地約束自己,更好地實現自我管理。

六、適當開展競賽,以賽促學

積極鼓勵學生參與技能競賽。技能競賽既能起到交流經驗、切磋技藝的作用,又能調動教師和學生鉆研技術、提高技能的積極性。為了使競賽取得良好成績,應營造能促進學生學習的氛圍。這樣以競賽為學習目標,以競賽的成績作為獎勵,從而促進日常教學活動順利開展。

七、配套合理的課程設計,提高綜合應用能力

第2篇

一、問題的提出與分析

目前,高職教育在教學內容、教學方法等方面,知識老化,方法陳舊落后,理論與實踐相脫節。這迫切要求我們對教學方法方式進行改革。

一段時期以來,教學改革仿佛變成了關于媒體、工具如何在教學中使用的改革。從簡單的教學用具,到音像材料,到計算機、多媒體技術、計算機網絡等,信息傳播通道的改進,使教學內容表達趨于直觀,增大了課堂信息量,提高了教學效率,但不能代表整個教學改革的全部內容,這一點在我們的教學實踐中得到了證明。所以如何設計目標為導向的教學活動,是我們教學改革研究的重點。

二、改革思路與方案

(一)消除學生對C語言的神秘感,培養學生的興趣

教師應做好入門階段的工作,向學生講授C語言的發展歷史、當前的狀況,通過舉例說明學生們所熟知的某些軟件或作品其內在的創作工具是C語言或C語言也可以同樣地制作完成,最好能夠編寫一個小型實用程序,以培養學生對C語言的興趣,縮短學生所熟知的軟件工具與課堂知識間的距離。

(二)精選內容,突出重點,講清難點

教科書一般內容較多,教師應精選課程內容,確定講授重點。精選課程內容是提高教學質量的一項重要工作,它是教學內容的核心部分。《C語言程序設計》的核心內容包括C語言基本語法、程序設計思想和程序調試方法。語法是任何一門語言的基礎,C語言的語法包括數據、數據類型、運算符、流程控制語句、數組、函數及其調用、變量的作用域、指針、文件等。在介紹這些語法時應該重點講清楚那些對后續章節影響較大、且在實際編程過程中頻繁使用的語法,而不可過多地拘泥于講解一些瑣碎卻并無多大用處的語法。C語言和程序設計的學習是相輔相成的,C語言基本語法的學習必須通過必要的程序設計實踐才能真正掌握,同樣,也只有掌握C的基礎知識才能設計出好的程序。

(三)教學方法的改進

在教學實踐中,對C語言程序設計的教學方法不斷地研究和改革,探索與嘗試,在不同的教學環節上,針對不同的教學內容,采用了多種多樣的教學方法進行教學,例如啟發式教學、討論式教學和互動式教學以及理論與實踐結合式教學,還有邊學邊用式教學等等。

在課程的宏觀教學上通過逐步拓展的實訓項目和設計,將每一階段的學習進行小結性的貫穿與能力提高。將知識點都溶化到一個個實訓項目的程序編寫中。在課程初期,主要是進行單項的編程練習,重在掌握C語言的基本語句、數據類型與程序結構等。在進入數組、函數、結構、指針和文件內容教學時,開始實訓項目的編程實踐,逐步組建如“學生管理系統”這樣的綜合性程序系統,并且不斷添加功能模塊,不斷優化設計,使整個系統按照內在關聯逐步拓展而成。這樣的實踐性教學內容與方法設計給項目拓展教學法以實際落腳點,符合認知與學習規律。

在課堂的微觀教學上采用實例遞進驅動教學法,改變滿堂灌的做法,將學生的眼手腦全部調動起來。精心設計實例,給學生一個比較實際的切入點,通過老師的演示使學生感覺能夠入手,然后再通過將此實例不斷修改、擴充,引導學生參與到程序的編制過程中,在這個過程中,展示學生所作的程序,讓學生來評判優劣,吸收優點,修改錯誤,引導學生進行優化。這樣通過一個程序實例的層層推進,引入課程內容,使得學生的每一步學習都有基礎,是循序漸進,螺旋式上升的過程。

(四)課程設計環節的把握

C語言由于它的實踐性很強,要真正掌握它,課程設計是必不可少的重要環節。要想使課程設計收到實效,一定要根據學生的實際情況,開展不同的教學活動。所以在進行課程設計準備選題時,應充分考慮學生的興趣,多選擇一些學生熟悉的、實用的趣味性強的題目,包括一些簡單的游戲。另外,不同的學生根據掌握程序不同,或者根據不同的課時數,活動形式也應區別開來。對成績好的,課時多的,只給出題目,指導他們去找資料,分組討論,引導他們的思考方向,由他們自己獨立編碼調試。而對成績中等的這部分同學,應給出思路,幫助他們進行整體設計,指導他們編碼調試。這樣一來,在整個課程設計的過程中,絕大多數的同學都動了起來,都能認真調試程序,他們自己在課程設計總結中都感到很有收獲。

三、改革實踐的效果

(一)突出了學生主體作用

學生不再是被動的、教師傳授知識的對象,而成為了學習的主人。他們可以根據自己的對課程掌握的情況和認知情況,自主地選擇學習方式和學習內容。這樣使學有潛力的學生可以有更多的學習選擇,得到應有的發揮。而學習上有困難的學生,也可得到教師有效的指導,既解決了學習起點不一的問題,又可以充分發揮學生學習的主動性和積極性,變被動學習為主動學習。

(二)體現了教師的指導作用

在這個教學過程中,教師的角色已經轉換,他們不再是教學活動的中心,課堂教學也不是教學活動的唯一形式。教師傳授更多的是如何獲取學習信息,教會學生如何掌握學習的方法,學會學習。教師真正成為學生的啟發者、指導者和幫助者。

(三)加強了學生協作性的培養

所有的學生都可以在課堂上、上機練習時或課程設計中,圍繞一個主題和問題,大膽地展開自己的想象思維,發表見解,經集體討論和交流,尋求問題的解決方式。這樣可以使參加討論的每一位學生對同一問題,獲得多方面、較深入的認識,有助于思考能力、交往能力的養成,有助于團隊精神、集體觀念的培育,使學習者為某—相同目標而團結共事的合作精神得到提升。

教學要與科學技術以及社會經濟發展相結合,尤其是計算機語言教學,更應與當前計算機應用技術的發展相適應。我們將面臨許多新情況和新問題,我們要為計算機語言教育在已有的基礎上再上一個新臺階去研究和探索。

參考文獻:

[1]譚浩強.C語言程序設計[M](第一版).北京:清華大學出版社.2000.

[2]郭慧玲、胡海芝.《C程序設計》課程教學改革探究[J].電腦知識與技術,2006,(35):201-202.

[3]屈曉.淺談C語言教學的體會[J].科教文匯(上旬刊),2009,(06):147-148.

作者簡介:

第3篇

(1.甘肅農業大學 信息科學技術學院,甘肅,蘭州 730070;

2.蘭州交通大學 電子與信息工程學院,甘肅 蘭州 730070)

摘 要:高等農業院校程序設計類基礎課程以培養實踐人才為根本目標,將CBE教學模式和程序設計類課程教學結合起來,在教學內容、教材及教學資源建設、教學方式等關鍵環節進行了綜合改革,形成了2+2+3的“理論教學及實驗教學相統一的課程建設體系,理論教材及實驗教材相統一的教學資源建設,CBE教學方式、項目驅動教學方式及雙語教學方式三層次實踐人才培養過程”實踐人才培養模式,培養具有“寬基礎、強特色、高素質、實用性”復合型實踐程序設計人才,在實踐人才體系培養方面取得了顯著成效.

關鍵詞 :高等農業院校;程序設計;CBE教學模式;實踐人才培養模式

中圖分類號:G645文獻標識碼:A文章編號:1673-260X(2015)07-0265-03

基金項目:中華農業科教基金會教材建設研究項目“基于CBE項目驅動式的C語言程序設計教學模式探索與研究(NKJ201203023);國家自然科學基金(61063028);甘肅省科技計劃資助項目(No.145RJYA288);甘肅農業大學教學研究項目(GSAU120226,GSAU120229);甘肅農業大學盛彤笙科技創新基金資助項目(GSAU-STS-1322)

1 引言

當前,我國農業正處在由傳統農業向現代農業轉變的時期,用信息技術對農業生產的各種要素進行數字化設計、智能化控制、科學化管理,能夠大幅度減少農業消耗,降低生產成本,提高產業效益.根據教育部“面向21世紀教育振興行動計劃”提出的以培養人的創新思維和創新能力的創新教育來適應日新月異的科技發展和社會需求的有關精神,結合高等農業院校的具體情況,以創新教育為導向、深化農業院校學生計算機程序設計能力培養的教學體系建設為目標,對高等農業院校程序設計類課程人才培養模式進行了探索和改革.

程序設計類課程是高校計算機教育的基礎與重點,是一門對理論與實驗開展同步教學的課程[1].在不遠的將來,程序設計和數學建模與微積分、高等代數、大學物理一樣,成為所有大學的核心基礎課程[2].程序設計類課程具有知識點多、概念復雜、規則繁多、使用靈活、自由度大、抽象度深等特點[3-5].我校生源中農村學生居多,基礎教育階段接觸計算機較少,大學低年級階段急需大力普及計算機基礎知識、培養計算機應用能力.作為農業院校,程序設計類基礎課程培養人才的目標要更明確,方法和手段要更有效,因此培養具有“寬基礎、強特色、高素質、實用性”復合型實踐人才是非常有必要的.

在這個培養目標基礎上,學校按照國家精品課程指標體系要求,突出創新意識和能力培養的先進教育思想,強化教學全過程管理,以把程序設計類基礎課程建設成為能夠反映本學科領域的最新研究成果、具有農業院校鮮明特色的示范性精品課程為目標,在教學內容、教材及教學資源建設、教學方式等關鍵環節進行了綜合改革,形成了2+2+3的實踐人才培養模式,在實踐人才體系培養方面取得了顯著成效.

2 基于CBE項目驅動式的程序設計類實踐人才培養模式

CBE(Cometency Based Education)的涵義是“職業綜合能力為基礎的教學模式”,簡稱能力教育[6].CBE教學模式的特點是教學方法多樣化,一切以學生為中心,強調在實踐中學習,在學習中實踐[6].CBE的特點恰好和我校實踐人才培養目標相符合,學校以“十二五規劃”建設為契機,融合CBE教學特點,建立程序設計類基礎課程實踐人才培養模式,結合高等農業院校的實際,以崗位必須的知識、技能、行為意識為從業能力的基礎,以能力表現為教學目標,教學進程的基準,注重“學”并以學生的學習為中心,不受時間和環境限制組織課程與實施教學,形成了2+2+3的實踐人才培養模式.

2.1 理論教學內容及實驗教學內容相統一的建設體系

2.1.1 理論教學內容課程體系建設

隨著我國經濟持續快速增長和信息技術的飛速發展,我國走新型農業現代化道路對培養新一代具有信息素養和計算科學創新能力的農業科技創新人才提出了迫切需求.以這種社會需求為導向,對農業院校程序設計類課程體系建設進行探索和改革,構建“分層次、分專業”的課程體系,貫通三大層次全校五十三個農業本科專業培養方案,將程序設計類課程按專業分三類開設,農醫類專業開設VB、文史類專業開設VFP、理工類專業開設C,實現了因材施教、以社會需求為導向的目的.教學內容強調課程內多知識點融合、跨課程知識體系融合、已學與拓展知識融合、實驗與課外研究融合等四方面,做到了從點到面、從單元到系統、“引導入門-基礎系列-專題研究-科學研究”的循序漸進的教學過程.

2.1.2 實驗教學內容體系建設

通過實驗進一步理解程序設計的基本知識,通過理論和實踐教學,使學生較好地掌握程序設計語言各方面的知識,掌握基本的程序設計過程和技巧,具備初步的高級語言程序設計能力,并能熟練應用程序設計集成環境進行程序設計語言的編寫、編譯與調試,達到全國計算機等級無紙化考試的要求.為配合理論教學我們將實驗分為以下三種類型.第一類是基礎與驗證型實驗,主要涉及該課程的相關知識點;著重培養學生邏輯分析的能力,學會使用流程圖、偽代碼描述問題,學會使用計算機的處理方法思考問題,把計算機語言的教學內容從數學游戲的圈子轉變到社會實踐中的計算機應用,培養和訓練學生分析、解決實際問題的能力.第二類是設計與開發型實驗,有效培養了學生綜合應用知識與技術的能力,培養學生帶著問題自主學習、尋找答案的能力.實際中結合學生信息管理系統、數值數據處理、信息數據管理等開發案例展開實驗.第三類是研究與創新型實驗,針對部分興趣高、編程能力強的學生設計該類實驗,重在培養學生的研究能力與創新意識.采用軟件工程的方法引導學生進行分析和設計,實現完整的小型應用系統,主要以“挑戰杯”、“創新杯”競賽、SRTP項目及畢業設計的形式進行開展.

2.2 理論教材及實驗教材相統一的教學資源建設

2.2.1 理論教材建設

根據《普通高等教育農業部“十二五”規劃教材》的要求,并按照2013年全國計算機等級考試調整方案要求,對教材每個知識點按照“提出問題—解決問題—歸納分析”三部曲進行建設.對每個實例按照“提出實例—程序設計分析—參考程序—程序運行結果—程序分析—注意事項”幾個步驟進行編寫.在各知識點中,增加了一些兼具趣味性和實用性于一體的程序實例,并補充了代碼風格、函數封裝、程序調試、常見錯誤分析等現代程序設計必備的知識.這些資源通過整合后上傳至網絡教學平臺成為網絡課程,由授課教師按課程進度授權給學生使用.

2.2.2 實驗教材建設

為配合等級無紙化考試要求,實驗教材運行環境建立在等級考試集成開發環境下,增加了無紙化上機測試題,包括選擇題、程序改錯題、程序填空題和程序設計題四大部分.教材建設過程中,收集整理了大量教學資源,注重立體教材建設工作,教材全部配套編寫了多媒體課件、講義和教案,習題提供標準答案.配套課件實現“文字分層顯示、算法動態演示”的功能,增強圖文并茂的特點.

2.3 CBE教學方式、項目驅動教學方式及雙語教學方式三層次實踐人才培養模式

強調實踐對理論教學的指導作用,將企業作為實訓基地,建立校企長期合作,采取校企互動的方式,針對性地培養既具有扎實的基礎理論知識,又能解決實際工程問題的復合型、實用型人才.實踐項目內容從知識方法應用、綜合設計到研究探索循序漸進,深化實驗項目的層次性和工程背景,實現以工程為背景、研究方法多樣、綜合應用所學知識、對實驗進行研究探索的程序設計類實踐教學體系,從而使程序設計類課程體系更加適應社會需求,更加靈活應變.實踐教學體系如圖1所示.

充分利用現代化教學手段,注重各種立體化教學資源的積累和充分利用,采用項目案例遞進式實訓過程LTM(Learning Training Mentoring)的循序漸進的模式提高實訓質量,利用網絡教學平臺優化課程答疑和反饋的方式和途徑,改革課程的考核方式使其更有利于檢驗學生的能力,廣泛利用網絡教學平臺幫助學生課后學習和自主學習,培養學生的學習能力.具體教學方式如下,教學過程見圖2所示.

2.3.1 CBE教學方式

第一層次是通過互動式和案例教學法,在教師的指導下根據教學目的和要求,運用多種形式啟發學生獨立思考,根據遇到的實際問題,進行綜合分析研究,提出見解,做出判斷和決策,從而提高學生分析問題和解決問題的能力;第二層次是基本操作技能訓練和基本工作能力培養,培養學生具有嚴謹的科學態度與規范的操作方法,采用仿真與實際相結合的手段,既加強了學生對基礎理論知識的理解,又學會了知識的綜合運用,使學生能運用掌握的理論知識來解決實際問題;第三層次是實踐和創新能力的培養,在實習基地實現基本技能轉化現實的工作方法和工作能力,實現“校園人”向“社會人”角色轉變.

2.3.2 項目驅動教學方式

從農業院校實際需求出發,項目力求既結合實際,又能涵蓋課程教學的要求.教師提出學生自學和開發、研究的進度,設計教學進程,以程序編制牽引理論教學,以項目開發和程序的拓展驅動教學.通過項目和實例講授程序設計的基本概念、基本方法,把重點放在解題思路上.從開始就使學生將注意力集中在所解決的問題領域,從具體實例理解程序設計類課程的開發特點和程序總體框架,通過實例本身既學會某一類問題的解決方法和算法設計,又掌握了程序設計類課程的基本語法、語句.即在程序設計類課程的環境下,針對農業類實際問題進行分析、構建數學模型、設計算法、最后編程實現.

在學習的不同階段設計不同針對性的實例,主要包括以下三個階段.第一,開始階段設計的實例是將學生的注意力吸引在程序設計類課程的總體功能和程序的總體框架上;第二,在學習中間階段設計針對某些數據類型或應用特點的實例、針對模塊分解和組合的實例、針對算法分析與設計的實例等;第三,在學習的后期進行綜合課程設計,將所學知識融會貫通.在設計實例的同時還需要調整課程的教學模塊,有些章節知識需提前引入,如函數、文件等,先不深入學習,僅作為宏觀分析問題解決問題的工具,可在后續實例學習過程中逐步加深理解和應用.

2.3.3 雙語教學方式

雙語教學是貫穿于以上各教學方式中的.作為程序設計語言,其語法表達采用的就是簡單而含義明確的英文單詞,且上機環境也為英文界面,二者關系密不可分.程序設計課程教學中加入適當的計算機及程序設計方面的英文專業詞匯,部分或全部教案采用英文形式,有助于學生專業英語水平的提高和盡快熟悉、適應以英文信息為基礎的軟件開發環境.

3 教學成效

程序設計類基礎課程實踐人才培養模式在全校推廣的幾年內,教學成效顯著,具有顯著的教學示范效果.(1)課程教學質量評價高,教學效果好.由教務處組織的學生評教結果顯示,課程組的所有教師近3年的評價平均成績均在90分以上.(2)凝練并更新教學內容,融入農業院校的特色先后編寫出版了8部教材,其中《C語言程序設計》兩部教材先后被列入《普通高等教育農業部“十二五”規劃教材》,“VB程序設計”和“C語言程序設計”課程先后被評為甘肅農業大學校級精品課程.按照省級精品課程建設要求,搭建了程序設計類課程學習網站,并開發了程序設計類課程學習論壇.(3)學生學習效果整體得到提升.我校學生參加全國計算機等級考試(二級)的過關率逐年穩步上升,并在全省高校中名列前茅;參加全國計算機等級考試(三級、四級)的學生人數逐年增加,過關率也有所提高.培養模式應用推廣期間,課程組教師負責指導學生參加學校SRTP項目50余項;指導學生參加第一、二、三、四屆甘肅省“創新杯”計算機應用技能大賽,共獲獎項30余項,參與學生90余人;指導學生參加全國大學生數學建模競賽,共獲獎項8項,參與學生24人;指導學生參加全國大學生電子設計競賽、共獲獎項3項,參與學生9人;指導學生參加甘肅省“挑戰杯”課外科技學術作品競賽,共獲獎項3項,參與學生10余人;近三年內課程組成員指導學生累積獲得省級以上獎勵120余人次.我校生源中農村學生居多,基礎教育階段接觸計算機較少,但在全國計算機等級考試中通過率已連續多年高于全省高校平均水平.

4 結束語

高等農業院校程序設計類基礎課程以培養實踐人才為根本目標,將CBE教學模式和程序設計類課程教學結合起來,形成了特色鮮明的2+2+3的實踐人才培養模式,全校推廣后教學成效顯著,具有顯著的教學示范效果,為高等農業院校培養具有“寬基礎、強特色、高素質、實用性”復合型實踐程序設計人才奠定了基礎.

參考文獻:

(1)付沙,薛娟,陳智俐.計算機程序設計類課程實驗教學改革與研究[J].計算機時代,2010(4):56-58.

(2)習慧丹,胡洋.高校計算機專業程序設計課程教學改革探討[J].信息技術與信息化,2012(3):37-39.

(3)喬淑云,黃剛.程序設計類課程教學改革與計算思維之培養[J].計算機教育,2012(10):17-23.

(4)王方.C語言教學模式:“簡單任務+歸納法”[J].安慶師范學院學報(自然科學版),2011,17(3):112-116.

第4篇

關鍵詞:虛擬儀器;比較教學;LabVIEW;儀器設計

作者簡介:楊武夷(1982-),男,福建泰寧人,廈門大學海洋與地球學院,講師。(福建 廈門 361005)

中圖分類號:G642.0     文獻標識碼:A     文章編號:1007-0079(2012)04-0072-02

20世紀80年代中期,美國國家儀器公司(National Instruments,簡稱NI)首先提出虛擬儀器(Virtual Instrument,簡稱VI)的概念。虛擬儀器基于計算機的軟硬件平臺,利用高性能的模塊化硬件,結合良好的虛擬儀器軟件平臺來完成各種測試、測量和自動化的應用,軟件是虛擬儀器的核心。[1,2]虛擬儀器在高校的教學研究中應用廣泛,在計算機輔助教學方面發揮著重要的作用,目前也有越來越多的高校開設“虛擬儀器設計”課程。

教學方法有很多種,“比較教學法”是其中應用廣泛的一種。比較教學法將新的知識和學生已熟悉的知識進行比較,找出新舊內容之間相同點和不同點,然后進行差異化的學習,重在存同求異。筆者在教學時,注重以學生在學習先修課程時所獲得的知識和體驗為基礎,將“虛擬儀器設計”和其他課程進行比較教學,這樣就能事半功倍。本文對比較教學法在“虛擬儀器設計”課程中的應用進行探討,以期在教學實踐中能不斷總結和改進該門課程的教學內容和方法,使這門課程的教學效果不斷得到提高。

一、“虛擬儀器設計”課程的主要內容

“虛擬儀器設計”課程包括虛擬儀器系統、虛擬儀器軟件平臺及課程實驗三大部分。虛擬儀器系統部分主要包括虛擬儀器的基本概念、系統組成、模擬信號和數字信號測量的基本方法、虛擬儀器總線接口技術及軟件標準等內容;虛擬儀器軟件平臺部分主要包括編程環境、數據操作、程序結構、文件I/O、數據采集、數據分析處理及儀器控制等內容;通過實驗教學使學生對虛擬儀器系統設計有深入的理解。軟件是虛擬儀器的核心,因此,虛擬儀器的軟件平臺是課程的核心。虛擬儀器軟件開發環境有文本編程環境和圖形化編程環境兩種。其中最具代表性的是NI公司提供的LabVIEW圖形化編程語言與Measurement Studio,其提供了完整的虛擬儀器開發集成工具和應用軟件。在課程中要培養學生的LabVIEW編程思想。

二、比較教學法在“虛擬儀器設計”課程中的操作性

烏申斯基說:“比較是一切理解和思維的基礎,我們正是通過比較來了解世界上的一切。”求同和求異是思維的兩個翅膀:求同在于認識事物的共性,而求異在于發現事物的個性。比較思維法就是要從具有類似性質的事物中尋找其差異,發現事物之間的共同點和不同點,因此,一般都用求同求異的方式來進行比較。在比較的過程中,要抓住事物本質,在引導學生認識事物間異同的同時解釋這種異同,使比較不流于膚淺,達到對知識深入理解的目的。

從課程體系的繼承性上看,學生在學習“虛擬儀器設計”課程之前已學習了模擬電子、數字電子、計算機組成原理、微機原理與接口技術、高級程序設計語言(如C語言程序設計)等電子和計算機相關課程。這些先修課程與“虛擬儀器設計”課程的主要內容有很大的繼承和延續性,有很多共同點,也存在很多的不同點。比較教學表現在“虛擬儀器設計”課程中,就是把虛擬儀器技術與已學的電子、計算機技術進行比較,找出其中相同點和不同點,通過比較鑒別,使學生比較全面地掌握虛擬儀器技術的一種教學方法。運用比較教學可以促使學生快速地理解和掌握虛擬儀器技術,可以在較少的課時內完成教學任務,從而提高教學效率。

三、通過比較教學認識虛擬儀器系統

虛擬儀器是計算機技術、大規模集成電路技術和通信技術發展的結果。通過介紹儀器的發展歷史,比較不同階段儀器之間的異同,使學生對虛擬儀器的概念和特點有深入的理解。從傳統儀器到虛擬儀器一共經歷了四個發展階段:第一代為模擬儀器;第二代為數字式儀器;第三代為智能儀器;第四代為虛擬儀器。四代儀器的共同點是它們都是信息獲取的手段,是認識世界的工具;不同點是它們的系統結構和功能不斷提升。模擬和數字式儀器功能簡單。智能儀器將單片或多片微處理器與傳統儀器有機地結合在一起形成單機,擁有對數據的存儲、運算、邏輯判斷及自動化操作等功能。不同種類的智能儀器其組成都可以分為數據采集與控制、數據的分析與處理、結果的輸出與顯示三大功能,且都是以硬件形式存在,儀器硬件存在冗余,使用率低,開發、維護的費用高,技術更新周期長。虛擬儀器基于計算機的軟硬件平臺,除了數據采集與控制需借助于通用的測量功能硬件,數據的分析與處理、結果的輸出與顯示都借助計算機平臺來實現,借助計算機的網絡功能可以實現分布式測控。與傳統儀器相比,虛擬儀器有多方面的優勢,[3]如表1所示。

虛擬儀器的關鍵技術之一是總線技術。作為連接控制器和程控儀器的紐帶,總線的能力直接影響著系統的總體性能。虛擬儀器總線接口技術有GPIB總線、VXI總線、PXI總線和LXI總線等。[3]選擇正確的總線是開發一個測量系統的關鍵。通過對比不同總線的性能、總線結構、接口技術和使用特性,分析比較不同總線的特性和適用情況。

四、通過比較教學掌握虛擬儀器軟件平臺

掌握虛擬儀器軟件平臺是虛擬儀器設計的核心,下面探討比較教學法在圖形化編程語言LabVIEW教學中的應用。要學好LabVIEW程序設計,就要掌握編程環境、數據操作、程序結構、文件I/O、數據采集、數據分析處理及儀器控制等內容。學生在學習“虛擬儀器技術”課程之前通常已經學習了高級程序設計語言,例如C語言程序設計,因此對計算機編程已經有一定的體驗。因此可以通過比較C語言和圖形化編程語言,進行知識和編程思想的遷移,提高學習效率。

C語言支持的基本數據類型有布爾型、數值型(整型和浮點型)、字符型、字符串和數組,其中除字符型數據LabVIEW不支持外,其他的基本數據類型LabVIEW都支持。除此之外,LabVIEW還支持復數浮點型。C語言是基于文本的語言,變量的類型通過文本聲明,而LabVIEW作為圖形化的編程語言,數據類型隱含在前面板的輸入控件和顯示控件及程序框圖面板的常量中,每種數據類型有相應的控件和常量。C語言和LabVIEW中數組都是同類型元素的集合,但C語言中數組元素的個數不能動態改變,而LabVIEW中數組元素的個數能動態改變。C語言中的結構體與LabVIEW中的簇有類似的功能,能包含任意數目任意類型的元素,LabVIEW中的簇是一個容器,可以將不同類型的控件放入容器。

C語言中的for循環結構、while循環結構、if…else…條件結構以及switch選擇結構在LabVIEW中都有對應的程序結構,這些對應的結構之間有共同點,同時也存在不同點。C語言中的for循環和LabVIEW中的for循環都可用于將某段程序循環執行指定的次數,但LabVIEW中的for循環的循環次數是固定的,不能像C語言中的for循環那樣可以在滿足條件時通過break語句來退出循環。另外,LabVIEW中的for循環通過以索引的方式獲取循環結構體外的數組,則for循環的次數由數組的大小決定。for循環結構和while循環結構中常常要進行前后兩次循環之間的數據交換,因此,LabVIEW專門提供了移位寄存器和反饋節點來實現前后兩次循環之間的數據交換。移位寄存器和反饋節點類似C語言中的臨時變量。當LabVIEW中的case結構的輸入端子輸入的是布爾型數據時,其等價于C語言中的if…else…條件結構;當LabVIEW中的case結構的輸入端子輸入的是整型數據時,其等價于C語言中的switch選擇結構。C語言程序是按照語句的順序從上到下逐條執行的,而LabVIEW程序框圖中相互獨立的圖形代碼(圖形代碼之間沒有連線)是并行執行的,LabVIEW中提供的順序結構能夠設定相互獨立的圖形代碼的執行順序。

LabVIEW提供了強大的文件I/O函數用以滿足不同的文件操作需求。雖然LabVIEW支持的文件類型很多,但文件I/O操作的一般流程和C語言中的文件I/O操作流程是類似的:首先創建或打開一個文件,然后從文件中讀取或向文件中寫入數據,最終關閉文件。和C語言類似,LabVIEW中利用文件引用句柄對文件進行區分,用于對文件進行操作。

五、實驗教學中的比較教學法

虛擬儀器設計分為硬件設計和軟件設計兩個方面,軟件設計是虛擬儀器設計的核心。在實驗教學中,一方面通過簡單的程序設計習題使學生掌握圖形化編程語言的編程思想,另一方面通過虛擬儀器系統設計使學生了解虛擬儀器的設計原則和設計步驟。

LabVIEW是圖形化編程語言,對象之間的數據通過對象之間的連線來傳遞,因此,當面對一個程序設計問題時,習慣C語言編程思想的學生可能一時無從下手。在這種情況下可以讓學生先思考怎樣設計C語言程序來解決問題,找到解決問題的方法,然后根據C語言程序中的結構找到LabVIEW程序要使用的程序結構,實現相同邏輯的LabVIEW程序。例如,要求設計一個LabVIEW程序計算一個非負整數的階乘。首先編寫C語言程序計算一個非負整數n的階乘n_factorial,程序如下所示:

unsigned int n,t,n_factorial;

.........;

t = 1;

for(int i = 0;i < n;i++)

{

t = t *(i+1);

}

n_factorial = t;

程序中利用到了for循環,通過變量t記錄每次for循環的計算結果。對應到LabVIEW程序,利用For循環和移位寄存器可以實現相同的邏輯,在For循環中移位寄存器中的數據與循環次序索引i加1的值相乘后保存在移位寄存器中,程序框圖如圖1所示。

虛擬儀器設計的關鍵是根據系統劃分的硬件和軟件功能選擇計算機類型和接口技術。虛擬儀器系統中某些功能既可以用硬件實現,又可以用軟件實現,方法多種多樣,因此,系統的具體結構千差萬別。基于虛擬儀器工程設計實例,分析比較不同系統實現的優缺點。在虛擬儀器系統設計的實驗中,要求學生考慮不同的系統實現方案,分析比較不同系統方案的特點,結合實際情況從中選擇一種進行系統實現。

六、結論

實踐證明,比較教學可以利用學生已有的知識幫助他們更好地掌握虛擬儀器的相關知識,把他們在高級語言程序設計中獲得的編程思想和方法遷移到圖形化編程語言的程序設計中,通過虛擬儀器系統設計的方案比較來了解虛擬儀器的設計原則。從近幾年的教學實踐來看,通過比較教學,極大地提高了學生的學習效率,學習效果顯著。

參考文獻:

[1]梁志國,孫宇.虛擬儀器的現狀及發展趨勢[J].測控技術,2003,(12):1-4.

第5篇

關鍵詞:計算機組成;計算機系統結構;課程群建設;教學改革

隨著多核/眾核處理器以及可重構計算技術的出現,計算機體系結構技術面臨重大改變,給相關課程的教學提出了新的問題和新的挑戰。如何在教學內容中體現技術的發展?如何利用FPGA技術提升實驗水平?如何統一規劃相關課程的教學?特別是在不久的將來,計算機體系結構可能發生重大變革的情況下,如何為那些將要在新型體系架構下從事計算機科學和技術研究和開發的學生打下良好的專業基礎?這些都是我們近年來一直考慮的問題。帶著這些問題,我們跟蹤了美國幾個一流大學近幾年來相關課程的教學內容及實驗方法。對照國際一流大學的先進做法,結合我校計算機人才的培養目標,我們提出了“計算機組成與體系結構”課程群建設思路,并根據實際情況對相關課程進行了教學改革實踐。

1國外一流大學相關課程教學情況

通過對UC Berkeley、Stanford和MIT等多個美國一流大學在相關課程方面教學情況[1-5]的跟蹤,我們發現,這些大學對相關課程教學都進行了調整,通過開設新課程或調整相關課程教學內容加入了多核/多線程處理器的相關內容,特別強調學生對HDL、FPGA、SOC、并行體系結構、并行程序設計等技術的掌握。這些大學在相關課程教學內容和實驗內容方面基本相同,都是以典型的四段或五段流水線CPU設計技術和存儲器層次化結構為核心內容,教學理念和教學思路也非常相似,都是站在計算機系統的高度闡述計算機硬件系統的結構和設計思想,強調軟件與硬件的關聯,使學生能很好地在高級語言程序、匯編語言程序、機器指令代碼和硬件機器結構之間建立相互的對應轉換關系,以建立對計算機系統的整體認識。

圖1給出了美國UC Berkeley大學2009年相關課程的設置概況,圖中箭頭反映課程開設先后關系。

圖1UC Berkeley大學相關課程設置[2]

CS61C(Machine Structure)主要包括C語言程序設計、指令流水線和存儲器層次結構等方面的基礎內容,以“C語言MIPS匯編MIPS目標代碼MIPS處理器設計”為主線組織內容,以“高級語言程序設計”實驗和“模擬器”實驗為手段,使學生建立單處理器計算機系統的整機概念。

CS 150(Components and Design Techniques for Digital System)主要介紹數字邏輯電路基礎知識和EDA設計技術,2009年以前的實驗主要是在FPGA開發板上進行視頻解碼及播放電路設計開發,從2009年開始改為“流水線CPU設計”,要求學生采用流水線方式設計實現16條MIPS指令,以串行接口方式從PC上裝入程序到FPGA開發板,并通過PC調試程序,最終通過VGA接口,將FPGA板連接到一個顯示器上,在該顯示器上顯示由所設計的CPU執行的一個游戲程序的執行結果,如圖2所示。

圖2UC Berkeley大學CS150課程綜合實驗內容[3]

CS 152(Computer Architecture & Engineering)著重介紹多處理器并行計算機體系結構,包括多核/眾核處理器、多處理器計算機系統以及各類并行處理機制等。

CS194為新開設的本科生課程,是一門基于FPGA的以計算機系統結構實驗為主的課程。在開設新課程的同時,該校還對相關課程內容進行了調整,從2009年開始,將CS152中基于FPGA的流水線CPU設計實驗移到了CS150課程中,把原來研究生課程CS252中的很多內容移到了CS152。

由此可見,在這類課程的教學中,UC Berkeley近兩年有一個明顯變化,就是在保留傳統課程內容的同時加強了基于FPGA的硬件設計能力的培養。此外,在本科教學中加深了并行體系結構方面的教學內容,而且教學內容的調整是在對相關幾門課的統籌規劃下進行的。

2課程群建設思想

隨著多核/眾核處理器技術的出現,我們意識到,必須對計算機組成與體系結構方面的教學內容進行調整。我們首先對本系開設的所有課程的教學內容進行了梳理。結果發現,由于課程間缺乏統一規劃和協調,教學存在內容大量重復或缺失、課堂教學和實驗內容不匹配、課程之間內容脫節等問題。有必要將相關課程組成一個課程群,以便在一個完整的框架體系下統一規劃、相互協調,構建科學合理的計算機組織與體系結構相關課程教學體系。為此,從2007年開始,我們提出并實施了“計算機組成與體系結構”課程群建設方案。

2.1課程群教學目標

根據本課程群在計算機系統中的重要位置,結合我系的生源情況和培養目標,我們提出課程群的基本教學目標為:提高學生對計算機系統的全面認識水平和系統設計能力,建立計算機整機概念,全面理解計算機系統的層次結構。具體包括以下幾個方面:了解計算機指令集體系結構的設計原則和設計原理;具備使用HDL進行計算機硬件設計的基本能力;深刻理解OS和硬件之間的分工和銜接關系;掌握從硬件角度出發進行編譯優化的基本技術;深刻理解從硬件角度出發編制高效程序的基本原理;提高利用硬件知識進行程序調試的能力。

2.2課程群建設思路

課程群建設的總體思路為:1)根據課程群建設總體目標,規劃好課程群涵蓋的知識結構和框架體系,合理定位各門課程的教學目標,把每個知識點落實到具體課程中。2)根據課程群知識點總體框架,擬定課程之間知識點銜接方案,并在教學過程中明確各知識點在不同課程之間的關系。3)根據規劃分頭編寫或修訂教材及教案,并在統一的框架下建設相關課程網站。4)在保留各課程獨立實驗平臺的同時,構建一個課程群公共實驗平臺,并使各課程實驗內容按照一定的關系有機聯系起來。

3課程群教學改革實踐

我們首先對現有課程進行了調整。將原先模擬電子技術部分內容合并到數字邏輯電路設計中,形成數字邏輯與數字系統課程;將原先的計算機組成原理和計算機系統結構內容合并,形成計算機組織與系統結構課程;同時建設一門新課高級并行體系結構。通過對相關課程的調整,我們構建了以“計算機組織與系統結構”為核心的課程群,如圖3所示。

圖中箭頭表示課程前后關系,其中計算機系統概論、數字邏輯和數字系統、計算機組織與系統結構為必修課;微機原理與接口技術、嵌入式系統原理、高級并行體系結構為選修課。此外,為了加強對學生FPGA、EDA、數字系統和流水線CPU等方面設計和實踐能力的培養,課程群教學規劃中專門設置了數字邏輯電路設計和計算機組成原理必修實驗課。

3.1各課程在課程群教學中的定位

圍繞課程群教學目標,根據課程之間的相互關系,我們確立了各課程在課程群教學目標中的定位:1)計算機系統概論從宏觀上介紹計算機系統涉及到的各個層次的內容,讓學生從整體上了解計算機系統的全貌和相關知識體系。2)數字邏輯與數字系統圍繞組合邏輯設計和時序邏輯設計兩大核心內容,在邏輯門到功能部件這兩個層次展開。以后續課程中用到的功能部件作為設計實例,采用“實例化”教學思路組織教學內容。3)計算機組織與系統結構從寄存器傳送級以上層次介紹單處理器計算機系統設計的基本原理,實驗重點在CPU設計和存儲器方面。該課程處于課程群中核心地位,一方面,先行課程中學生感到似是而非的問題在此要明確;另一方面,需要運用先行課程的基本功能部件構建更大規模和更強功能的部件;此外,本課程中提出的設計原則和實現原理要在后繼課程的計算機系統實例中得到體現。4)微機原理與接口技術定位為計算機組織與系統結構的基本原理在PC上的實例化教學課程,主要以目前流行的基于IA-32體系結構的PC為實例,實驗重點內容在PC的I/O接口技術。5)嵌入式系統原理定位為計算機組織與系統結構的基本原理在嵌入式系統方面的實例化教學課程。實驗教學重點是基于ARM處理器和VxWorks及 COS-Ⅱ操作系統的簡單嵌入式軟件開發技術。6)高級并行體系結構主要在更高層次上介紹多核/眾核CPU、多處理機系統、集群系統等不同粒度和規模的多處理器并行計算機系統的工作原理、實現方式及其應用領域。

3.2各課程教學內容的關聯和銜接

課程群中的課程之間有很多關聯,必須合理處理好關聯內容,使課程之間能有機銜接。對于關聯內容,我們的主要處理思路如下:

1) 數據的表示。

對于進位計數制及其相互之間的轉換、ASCII碼

表示、邏輯數據表示、漢字編碼、無符號數表示、帶符號數表示,要求學生在計算機系統概論課程中掌握,而在后繼課程中作為“回顧”內容;各種BCD碼的介紹和相關電路設計內容在數字邏輯與數字系統中講解;補碼特性和浮點數的表示則在計算機組織與系統結構中詳細介紹。

2) 功能部件。

邏輯門電路、半加器、全加器、加法器、比較器、編碼器、譯碼器、觸發器、寄存器、移位器、內存儲器的實現技術由數字邏輯和數字系統詳細介紹;計算機系統概論課程僅作概要性的功能說明和解釋;計算機組織與系統結構課程則運用這些基本電路來構建更大的功能部件。

3) 外存儲器。

有關磁盤信息的存儲、磁盤存儲器的構造、磁盤驅動器和磁盤控制器的接口、磁盤存儲器的性能指標等內容主要在計算機組織與系統結構中詳細介紹;計算機系統概論課程僅作概要性說明;微機原理和接口技術中不再講解。

4)I/O設備及其接口。

計算機系統概論課程從計算機硬件系統組成的角度簡單提一下常用的外部設備的功能;計算機組織與系統結構主要介紹各種外設抽象出來的一個通用結構,以及外設控制器的通用結構,并著重解釋清楚“外設―I/O接口(外設控制器)―I/O總線―主機”的連接關系;微機原理與接口技術則具體介紹PC機所用的一些接口電路、I/O總線及其互連。

5) 虛擬存儲器。

計算機組織與系統結構主要介紹虛擬存儲器的基本概念和MMU中涉及的地址變換、頁表和段表結構、快表,以及如何發現“缺頁”和發生“缺頁”時處理器中進行的一系列處理步驟;微機原理與接口技術具體介紹Pentium系列處理器對虛擬存儲器的支持,包括段選擇子、段描述符/描述符表、邏輯地址―線性地址―物理地址的轉換等。對于“缺頁”處理過程中涉及的問題,操作系統課程將會作詳細介紹。

3.3課程實驗內容的規劃和實施

課程群的實驗教學思路是,將各課程中相關實驗內容規劃在統一平臺上實現,使得實驗內容相互依托、避免重復,由低層逐步向高層過渡,最終使學生全面建立計算機系統的整機概念。

統一實驗平臺是Altera DE2/70開發板,其上擁有70000個邏輯單元的Cyclone® II 系列2C70型FPGA 芯片,并配有軟核處理器NiosII和相應的開發軟件:Quartus II、SOPC Builder、NiosII IDE、DSP Builder等,可以開展以下五個層次的實驗:功能部件CPU+存儲器軟核處理器+存儲器+總線+I/O軟核處理器系統+OS軟核處理器系統+OS+多媒體編碼等應用。

在Altera DE2/70統一實驗平臺上開展的實驗主要有以下幾個方面:

1) 數字邏輯電路實驗。

利用Quartus II實現基于HDL和FPGA的組合電路、時序電路和簡單數字系統設計實驗。

2) 計算機組成原理實驗。

利用Quartus II實現基于HDL和FPGA的ALU、寄存器組、桶型移位器、乘/除法器,單周期CPU、多周期CPU和流水線CPU的設計實驗。

3) 微機原理與接口實驗。

基于軟核處理器和SOPC開展總線、存儲器和I/O接口實驗。例如,通過總線實現外設和SRAM相連;利用UART實現輪詢、中斷和DMA方式I/O。

4) 嵌入式系統原理實驗。

主要包括兩類實驗:(1)基于NiosII+μCOS操作系統的實驗,例如七段數碼管顯示實驗、小型GUI

移植實驗和文件系統讀寫實驗等;(2)基于NiosII IDE的簡單應用系統開發實驗,例如簡單C語言編程實驗、簡單DSP處理實驗等。

有些課程除了在以上統一實驗平臺上開展實驗以外,還要求完成其他實驗,如計算機組織與系統結構的編程實驗,微機原理與接口的匯編程序設計實驗,嵌入式系統原理的基于ARM處理器的實驗等。

4結語

經過近年來的課程群教學改革實踐,我校相關課程的教學內容在廣度和深度上都有提高;課程間知識點的銜接更加合理,減少了重復,彌補了缺失。通過統一規劃,課堂教學內容和實驗內容相得益彰;在對課程群統一的教學實驗平臺和統一實驗內容的規劃下,我們實現了各課程間實驗內容的有機銜接。

由于課程群的建設時間較短,需要開展的工作還有很多,今后幾年,我們主要在以下幾個方面繼續進行課程群教學改革實踐:編寫相關課程教材以開展課程群系列化教材建設;加強實驗教學內容,增加和完善各類模擬器實驗;開設計算機系統綜合設計實驗課程。

相信通過以上一系列的教學改革措施,一定會改變學生“喜軟怕硬”的心理。學生對計算機組織與體系結構方面知識的掌握水平和運用能力將會有較大提高,為后續課程的學習打下堅實基礎。

參考文獻:

[1]UC Berkeley.Machine Structure[EB/OL].[2008-07-09].inst.eecs.berkeley.edu/-cs61c/su08/.

[2]UC Berkeley. Computer Architecture and Engineering[EB/OL]. [2009-05-07]. inst.eecs.berkeley.edu/-cs152/sp09/.

[3]UC ponents and Design Techniques for Digital Systems[EB/OL].[2009-02-16]. inst.eecs.berkeley.edu/ -cs150/sp09/.

[4]Stanford University. Computer Organization & Systems[EB/OL].[2009-06-15]. stanford.edu/class/cs107/.

[5]MIT. Computation Structures[EB/OL].[2009-05-08]. 6004.csail.mit.edu.

Construction and Reform of “Computer Organization and Architecture” Courses Group

YUAN Chun-feng, HUANG Yi-hua, WU Gang-shan, YU Jian-xin, WU Hai-jun

(Department of Computer Science and Technology, Nanjing University,Nanjing 210093, China)

第6篇

摘要:本文對我系計算機科學與技術專業的工程實習教學模式改革進行了探討,提出了外部工程實習基地和校內工程實習平臺相結合的模式,并重點介紹了校內工程實習平臺建設的模型。

關鍵詞:工程實習;教學環節;平臺建設

中圖分類號:G642

文獻標識碼:B

上海水產大學信息學院計算機科學與技術系在注重基礎理論課程建設的同時,加強實踐性環節的教學,在教學計劃中設置了專業實踐和綜合實踐課程,包括電路與電子技術設計、匯編語言程序設計實踐、數字邏輯課程設計、計算機組成原理實踐、基于C#的Windows程序設計實踐、基于.net的Web程序設計實踐、數據庫程序設計、軟件工程實訓、需求分析與解決方案設計等。但是單門課程的設計難以幫助學生建立起完整的系統設計理念和掌握開發技術,因此工程實習作為計算機科學與技術專業的一個重要教學環節是不可偏廢的。由于外部環境的變化與自身條件,學校此專業的外部實習基地條件不足,因而工程實習教學環節未達到應有的效果,現實情況要求我們尋求一種新模式。

1工程實習的安排

我們在大三期末和大四上學期安排學生專門完成工程實習的教學任務。將全體學生分成若干大組,每個大組配備專業指導教師。整個工程實習為三周時間,實習環節分成兩個階段。第一階段,校外實習時間為一周。在該階段學生在專業教師指導和組織下到計算機專業相關生產、開發企業參觀、學習,接觸社會,了解行業動態和需求。在實習的基礎上,每位學生要寫出實習調研報告。本階段的目的就是讓學生直觀地、感性地認識IT行業,初步接受IT職業訓練。第二階段,校內實習時間為二周。該階段把學生分成若干小組,每組4~5人。在校內的工程實習平臺上,每組根據一個實際的需求,其成員共同完成系統總體設計、功能模塊劃分、代碼設計及調試、系統聯調等階段工作,最終開發出符合需求的計算機應用系統。本階段的目的不僅僅是鍛煉學生利用所學知識解決實際問題的能力,而且更重要的是培養學生協同工作精神。在這一階段,指導教師應事先了解學生的情況,進行合理的分組,盡力做到組內學生能力均衡,要求各組內部的成員既要分工,又要協作。為防止在單門課程設計中出現的每組僅由個別同學來完成整個系統開發工作,而其他同學袖手旁觀的現象。在校內的工程實習中采用全面的成績評定規則,即在本階段的后期,指導老師要對每組的開發工作進行驗收。在大組的范圍內由小組主要成員演示他們所開發的系統功能,小組中的每位同學都要進行簡單答辯。

2校內工程實習平臺的建設

結合學生前三年課程學習的實際,平臺被建設成以SQL Server數據庫系統為核心,采用C/S結構的計算機應用系統模型。整個工程實習平臺分成如下8個子項目建設:校園“一卡通”管理系統設計;連鎖酒店網絡管理系統設計;學生上機管理及考勤系統設計;超市冷凍機遠程監測系統設計;冷藏車多溫區溫度記錄與控制系統設計;基于ARM7的實時檢測系統的設計;RPG游戲軟件設計;多媒體系統設計。每個子項目均模擬一個實際應用問題,但進行了必要的簡化處理,以適合4~5個學生的開發小組在二周時間內完成。生產實習平臺為每個子項目提供所需的硬件設備,包括4~5臺連成局域網的計算機和IC卡讀寫器、RS232-RS485轉換模塊、調制解調器等及軟件學習模板,使學生具有開展工作的必要條件和環境。

在工程實習平臺的硬件建設中,我們盡量利用現有的實驗設備。利用現有網絡機房的計算機,每4~5臺為一組,相互之間用以太網連接,其中一臺用作數據庫服務器,其他的用作客戶機。如果所開發的應用系統中需要通信前置機,則利用其中一臺計算機來承擔通信前置機的任務。對應用系統中需要的一些設備,如IC卡讀寫器、溫度傳感器、RS232-RS485轉換模塊等,采用自制或購買。而對于有些不能自制或購買的設備,如PH值參數采集器等,分別用一臺計算機來模擬,通過程序模擬這些設備參數的產生及設備動作。

在工程實習平臺軟件建設中,為每個子項目開發了一套軟件學習模板。軟件學習模板將提供關鍵單元軟件和子項目系統軟件。關鍵單元軟件是指學生以前沒有接觸過的設備接口軟件,如傳感器的讀寫程序、串口通信程序等;子項目系統軟件是指按照系統設計需求,設計的系統軟件架構及按此架構設計的所有功能程序。學生通過對軟件模板的學習和借鑒,可縮短開發周期,在二周時間內完成該階段工程實習任務,達到學習和鍛煉的目的。

3工程實習具體實例

本小節以工程實習平臺中的“基于ARM7的實時檢測系統的設計”子項目為例,來說明工程實習平臺的建設內容。子項目的需求為系統必須具備以下3個功能模塊。

(1) 檢測模塊。本模塊包括三部分,分別是溫度檢測、PH值檢測、光照值檢測。

j 溫度檢測中采用的是單線制溫度傳感器18B20,檢測精度可以控制在±0.5℃。該溫度傳感器有如下特性:

獨特的單線接口僅需一個端口引腳進行通訊

簡單的多點分布應用

無需外部器件

可通過數據線供電

零待機功耗

測溫范圍為-55~+125℃

溫度以9位數字量讀出

溫度數字量轉換時間為200ms(典型值)

溫度傳感器18B20會將溫度轉換為電流,溫度每增加1℃,它會增加1μA輸出電流。在溫度測量中,傳感器存在熱慣性,在動態測量中表現為測量值落后于真實值而跟隨介質溫度的變化,為此必須改善傳感器本身的動態特性。采集的數據送入微處理器。

k PH值檢測選用PHJ-206作為PH值傳感器,為其設計了放大、濾波電路,采集的值經放大處理后送入微處理器。

l 光照值檢測采用的是一種職能光電轉換傳感器TSL230B,它可直接對可見光進行頻率轉換;其靈敏度、分頻輸出可由程序控制,反饋采集的數據可以直接傳入微處理器。

(2) 控制模塊。本模塊也包括三部分:溫度自動控制、PH值自動控制和光照自動控制。

j 溫度自動控制。溫度自動控制是通過接受STR730發出的溫度信號來判別溫度是否正常,是偏高或是偏低,以便采取相應的措施。結構圖如圖1所示。

圖1 溫度控制結構圖

如圖1所示,傳感器將數值傳人處理器后由處理器通過算法來計算溫度是否在范圍內,如果高出預設的范圍,則打開制冷裝置;如果低于預設范圍,則打開加熱處理,直到溫度在正常范圍內。

k PH值自動控制。程序每分鐘檢測控制一次加液裝置,當檢測到PH值超出PH值范圍時,啟動加液裝置,啟動15ms后關閉;如下一分鐘PH值仍超出范圍,繼續開加液裝置,15ms后關閉;如此循環,直到PH值在正常設定范圍內。結構圖如2所示。

如圖2所示,經由PH值傳感器將所采集的PH值傳入處理器進行溢出計算,判斷PH值是否在預設范圍內,如高于預設范圍,則打開加液裝置;如果低于預設范圍,則打開減液裝置,直至PH值在正常范圍內。

l 光照強度自動控制。程序每隔一定的時間對光照強度進行檢測,所采集的數據通過I/O中斷記數傳入處理器,通過對該數據的溢出計算來判斷是否在正常范圍內,如高于預設值則打開光源;如低于預設則關閉光源,直至光照強度在正常范圍內。

圖2 PH控制結構圖

(3) 顯示模塊。顯示模塊是面向用戶的模塊,它提供給用戶一個可視的界面,用戶則可以通過此界面來對系統進行按鍵操作,以達到用戶的需求。顯示模塊的主要配件為LCD液晶屏,不同型號的LCD所擁有的功能是不一樣的。顯示模塊還必須能將檢測裝置所采集到的數據實時的顯示在LCD上,再進行是否溢出的判斷。

硬件平臺構建好了,還需提供必要的軟件模板,以供學生學習、借鑒。子項目系統軟件是符合概要設計需求的、具有比較完善功能的系統程序,包含參數采集、參數管理統計、異常情況提示、基本信息管理等模塊。子項目系統軟件只作為學生學習參考的模板,學生開發的系統不能照搬模板程序。

4成績評定規則

成績評定的指導方針是激勵學生互相合作、自主創新。學生成績的評定并不是由指導教師一人評定,而是在大組范圍內學生演示的基礎上由學生參與打分。具體成績評價規則如下:

(1) 工程實習以小組為單位,考核整個小組開發任務完成的情況。小組成績分為4個等級:優、良、及格和不及格。

?小組成績為優的指標:小組所有成員均積極工作,合作精神好,整體功能及用戶界面完成佳,有創新點,并且有較規范的設計文檔資料;

?小組成績為良的指標:小組大部分成員均積極工作,合作精神好,設計任務書中的功能需求均能自主實現,人機界面友好,并且有較規范的設計文檔資料;

?小組成績為及格的指標:合作精神較好,仿照模板軟件能完成整個系統設計,系統整體功能聯調運行通過,能提交設計文檔;

?開發小組出現下面情況之一,小組成績為不及格:

① 子項目的所有功能僅由某一個同學獨自完成,小組其他同學沒有參與工作。

② 系統整體不能運行。

③ 所開發的系統未能實現設計任務書中所需求的基本功能。

(2) 學生的個人成績分成5個等級:優、良、中、及格和不及格。每個學生的成績與小組成績掛鉤。

?成績為優的小組,其主要完成者(1~2人)成績為優,其他同學成績為良;

?成績為良的小組,其主要完成者(1人)成績為優,其他同學成績為良或中(視承擔任務的情況而定);

?成績為及格的小組,其主要完成者(1~2人)成績為良,其他同學成績為中或及格(視承擔任務的情況而定);

?成績為不及格的小組,其主要完成者成績為中,其他同學成績為不及格。

參考文獻

[1] 方愷晴. 計算機專業實驗教學改革的探討[J]. 實驗室研究與探索,2002,21(1):6-8.

[2] 沈建華,姜寧. STR71X系列ARM微控制器原理與實踐[M]. 北京航天航空大學出版社,2006.

[3] 廖日坤. ARM嵌入式應用開發技術白金手冊[M]. 北京:中國電力出版社,2005.

第7篇

[關鍵詞]圖像處理;FPGA

中圖分類號:1P391.4l 文獻標識碼:A 文章編號:

Abstract: Currently, computer-based image edge detection in various fields occupy an important part, through effective edge detection, can greatly simplify the subsequent image processing of the image information analysis. Therefore, real-time image edge detection based FPGA research and design has been received much attention. This paper studies the FPGA-based image edge detection algorithm.

Keywords: image processing;FPGA

1邊緣檢測算法

圖像銳化就是增強圖像的邊緣或輪廓[1]。圖像邊緣是圖像的基本特征之一,它包含了圖像中豐富的信息,圖像邊緣增強廣泛應用于監控、安防即醫療等領域。20世紀70年代末,美國的麻省理工學院的Marr和HiWretdi提出了一種類似于人類視覺的“邊緣檢測理論”,從而解開了圖像銳化算子研究的序幕[2]。之后,圖像邊緣特征的提取方法一直是圖像處理和分析領域的研究熱點。

常見的銳化算子還有羅伯特(Robert)算子,普瑞維特(Prewitt)算子,索貝爾(Sobel)算子,以及拉普拉斯(Laplacian)算子[3]。所有基于梯度的銳化算法之間的根本區別是算子應用的方向,以及在這些方向上逼近圖像一維導數的方式和把這些近似值合稱為梯度值的方法。

圖1-1 Robert算子

羅伯特(Robert)算子是在2×2窗口鄰域中計算對角導數,Robert對應的模板如圖1-1 所示,差分計算式如下式示:

(1-1)

上式能夠提供較好的不變形邊緣取向。對于同等長度但取向不同的邊緣,用羅伯特算子能獲得較好的處理效果[4]。但是由于采用的2×2窗口較小,所以圖像處理精度不高。

采用更大窗口的Prewitt算子處理結果相對Robert算子獲得了更多的圖像邊緣信息。另外,羅伯特算子的一個重要問題是由于不包括平滑,所以對于噪聲比較敏感,為了解決上述導數算子對噪聲相應敏感的問題,可以在圖像進行導數運算之前,先對圖像進行平滑處理(如局部平均)以減少噪聲[5]。普瑞維特(Prewitt)算子從加大邊緣增強算子的模板大小出發,由圖1-1的2×2模板擴大到圖1-2的3×3模板來計算差分。

圖1-2 Prewitt算子

依據圖1-2的兩個模板卷積形成該算子,圖像中的每個像素都用這兩個核做卷積,一個核對垂直邊緣影響最大,另一個對水平邊緣影響最大。兩個卷積的最大值作為該點的輸出值。

兩個方向的差分計算式如下:

(1-2)

(1-3)

普瑞維特(Prewitt)算子的差分運算為不加權的平均值差分算子,屬于兩個互相垂直的平均值差分算子組合。為了增強靠近中心像素點像素值的權重,提出了索貝爾(Sobel)銳化算子。索貝爾(Sobel)算子是一種加權平均算法,該算法理論認為鄰域的像素對當前像素產生的影響不是等價的,所以距離不同的像素點具有不同的權值[6],對結果產生的影響也不同,因而具有更好的抑制噪聲能力。對應模板如圖1-3所示。

圖1-3 Sobel算子

具體定義為:

(1-4)

(1-5)

(1-5)

其中, 是圖像中對應于3×3像素窗口中心點(x,y)的二維梯度絕對值,Gx是該點水平方向梯度值,Gy是垂直方向梯度值。為便于硬件實現,上式修正為:

(1-7)

拉普拉斯(Laplacian)算子是一種二階的微分算子,其定義圖像 (x,y)的梯度為:

(1-8)

對于離散數字圖像,二階微分算子可用二階差分來代替,從而拉普拉斯算子可以表示為:

(1-9)

相應的有拉普拉斯算子對應的模板如下圖1-4所示:

圖1-4 拉普拉斯算子

拉普拉斯算子是一個各向同性、線性和位移不變的邊緣檢測算子,對細線和孤立的點檢測效果好,但拉普拉斯算子丟失了邊緣方向信息,常產生雙像素的邊緣,且對噪聲有加強作用,這些都是圖像邊緣提取中不希望出現的[7]。由于這些原因,通常拉普拉斯算子并不直接用來進行邊緣檢測,而是需要與其它算法相結合以便利用拉普拉斯算子的特點,比如用高斯函數的拉普拉斯與圖像做卷積來檢測圖像邊緣,但無疑這樣就更進一步增加了算法的復雜度,拉普拉斯算子本身就已經是一個二階微分,再與其它算法結合則更不利于算法硬件實現因此,綜上所述,本課題設計選用3×3窗口的索貝爾(Sobel)銳化算子,在實現邊緣提取的同時盡可能的保留圖像背景信息,獲得更好的銳化效果。

2 基于FPGA實現閾值銳化算法

上文中己對課題所設計圖像處理平臺所需要的算法進行了分析和選取,針對FPGA硬件實現的特點還需要對算法做進一步的修正,在3×3方形窗中用像素點來表示,那么式(1-4),(1-5)可表示為:

(2-1)

(2-2)

其中對應像素排列為:

這樣,就可以方便的利用VerilogHDL硬件編程實現該算法。對應軟件設計公式如下:

(2-3)

(2-4)

(2-5)

參考文獻:

[1] 潘松, 黃繼業. EDA技術實用教程[M]. 北京: 科學出版社, 2002.

[2] 周潤景, 圖雅, 張麗敏. 基于QuartusII的FPGA/CPLD數字系統設計實例[M]. 北京:電子工業出版社, 2008.

[3] 趙曙光, 郭萬有, 楊頌華等. 可編程邏輯器件原理、開發與應用[M]. 西安: 西安電子科技大學出版社, 2000.

[4] 姜立東. VHDL語言程序設計及應用[M]. 北京: 北京郵電大學出版社, 2004.

[5] 李平. 單片機嵌入式系統復位電路的設計選用[J]. 機電工程技術, 2004, 33(7): 145-146.

[6] 馬濤, 趙宇, 來清民. 基于80C552單片機的多芯片同步復位電路[J]. 微計算機信息, 2007, (11): 137-138.

主站蜘蛛池模板: 兴义市| 广东省| 汽车| 阿城市| 鄱阳县| 江北区| 班玛县| 临猗县| 璧山县| 景东| 平泉县| 洞头县| 宁德市| 曲阜市| 贺州市| 颍上县| 池州市| 辽阳市| 卓资县| 平定县| 古交市| 尚义县| 石阡县| 邵阳市| 吉安市| 友谊县| 准格尔旗| 清徐县| 宜宾市| 广安市| 伊春市| 安西县| 增城市| 河津市| 象州县| 平遥县| 揭西县| 长宁区| 得荣县| 蚌埠市| 苗栗市|