前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇計算機開發入門自學范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
面向學科的計算機專業教育比較成熟。在國際上,ACM/IEEE-CS經常公布計算機學科課程設置的最新方案。我國計算機專業的教學已有近50年的歷史,許多高校形成了比較成熟而完整的體系。而非計算機專業的計算機基礎教育,與國外的情況相比,我們有著明顯的特色,即我國有教育部的計算機教指委和“全國計算機基礎教育研究會”以及各地的分會,進行計算機基礎教育的研究。如何進行計算機基礎教育,教育模式需要根據不同院校的特點進行分類、分層次指導。由于計算機技術發展快,實踐性強,在計算機基礎教育的模式上要避免應試教育的不足,強化素質教育。
應試教育模式的不足
在我國,社會對人才的需求,尤其是對高素質人才的需求,不僅僅要掌握本學科的技能,還要掌握相關的計算機應用技術。雖然我國的教育事業已經取得長足的進步和發展,但基礎教育課程的設置及教育模式卻被深深地打上了應試教育的烙印,課程設置的目的在于形成學生系統高深的知識體系,而忽略了實際應用能力的培養;由于學科課程長期擁有主導地位,致使教學模式比較單一,從而導致課程模式結構的失衡;長期以來,知識教育作為教育的重點,過分強調知識在教育中所占的比重,這也從某種程度上導致了學生知識與能力之間的失衡;在課程設置中,由于所謂的主要課程和次要課程之間的鴻溝長期難以填平,從而引起了學生知識結構的失衡;在課程的評估方面,長期以來是以既定課程為評估依據的,因此使整個教育、教學活動圍繞著某些既定的課程而顯得被動化,這一切,都明顯地顯示出應試教育的格局。在計算機基礎教育中,計算機等級考試,就是明顯帶有應試教育的烙印。等級考試大綱更新慢,跟不上計算機技術發展的步伐,為了考試,學生不得不去考那些學完可能用不著的內容,甚至有的考試,要求學生熟記操作步驟,這與素質教育是背道而馳的。
就目前的就業形勢來看,用人單位也要求應聘者有實際工作經驗,這也顯示了社會對人才實際工作能力的要求,我國的高考模式,也明顯存在應試的弊端,但目前還比較難改變。前幾年,在社會上曾引發關于“高分低能”問題的討論,實際上,這體現了人們對教育模式和人才培養模式的反思,人們已經開始注意到素質教育與能力培養的重要性,同時,對教育也提出了一個嚴肅的話題――人才培養如何適應社會的需求。今天我們進一步考察這一問題,顯然這些重知識輕能力、重共性輕個性的單一的課程模式和失衡的課程結構與素質教育的理論是相背離的,無助于21世紀人才的培養。因此,我們提出“素質教育”的口號。
立足素質教育,培養創新性人才
聯合國教科文組織在1972年發表的《學會生存》,自始至終強調著培養創造性以適應生存需要的主題,該報告認為:“人是在創造活動中并通過創造活動來完善他自己的。教育既有培養創造精神的力量,也有壓抑創造精神的力量,教育在這個范圍內有它復雜的任務,這些任務有:保持一個人的首創精神和創造力量,傳遞文化而不用現有的模式去壓抑他,鼓勵他發揮天才能力和個人表達方式,而不助長他的個人主義,密切注意個人的積極性和獨特性而不忽視創造也是一種集體活動。”這里提出了多種素質潛能應全面而和諧地發展,其別強調了創造性的重要作用。
美國在1989年發表《普及科學――美國2061計劃》,提出教育改革著眼于提高國民素質。日本政府在1982年就提出創造力開發是邁向21世紀的保證。
1996年,國際21世紀委員會的報告《教育――財富蘊藏其中》進一步指出:“教育的任務毫無例外地使所有人的創造才能和創造潛能都能結出豐碩的果實。”
由此可見,國際社會,尤其是技術先進的國家,早已開始注重素質教育和創新教育。在我國,隨著科學技術的發展,對人才的培養提出了新的要求,并把素質教育作為國家競爭力可持續發展的戰略之一。
國際社會意識到人才的素質將直接影響到社會生產力的發展和人類的進步,社會的發展,科技的進步,呼喚高素質人才的培養,只有進行素質教育,才能滿足社會對人才的需求。素質教育向應試教育的挑戰,決不是原有教育方式的改良和修改,它要求我們重新認識教育在社會中的地位、作用和價值,重新確立教育目標、構建新型的課堂教育模式,改革教育內容和教育手段,更新建立教育督導評估體系,大力調整教育結構。
高等院校在培養高素質創新性人才方面,肩負著歷史的重任。一流人才的培養,在當今的信息時代,需要的不僅是具有扎實的相關專業的基礎,更需要他們掌握必要的計算機工具,這是信息時代社會對人才素質的基本要求之一。我們的目標是培養創造性人才,但創造性人才并不意味著要開發出什么產品或是發明創造。創造性從某種意義上說,認為是一種能力和素質,它表現在能夠進行創造性的工作。因此,就人才培養來說,就要處理好培養“創造性人才”和培養“應用性人才”的關系。
考察計算機技術應用成果發展的歷程,大量計算機應用領域的創新來自于非計算機專業人才的工作,單純的計算機專業人才有時候并不能很好地適應某些工作,相反,非計算機專業的人才,在學習必要的計算機應用技術并打下必要的計算機應用基礎后,就可以把計算機專業的知識應用到相關的領域,從而做出開創性的工作。因此,對于計算機基礎教育的內容和方法,在人才培養的定位上和相關課程的設置以及學習方面的引導上,就必須根據計算機發展的特點,從素質教育的理念出發,不斷進行計算機基礎教學改革的探討與實踐,以推進素質教育與人才培養的有機結合。
目前計算機基礎課的教學模式
目前高校非計算機專業學生的計算機能力的培養,可以分為三個層面:即屬于共性要求的基本操作能力、綜合運用所學的信息技術知識有效地處理本專業的任務的應用開發能力和研究創新能力。因此,根據不同學科的特點以及針對人才的不同培養方向,并結合個人興趣,學校在計算機類的課程設置及教學模式方面必須根據計算機技術發展的特點及時作動態調整。
下面討論部分課程的建設及教學模式的不足。
1.大學入門信息基礎教育
由于近幾年中小學信息技術的開始普及,大學計算機教育不再是零起點,于是對大學計算機基礎教育提出更高的要求。對大學入學新生進行計算機考試分類,開展分類教學,取得很好的教學效果。
大學入門信息基礎教育(這門課程名稱不統一,有的稱為“計算機文化基礎”,有的稱為“大學計算機基礎”,實際上就是一個入門信息基礎課程),是以計算機基礎知識為主體的計算機應用基礎入門教育,對這一層次課程的定位在于讓學生能夠掌握必備的基礎知識。內容包括計算機的基本組成和計算機系統的基本知識、常用應用軟件的使用、圖形編輯與處理、互聯網的基本知識、網頁制作及其應用等。通過第一部分內容的學習,使學生能夠掌握計算機的基本技能。從教學情況來看,由于中小學信息技術基礎課程的普及情況不完全同步,在入學之前,有的學生已經接觸過計算機,有的還缺少對計算機的基本認識,這就對教學提出了一個問題,如何根據不同情況的學生進行教學,從而能最大限度地滿足學生掌握知識的要求;對于已經對計算機有所了解,并學有余力的學生,如何在現有規劃內容的基礎上進一步拓寬學生的知識面,這一層次的授課面有一個特點,那就是不論何專業的學生,這些內容都是必須掌握的,因此,對不同的系和專業,借鑒國外的相關課程的教學實踐,可以把這一部分的課程內容制作成基于Web的網上教學資源,使學生能夠在教師的指導下自學這一部分的內容,或在教師/助教的指導下進行相關的實踐。考試以實踐制作成果進行考核。但在這一門課程的考試上,部分地方存在著讓學生死記硬背操作步驟這種紙介質考試,這是嚴重背離素質教育理念的。在這個方面,英國劍橋大學的經驗值得 借鑒。
2.計算機程序設計基礎課程
計算機程序設計基礎課程,對非計算機專業理工科學生來說,是一門非常重要的計算機應用技術基礎課程,該課程將能很好地訓練學生分析問題和解決問題的能力,培養學生編程開發和應用能力,計算機編碼能力、程序設計能力、邏輯思維能力以及應用計算機技術解決本學科問題或創新性解決本學科問題的能力。
如何進行這門課程的建設,大家也在進行著不同的思考。這門課程對理工科學生有較高要求,而對文史哲農醫類學生則可以根據實際情況制定教學要求。在這部分的教學過程中,課程內容應該與學生的專業特點、個人興趣及社會的需求有機地集合起來,這樣能最大限度地發揮學生的主觀能動性,帶來較好的教學效果。
但這門課程的教學過程驅動有兩種,一種是語法驅動,另一種是應用案例驅動。語法驅動,實際上是定位在產品培訓上。而不是定為在程序設計的體系與方法上。實踐表明,實施語法驅動教學法后,學生仍然掌握不好語法,對于較大的應用,設計不出較好的軟件構架。但由于存在的某些考試方式,又使得語法教學能滿足考試的需求,雖然考試成績與實際能力相差甚遠,但應試教育的陰影使得部分地方的程序設計課程帶上了應試教育的色彩。
深入分析培養目標,我們認為,這門課程應該用案例驅動進行教學,語法內容知識作為入門階段進行簡要介紹,然后在案例教學中去體會語法結構的應用,這樣更能深入掌握程序設計與實現的內涵。而考試方式,完全可以通過學生的項目訓練來完成,不一定要用紙介質的試卷,或者可以用30%的紙介質試卷成績+70%的項目訓練作為總成績,這樣更能體現能力的培養。
此外,應用環境的落后,也是這門課程建設中存在的問題。調查結果表明,部分院校由于受等級考試的影響,教學使用的編譯環境不得不使用10年前16位的TC編譯環境,這與時代的發展極不相襯。
為進一步發揮學生的潛能,在課外的輔導中,我們注重學生的開發能力、系統化的分析能力、應用能力的培養。
3.公共選修課的建設
為了體現個性化素質和能力的發展,在后續課程中,可以建立公共選修課課程群。比如開設數據庫技術基礎、操作系統原理、VC++面向對象程序設計、網絡技術基礎等課程。
我們調查了部分學校,認為清華大學等兄弟院校在這個方面可作為很好的示范。從教學的情況來看,選修課也應注重提煉基礎性的內容,使學生對基礎性的內容學得比較扎實。在這些課程的教學過程中,應該以培養學生的綜合應用能力為出發點,課堂用例及作業大都以綜合應用型的題目為主,這類的作業有助于提高學生的學習能力和綜合應用所學知識的能力。
構建選修課構架,目標定位于培養多種模式的復合型創新性人才。開設不同的選修課,可以使學生根據自己的興趣進行相關課程的學習,這樣可以避免同一模式的知識結構,充分發揮學生的主觀能動性,展現學生的個性,培養其創造性。
結語
從目前的調查結果來看,普遍認為在教師指導下的學生自學及對不同程度的學生可以超課程要求進行因材施教的教學模式,比較適合學生能力的培養與素質的提高。實施分類分層次教育,從而達到多模式個性化培養、進一步開發學生的潛能、進一步培養學生的綜合能力、分析問題和解決問題能力的目的。
關鍵詞:C語言;程序設計;經典教材;計算機教育
中圖分類號:G642 文獻標識碼:B
1引言
只要人們提到學習C語言,都會不由自主地和譚浩強三個字聯系在一起,特別是20世紀80年代以后的學生,都是在譚老師的《BASIC程序設計》、《FORTRAN語言》、《C程序設計》的指引下走過來的。特別是20世紀的90年代中后期,全國非計算機專業學生的計算機應用能力等級考試,將C語言納入到考試的范疇,C語言便進入大學計算機公共基礎課的講堂,譚老師的《C程序設計》因為系統性強、通俗易懂、例題豐富,并且實用性強,很適合初學者,瞬時風靡各大高校,成為許多理工科專業學生書包中的必備書籍。多年的一線教學體會,我始終推薦該書為使用教材或主要參考書。
2適用各類學習對象
筆者從20世紀90年代中期開始講授C語言,至今已有15年,授課對象有計算機專業和非計算機專業的學生,也有大專生和社會上成人教育的函授學員,使用的教材主要是譚老師的《C程序設計》,從第一版到第二版、第三版,同學們都覺得這本書好,從沒有學生對選用這本教材提出異議。事實上,國內許多高校的非計算機專業用譚老師的書作為“C語言程序設計”課的教材,而且許多高校的計算機專業同樣也用譚教授的書作為“C語言程序設計”課的教材,自學C語言程序設計的讀者更是不約而同地選擇譚教授的書作為叩開C語言大門的入門書。
最初學習C語言的主要是計算機專業學生,而且大都是作為第二語言開設的,后來才逐漸演變成作為第一語言,而部分非計算機專業的學生也有這種歷程。當C語言作為第一語言開設后,《C程序設計》的第二版便增加了“算法”,并安排在第二章(C語言概述之后),使學生首先掌握常用算法(如求一批數的累加和、累乘積,判斷某年是否為閏年,判斷一個大于等于3的正整數是否為素數等算法)的編程思想,而后再講解具體的語法定義、規則,以及算法的具體實現,將程序語言的講解與算法的分析有機地結合起來,同時知識的講解有螺旋式上升的趨勢,非常符合初學者的認知規律,受到各種學習對象的歡迎。記得有一年上成教的課,當時成教教材管理部門選用了其他教材并發給了學生,筆者在第一次上課時便將譚老師的《C程序設計》作為主要的參考書推薦給了學生。上了兩次課后,許多同學反映:“老師,我們這本教材沒有譚浩強那本講得清楚”,筆者后來向成教學院的有關人員提出下一屆更換教材的建議,以后使用的教材都是譚老師的《C程序設計》這本教材。
3內容全面、結構清晰
《C程序設計》一書涵蓋了程序設計基礎知識和C語言程序設計的全部內容,并介紹了大量常用算法。在C語言中,數據類型豐富,運算符也比較多,程序設計自由度大,這些都給初學者帶來了較大的學習難度。本書從C語言的結構開始,從最簡單的輸出“This is a C program.”、“求兩數之和”、“求兩個數中最大者”實例出發,將基本的程序結構中應至少有一個輸出、最簡單的變量定義和使用、C程序是由函數構成的知識點講解得非常清晰,只要懂點英文,就能讀懂程序。進而介紹具體的數據類型、運算符、表達式、基本的輸入輸出函數,使初學者很快就能編寫出比較簡單的程序,看到自己的學習效果,很有成就感。而后開始介紹稍復雜的程序結構(選擇結構、循環結構)和數據類型(數組),并結合圖例講解和實現常用的算法。在函數一章通過利用前面的講過的實例復習已學的知識點,同時也降低了學習函數的難度。在讀者會編寫基本的C程序后,才開始介紹C語言的特色部分,如編譯預處理、指針、結構體、共同體、位運算文件等,將C語言程序設計的知識點全部展開,難度逐漸地增加,而沒有采取在講解函數之前先講解指針的做法。這種循序漸進、螺旋式的教學內容安排非常符合認知規律。
4深入淺出、講解透徹
大學教材是供人們使用的,它既用于老師教,又供學生自學,也可作為有關人員的參考用書。它不但要強調基礎知識和系統的完整性,而且也能使人通過自學就可能進入一個新的發展領域。這就要求一本好的教材既要內容完整,同時又必須能夠做到深入淺出,講解透徹。《C程序設計》一書各個章節的編寫通過提出問題、分析問題、解決問題,然后再歸納總結的方法,將復雜難懂的抽象概念與實際應用實例結合,與形象的比喻科學地結合,使其變得容易理解,并與計算機的基礎知識相結合。如在講解遞歸算法時先用求人的年齡問題來講解遞推和回歸的過程,而后才講解經典的漢諾塔問題,同時給出了詳盡的數學公式推導過程,并配以圖例說明。又如在介紹指針概念中“間接訪問”一詞時,使用了生動的比喻:“為安全起見,將A鑰匙放到另一抽屜B中鎖起來,若果需要打開A抽屜,就需要先找出B鑰匙,打開B抽屜,取出A鑰匙,再打開A抽屜,取出A抽屜中之物,這就是‘間接訪問’。”這使讀者不僅理解了“間接訪問”概念,也加深了對指針概念的理解。再如在介紹變量的存儲類型時、介紹指針時都對計算機的存儲管理作了清楚的論述。
該書的內容重點突出,難點分散,對C語言中最基本和常用的部分進行了詳細的分析和講解,凡是涉及的內容,都講得非常透徹、詳盡。
5例題難易適度、習題豐富、教學資料齊全
多年的課堂教學過程中,總能體會到本書中例題和習題選擇的難度非常適宜,如講解循環結構時選用計算“1+2+…+100”作為入門的例題,習題中便有計算“1!+2!+…+ 20!”之和,既有相似之處又有新舊知識(循環結構的使用和前面介紹的數據類型及其表示范圍)的結合。另外本書通過豐富的習題來豐富常用的實用算法。如在循環一章的習題中將迭代法和二分法引入,通過求方程的根來理解其算法含義和實現過程,在數組一章的習題中引入了“篩選法”、“選擇排序法”、“楊輝三角形”等。
計算機程序設計是一門實踐性很強的課程,學習時不僅僅需要選擇合適的例題,還需要編寫足夠代碼量的程序,僅靠閱讀教教材或聽課是不可能掌握編程技能的。總有人抱怨說:“課堂上聽得很明白,就是課下編程困難”,而學習程序設計最重要的環節就是實踐。《C程序設計》一書中每章都附有大量的各種類型習題,并且有配套的習題解答,這不僅有利于學生開闊視野,豐富知識,而且有益于復習、鞏固、加深理解和掌握課上所學的知識,提高他們的學習興趣,培養自學能力,也便于教師設計實驗課的教學內容。近年來譚老師講授《C程序設計》的教學錄像也已成為很多教師講課前的觀摩學習課程。
6強調應用意識和應用技能
教材要起一種引導作用,要強調應用意識和應用技巧,應特別注意學科間的聯系。《C程序設計》一書將實際生活中數學問題的解決算法、工程應用的常用數值分析方法均作為本書的實例和習題,這不僅有助于培養學生的邏輯思維,而且也有助于學生分析問題和解決問題的應用能力。正因如此,初學程序設計的學生可以達到熟練運用C語言進行小規模應用開發的能力,許多非計算機專業的人士通過自學這本教材,打下了程序設計的基礎,后來便使用C語言開發出本專業的應用軟件。
7結論
大學教材非常重要。譚老師為人們寫下了諸如《BASIC語言》、《FORTRAN語言》、《C程序設計》等深受廣大教師和學生歡迎的經典之作。譚老師的《C程序設計》一書對我國普及C語言程序設計起了很大的推動作用,他為計算機教育的普及不懈地努力,取得了巨大的成就,功不可沒,真正做到了“桃李滿天下”。
參考文獻:
關鍵詞:中醫基礎理論;MCAI;教學軟件;開發
隨著我國教學改革的深入發展,利用多種現代化設備,多方式?多渠道地向學生傳授知識技能,縮短學時,提高教學質量,己成為當前教學改革面臨的重要課題[1]?把MCAI引進課堂教學之中,是教學科學化和現代化的重要環節?MCAI(Multimedia Computer_assisted Instruction)是指以計算機為重要教學媒介所進行的教學活動?具有單位時間內信息量大?形式活潑多樣?題材豐富形象?容易激發學生的學習興趣,以及便于學生課后復習?查詢?自測等優勢[2]?Authorware是目前最好的制作CAI課件的軟件,具有很好的組合性?能把文本?圖像?影視?動畫?解說等教學素材以及運用flash和powerpoint制作的課件有機地組合在一起?因此,本課題組開發《中醫基礎理論》MCAI軟件以Authorware為主?
一?《中醫基礎理論》教學軟件開發的意義
《中醫基礎理論》是中醫學的主干和入門課程,在中醫教學中占重要地位[3]?但是它的知識紛繁雜亂,思維抽象,且好多內容都是直接以結論的形式呈現?學生在高中以前接受的是數理思維,則入大學接觸《中醫基礎理論》課程,往往對傳統中醫思維及表達方式不習慣,并對其科學性與使用有效性存有疑慮?而傳統的中醫基礎理論教學模式和方法過于注重教師的講授?灌輸,忽視了學生的主動思考?主觀體驗,也忽視了素質教育中最重要的探究能力?創新精神的培養?這些問題直接削弱學生學習的動力[4],使教和學都出現了不同程度的困難?
為了解決上述問題,我們通過精心設計和編排,以Authorware7.0軟件為主,結合其它圖片?聲頻?視頻?動畫等制作軟件把相關內容制成MCAI軟件應用于中醫基礎理論教學中,保證了《中醫基礎理論》教學內容標準化?使傳統的教師講學生聽的教學組織形式發生了根本變化,學生可以根據自己的需要,隨時或反復利用MCAI軟件自學?從而達到掌握先進教學方法,培養學生能力,為提高《中醫基礎理論》教學質量和效率,摸索出一套行之有效的計算機輔助教學模式?同時,由于多媒體課件的制作,需要大量的時間收集素材資料,需要大量的時間設計制作,也需要具備整體設計創意的素質,因而《中醫基礎理論》MCAI軟件的開發可以為其它中醫課程的多媒體教學提供借鑒,為新教師提供多媒教學課件范例?尤其是西醫各專業的《中醫學》,因大部份內容與《中醫基礎理論》相同,如“陰陽五行”?“臟象”?“經絡”?“體質”?“病因病機”?“防治原則”等,按《中醫學》教學大綱的要求,作適當修改就可以用于《中醫學》的教學?
二?必要的前期準備工作
前期準備工作非常必要,只有做好各項準備,制作出來的軟件才能更適應《中醫基礎理論》的教學?前期準備工作主要包括以下幾個方面:
1?課程建設?在開發《中醫基礎理論》MCAI軟件之前,我們認真研究教學法,多次組織教育教學思想討論,發表有關教學論文數篇,并已建設《中醫基礎理論》的精品課程?網絡課程建設?試題庫等?
2?提高計算機應用水平?可以通過參加多媒體教學學習班和自學等形式?尤其是Authorwere和Flash等軟件,具有一定的難度,因此需要不斷學習和積累經驗?我們還通過參加省多媒體教材比賽積累了豐富的經驗?
3?資料收集?包括各版《中醫基礎理論》教材,相關的參考資料(包括中基教學參考書?MCAI軟件研發相關資料等),更重要的是與教學內容相關的圖片?圖表?視頻?動畫等?
4?源程序的制作?在開發《中醫基礎理論》MCAI軟件之前,先用Authorwere7.0或FlashMX制作各章節的多媒體教學課件測試題(有時間限制,測試完畢自動顯示成績并保存),運用于教學中并收集師生的反饋意見進行合理修改?
三?開發思路
我們的思路有四個方面:
1?如何把中醫基礎理論相關知識融合在MCAI軟件中,充分發揮其優勢和科學性,以更適宜學生自學?我們對近三年來中醫基礎理論新的教學改革觀點和MCAI軟件制作新動向和趨勢等資料進行詳細的整理?歸納?提煉,為軟件的開發打下良好的基礎?
2?在現有多種測試題課件源程序的基礎上,探討如何開發綜合測試?考核系統?可以吸取執業醫師考試和職稱考試的經驗,結合《中醫基礎理論》性質和大一學生的特點進行研究?
3?探討MCAI軟件如何與中醫基礎理論教學過程恰當地結合?依據教育心理學原理來創設良好的氛圍,處理好“主導”?“主體”?“工具”的關系,使學生真正成為知識的主動建構者;依據合理的教學價值取向,靈活有效地選擇使用MCAI軟件來優化教學過程,達到培養學生具有良好的中醫信息素養?具有終身學習的態度和能力?具有解決問題的意識和創造性思維的能力的目的?
4?剖析MCAI使用中存在的問題,總結使用MCAI軟件應注息和遵循的原則?使用策略等,進而達到培養學生能力,提高教學質量,摸索出一套行之有效的計算機輔助教學模式?
多媒體教學有諸多優勢,但并非盡善盡美?下一步我們將對傳統教學模式和MCAI軟件教學模式進行比較?研究,以開發出更科學的教學軟件?
參考文獻
[1] 劉甘娜.多媒體應用基礎[M].北京:高等教育出版社,1999.
[2] 胡霞.中醫基礎理論多媒體MCAI的應用評價及前景展望[J].中醫基礎理論教學.2002.12.
摘要:計算機應用能力的培養以程序設計為主線,使學生掌握基于計算機的問題求解策略和基本的程序設計方法,深入理解計算機系統。本文分析了機器人平臺在計算機基礎課程中的適用性,敘述了如何在計算機基礎課程中利用LEGO機器人和Robot C編程語言輔助程序設計入門教學。
關鍵詞:Lego Mindstorms;程序設計;機器人
中圖分類號:G642
文獻標識碼:B
1介紹
國防科技大學的所有學生在入學后都要求學習完成“大學計算機基礎”、“程序設計基礎”等公共基礎課程。計算機公共基礎課程的目標是介紹計算機和信息技術的概念,講授利用計算機進行問題求解的方法。在武器裝備中,高科技含量越來越高,作為未來的軍隊指揮員,學生必須理解所使用的計算機設備的長處和弱點,只有深入理解計算機系統的工作原理,才能在戰場上最大性能地發揮它們的作用。計算機基礎教育強調應培養學生適應未來技術發展的能力,利用應用問題培養學生獨立思考與合作解決問題的能力,使學生成為終身的計算學習者。大部分學生在學完公共基礎課程這兩門課后可能不再學習計算機類的課程,這兩門課要為學生繼續學習(主要是自學)打下扎實的基礎,以便在指揮員崗位上盡快適應部隊數字化建設和數字化戰場環境的需要。
最近的研究表明,使用機器人作為教學工具可以幫助理解計算機類課程的基本抽象概念。特別地,Kumar和Meeden指出在本科課程中使用HandyBoard 和LEGO積木作為實驗教學基礎是可行的。從1990年起,一些本科的計算機科學和計算機工程項目開始啟動,用來建立機器人實驗室輔助教學,或基于HandyBoard/LEGO或基于Mobile Robot平臺。
1996年LEGO公司了Mindstorms機器人開發和編程工具包。由于與HandyBoard設計相關,Mindstorms平臺最初并不適用于高等教育。那時的SIGCSE(美國計算機協會計算科學教育專業組)和ITiCSE文獻中同樣缺乏對Mindstorm是否支持計算機教育的研究。造成這種情況的原因是LEGO機器人缺乏與高等教育相當的程序設計環境,缺乏對大學水平的程序設計語言C或Java的支持。然而,在過去十幾年來,Mindstorms使用者群體日益壯大和活躍,他們完成了相當多的工作,如為C和Java開發程序設計環境,使上面提到的缺點得到了有效的改善,越來越多的高校選用低價的LEGO機器人作為教學平臺:
(1) 西點軍校在“信息技術和程序設計”基礎課程CS105中利用LEGO Mindstorm 機器人作為學員主動學習環境中的重要組成;
(2) 加州州立大學在課程CECS174中使用物理模型來加深學生對問題求解概念和程序設計結構的理解,使用LEGO機器人作為教學實驗平臺;
(3) 麻省理工學院電子技術和計算機科學系特別開設了6.270自主機器人設計課程,學生在該課程中通過搭建物理模型并編程控制它,最終以比賽的形式完成實驗;
(4) 卡耐基梅隆大學作為第三方開發了Robot C程序設計環境,Robot C已成為LEGO機器人最流行的程序設計語言之一。
到2006年LEGO公司Mindstorms NXT機器人套裝時,機器人在計算機教育中的作用已得到普遍認同。本文主要介紹作者在“大學計算機基礎”課程中使用LEGO機器人的教學經驗。
2 “大學計算機基礎”課程組織
“大學計算機基礎”包括計算機基本知識和基本操作兩個部分,要求學生熟練掌握計算機的使用,培養計算機應用能力。
本年度我們選擇兩個教學班實施雙語教學,教材選用《New Perspectives on Computer Concepts》第十版,課程安排如下:
實踐教學環節是這門課程成敗的關鍵,學生編程能力培養必須在實踐中進行,同時在實踐中檢驗,而這種能力的獲得正是課程教學的主要目的。本學期實施的大多數實驗由外版教材提供,外版教材自帶的光盤同時提供了軟件,可以對學生的實驗和作業情況進行跟蹤,使教師能夠清楚了解每個學生對學習內容的掌握情況,提供工具對所有實驗和作業情況進行統計分析。
3基于LEGO 機器人的程序設計教與學
依據國防科技大學2006年修訂的“大學計算機基礎”課程標準,程序設計部分的教學要求如下:
(1) 計算機程序基本概念:了解計算機程序的概念和功能,理解程序控制概念;
(2) 計算機程序表示:理解計算機程序設計語言、程序編譯的基本概念;
(3) 程序設計的一般過程:了解計算機程序設計的一般過程;
(4) 軟件開發的一般方法:理解軟件的基本概念,了解軟件生存周期的概念及軟件的開發方法。
雖然程序設計在“大學計算機基礎”中所占學時并不多,我們依然決定依托人工智能實驗室建設購置的60套Lego Mindstorms NXT和RobotC程序設計語言來設計整個程序設計入門的教學過程,讓學生通過搭建實實在在的物理模型并編程控制它的運動,來加深學生對計算機工作原理的理解。
3.1LEGO Mindstorms NXT
通過機器人的運動來理解程序和程序設計是感性記憶與理性理解的結合,能夠使學生更快的掌握程序設計的精髓,達到教學目的。LEGO Mindstorms NXT 9797機器人套裝售價不超過250美元,已被歐美一流高校普遍使用于計算機基礎教育、人工智能教育中。
LEGO NXT機器人硬件是由NXT 32位控制器、馬達、傳感器等組成。套裝中包括兩個碰觸傳感器、一個超聲波傳感器、一個光電傳感器和一個聲音傳感器,馬達中內置了角度傳感器,如圖1所示。
圖1 LEGO Mindstorms NXT、傳感器及學生搭建的部分模型
LEGO機器人由于平臺的開放性擁有龐大用戶群,軟件開發環境豐富,幾乎支持所有主流的程序設計語言。常用的語言編譯環境包括Robolab、微軟的Microsoft Robotics Studio、leJOS NXJ (Java)、NXC、Robot C,比較之后我們選擇了由卡耐基梅隆大學開發的Robot C,理由如下:
(1)Robot C是一種基于C語言的機器人開發環境,而國防科技大學的程序設計基礎課程是基于C的,保證了教學的連貫性,這一點對于大一的新生來講相當重要;
(2)Robot C擁有編寫和調試程序的所有功能,有成熟
的機器人程序設計調試工具;
(3) 同其他幾種流行的機器人語言相比,Robot C是效率最高的一種語言,并且具備功能齊全、界面簡潔實用等優點。
3.2課堂教學
在“大學計算機基礎”課程教學中使用LEGO機器人始于2006年,由于數量有限,只用于課堂演示。
依據課程標準,課堂講授的主要內容如下:
(1) 程序和程序設計的基本概念:什么是程序,程序設計和程序設計語言,以最簡單的機器人程序講述程序設計的一般過程;
圖2 2006年課堂演示部分幻燈片(編程語言是NQC)
關鍵詞:計算機組成原理;教學改革;EDA;Moodle
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)16-0197-02
計算機組成原理是計算機類各專業的主干課程之一,在整個計算機系統體系結構中起到承上啟下的作用。自2008年起列為碩士研究生入學專業課綜合考試,全國統一命題重點課程,各高校對該課程都十分重視,相關專業都列入強化建設的重點課程[1]。
一、計算機組成原理教學現狀分析
目前,計算機組成原理教學中存在著較多的問題。許多計算機專業的學生,特別是非重點本科院校的學生,常常具有“喜軟怕硬”的特點。特別是有些院校在專業課程的設置上也“重軟輕硬”。究其原因,主要是由以下幾方面造成的。
1.該門課程自身的特點。計算機組成原理是一門承上啟下的課程,其涵蓋的知識面很寬、跨度大、教學內容多,并且較多概念和實現的方法具有一定的抽象性,學生理解起來具有一定的難度[2]。同時,課程中與硬件有關的許多理論知識只有通過實驗環節才能加深理解。但很多高校由于學時有限,沒有開設實驗,學生無法通過實驗環節進一步加深理解。因而,學生很可能因為部分概念和原理無法清晰的掌握,而失去繼續學習的興趣和動力。反之,上層軟件開發由于與實際應用掛鉤、操作多于理論、學生因易上手更能獲得成就感等原因,更能吸引學生的興趣。
2.實驗環節的問題。傳統的計算機組成原理的實驗課程是基于X86的實驗箱,采用連線的方式進行。該方式需要學生采用匯編語言進行程序設計,并在試驗箱上完成大量的連接線操作。這種方式面臨的問題是:首先,由于學時的原因,學生可能并沒有學習過匯編語言;第二,實驗箱的電路由通用集成電路組成,與理論教學中使用的電路并不能直接的對應上;第三,在實驗過程中,實驗箱上的連線經常接觸不良,指導教師和學生不得不將大量的時間耗費在連接線的操作上。另外,實驗箱的功能難以擴展,實驗內容相對比較固定,主要是驗證性實驗,無法進行有創意的或綜合性較強的設計性實驗。這些問題導致學生無法真正通過實驗環節加深理論知識的理解,而只是機械的按照操作步驟完成程序的錄入或連接線的接入,更難以充分調動學生的創新意識。
3.社會需求的導向。目前,“互聯網+”時代正在來臨。這是一種利用信息通信技術以及互聯網平臺,讓互聯網與傳統行業進行深度融合的經濟發展新形態。這種融合的模式使得不同行業的許多企業加大了對計算機人才的需求,相應的增加了許多計算機相關崗位。但目前,大部分這種與互聯網融合的模式還停留在不是很深入的層面,這些崗位的需求也主要集中在Java、.net、PHP、Python以及其他上層開發軟件研發人員上。這樣為了更好的就業,學生在學習上必然重視與應用軟件相關的課程,而忽視抽象的計算機專業基礎類課程。同理,某些計算機院系在課程設置上也大量增加此類課程的學時,而削減專業基礎相關課程的學時。
4.學生的學習的主觀能動性不足。由于高校招生規模不斷擴大,很多高校的教學與管理資源不足,再加上游戲機、電腦、手機等電子產品的沖擊,學生學習的主動性和積極性整體下滑是不爭的事實,尤其是非重點二本院校。此類高校有相當數量的學生的第一志愿可能并不是計算機專業,他們的專業興趣不濃,畢業后也不想從事本專業相關的工作,讀大學可能只是想獲得本科文憑。因此,這部分學生在遇到計算機組成原理這類比較抽象的課程時,學習過程中稍稍遇到挫折,便可能選擇放棄。
二、計算機組成原理課程建設的必要性
雖然存在著以上諸多問題,但因此就減少該門課程的學時或者是放棄該門課程,而加大應用軟件的學時,對計算機專業來說就顯得本末倒置了。我們認為為了培養出高層次的計算機人才,加強計算機組成原理課程的建設是有必要的。
1.知識環節的銜接的需要。計算機組成原理雖然屬于硬件類課程,但其在計算機的軟硬件課程之間起承上啟下的作用[3]。因此具有良好的計算機組成原理基礎,對操作系統、數據結構、C程序設計等軟件類課程的有關知識點的理解具有極大的幫助作用。畢竟硬件是軟件運行的立足點,數據結構、操作系統等課程中許多難以理解的行為都是與計算機硬件行為息息相關的。
2.應對競爭的需要。目前雖然企業對計算機專業人才的需求較大,但計算機專業的學生面臨的競爭還是比較激烈。由于上層軟件開發的門檻較低、上手較快,很多相近專業或其他專業的學生通過自學或者是培訓班培訓就可以應聘這些崗位。再則,上層軟件開發具有很強的應用背景,需要開發人員具有較強的專業知識,很多時候非計算機專業的學生在具有一定的編程能力后可能還更加具有競爭力。對計算機專業的學生來說,要在競爭中處于優勢,沒有扎實的計算機基礎,單單只是對某些開發軟件的入門、編程工具的熟悉是不行的。一個優秀的程序設計人員,應該能夠將計算機組成原理、操作系統、數據結構、編譯原理等課程融會貫通。只有這樣,計算機專業的學生才能成為高層次的計算機人才,在競爭中才具有優勢。
3.更好的把握就業機會的需要。目前不僅僅是“互聯網+”技術蓬勃發展,與之密切相關的物聯網、可穿戴計算機、智能家居、智能硬件等新技術發展勢頭也非常迅猛,與這些技術相關的工作崗位也非常多。而這些技術更加偏向于底層,需要從業人員具有良好的計算機組成、操作系統、嵌入式技術、數據結構以及程序開發基礎,而這正應該是計算機專業學生具有的優勢。
三、對改革的一些思考
對如何提高學生學習的主動性,我們有如下一些思考。
1.加大對電子課件的研制與投入。計算機組成原理課程沒有太多的數學公式的推導,學生學習的難度按理本不應該太大。但用語言或者文字的方法來描述計算機的行為顯得過于抽象,從而導致學生理解起來非常吃力。而圖像、動畫等表現形式往往能使學生茅塞頓開,幫助其對相應知識點的理解。因而,在教學構成中采用圖像和動畫等表現形式是很有必要的。目前,一些較經典的計算機組成原理的教材的電子課件已經做得很好,很多高校均直接無修改的應用于教學。這些課件已經包含了動畫設計,但這些動畫主要還是采用PowerPoint進行設計,在一些知識點的展示上還不夠具體和形象。因此,對一些難以講訴的難點、重點,教學單位應該投入時間和精力,采用Flash等方式設計更加形象生動的動畫來進行知識點的展示。
2.基于Moodle的教學方式。由于課時有限的原因,學生在課堂中無法完全理解所教授內容,必然要用大量的時間在課外進行課程的學習。如何有效的利用課外時間進行學習,就成了教學中一個非常重要的環節。Moodle(Modular Object-Oriented Dynamic Learning Environment),是一套基于“社會建構主義理論”設計開發的開放源代碼的網絡教學平臺,在網絡教學中正得到廣泛運用[4]。任課教師可以通過該網絡教學平臺,構建教學資源庫,以提供給學生進行自行學習;同時,還可以構建測試平臺,幫助學生對學習情況進行自我評價;特別的,我們可以通過添加討論、聊天、投票等活動的方式,在教師和學生之間搭建一個交流平臺。這種基于Moodle的教學方式能夠不受時間、空間的限制,推動學生自主學習,增強了學生的參與意識,能激發學生學習興趣[5]。
3.實驗教學的改革。EDA技術以大規模可編程邏輯器件為設計載體,以硬件描述語言為系統邏輯描述的主要表達方式,以計算機、大規模可編程邏輯器件的開發軟件及實驗開發系統為設計工具,用軟件的方式自動完成硬件系統設計的一門新技術[3]。應用該技術可以在行為層對數字電路進行描述,而使數字系統的設計變得更加容易。因此將其應用在計算機組成原理實踐課是可行的。國內外不少高校均開始將EDA技術應用到計算機組成原理教學中[6]。這些高校一般也購置了EDA實驗箱,并開設了EDA技術課程,講授HDL以及FPGA/CPLD相關知識,而在該課程實驗中設計的鎖存器、存儲器、加法器、乘法器、CPU等模塊均可以應用到組成原理的實驗中。因此,整個組成原理課程的實驗都可以基于HDL+FPGA的模式來完成。這種實驗模式能加強學生對計算機各個部件實現的原理,各個部件間地址、數據、控制信息的實現和傳輸等知識環節的理解,讓學生能從整機系統上掌握計算機的組成和模型機的設計。
綜上所述,為了培養出更加符合計算機專業特色、滿足市場對計算機人才需求的專業人才,我們應該加大計算機組成原理課程的建設。在課程表述方式、教學模式與技術手段以及實驗方法等各個方面均要結合實際進行有針對性的改革和探索,同時在教學管理上也應投入更多的精力,力爭更大程度的激發學生的學習興趣,調動學生學習的主觀能動性,讓該門課程真正在學生的知識結構上起到承上啟下的作用。
參考文獻:
[1]時海亮.關于計算機組成原理實驗課安排的研討[J].電子設計工程,2012,20(9):11-13.
[2]王慶香,蔡逸儀,等.“計算機組成原理”實踐教學的新方法探索[J].實驗室研究與探索,2007,26(12):361-363.
[3]潘松,潘明.現代計算機組成原理[M].北京:科學出版社,2007.
[4]鄧國民.基于Moodle的《現代教育技術》網絡課程的開發和應用[D].成都:四川師范大學,2008.