發布時間:2023-08-02 16:37:06
序言:寫作是分享個人見解和探索未知領域的橋梁,我們為您精選了8篇的計算機語言的概念樣本,期待這些樣本能夠為您提供豐富的參考和啟發,請盡情閱讀。
關鍵詞:CDIO;計算機教學;問題;改革措施
中圖分類號:G4 文獻標識碼:A
Abstract:With the coming of information age,the computer and network technology develop rapidly and the need for computer professionals becomes bigger and bigger,so,how to fasten university computer teaching reformation becomes a core task of university researches.However,lots of problems,existing in university computer teaching,reduce seriously the effect of computer teaching.Fusing with the CDIO educational concept,this paper firstly analyzes the existing problems in computer teaching and then put forwards the corresponding reform measures.
Keywords:CDIO;computer teaching;problems;reform measures
1 引言(Introduction)
隨著計算機和信息技術的快速發展,計算機和信息計算在全國各行各業中得到了廣泛的應用,這也加大了社會和企業對高校計算機專業人才的需求,如何提高計算機專業教學質量,適應國家和地方經濟社會的發展需求,已經成為各所高校計算機教學改革關注的重點。CDIO作為一種新型的教育理念,在國內外受到了廣泛的關注,將CDIO教育理念融入高校計算機專業教學中,可以確保教學目標、教學內容的科學合理,保證高校計算機教學大綱能夠適應社會發展需求,并且強調學生素質的培養應該與產業發展相適應,在課程設置上采用關聯的方式,打破傳統的學科壁壘,避免教學內容的重復,有利于學生獲得綜合的計算機專業知識和能力。顯然,CDIO教育理念與高校計算機教學改革的需求是一致的,因此,將CDIO教育理念融入到高校計算機教學改革中,可以有效促進課程改革的順利進行,促進學生計算機專業素質的不斷提高。
2 CDIO教育理念概述(Introduction of CDIO educational concept)
CDIO教育理念是近年來國際工程教育教學的新型理念,是工程教育教學與創新人才培養相結合的新型教育模式,其最早是由美國麻省理工大學生工學院和瑞典皇家理工學院等四所大學組成的工程教育教學改革研究團隊提出來的,所謂CDIO,也就是構思(Conceive)、設計(Design)、實現(Implement)、運行(Operate)的縮寫,是以社會發展需求為人才培養的依據,以產品開發或者系統設計與實現為教育載體,對學生的工程實踐能力和創新能力進行重點培養,發揮學生的主觀能動性,提高學生自主學習的積極性,有效實現理論教學和實踐教學的有機結合[1]。顯然,CDIO教育理念與高校計算機教學改革目標相符,將CDIO教育理念融入到高校計算機教學改革中,有助于學校培養出應用型計算機人才。
在CDIO教育教學模式中,C代表構思,主要是指在教學的構思階段,這一階段主要目的是引導學生針對問題進行分析,找到科學合理的問題解決方案,這一階段是CDIO教學能夠順利完成的前提和關鍵環節;D代表設計,是學生工程教育教學中實踐能力培養的核心和精髓,在這一階段中,引導學生對工程項目進行自主設計,充分運用自己學習到的理論知識,將理論與實踐進行有機的結合,鍛煉學生的動手能力和創新能力,學生可以利用學校和校外的實訓條件,進行CDIO實踐案例的設計;I代表實現,也就是將項目設計變成實物的過程,在這一過程中,要求學生采取有效的方法解決設計中的關鍵技術和核心問題,形成相應的學習成果,有效提高學生解決問題的能力,例如計算機教學中程序設計、制作和調試能力;O代表運作,是指學生在完成學習作品之后,要求學生對自己設計制作的產品進行進一步優化運行,排除運行過程中存在的問題,確保產品或者系統的順利運行,同時要求教師與學生積極的進行互動,對學生整個設計制作過程進行分析和評估,對學生遇到的問題進行指導和糾正。
3 當前高校計算機教學存在的問題(Existing problems in university computer teaching)
3.1 課程體系與計算機行業的快速發展的矛盾
近些年來,計算機和網絡技術快速發展,相關行業也在告訴發展,這就對人才的素質要求也越來越高,而當前高校計算機教學模式和課程體系仍然比較陳舊,專業課程體系不能適應相關計算機行業的快速變化的節奏,造成計算機行業技術始終在高速發展,而高校的教學模式卻不能適應這一變化,導致學生所學習到的知識和社會實際工作崗位需求脫節,而解決這一矛盾的關鍵就是加快高校計算機教學模式和課程體系的科學化改革。
本文分析了現有計算機語言類課程的特點與面臨的實際問題,從培養學生程序設計能力的目標出發,在理論教學環節推行層次化教學模式,在實踐教學環節減少驗證型實驗,增加設計型實驗并增設課程設計環節,傳統教學體系以外鼓勵學生進行外延學習,如參加大學生程序設計競賽、考取各類職業技能證書和參與教師科研項目等,并通過建設合理的教學評價體系實現學生專業能力的考查。最終,培養學生的程序設計能力、科技創新精神和創新能力。
二、計算機語言類課程概況
(一)計算機語言類課程的特點
隨著計算機技術的更新換代和計算機網絡的飛速發展,計算機語言也在不斷地推陳出新,由最初的機器語言、匯編語言等低級語言,到早期的高級語言如BASIC、PASCAL和C語言,再到C++和JAVA等面向對象的高級語言。同時,各種計算機語言的語法語義看似模式固定,而真正應用于軟件開發卻是千變萬化,這都決定了計算機語言類課程具有操作性強、更新速度快、創造性強等特點。該門課程與其他計算機專業課程相比,對于學生的動手實踐能力要求更高,尤為強調學生程序設計思維方式和軟件開發。
(二)計算機語言類課程面臨的問題
根據多年來講授計算機語言類課程和組織學生參加計算機程序設計競賽的經驗,筆者認為高職院校計算機專業學生學習語言類課程的瓶頸在于過分注重理論基礎知識,卻無法利用所學的計算機知識分析和解決實際問題。上課或培訓時,當老師給出一個新的題目,總是不知從何入手,思路不清,一團亂麻。當聽過老師的講解后,才恍然大悟。如果再遇到一個新題目或稍微改動過的問題,學生又開始手足無措,無法獨立找到適合算法完成編程操作。出現這種情況的主要原因在于學生在計算機語言類課程中只是追隨著老師的思路,而缺少獨立思考和動手操作的機會,無法完成程序設計思維的訓練。
三、計算機語言類課程中學生程序設計能力的培養
(一)時刻關注程序設計思維方式的培養
在日常教學活動中,應注重程序設計思維方式的培養。以C語言程序設計課程為例,教師在課堂上提出一個新的問題,然后引導學生分析并思考解決問題的步驟,在此過程中需要摒除具體代碼實現的細節部分,只關注核心的流程。鼓勵學生獨立繪制流程圖,進而整理出解題思路,這是培養計算機專業學生程序設計思維的必經階段,也是程序設計師必備的專業技能。C語言程序設計是高職高專學生接觸到的第一門計算機語言類課程,為了幫助學生理解程序設計中的各種抽象概念,教師可以在講解中引入貼近生活的實例,例如“酸奶制作”。酸奶制作所需要的原料如牛奶、酸奶發酵劑、糖和蜂蜜等即為程序中的變量,將原材料放入酸奶機中可看做是輸入變量,加熱、發酵和冷卻等操作可看作為函數調用的過程,同時也鋪墊了函數的概念,最終酸奶制作完成即為程序結果的輸出。還可以進一步擴展加入分支結構來調配不同口味的酸奶,運用循環結構制作若干份酸奶。通過這些易于理解的實例帶動學生主動思考,一起做酸奶,既提高了學生學習的興趣,也將程序設計的思維方式無聲無息地滲透入學生的腦海中。在此過程中,學生學會了在思維中發現規律,在思維中抽象總結。
(二)理論教學環節推行層次化教學模式
基于層次化教學模式的思想,可將計算機語言類課程的教學內容分為算法、方法學、語法和集成編程環境四個層次。將此四個層次作為標準,教師需要將教材中知識體系進行重新的整理與劃分,將每一章節、每一堂課、每一個知識點皆找到其所屬層次。在理論教學環節中,點明各層次的具體內容,使學生了解計算機語言類課程不僅僅是學習某種計算機語言的語法與語義,更不是簡單的學習如何使用某一編程環境進行程序的編制和調制。以C語言程序設計課程為例,在課程中第一層次算法涉及較少,但在授課過程中如涉及到較簡單的算法也可稍作滲透,為今后的數據結構課程做鋪墊。比如在講到循環控制結構時可通過例題講解窮舉法和遞推算法,一維數組的經典應用之一——排序的兩種算法冒泡法和選擇法也必須為學生點明。第二層次編程方法學在C++程序設計課程中體現較為明顯,主要涉及的內容為面向對象程序設計方法。第三層次語法是各計算機語言類課程理論教學中的重點內容,包括變量的定義與使用,函數的定義、聲明和調用,對象和類的定義等。第四層次集成開發環境在理論教學環節比重較少,主要為學生講解程序開發的步驟,各類開發編譯環境的使用方法等。
(三)實踐教學環節注重將知識轉化為能力
在計算機語言類課程的實踐教學環節中,首先,教師應引導學生及時轉變學習觀念,使學生認識到若想在畢業后順利尋求到滿意的就業崗位,單純依靠理論知識的學習是遠遠不夠的,應在課程學習過程中注重實踐和動手能力的提高,以及大量軟件工程項目開發經驗的積累,從而增強自身的綜合職業素質,成為社會和用人單位急需的專業化技能型人才。1.在實踐教學環節中,調整各種類型實驗的比重。適當縮小驗證型實驗的課時比例,增加設計型和綜合型實驗項目。首先,在驗證型實驗中通過程序填空和程序改錯等實驗項目形式,在促進基礎知識的消化與理解的基礎上,注重培養學生“讀程序”的能力。同時,培養學生良好的編程習慣和統一的編程風格。良好的職業素養有助于學生在未來的工作崗位中與同事協同合作,提高軟件開發的效率。在設計型和綜合型實驗中,增設貼近企業一線,貼近社會需求,可操作性強的真實案例和項目,進而有意識地培養學生“寫程序”的能力、創新精神和獨立思考的能力。因此實驗項目的具體內容需要課程組教師集中討論與設計,與崗位技能相結合,并在教學過程中根據學生的接受程度與能力水平不斷完善。2.在大三年級上學期,增設課程設計環節。此時的計算機專業學生已完成多門計算機語言類和軟件工程等相關課程的學習,基本掌握各種編程語言的語法語義規則,熟悉軟件開發流程,具備利用計算機分析和解決問題的初步能力。在課程設計中,學生接觸到簡單的工程問題,組成項目開發小組,分工合作,使用一種或多種計算機語言設計、編碼和開發具有一定難度的小型軟件系統,提交實驗報告,最后每組選出一名代表參加答辯。在該環節中,應盡量為學生模擬出與企業真實工作環境相似的實踐現場,并全面采用企業管理運作的模式。使學生在課程設計中親身感受到企業的工作環境和崗位需求,全面地認識和熟悉軟件項目開發過程,更好地掌握程序設計的基本思想。
(四)傳統教學體系以外鼓勵外延學習
1.組織學生參加如大學生程序設計競賽之類的大型賽事。在競賽的培訓、備賽和參賽中,激發學生的學習熱情,鼓勵其主動學習、協作學習和拓展學習,使學生感受課堂所學知識與社會和市場需要的異同,為學生提供更加優質的知識積累與能力提高的平臺。2.教師積極申請與計算機語言類課程教學內容相關的各級各類科技項目課題,并鼓勵部分較為優秀的學生參與。首先,教師可向學生公布并簡單講解科研課題的研究內容及與本門課程的相關性,然后將研究內容分解為多個子項目,學生可自由選擇自己感興趣的子項目,選擇相同任務的學生組成一個課題小組,根據科研項目的研究目標與方案,進行協同合作,利用課余時間完成子項目的開發。在實踐中引導學生綜合運用課堂所學知識,逐漸形成工程意識和團隊協作的精神。在科研過程中如遇到瓶頸問題,可通過查詢網絡、翻閱工具書、參考資料和請教老師等方式尋求幫助。在課程結束后,教師可按照學生的完成情況及工作量給予適當的課外學分折算鼓勵。參與教師的科研項目可為學生創造接觸和熟悉真實項目研發的機會,使學生了解科研項目的開發過程,不斷學習和掌握前沿知識與先進技術,做到學以致用,學會創造性學習、研究性學習,為今后升入本科院校繼續深造學習奠定堅實的基礎。3.將計算機技術與軟件專業技術資格(水平)考試、Java認證、全國計算機等級考試等職業資格認證教育融入課程教學過程,使專業課程內容與職業崗位能力無縫對接,實現“課證融通”,課內教育與課外教育相結合,以加深學生對行業的認識,提高高職高專計算機專業學生的社會競爭力和職業素養,增強其就業信心。4.加強校企合作,為理論教學和實踐教學環節爭取到更多的真實案例和項目,為學生提供更多頂崗實習的機會,讓學習與就業崗位零距離,為今后更好地融入真實的職業環境打下良好的基礎。
(五)教學評價體系實現能力考查
好的評價方法,可以調動學生學習的積極性,培養學生自主學習的能力,改善學生學習的風氣,促進教學。對于計算機語言類課程來說,科學的、合理的、有效的評價方法,應注重對學生學習能力和程序設計思想的檢測與評價。1.進行理論教學環節與實踐教學環節相結合的多元化綜合考核。理論教學過程考核包括課前預習、課中活躍度和提問情況、課后作業等成績;實踐教學過程考核包括驗證型實驗的操作完成情況、設計型和綜合型實驗的參與度、方案制定合理性、項目完成工作量、項目成果質量和報告提交等內容。2.鼓勵學生參加計算機語言類課程相關的競賽、考取職業技能證書、參與教師科研并制定適當的學分折算機制。將傳統課程體系以外的拓展學習內容的評分納入到教學評價體系中,這恰恰體現了當前職業教育的核心理念,側重培養學生的職業能力,使之成為高素質、高技能型人才而非呆板的應試工具。
四、結語
關鍵詞:計算機語言;編碼;任務教學法;程序設計
1.引言
學習計算機語言,人們就能夠使用計算機語言與計算機進行交流,這樣就能為人們解決實際工作和學習中遇到的許多特殊問題。巧妙使用計算機做工具,人們就能夠將個人的想法在計算機上實現。例如,Foxpro關系型數據庫管理系統是具有解決普遍意義上的大量數據存儲和管理工作功能的數據庫語言,但是解決具體的實際問題,還必須使用數據庫語言編寫程序。
2.計算機語言教學
2.1計算機語言
語言是人類所特有的用來表達意思、交流思想的工具,由語音、詞匯和語法構成一定的系統。是人類為了能使人與計算機間進行交流,專為計算機設計的語言,變換成計算機可以讀懂的信息符號。這些信息符號是按照一定的規則進行的編碼,是人與計算機間特有的用來表達人的意思、交流思想的工具,并指導計算機進行信息的采集、分析、加工、處理、保存和利用等。計算機語言的種類非常之多,總的來說可以分成機器語言、匯編語言、高級語言三大類。目前通用的編程語言有兩種形式:匯編語言和高級語言。高級語言是目前絕大多數編程者的選擇,和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,并且去掉了與具體操作有關,但與完成工作無關的細節(例如使用堆棧、寄存器等),這樣就大大簡化了程序中的指令。
2.2理論課教學的改革
2.2.1合理安排教學內容。教師在組織教學過程中,應該合理安排教學內容,將一些枯燥乏味的內容盡可能注入通俗有趣、與他們生活息息相關的實例中去,這樣既可以使學生掌握基本知識,又增強了他們解決問題的能力。
2.2.2改變授課模式。應采用交流式、對話式、討論式等多種互動的模式,讓學生積極地參與到課堂教學中來,充分調動學生的主觀能動性,發揮每個學生的聰明才智,讓課堂變為教師和學生的共同課堂。
2.2.3實施問題教學法。高職高專學生的基礎較差,在學習中表現理解能力差的特點,因此在理論教學過程中,要結合計算機語言類課程和高職高專學生的特點,改變傳統教學模式,將以往教師幫助學生解答疑惑轉變為教師尋找、發現與理論知識和學生生活相關的實際問題,使學生在思考、解答問題中增強理解,培養學生進行創造性思維的能力,充分調動高職高專學生的學習積極性,使學生在解決問題的過程中獲取新知識,新理論。
2.2.4實施任務教學法。任務教學是以明確的任務作為課堂主要教學目標,在學生實踐任務過程中,培養學生自我分析、解決、問題能力的教學模式。在實施任務教學法的過程中,教師必須根據教學進度、學生所關心的問題,針對某一階段的教學內容和技能要求,設計一個包含相關知識點的綜合性任務,使學生在真實的問題下應用舊知識,探索新知識,使所學知識得到鞏固、加深和遷移。
2.2.5使用多媒體授課,課堂滲透實踐。計算機語言類課程是理論與實踐結合非常密切的課程,在講授理論知識時經常會遇到一些抽象的、難以理解的概念、理論和算法,教師使用多媒體對它們進行演示、模擬,使抽象、復雜的問題簡單化,從而使學生便于理解和掌握,同時也更能激發學生學習計算機語言課程的興趣和求知欲望。
2.3實踐課教學的改革
2.3.1精心設計實踐內容。教師既要善于營造熱烈的群體氛圍,又必須給學生留有冷靜的獨立思考的空間。在設計實踐內容的過程中,應著重做好以下三個方面。一是要結合學生的實際情況。盡量體現知識性、趣味性、實用性,激發學生的靈感和創造欲,使學生對實驗內容感興趣,產生上機一試的愿望;二是要注重實踐課與理論課相適應,這樣才能夠加深學生對基本理論、基本知識的理解和掌握;三是注重尺度的把握。在設計實踐內容時,難易程度和工作量的大小是教師要考慮的內容。
2.3.2.主動指導。在傳統的實踐教學中,教師總是等學生問問題,這種被動指導存在著許多弊端,特別對剛接觸這門課程的學生來說顯得尤為突出,因為學生剛接觸編程,實踐過程存在很多問題,教師要變被動為主動,主動發現問題,對于學生普遍存在的問題要進行集中演示,引導學生主動完成實踐內容。
2.3.3注重實踐過程。指導教師在實踐教學過程中只注重實踐結果,把實踐內容布置給學生,學生交上機報告,教師認真批改報告,至于報告中的結果是怎樣來的,具體實現過程是什么,作為教師卻全然不知,因此教師要全身心地投入到實踐的全過程中去,只有這樣,教師才能真正掌握學生的實際情況,發現問題,及時解決問題。
2.3.4加強實踐課講評。作為計算機語言類課程的教學絕對不能忽視實踐教學中講評這一重要環節。以往教師只對理論課上布置的作業所存在的問題進行講評,忽視實踐課的講評。實踐課是檢驗學生基本知識、基本理論、基本技能掌握情況的一把尺子,不注重實踐課講評,結果使實踐課教學效果越來越差,從而影響整個課程的教學質量。
3總結
要學好計算機語言,理論和上機操作相結合非常重要。計算機語言教學的側重點應放在掌握程序的三大結構上,程序設計三種結構為順序結構、分支結構(也稱為選擇結構)和循環結構。注重培養學員使用模塊結構讀程序、寫程序的能力。程序中的交換、累加、累積、分類、排序、刪除、標志設定等都各有一種固定的功能模塊(像物理學中的定理、公式),編程時可以直接使用。對這些模塊熟悉后,讀程序就容易,寫起來也不會感到太吃力,且有條理,思路也會較清晰。
參考文獻:
關鍵詞:校企合作;教學改革;教學方法;計算機課程;再就業
0、引言
隨著新一代信息技術的到來,軟件應用與各行各業的需求結合更加緊密,軟件產業面臨著跨行業、跨學科的新要求,專業技術人員的崗位已經從單純技術、技術應用方向向技術管理、服務管理等方向轉變,企業對人才的要求越來越高。目前全國許多高校開設了計算機語言類課程,但該課程的教學并沒有因為軟件行業的快速發展而得到深化改革,高校計算機語言類課程教學有兩個特點,一個是缺乏實踐條件,理論教學多,忽略動手能力;另一個是注重實踐,輕理論教學。如何平衡理論教學和實踐教學,提高教學水平,改變教學模式,培養工程型、實用型、復合型軟件人才和創新型人才,成為高校計算機語言類課程教學面臨的新任務。
目前許多高校計算機語言類課程教學仍然是學歷教育,理論和工程實踐脫鉤,因此許多高校建立了校企合作共贏機制,讓計算機語言類課程教學團隊走進軟件企業、參與企業、了解軟件企業需求,更好地進行計算機語言類課程的教學和實踐工作;同時企業也走進課堂,提供給學生更多的軟件行業前沿信息,并提供實習基地,讓學生貼近實戰,為以后學生就業提供了很好的鍛煉機會。因此,通過校企合作,高校改變了人才培養模式,能夠有效解決計算機語言類課程教學中理論和工程實踐脫鉤的矛盾,同時企業減少了尋找軟件人才的過程,節約了大量培訓成本,在實現各自利益目標的同時達到了整體利益的最大化,實現了雙贏,這是目前校企合作的主要優勢。但是,這種優勢容易只顧眼前利益,為了就業和對口培養,忽略了培養學生的綜合素質,忽略了學生的長遠發展利益,造成學生后勁發展不足、再就業能力差、不能適應新信息技術條件下企業對軟件人才的要求。因此,我們必須調整、改進校企合作機制下計算機語言類課程的培養人才模式,從教學思想、師資學科結構、教學內容、教學方法等多角度探討計算機語言類課程教學改革,重視對學生多方面素質的培養。
1、端正教學思想,加強學生人文素質的培養
校企合作機制下,學生的實踐能力得到提高,雖技術嫻熟,但是難以融入企業中,常常缺乏活力、刻板自私、人際關系處理不善等。因此學校和企業兩方面的教師必須端正教學思想,不僅要傳授純粹語法的教學和技術,同時也要注重培養學生人文素質,促進學生全面自由發展。
目前在校企合作機制下,有的學生能很快融入到企業文化中去,在企業中如魚得水,大顯身手;但有些學生可能不認可企業理念和文化,只是為了經濟利益而就業;有的學生與同事相處較難,抱怨很多,在企業中難有所為。因此,無論是學校或是企業,必須在培養學生的科學素養的同時還要加強學生的人文素質的培養,使學生能夠順利融入社會或企業。
教師不僅要教書,更要育人,課堂上教師要加強大學精神的教育,培養學生追求民主自由、尊重科學、崇尚真理、兼容并包、開放創新等精神,同時要培養學生正確的世界觀、價值觀、人生觀,通過一個個鮮活的社會案例,教會學生如何做人行事、待人接物、妥善處理人際關系、擴大人際交往、塑造學生的健全人格。學校積極創造條件,改善基礎設施和提供經費,讓學生參與各種文體活動、社會實踐活動和競技比賽,建立特色的校園文化,多方面培養學生的人文素質,使學生充滿活力、思想積極、開放向上、身心健康等。
企業是以追求利潤為目的,為了企業的長遠發展,每個企業都有自己的企業理念和企業文化,因此企業也要加強學生人文素質的培養,將來更好地融入企業生活。企業指導教師要有選擇地介紹自己的企業文化,言傳身教,尊重學生的個性,傳遞企業文化正能量。企業也可以舉辦各類活動,讓學生積極參與其中,培養團隊吃苦耐勞精神、項目成員相處方法、團結協作精神等。
總之,在校企合作機制下,學生要學會有機融合校園文化和企業文化,計算機語言類課程教學中,為了學生的長期發展,應端正教學思想,不僅僅傳授計算機語言課語法知識,也要加強人文素質的培養。
2、優化師資學科結構,拓寬學生的知識領域
教師是提升教學質量的關鍵,校企合作下,首先學校定期派一定數量的教師走進企業,加強工程培訓,積累工程項目經驗,提高師資實踐水平,建立一支“雙師”型師資隊伍;其次引進軟件企業的業務精英作為兼職老師,企業的業務精英動手能力強、實踐工作經驗豐富,給學生授課,開展教學指導工作,新穎且實用,激發學生的學習興趣,改善學習效果。
校企合作教學模式對于培養高等技術應用性人才具有很大的積極作用。根據軟件企業的發展要求,教師可以將所掌握的技能通過實踐教學傳授給學生,讓他們能夠做到與軟件企業需求同步,走進軟件企業能立即上崗,實現人才培養無縫對接。但是,這樣的師資隊伍培養出的人才只是專業對口人才,學生的知識領域窄,知識遷移能力弱,例如某位同學學習C++語言,但是工作需要換成JaVa語言或要結合別的學科知識,就不能適應工作需求,再就業能力不強。因此,要拓寬學生的知識領域,不但培養學生的“專”,還要培養學生的“博”,更要優化師資學科結構。
優化師資學科結構,首先要調整教學團隊成員。講授計算機語言類課程的教師不一定是科班出身,可以是相近學科或交叉學科人才,例如,電子信息類教師可以將編程拓展到信息處理領域,介紹微電子技術的應用;認知神經科學類教師可以將編程拓展到生物信息領域,講授如何實現腦圖像的三維重構、腦圖像的處理、腦功能網絡的分析等;通訊專業教師可以將編程拓展到通信領域,介紹通信領域內網絡、系統、設備及信息交換、傳輸、處理方面的知識等。通過調整教師學科結構,既拓寬了教師講授計算機的應用領域,讓學生理解編程語言只是一種工具,感受到計算機語言類課程在生活中的廣泛應用,也拓寬了學生的知識領域,有利于激發學生的學習興趣。其次,通過“內培”和“外引”,積極提高教師的學歷層次,特別是博士人才的培養。“內培”可以通過跨學科學習,提高教師的綜合能力,有利于豐富教師講課的內容。“外引”可以引進國內、國際高層次人才,特別是具有博士學位的人才。高層次人才具有較高的理論素養和實踐能力,思想先進、視野開闊,容易接受教學新理念、新機制、新方法,采用先進的教學手段等,有利于提高課堂教學質量,改善課堂教學效果;同時科研水平較高,創新能力較強,緊跟學科最新發展潮流,有力地支撐著教學內容的深度和廣度,有利于拓寬學生的知識領域,進而提高教學質量,以較高的水平指導學生的學習。
總之,通過優化計算機語言類課程師資教學團隊的學科結構,拓寬教師知識體系的深度和廣度,有利于豐富教學內容,拓寬學生的知識領域。
3、調整教學內容,提高學生的綜合理論水平
目前計算機語言類課程的教材大同小異,大多只講述語法,忽略了與其他學科,例如數學、軟件工程、信息技術等相近學科的關系。培養軟件人才,不能只培養一個高級熟練工人,應該培養成一個有思想、有理論、創新型復合人才,使其后勁十足,能夠拓寬自身發展空間。但是目前校企合作機制下,實踐有余、理論不足,因此必須調整教學內容,增加理論部分,特別是軟件開發中的思想理論、設計理論等,全面提高學生的綜合理論水平。
調整教學內容,一方面增加教學內容的實例,培養學生的應用能力,這一點,通過校企合作可以做得較好。但是,另一方面,教學缺乏思想理論的培養,理論是實踐的先導,思想是行動的指南,因此在計算機語言類課程的教學中,應適當增加理論知識,提高學生的理論水平。
1)增加軟件工程思想理論和軟件設計理論,提高學生的軟件理論水平。
計算機語言類課程培養的目標之一就是培養高級的專門軟件人才,但是在人才培養過程中,該類課程只注重語法的教學,完成簡單或中等的項目沒問題,但遇到大型項目就容易出錯,這是缺乏軟件工程思想和軟件設計理論的表現。因此在培養軟件人才過程中,增加軟件工程思想理論和軟件設計理論特別重要,例如在Java教學中,增加了軟件工程的方法的介紹,特別是面向對象的方法,幫助學生建立面向對象的思想;增加了軟件設計理論,特別是建模理論(結構建模、用例建模、動態建模)和思想、MVC(Model-View-Controller)模式的體系結構的建立,介紹了UML,幫助學生更好地進行軟件設計;增加了軟件開發方法理論,介紹了軟件開發模型,例如瀑布模型、增量模型、螺旋模型等,同時還介紹了軟件開發過程工作流,例如需求分析、建模設計、實現和測試、后期維護等,幫助學生很好地把握整個軟發開發進度,及時解決軟件開發不一致的問題。
2)增加數學思想理論在程序設計的應用,提高學生的數學理論素養。
程序設計離不開數學邏輯和數學思維,因此在程序設計教學中,增加數學思想理論,提高學生的數學理論素養,能夠更好地幫助學生進行程序設計,例如增加整體思想和歸納推理思想,幫助學生建立自上而下和自下而上的程序設計思想;增加分類思想,在面向對象程序設計中,幫助學生建立類的概念;增加函數思想,利用函數的概念和性質去分析問題、轉化問題和解決問題,幫助學生培養建模思想,容易設計程序的模塊和子模塊;增加類比思想,幫助學生學習面向對象程序編程中函數或方法的重載和重寫機制;增加向量和集合思想,幫助學生學習數組和集合。
3)增加算法設計理論,提高學生轉化問題的理論水平。
程序設計要解決的都是應用問題,因此需要學生能夠將待解決的或者難以解決的問題經過某種轉化手段,轉化為已有解決方法或者容易解決的問題,來實現最初問題的解決,這個轉化過程就是算法。因此在教學中必須增加算法設計理論,提高學生轉化問題的理論水平。算法設計過程,首先要確定輸入和輸出,建立數據結構;其次注重分析問題,找出邏輯關系,利用已有知識和能力,轉化所求的問題,尋求算法,實現問題的解決;最后畫流程圖或其他算法設計圖來輔助算法設計。例如“水仙花”問題,首先確定輸入是一組整數,輸出是一組“水仙花”的整數,因此可以采用數組存儲數據。其次分析邏輯關系,確定某個整數是否為“水仙花”。要確定所有整數,所以必須采用循環結構。最后畫出流程圖輔助設計編碼。
4)增加課程與其他課程理論的聯系,拓寬學生的知識理論水平。
計算機語言類課程不是孤立的課程,與其他課程聯系緊密,例如數據結構、操作系統、網絡信息技術等,這些課程的理論思想對計算機語言類課程的學習具有一定的影響力,有利于培養學生的遷移能力,例如數據結構的抽象數據結構思想,容易遷移到類和接口上面;操作系統的內存管理、進程、線程通信等思想對于程序設計中變量的使用、參數的傳遞、多線程編程等;網絡信息技術幫助學生學習網絡通信方面的編程。
4、多模式教學,培養學生綜合能力
校企合作機制下,根據企業需求,課堂講授語法、最新技術、編程技巧等。實踐教學到實習基地開展,將所學程序設計知識通過實踐鍛煉融會貫通,學生將計算機某種語言學的很熟練,可以成為一名熟練的高級程序員。但是教師教學方式變成了固定模式,學生思維單一,只會固定模式編程,忽略了許多重要思想和能力的培養,例如缺乏語言編程思想和探究問題、轉化問題的思維能力、軟件工程思想和軟件設計能力、轉化問題能力、創新能力等,學生只能按照固定模式去思考問題,發展后勁不足,再就業能力差等。因此在校企合作下,教師必須運用不同的教學方法和教學手段,改變教學策略,以知識為載體,改善學生思維品質,培養學生的思維能力和綜合能力。
在教學中,教師精心組織教學,采用多模式教學,注重學生思維能力的培養。首先,教師采用啟發式教學,啟迪學生思維,培養學生的想象能力和探究問題的能力,進而引導學生思考創新;采用經典案例法,培養學生獨立分析問題、轉化問題、自主學習和解決實際問題的能力等。其次,采用項目驅動教學法,可以貼近實戰,培養學生領導能力、團隊協作能力、系統分析能力、學習創新能力等。
總之,筆者贊成采用不同模式教學,讓學生各方面能力都能得到鍛煉,特別是要把各種程序設計思想和思維貫穿與計算機語言類課程中,培養學生的綜合能力,提高學生的綜合素質。
關鍵詞:C語言教學;自動化專業;專業技能;專業特色
中圖分類號:GDP42 文獻標識碼:A 文章編號:1009-3044(2013)13-3111-03
隨著信息技術在全社會的進一步普及,就業單位對大學生的計算機技能有了更高的要求。作為計算機教學的主要方面—計算機語言的講授,也成為了高等院校教學改革的一個重點內容[1]。計算機語言已不再是一門孤立的課程,而是漸漸地作為一個必不可少的工具滲透到所在專業的整個學習進程中來。隨著中小學階段計算機課程的開設,大學新生的計算機基礎也在日益提升。同時,由于我國人口素質的進一步提高,對計算機應用已不再滿足于傳統的簡單編程,而是希望將計算機作為一個真正的工具,為生產生活服務。因此,高校計算機語言教學改革的迫切性進一步增強。如何適應新時期下學生、社會、用人單位對計算機語言水平的要求,是擺在教學人員面前的一個重要課題[2,3]。
該文以C語言為例探討計算機語言在自動化專業學生中教學的一些改革途徑[4]。作為一門適應性很廣的計算機語言,C語言有著很強的生命力。它具備豐富的教材來源、大量的可參考教案和程序實例[5]。是在我國從985重點高校到各類職業技術學院中工科學生學習最廣的一門計算機語言,具有很強的代表性。對自動化專業的學生而言,學好C語言有助于加深對計算機程序設計思想的理解,為學習匯編語言和其他計算機高級語言打下良好的基礎。同時為學習后續專業課程以及進行相應的課程設計做好專業知識的儲備。
當然,應該指出的是,該文所列舉的很多方法并不僅適用于C語言。不同計算機語言具有大量的共性,該文所提出的不少思路完全可以在作適當增刪之后移植到其他計算機語言的教學中。同樣,適應專業也不一定局限在自動化專業,很多方法也可供其他專業參考。
1 教學過程的組織實施(Plan of teaching process)
1.1 C語言思想的引入
作為C語言教學的開始,教師有必要向學生介紹C語言的特點,培養學生對程序設計的興趣。同時需要解答學生在學習C語言初期遇到的一些常見問題,使他們不至于一開始就對C語言的學習產生畏難情緒。就筆者的教學經驗而言,教學初期一般會面臨如下問題:
1)學了它有什么用?
這個問題可能是大學新生問得最多的一個問題?這時,教師并不一定說:“到時候你們就知道了”,而是可以從學生所在專業特色開始深入淺出地談一下C語言的特點和一些容易理解的直觀的應用。可以給學生介紹一下計算機程序在工廠過程自動化控制中的應用。因為學生將來都要去工廠進行實習的,事先給他們介紹一下這些背景知識可以有效地提高他們對C語言學習的好奇和渴望。同時也是為他們的專業課程學習做好鋪墊。
2)我能學好嗎?
由于我國一些農村中學計算機教學的局限,一些新生在看到其他有些同學具備較為熟練的計算機操作能力可能會產生焦慮情緒。這時,教師在課堂舉例時,應當多舉淺顯易懂的例子。興趣是最好的老師。C語言教學不是數學學習,不應該拿復雜的公式編程來使學生望而生畏。例如:如果要使學生熟悉條件語言、循環語句的使用,用最簡單的數學四則運算舉例即可。不要讓學生把注意力過多地放在數學背景上。
3)考試怎么考?
關注自己的成績是每個學生的權利,作為老師也有義務向學生講述考試的題型和方式。在這里,我們的經驗是鼓勵學生多看其他的講授C語言的書籍。大學不像中學,由于知識的經典性,中學的教材一般是統一的。而大學教材則體現了不同專業,不同編者的個性風格。在這里,我們希望學生能汲取各家之長。如果某個知識點在一本教材里沒有看懂,那么就試圖去另外一本教材里去找找。這種做法另一個好處是破除了學生對知識會一成不變的迷信。讓學生明白:知識是不斷發展的,必須不斷學習才能不斷地充實自己。
4)今后還會用到嗎?
在中學,雖然每個學期所學的知識在不斷的變化,但課程名卻總是那么幾個。但是在大學,課程名會隨著所學內容的變化在不斷地更新。如果說新生對大一的英語、數學、政治理論等課程名還似曾相識的話,那么面對高年級的一堆陌生的課程名就有點迷茫了。面對這個問題,我們可以在講授C語言各個章節時用適當的時間舉例講授一下該部分內容在未來的哪些課程里面會有所涉及。通過這樣的講述,學生不但從感性上認識了將來要學習的課程的一些特點,也更進一步加深了對目前學的C語言的理解。
1.2 注重論述C語言和其他課程的相關性
作為自動化專業的一門課程,C語言既是整個自動化專業課程體系的一部分,同時也是一個貫穿專業學習始終的工具。我們在講授C語言時,沒有將它與其他課程割裂開來,而是時而不時有目的地貫輸了C語言如何在其他的知識領域中的一些應用。在這里所需要指出的的,或許有老師認為對新生談及一些專業課內容可能會使他們無所適從(因為他們尚無太多的專業基礎)。就我們的實踐經驗來看,這種擔心沒有太多必要。現在大部分學生的自學能力和理解能力較過去已大大增強,而且目前高校給予學生的專業熏陶較之過去也已不可同日而語。新生完全有能力理解老師所講的一些簡易的專業內容。現舉一些C語言與其他專業課結合的例子如下:
《數字電子技術》的一個基礎內容是與門、或門、非門等邏輯門電路的講解。而這部分內容又恰好對應了C語言中的與、或、非三種邏輯運算。我們在講授C語言邏輯運算的同時也介紹了該部分內容與《數字電子技術》內容的吻合性。同時,電子技術中又涉及到數/模、模/數的轉化問題。我們在講循環語句時就要求學生嘗試編一個十進制數和二進制數轉化的程序(其算法在更早的《大學計算機基礎》課程里就已經講授到)。使學生對硬件邏輯和軟件邏輯的概念具有了直觀的概念。
計算機控制的一個特點在于它控制指令的離散性。《計算機控制》課程中一個很重要的知識點是控制量的遞推運算。我們在講述一維數組時有意識地強化了數組元素的遞推編程。并且通過設置標志位,對某些具有特定意義的元素進行了定位標示。使學生在今后接觸到相關課程時感到有章可循。
《微型計算機原理》是自動化專業中一門重要課程。在這門課程中,指令地址的概念是一個較難理解的問題。我們在講C語言的指針部分時有意識地涉及到了該部分內容。試圖通過講述指針為今后學習指令尋址打下基礎,反之,也試圖通過介紹指令地址,使學生明確指針一節的地位和重要性。
作為一門工具性與理論性兼備的課程,《數據庫技術》里面的內容較為繁雜。在講述結構體這一章時,我們有意識地介紹了數據庫的基本組成思想。要求學生用結構體知識編一個小型的數據管理程序。任務雖然簡單,但已經涉及到了數據庫組成的主干思想。使學生對這門課程不再神秘。
MATLAB語言的講授是《計算機仿真技術》課程的骨干內容。考慮到仿真技術對于自動化專業的重要性,我們在講授C語言語句的同時,也適量介紹了它在MATLAB語言中所對應的代碼。這樣做的目的是為學生破除“世界上只有C語言”這一誤解。為他們更好地理解程序員的含義打下基礎。
通過諸如此類內容的引入,學生學習C語言不再感到單一乏味。同時,由于我們對相關內容點到為止,并沒有增加學生的負擔。而當學生將來接觸到對應的知識點時,就會享受到以前學習的基礎了。
2 教學案例分析
本節就我們講述C語言時的相關案例進行探討。意圖拋磚引玉,進一步完善C語言教學。如前所述,興趣是最好的老師。如果學生有了學習的興趣,自然教學會事半功倍。因此,我們將興趣的培養貫穿了C語言教學的始終。
計算機編程的一個核心思想之一是通過不斷循環執行一些簡單的語句來實現對目標的搜索,并且在搜索的過程中需要判斷搜索的終止條件是否已經達到。因而條件語句和循環語句的教學是C語言教學的一項重點內容。為了培養學生的興趣,結合學生理工科的專業背景,我們在教學中引入了不少數論名題作為例子,要求學生編程予以驗證。例如:3x+1猜想是一個很有趣的問題[6]。這個猜想是:任意給一個自然數,如果它是偶數,則除以2;如果它是奇數,則乘以3再加上1.所得結果再按如上規則進行運算,最終結果一定是1.例如,對數字7,其后續的運算結果是;22,11,34,17,52,26,13,40,20,20,5,16,8,4,2,1.針對這個問題,我們要求學生用條件語句判斷數字的奇偶性,然后用循環語句實現這個數列的計算。更推廣一步,我們還要求學生用隨機數發生器生成一個隨機整數,然后分別用while循環和do-while循環來實現這個過程,并且要學生記錄下達到1時一共產生了幾個數?如何實現到1就退出循環?在這一循環過程中的最大值是多少?由于3x+1問題的淺顯易懂,且因為其尚未得到證明所具有強大挑戰性,使學生對編程產生了濃厚的興趣。不少學生紛紛試圖去驗證自己所提出的數的正確性。還有學生則試圖進一步通過函數調用的方式來改善程序。也有學生在程序中插入了各種有趣的提示性語句。這個例子的提出,滿足了不同層次學生的不同要求。一下子就把他們帶進了豐富多彩的代碼世界中。
輸入輸出語句的編寫是人機交互的關鍵環節。總所周知,英語學習是我國廣大大中學生學習的一個主要課程。幾乎所有的大專院校都把學生能否通過某種英語水平考試作為其能否順利畢業的核心條件之一。我們也注意到個別學生由于擔心英語的壓力而在課堂上記憶英語單詞。對此,我們采用了引導的辦法。在針對3x+1問題編程的訓練中,我們要求學生用英文寫出對應代碼的提示和答案。在此之前,不少學生是用漢語拼音或簡單的“yes”、“no”,甚至僅是“?”來表示問題的。通過我們的這一要求,學生積極地去尋求許多詞匯的英文表述。這樣一來,他們希望看懂C語言編譯器所給出的英文錯誤提示的熱情也越來越高了。通過這樣的訓練,有些學生開始漸漸能嘗試看一些關于C語言的英文著作了。如此不斷循環,學生的計算機能力、英語能力都得到了提高,應該說是實現了雙贏。
3 結束語
計算機語言的教學工作是工科專業教學的一個重點環節。科技發展的客觀要求使得我們更加重視教學課程的一體化。作為一門在專業學習初期階段開設的課程,C語言有它自身的一些教學特點。我們在總結自己的一些教學經驗的基礎上,試圖更好地將C語言這個工具融入到學生的整個專業學習體系中。讓學生從享受編程的快樂開始,無形中回答了自己前期的一些疑惑,同時也不知不覺地為將來的其他課程學習以及自己專業素質的培養打下了良好的基礎。
參考文獻:
[1] 謝寶榮.計算機教學設計藝術[M].清華大學出版社,2007.
[2] 陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011(1):7-12.
[3] 馮博琴.計算機基礎教育新階段的教學改革研究[J].中國大學教育,2004(9):7-10.
[4] 王鵬遠,蘇虹.高校非計算機專業C語言教學改革與實踐[J].計算機教育,2011(2):15-18.
盜傳必究
一、名詞解釋
題目1
材料:
材料是人們用來制造有用物品的各種物質。
題目2
細胞全能性
細胞的全能性指已經分化的細胞,仍然具有發育的潛能。
題目3
計算機病毒
計算機病毒是仿造生物病毒建立起的概念,它是指可以制造故障的一段計算機程序或一組計算機指令。
題目4
宇宙
宇宙是天地萬物,是廣漠空間和其中存在的各種天體以及彌漫物質的總稱。
題目4
核力
原子核中核子之間存在的作用力。
題目5
納米材料
納米材料就是用特殊的方法將材料顆粒加工到納米級(10-9米),再用這種超細微粒子制造的材料。
題目6
基因表達
基因表達就是遺傳信息表現為生物性狀的過程。
題目7
計算機語言
計算機語言就是一套計算機能識別的指令系統。
題目8
核能
核能是在原子核變化過程中,從變化前后原子核質量虧損的質量差轉化來的能量。
題目9
納米材料
納米材料就是用特殊的方法將材料顆粒加工到納米級(10-9米),再用這種超細微粒子制造的材料。
題目10
地球外部圈層結構
地球外部圈層結構指地球外部離地表平均800千米以內的圈層,包括大氣圈、水圈和生物圈。
題目11
關鍵詞:C語言;計算機
一、首先要學好數學這門基礎課
IT 界有一句比較實在的話“數學是計算機之母”。在 C 語言的學習過程中,一般有大量的算法和數據結構需要去了解,由此可見數學在計算機學習中的重要地位,同理,在 C 語言的學習過程中,數學思想的應用會讓人有豁然開朗之感,一些簡單的運算問題的解決其實就是在數學領域的,編寫程序是為了讓計算機可以代替人操作運算過程,從而減少人力。
二.、明確學習C語言的目的
我們的學習目的不是只為了學習C語言,而是為了能夠掌握程序設計的方法,具有程序設計的基本理念,為以后的計算機應用打下基礎。在學習中很多學生認為這門課程既難學、又看不到任何成果, 不如 Java 等語言很快就能編寫出有漂亮圖形界面的程序。 但C 語言有助于對計算機編程底層原理的理解,對調整知識結構和能力結構,提高自己的綜合素質都有很大幫助。
三、語言入門
剛開始接觸計算機知識,處于一個計算機技術的啟蒙階段.在這個啟蒙階段,最重要的就是入門。當大家都滿懷信心的去學習那些被各大高校都當作計算機入門教材的C 語言的時候,發現太多的“不明白”,因此《C語言程序設計》入門課是至關重要的。因為學生都是初次接觸C語言,C 語言對他們來說是神秘的,首先在學習之前要充分了解相關領域的知識,明確學習目的及學習重要性,激發學生的學習好奇心和欲望。
四、了解C語言的發展歷史,使自己對C語言產生一種似曾相識的感覺
C語言是國際上廣泛流行的計算機語言,既可以用來寫系統軟件,也可以用來寫應用軟件,特別對操作系統和系統實用程序以及需要對硬件進行操作的場合,C語言明顯地占優勢。比如網絡編程語言PHP的絕大部分內容與C語言相同,如果學過C語言,那么再學PHP就會非常輕松。
五、把好實踐關,重視每次上機試驗
C語言是一門實踐性很強的課程,既要掌握概念,又要動手編程、上機調試運行。養成上機前分析題目,決定算法與數據結構,并編出程序源代碼的好習慣,這樣在上機時,就會有的放矢,上機時輸入程序并完成語法檢查,再運行程序,檢查運行結果,同時詳細記錄下在程序調試過程中所遇到的問題及解決辦法。編程千萬不可遇難而退,這個時候是決定你水平提高的關鍵,一定要堅持到底。堅持就能成功。上機過程中主要精力放在調式程序上。實習結束后隨堂完成實驗報告,逐步積累調試程序的經驗。培養自己良好的編程習慣。明確一點“C 語言不是看會的,也不是聽會的,而是親自動手實踐練會的”。
六、強調問題學習,培養自己的創造性思維
目前許多學生普遍缺乏問題意識,則學習就失去了快速前進的動力。每次學習都要帶著問題去學,直到把問題解決了,知識也就掌握了。科學并非始于觀察,而是始于科學問題,正是問題激發人們去觀察、去思考,從而啟動了科學探索的創造機制激活了科學家的創新思路。
七、牢牢把握住C語言的知識要點
C語言內容十分豐富,各知識點具有非常大的連貫性,常常是牽一發而動全身,這往往使得學生在入門階段容易產生畏難情緒。眼高手低是每一個剛學 C 語言的人都會出現的一種情況。由于 C 語言靈活、強大,初學者要全面地掌握它非常吃力,因此在學習 C 語言的過程中,一定要熟練掌握 C 語言的流程控制語句、數組、函數、指針等基礎知識。可以把學習的重點放在函數的設計框架、參數設計、返回值設計等關鍵問題上。
八、學習過程中引入軟件工程的基本思想
為使自己有良好的編程思維,培養自己在程序設計中從軟件工程角度去系統分析問題的良好習慣。
總之,計算機語言是各高校普遍設置的一門計算機課程,也是培養大學生計算機能力的一門基礎課程,是各專業學生進行計算機編程以及從事計算機研究的基礎類課程,意義十分重大。計算機語言的種類很多,各種語言的區別只是語法規則和具體的實現方式不同,好多方面都是相通的,所以對于計算機語言的學習關鍵在于精而不在于多。C語言是計算機程序設計中一種廣泛使用的基本語言工具,學習 C語言是學生形成編程思維,是為將來進行計算機軟件開發設計打下基礎的重要過程。
【參考文獻】
[1]李少華.《C語言程序設計》教學中的幾點體會,長江大學學報(社會科學版).2010,(10).
摘要:本文在明確教學目標的基礎上,提出并探討了案例實驗教學法的組織策略和實施過程。文中以C語言為例詳細論述了如何圍繞案例組織教學內容和設置實驗環節,并給出數組單元的教學方法。
關鍵詞:計算機語言;程序設計;案例教學;實驗;C語言
中圖分類號:G642 文獻標識碼:B
1教學目標
計算機語言的學習存在著一種現象,學生在學習過程中,跟隨教師被動地學習,對程序設計沒有整體的觀念,缺乏明確的目的性,甚至學習效果如何也不知道,最后即使拿到高分,在真正編程時仍然覺得難以下手,沒有思路,完全不知道如何將所學的知識應用到實際編程中。這種現狀讓我們不得不反思:我們的教學目的到底是什么?教學效果應如何衡量?課程應怎樣組織?
很顯然,僅僅讓學生掌握計算機語言的語句、語法等細節是不行的。通過計算機語言的學習,學生應具備程序設計的能力和實際解決問題的能力,學生要掌握的是程序設計思想和相應的學習方法,構建相應的知識體系,并具備知識擴展的能力。因此可以從以下三個方面衡量教學效果:
掌握一門語言的主干,并能在相關參考資料的幫助下解決實際問題(知道如何和怎樣得到幫助);
掌握一定的算法和程序設計思想;
具備上機調試的能力。
相應地,課程的教學有兩層目標:
幫助建立程序設計中應用到的概念以及理解計算機語言規則;
幫助建立編程思想以進行真正的編程活動。
2案例實驗教學法
不同于其他學科,計算機科學的學習僅僅有解決方案還不行,還需要動手將其變為現實,也就是要通過實驗來鞏固和驗證所學。實驗的過程還可以發現知識結構的欠缺,進一步引發學習動機。因此教學過程中除了要重視案例的講解,也要重視實驗,這兩者是相輔相成的。在教學中結合案例的課堂講解,可以設置兩類實驗:
同步實驗:和課堂教學緊密結合,其目的是幫助學生建立和理解程序設計中用到的概念以及語言規則,學習基本的實驗技能,掌握程序調試方法;
自主實驗:通過階段性學習后進行較為綜合的實驗,其目的在于幫助學生掌握編程的方法并進行真正的編程活動。
案例實驗教學法的組織實施過程如圖1所示,教師首先從案例演示開始,讓學生理解計算機語言應用的場景,能解決的問題,產生學習興趣;然后,逐步分解案例并進行分析,幫助學生建立和理解學習目標,并引入不同的知識單元;再針對當前知識單元,布置同步實驗。通過階段性學習后,在學生已有知識基礎上對案例進行擴展,布置自主實驗,引導學生發現存在的問題,促使其主動學習;而實驗過程以及實驗結果,也能讓教師了解學生的學習情況,相應的調整教學方案,并且通過對學生成果的展示和評價進一步激發學生學習的主動性,提高學習興趣。
案例實驗教學法的整個組織強調的是課堂講解和學生實踐的緊密結合,學生對知識的理解情況以及學生實驗實施情況都成為后續教案設計中必須考慮的重要因素,而學生也能體會主動學習以及成功的經驗,主動完成知識構建。
3案例實驗教學法的實施
從案例實驗教學法的組織過程中可以看見,案例和實驗環節是聯系教和學的紐帶,也是教學活動能有效實施的關鍵,下面以C語言為例,說明案例和實驗環節如何設置。
3.1案例選擇及知識點的分解
案例的選擇不能強調難度,而應具備普遍的代表性且是學生易于理解和感興趣的。例如可以選擇用C語言實現的迷宮、貪吃蛇等游戲,也可以選擇簡單的信息管理系統,如書籍借閱、學生管理等。在這里我們以學生成績管理系統為例。選定案例后,先進行程序的演示,以便學生理解C語言可以作什么,有感官上的認識,然后結合軟件工程設計思想,從需求分析、設計、編碼、調試、運行各個階段展示案例,使得學生對將需求從客觀現實世界映射到計算機軟件世界有初步的了解。再結合面向過程程序設計思想,從功能角度將系統分為若干主要模塊:
第一階段:基本的程序設計和實現
(1) 數據的錄入和顯示:數據類型、變量、常量、輸入輸出方法;
(2) 數據的計算:算法思想、表達式、三種控制結構;
(3) 成績排序和查詢:數組、排序算法和查找算法;
第二階段:提高程序質量
菜單的實現:函數和預處理命令;
第三階段:高級應用
(1) 數據的訪問:指針;
(2) 數據的存儲:結構體和共用體;
(3) 和外存的交互:文件;
上述模塊劃分后,學生很自然地了解程序設計和計算機語言學習的循序漸進的過程:首先是在程序設計過程中我需要解決什么問題,然后是用什么方法以及知識可以解決問題。這樣學生就能理解各個知識點之間的關系,樹立明確的學習目標。
在各個知識點的教學后設置同步實驗,對課堂知識進行鞏固并作相應的擴展。將全部課程分為三個階段,在每一階段后引入自主實驗,通過一個較為綜合的實驗,培養學生的實踐能力,擴大知識面。自主實驗后應有相應的評價環節,讓學生展示自己的成果并對欠缺的知識有一定的認識,為后階段的教學作鋪墊。
3.2案例實驗教學法實例
教學活動的設計和實施過程要始終圍繞培養學生的程序設計能力和實際解決問題能力。程序的實現有兩個關鍵因素,一是算法,二是語言。對程序設計而言,語言僅僅是一個工具,算法才是本質的內容,因此每一部分的學習首先都應該強調算法的思想和程序設計的方法,然后才是具體的語法規則的學習。
計算機語言中數組是非常重要也很實用的存儲結構,而排序和查找算法則是計算機應用中最基本的操作任務。下面以第一階段第三個知識點即學生成績的排序和查找為例說明案例實驗教學活動是如何開展的。
〔教學目的〕
1. 理解排序查找算法的思想
2. 數組的概念及其應用
3. 強化順序、分支、循環控制結構的應用
〔案例教學過程〕
程序設計的目的是要解決實際問題,在選擇了合適的教學案例后就應根據實際的教學情況在合適的時候提出合適的問題,以問題驅動教學可以更好地促使學生進行主動學習,有效地提高教學效率。
1. 問題引入:演示對M個學生N門功課的成績排序以及查詢某個學生各門課成績查詢的程序。為提高學生學習興趣,還可以結合當前應用熱點如數據庫、搜索引擎講解排序查詢算法的實際需求。提出問題:如何實現查詢和排序?
2. 分析講解:通過對問題的逐步分析,引導學生掌握算法思想和語法規則。
(1) 簡化問題,組織討論,理解算法提出的必要性。例如對a,b,c三個數進行排序。初次接觸排序的學生首先想到用if…else…語句將三個數兩兩比較,直到完成排序。再提出問題:當數字的個數增加到四個、五個甚至任意個數時,怎樣排序?上述解決方案是否可行?顯然,不可行,那么問題出在哪里?回顧算法的要點:算法應具有通用的表達方式,可以給出計算機可執行的操作步驟。上述方法不具有通用性。
(2) 引入一種排序算法如交換法的思想。利用動畫引導學生聯想日常生活的場景,如N個人從高到矮排隊會怎么做?個子最高的站第一個,然后是第二個,…,在這個過程一直重復做兩件事情:比較和交換位置。引申到用計算機實現N個數的排序,學生能比較自然地接受交換法的思想。再次讓學生給出解決方案,畫出如圖2所示的算法流程圖。
(3) 提出問題:上述解決方案在實際編程過程中N個數怎么存儲?引入數組這種重要的存儲結構
(4) 核心知識的學習:在這部分的學習中可以用典型的、較為簡單的例題進行講解,如Fibonacci數列、矩陣的簡單計算以及字符串的復制等。幫助學生學習涉及的核心知識點:一維數組、二維數組、字符數組的定義、引用和初始化方法,并熟悉數組結構在程序中應用的場景和方法
(5) 學生成績排序案例的程序講解
(6) 用類似的方法完成查找算法思想的介紹和成績查詢案例的程序講解
3. 總結深化:教師就教學過程中應掌握的知識點進行總結歸納。在此基礎上,由學生提出自己的疑問,引起再一次的思考,以真正掌握知識。
〔同步實驗〕
同步實驗需要和課堂以及書本緊密結合,主要包括兩部分的內容:其一,和課堂上的典型例題相似,學生通過讀程,仿照程序開始編寫程序的學習,能較順利的開始實驗,增強信心,也能通過積極的思考回顧并掌握課堂上的知識點;其二,對課堂例題的延伸,如采用一題多變,一題多解等形式,鼓勵學生積極思考,突破思維定式,更好的掌握算法。
實驗內容:
1. 任意輸入10個整數,存儲在一維數組中,實現數組的輸出、排序、查找
2. 二維矩陣的最大值求解并輸出其所在的行列
3. 打印楊輝三角
4. 字符串的輸入、輸出、在字符串前增加一個字符、排序、查找
〔自主實驗〕
經過階段性學習后,引入自主實驗。除了布置實驗內容,教師還應介紹學習資源(包括書籍、網站等),給出合適的問題,讓學生帶有目標的完成任務。其目的在于提高學習興趣,激發學生的創造性,鼓勵學生為解決問題從不同途徑中獲得幫助,學會查找資料、使用資料的能力,使其具備擴展自身知識體系的能力。
實驗內容:編寫一個小型的游戲程序,如猜測計算機隨機生成的數字,實現玩家成績的排序或查找玩家的歷史成績。程序設計過程中請考慮:查找或排序的效率和哪些因素有關?還有哪些排序或查找算法可以使用,如何衡量查找或排序的效率?
〔實驗講評〕
學生程序得以實現后,并不意味著實驗的結束,必須進行講評,包括:
1. 對實驗過程中遇到的常見問題進行講解,深化知識的理解
2. 學生有代表性解決方案的展示,使得學生對所作的工作有成就感,提升學習的興趣。在這個實驗中,學生普遍對排序算法表現出極大的興趣,通過查閱相關的教材資料,嘗試了不同的排序方法,如選擇、冒泡、快速排序等,開拓了視野。這顯然不同于以往學生局限于學習教材所講的一到二種算法。在排序效率分析上,除了常規的獲取系統時間的方法,還有同學想到用統計算法中比較次數和交換次數的方法。此時,教師的鼓勵將達到事半功倍的效果
3. 對實驗結果進行總結,引發進一步的思考。解決方案中是否有不完善的地方,用現有的知識能否解決?如不能,需要學習怎樣的知識?例如程序中猜數字、查找、排序等功能都在一個main()函數中實現,會有什么樣的問題?如果你作為語言的設計者會提供什么方法來解決呢?又如玩家每玩一次游戲,記錄成績的數組長度就必須增加,但是數組定義又要求長度是常量,所以只能選擇盡量大的值,那么在事先不確定游戲次數的情況下,如何實現不固定長度的數組呢?這樣自然的引出后續的教學單元:函數、指針等內容。
〔方案評價〕
教師根據案例的實施情況以及學生實驗情況對教學方案進行調整,最大程度的使教案適應學生。當然也可以讓學生參與教案的評價。
上述教案經筆者實踐,學生反響積極,經過第一階段的學習,特別是自主實驗后,學生理解了計算機語言學習的重點所在,學會資料的查找和使用,開始大膽嘗試編程,后續的教學教師就可以在提高程序質量和程序風格上多加引導。
4結束語
案例實驗教學法通過課堂講解、實驗鞏固擴展,將教和學緊密結合,在教學活動中突出程序設計思想,在案例的分析、程序的設計和實現過程中注重實驗環節,讓學生主動參與,充分調動學生的興趣,在掌握語法規則、熟悉且能應用編程語言的同時,能有效地培養學生的編程實踐能力和探索能力。
參 考 文 獻
[1] 董榮勝,古天龍著.計算機科學與技術方法論[M].北京:人民郵電出版社,2002.
[2] 史美蘭.體會哈佛案例教學[J].國家行政學院學報,2005,(2).