時間:2022-12-05 05:14:05
導言:作為寫作愛好者,不可錯過為您精心挑選的10篇高級語言程序設計,它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內容能為您提供靈感和參考。
針對《高級語言程序設計》實踐課程教學中存在的諸多問題,教學時可按專業研究方向有所側重地進行教學設計,設計不同的教學導向、教學內容、教學方法等。對電子信息類學生,可有所側重地加強該實踐課程與后續信號處理類課程,數學實驗與數學建模課程的聯系。
2.1加強該課程與信號處理類課程的聯系
信號與信息處理的方法和能力是電子信息類學生在專業學習中必須要求掌握的一個基本技能環節之一。其中,比較典型的課程有《算法與數據結構》《數值分析與算法》《數字圖像處理》《語音信號處理》《信息隱藏技術》等。在《高級語言程序設計》實踐教學的教學內容設計上,可將學生引導到信號處理的方向上來,增加相應課程中涉及的特征參數提取,特征識別或判別、求解方程或某一類問題的算法實現等內容,一方面增加了練習題目的針對性,趣味性,同時還提升了題目本身的難度和層次性。例如,《語音信號處理》課程的學習過程中,可以設計一個小型的系統辨識問題[2],讓學生完成10個孤立數字的語音識別問題。其中包括了語音特征參數的提取、特征的判別兩個環節。
2.2加強該課程和數學建模與數學實驗課程的聯系
數學實驗與數學建模是計算機和數學軟件引進教學后的新事物,是數學教學體系、內容和方法改革的一項嘗試。以往我們對數學的學習著重在,通過嚴密的邏輯推理完成公式的推導、定理的證明和實現一些簡單快捷的計算,忽略了數學的實際應用。對于大多數理工科大學生來說,將來的工作并不是數學領域的研究工作,更多的時候,他們很可能將以數學為工具來解決各種實際問題。數學實驗與數學建模課程正是鍛煉了學生這一方面的能力。另一方面,一次數學建模實驗過程相當于進行一次小型科研活動,在一定程度上,培養了學生初步的科研能力。通過最近幾年的教學實踐和組織學生參加全國和國際大學生數學建模競賽活動,發現數學實驗和數學建模課程對學生科研能力的鍛煉有很大的促進作用,我們對該門課程的教學也著力在數學模型的建立和編程求解方面加強更多的聯系。下面就這方面談談教學實踐中的一些體會。在全國大學生數學建模競賽中有這樣一道題目[3-4]:2000年6月,人類基因組計劃中DNA全序列草圖完成,此后人類將擁有一本記錄著自身生老病死及遺傳進化的全部信息的“天書”。這本大自然寫成的“天書”是由4個字符A,T,C,G按一定順序排成的長約30億的序列,其中沒有“斷句”也沒有標點符號,除了這4個字符表示4種堿基以外,人們對它包含的“內容”知之甚少,難以讀懂。破譯這部世界上最巨量信息的“天書”是21世紀最重要的任務之一。在這個目標中,研究DNA全序列具有什么結構,由這4個字符排成的看似隨機的序列中隱藏著什么規律,又是解讀這部天書的基礎,是生物信息學(Bioinformatics)最重要的課題之一。雖然人類對這部“天書”知之甚少,但也發現了DNA序列中的一些規律性和結構。例如,在全序列中有一些是用于編碼蛋白質的序列片段,即由這4個字符組成的64種不同的3字符串,其中大多數用于編碼構成蛋白質的20種氨基酸。又例如,在不用于編碼蛋白質的序列片段中,A和T的含量特別多些,于是以某些堿基特別豐富作為特征去研究DNA序列的結構也取得了一些結果。此外,利用統計的方法還發現序列的某些片段之間具有相關性等。這些發現讓人們相信,DNA序列中存在著局部的和全局性的結構,充分發掘序列的結構對理解DNA全序列是十分有意義的。作為研究DNA序列結構的嘗試,提出對序列集合進行分類的問題。圖1就是發現的兩個DNA序列堿基結構,要求從中提取特征,構造分類方法,完成特征表達并利用其進行判識。為完成上述任務,一方面,從C語言程序設計過程來看,學生需考慮特征數據如何表達,采用什么數據類型,如何設計算法完成搜索查詢目標;另一方面,這是一個帶有挑戰性和實際意義的交叉學科問題,既擴展了學生的知識面,又增加了趣味性。這對提高高級語言程序設計實踐教學環節的教學效果是很有幫助的[5-6]。本文來自于《實驗科學與技術》雜志。實驗科學與技術雜志簡介詳見
“高級語言程序設計”是一門實踐性非常強的專業基礎課程。本課程是向學生介紹程序設計的基礎知識,要求學生掌握程序設計的基本概念,基本思想和基本技能,訓練學生的實踐能力,培養學生的自學能力和創新能力并使之能將計算機技術應用于本專業領域中。學習本門課程還為學生今后進一步學習“軟件技術基礎”課程打下理論基礎,同時也為學生參加國家教委考試中心主辦的計算機二級等級考試做好準備。本文將對本課程的課堂教學方法進行總結和探索。
一、課堂教學內容的調整和把握
本課程以譚浩強的“C語言程序設計”第三版作為教材,理論課時為20學時,上機學時為12學時。然而結合教學大綱,這門課程的教學內容豐富,課程難度大,理論性和實踐性都很強,教學任務很重。尤其該課程面向的是大一的新生,絕大部分學生的計算機基礎幾乎為零,因此,在進行教學時,我很注意教學內容的調整和組織。在課程講授之初,先從基本的語法規則入手,盡可能避免程序的出現,讓學生先從簡單到復雜,從語法到算法,從學會看懂程序到編寫簡單的程序,然后逐步深入,把重點放在解題的思路上,通過大量的例題學習怎么設計一個算法,構造一個程序。單純依靠課堂講解理論很單調枯燥,而且學生不容易理解和消化,遠遠不能滿足課程的教學要求,所以,在課程教學中,我引入了多媒體教學。多媒體教學在新課導入上有其獨特的效果,它能使學生充分利用他們的聽覺和視覺,調動他們的能動性,激發他們的興趣,以達到最佳的學習效果。同時,我還采用了打比方等方法,將抽象的概念變得形象化、具體化,簡單易懂,學生容易掌握,促進他們的不斷學習。比如,我在引入“程序”這個概念的時候,將程序比喻成要做的一道菜,需要一定的原料還有加工過程:菜=原料+加工,其中所要用的原料就對應程序中的數據組織形式,即數據結構,而菜的加工過程就對應程序的具體數據組織,即算法,也就是:程序=數據結構+算法。另外,我還調整部分教學內容,例如,我把第五章選擇結構程序設計中的關系運算符和關系表達式、邏輯運算符和邏輯表達式以及條件運算符提前到第三章數據類型、運算符與表達式來集中介紹,先讓學生集中學習,然后到以后章節遇到的時候再復習,強化,方便學生對運算符和表達式的掌握。為了讓學生更好的理解整型、實型以及字符型等數據類型在內存中的存放形式,我給學生首先補充講解了計算機中數的表示以及進制轉換、數值的原碼、反碼和補碼的表示方法。對于第二章算法的內容在學生剛開始學習的時候不好理解和把握,我將其分解開來,貫穿到第四、五、六章順序程序、選擇程序以及循環程序的設計的學習中,方便學生更深刻的理解算法以及編程思維的培養。利用這些教學手段,有利于學生知識的獲取,從而突破教學的重點,淡化教學的難點,提高課堂教學質量。
二、課堂提問在教學中的巧妙運用
大學的課堂教學中,有部分老師會將課堂提問的環節省略,課堂上只出現老師在講臺上講,學生在座位上聽的這種模式,不利于教學成果的檢測,教學質量的提高也會受到很大的影響。教學是教與學的交流,師生雙方應相互交流、相互溝通、相互啟發、相互補充。學生不應處在被動地位,而應積極地參與其中,與老師共同完成知識的傳授與接受過程。我在課堂教學中會專門設計課堂提問,來調動學生參與教學過程的積極性,活躍課堂氣氛。同時通過課堂提問,對學生知識水平的檢測,把握學生對已授知識的掌握程度,可以及時反饋教學信息,檢測教學效果好壞。再根據學生回答問題的情況,課后對自身的教學過程進行反思,不斷的改進教學方法和手段,成功的方面加以總結,不足的地方分析原因,加以改進。例如,我常常會在課堂上書寫一些程序,讓學生將其讀懂,一方面,激活學生思維,讓他們能開動腦筋,積極思考,及時點評和總結學生的回答,另一方面,根據學生的回答情況,判斷學生對所講授的函數的理解和對所使用方法的掌握,來調整我的講授方法。我所授課的班級人數接近一百人,而且每周有一次課是在上午三四節,通過課堂提問的方式,不僅讓我認識了很多學生,在很短的時間內可以和學生更好的交流與溝通,而且可以刺激學生神經,提高學生的注意力,克服了學生在三、四節容易疲勞,聽課效果容易下降的毛病。學生回答問題的過程,既是一個開動腦筋、積極思考的過程,又是一個運用語言準確表達思維的過程。剛開始的時候,我發現班上有一些學生在課堂上不愿發言、不善發言、不敢發言,通過鼓勵與舉例,讓學生逐漸有敢于表達的意識,通過課堂提問,培養了學生的語言表達能力,鍛煉了他們在公眾場合大膽發言的心理素質。學生每次都很積極,爭取他們的展示自我,鍛煉自我的機會。
三、重視和靈活安排上機實驗
上機實驗環節是本課程的重要環節,上機實驗可以加深學生對課堂所學基本原理、典型方面和技術感性的認識,增強學生的動手實踐能力。通過上機實驗,使學生更深入地理解解決問題的基本思想方法,掌握基本的處理技術,使學生更加認識到課程的重要性,激發他們刻苦學習的熱情,為將來應用于實際和進行科學研究打下良好的基礎。本課程的上機學時所占比重很大,以前有很多老師在安排上機的時候都采用很集中的方式,只安排兩三次上機,而一次上機至少是四個學時,這樣的上機效果并不好,學生感到厭倦,而且不能解決逐漸暴露出來的一些實際問題。針對這種現象,我將上機實驗與課堂授課交替安排,在學生學習了一定的理論知識后就安排相應的上機實驗,每次上機兩個學時,這樣既能有效緩解教學進度上學生普遍感覺的講解速度太快,超出他們所能接受的范圍,又能讓學生理論應用于實踐,及時解決相應的問題,增強動手能力,強化了所學習的知識點。針對學生上機實驗反映出的問題,再次回到課堂的時候又統一講解和強調,加深學生的理解。比如,在給學生介紹常量、變量標示符的定義時,發現學生在上機使用的時候是很不規范的,隨意的使用一些字母就表示了變量,自己都不知道具體代表什么意思,我就多舉例,用PRICE表示價格,用sum表示所求的和,用max表示大等等,規范學生的標示符定義意識。在講循環結構的時候,多舉例引導學生找尋循環規律,再用相應的循環語句編程實現,給學生灌輸規范的編程理念,上機的時候逐步實踐,積累自己處理實際問題的能力。學生平時的作業也能夠通過及時的上機來進行調試、更正,引導學生用自己的思維和方法來解決問題,而不是通過抄寫配套的上機指導上面的參考答案來應付交差,讓學生更積極主動的去開動腦筋,同時更多地鍛煉了自己的動手能力。對每次實驗,我要求學生在用自己的算法處理每個實際問題并得到相應的結果后寫出實驗報告和他們的上機心得以及對實驗的建議和要求,培養學生解決實際問題的能力和技巧。學生的積極性和熱情度是非常的高,不僅通過自己的努力得到了正確的實驗結果,把握了相關的知識點,還認真思考,給我提供了不少實驗改進的建議,便于我對實驗項目的調整和改進。同時通過上機實驗,可以使學生的思維開闊,將所學習的知識點融會貫通,可以使用不同的方法解決同一個問題,更好地將所學習的知識得以應用。剛開始實驗的時候,我為了讓學生掌握相應的知識點,可能就會針對性的設計一些題目,讓學生用當堂課所學習的函數或方法來解決問題,到了后面學生接觸的函數更多了,我設計的題目就不會僅僅限于用一種函數或一種方法來解決,而是讓學生自由地發揮,只要能解決問題的方法都可以使用,同時讓學生比較不同方法之間的差異、優劣,引導學生如何用更好的方法去解決問題。如用while語句和for語句來求解1到100的和,用條件運算符和關系運算符來實現比較兩個數或者是多個數的大小等。同時還鼓勵學生找程序的錯誤,上機時很多同學在編譯出錯后不會自己主動去找出問題所在,直接找老師,老師忙得不可開交,實際指導的效率并不高,因此我會調動學生相互改錯,對表現突出的學生給予一定的實驗課分數的獎勵。
四、改變考核方式
結合本課程的特點,我們采用筆試、上機考試以及平時作業相結合的綜合考查方式。筆試部分側重于基本概念、基本語法以及基本編程思想的理解和掌握。上機部分是讓學生在規定的時間內解決給定的題目,上機調試通過。結合學生課堂回答問題和平時作業的完成以及上機調試改正的情況,構成學生的平時成績。考核中,筆試占到60分,上機占到30分,平時占到10分。通過這樣的考核方式,激勵學生上課認真聽講,回答老師提出的問題,課后認真完成作業,而不是相互抄襲,使得學生充分把握上機的寶貴時間,不斷的調試程序,解決語法錯誤,培養自己處理實際問題的能力,督促學生認真編寫程序,不再偷偷玩電腦游戲,同時經過上機考試,讓學生積累臨場作戰經驗,以適應以后的計算機等級考試。
“高級語言程序設計”課程是實踐性很強的重要先修課程,研究探索有效的課堂教學設計實驗方法,可提高教學效率和質量,加深學生對講課內容的理解,激發學生學習興趣和鉆研精神,規范學生的編程思想,提高學生的應用能力,為以后其他相關課程的學習和實踐奠定堅實的基礎。
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2016)31-0110-02
Abstract:In recent years, all levels of schools in our country are trying to use the flipped classroom teaching mode, advanced language programming is an important compulsory course for students in our university,it aims to cultivate students' computer programming ability and practical application ability. Compared with the traditional teaching mode, the flipped classroom teaching mode has more advantages,it can effectively stimulate the students' thirst for knowledge and learning enthusiasm for program design courses. To this end, it is necessary for college teachers to study the implementation of the flipped classroom actively.
Key words:Teaching mode; Flipped Classroom; Advanced language programming
1 引言
隨著2011年美國可汗學院的興起及大型開放式網絡課程MOOC的迅速發展,翻轉課堂教學開始風靡中國,受到教育界的廣泛關注,大量的大中小學教師開始利用翻轉課堂進行各種課程教學,并不斷地進行更深入細致的探索。
祝智庭對翻轉課堂進行了較為準確的界定,翻轉課堂實施過程的實質就是將傳統教學模式的“知識傳遞”與“知識內化”兩個過程反轉,知識傳遞過程從課堂上轉移至課堂下或家庭中,從時間和空間兩個維度實現學習過程的完整翻轉,是“先學后教”的教學新范式。[1]
翻轉課堂即課堂內外進行翻轉,教師應設計好教學過程,制作相關的學習視頻,要求學生在上課之前自行觀看,讓學生對新知識進行學習,也就是課外先完成課程的自學,學生將學習中遇到的問題反饋給教師,在課堂上主要是對這些疑問進行解答等。翻轉課堂在理論上是很成功的,但是在不同課程的實施過程中總會存在一些具體問題,尤其在這種模式還不甚成熟的時候。
高級語言程序設計作為我校學生的一門公共課,也是一門重要的必修課,旨在培養學生的計算機編程能力、實際應用能力,是實踐性非常強的一門課程。如何更好地進行課程的教學是一名計算機教師急需研究的問題。筆者認為翻轉課堂作為一種目前較為流行的教學模式在高級語言程序設計課程的教學中應用極具研究意義。
2 翻轉課堂相對傳統教學方式的優勢
教師、學生、教學內容是課堂教學不可缺失的三個基本元素。除此之外,教學方法、教學手段、教學技術等也是課堂教學的構成因素。這些都直接影響到教學質量。教育普遍面臨著教學對象的個體性,也就是說我們所面對的學生水平的不一致。翻轉課堂作為一種新的教學模式,尊重學生的個體差異,體現了以學生為中心的人性化教育。
對于高級語言程序設計課程來說,學生的學習基礎不盡相同,有些同學在開課之前可能對課程有了一定的基礎,有些同學可能從未接觸過。此外,學生接受知識的速度能力也不可能同步。傳統的教學方式是教師在課堂上完成知識的講授,在有限的時間內學生獲得的知識有所差別,可能有些同學已經完全理解了所有知識點,有些同學卻一知半解,甚至不知所云。這種點對面的傳授方式主要以教師為中心,沒有也不可能實現教學以學生為中心。而翻轉課堂可以很好地解決這個問題,教學內容的自學是在課外完成的,學生可以根據自己的學習基礎、個人能力合理地安排學習的時間、空間,此時教師對學生的知識講授其實已經從點對面轉變成點對點。
傳統的教學方式中除了教師的講授,為了更好的教學效果,一般會加強師生之間的互動,但是往往教師關注的是那些在課堂上較為活躍的學生或者是一些較為優秀的學生,或者說這些學生會主動引起教師的關注,而大多數有較多疑問的同學可能因為不好意思提出問題,或者因為有太多疑問無從提問,并不會主動提出問題。這樣明顯不利于課程后續的學習。翻轉課堂卻能更好地避免這類問題的出現,學生向教師提出問題,這個過程不再局限在課堂上,也可以是在課外以其他方式實現。這樣教師在課堂上解決問題時,其實關注的對象已經變成學習上有困難的學生。
3 翻轉課堂實施方案研究
以高級語言程序設計課程來講,翻轉課堂教學模式非常適合這類計算機課程。翻轉課堂的基本步驟是教師先制作學習視頻,然后學生在課后自選時間完成課程知識點的自學,最后在課堂上教師解答問題。實際實施過程中當然也會遇到很多細節問題。
首先,教師視頻的設計和錄制是課前必需的準備工作,教師制作的視頻質量直接關系學生的學習效果。教師制作的視頻可以分為知識點視頻和綜合知識視頻。知識點視頻也就是將各知識點分別制作成小視頻,學生依次先觀看這些小視頻,視頻最后是教師提出的一個小問題,學生可以通過完成這些問題來檢驗自己對知識點是否基本掌握。完成這部分學習后,再進行綜合知識視頻學習。綜合知識視頻的主要內容是根據某個章節的多個知識點綜合而成的例題的演示。學生觀看視頻后再完成一個相似例題以檢學習成果。這種模式可以促進學生根據自己的能力合理地安排自己的學習時間,可以利用課后的各種碎片時間。此外,碰到較復雜的知識,學生可以通過多次反復播放視頻來加深理解。由于視頻是課前準備,這就意味著不需要像傳統課堂上課一樣必須是教師本人在指定時間空間進行,也就是說我們完全可以群策群力,集合整個課程組的所有教師,集思廣益,尤其是充分聽取有經驗的高職稱教師的建議,設計制作出高水平的視頻,這樣相當于學生在接受最高水平教師的教學,教學質量也不再簡單依賴于某個任課教師的教學水平。
第二,學生的積極性會直接影響翻轉課堂的教學效果。翻轉課堂要求學生具有較高的學習自覺性。課前學生需要自行選擇時間去觀看學習視頻,如果學生本身自覺性不高,課前并沒有按照要求去觀看學習視頻,那么將造成嚴重的后果,在接下來的課堂學習將無事可做,o話可說。對于一些知識較為連貫的章節,一次學習的缺失將會導致后續更多問題出現。所以筆者認為任課教師在不了解授課班級學生學習態度的情況下,可以先試行翻轉課堂模式,通過前幾次課的情況首先摸清學生情況。考慮到當前學生中存在學習主動性不高的問題,不一定要每節課都采用翻轉課堂的教學模式,而是根據學生情況、教學內容等采取多種教學模式結合靈活應用,比如任務驅動法等。在教學中應該充分考慮如何提高學生的學習興趣,可以采用案例式的教學方式,給出一個結合教學要求和能引起大家興趣的案例,引導大家一步步地完成,這樣學生不僅能獲得成就感,而且會覺得自己學習的知識是有用的、有趣的。這樣良性的循環,在學生培養出一定的學習積極性后,翻轉課堂取得的效果才能真正提高。
第三,課堂設計是翻轉課堂效果提升的關鍵。課前的自學當然和學生本身的自覺性、理解力等息息相關,但是在同等情況下,課堂上教師對學生學習的指導是學生對知識理解層次提高的重要因素。如何進行課堂的設計成為教師必須認真考慮的問題。課堂不僅僅是對學生提出問題的簡單解答,這要求教師有較高的課堂教學設計水平以及對課程內容的把控。在課前教師對學生在課前自學過程中的疑問要有比較清楚的認知,這些認知可能是來自教師在多年教學過程中的經驗,也來自當前班級學生的各種渠道的反饋。教師應合理安排課堂時間,不僅僅是簡單地對學生提出的問題簡單羅列和解答,應該從這些問題中分析學生學習不足的實質,同樣知識點合并,同一知識點由淺入深、不同知識點的先后次序都是必須考慮的問題。對于非常重要、核心的知識,就算學生沒有提出疑問,還是需要通過課堂練習的方式加深學生印象或加以檢驗考核。
4 結論
將翻轉課堂應用于高級語言程序設計課程,學生課前自行觀看教學視頻完成小練習,課堂上教師解決疑問及檢驗學生的學習效果,此種教學模式相比傳統教學模式來說,更加有利于提高學生學習興趣,促進學生學習積極性,進一步提升學生學習效果,有利于培養學生的自學能力和應用能力。
參考文獻:
[1] 祝智庭,賀斌,沈德梅.信息化教育中的逆序創新[J].電化教育研究,2014,35(3):5-12.
[2] 張文文.“翻轉課堂”對我國教育改革的啟示[J].湖北第二師范學院學報,2016,33(5):113-115.
[3] 唐君.“翻轉課堂”三問我國高校教學[J].天中學刊,2015,30(5):136-138.
[4] 戴寧,曹輝.“互聯網+教育”:顛覆、應對與重構[J].教育與教學研究,2016,30(7):16-20.
[5] 彭娟,夏飛.“慕課”對地方應用型高校教學的沖擊與應對策略[J].湖南第一師范學院學報,2016,16(3):60-63.
中圖分類號:G642 文獻標識碼:B
1引言
“高級語言程序設計”是各類學校計算機相關專業的一門重要的專業基礎課,許多學校都將其安排在新生入學后的第一學期開設。
對剛接觸這門課程的學生而言,“高級語言程序設計”課程的中心內容包括兩個部分:高級語言和程序設計。從高級語言和程序設計的關系來說,程序設計應該是這門課程的核心內容。
對于如何搞好“高級語言程序設計“的教學,不同的人有不同的看法。筆者在多年的教學實踐中,多次嘗試采用“功能意念教學法”,取得了教好的效果。本文就是這一教學法的簡單總結。
2功能意念教學法
“高級語言程序設計”的功能意念教學法就是從程序的一般功能、程序的一般結構以及程序設計的一般過程出發,按照功能+意念+機制的方式組織教學。簡單地說,就是為了設計一個程序,先解決我們需要做些什么,然后解決程序需要做些什么,最后解決高級語言怎么做到等一序列問題,也就是從問題和任務出發進行教學。
以上所述主要圍繞程序最基本的功能展開,至于其它功能部分,比如C語言的編譯預處理、宏、模塊化、混合語言編程、指針、文件、鏈表等,也可以從功能意念的角度展開教學。
在具體實施教學的過程中,可以根據教學要求按照自頂向下的原則制定出所教授的高級語言的基本功能意念表,以方便教學。
3算法的意念作用
筆者認為,程序設計其實就是為了解決某個問題而從我們所熟悉的程序設計語言中挑選合適的語句做一個適當的排列組合。
在上面的這段話中,明顯地有兩個值得我們進一步探討的關鍵詞:合適的語句和適當的排列組合。現在我們的問題是,如何挑選合適的語句?又怎樣做適當的排列組合?
這兩個問題的解決有賴于所謂算法的概念。因此,為了解決這兩個問題,我們必須針對面臨的具體問題設計出有效的算法。
算法是解決特定問題的一序列操作的集合,代表的就是一種意念,換言之,就是設計者所希望的對數據進行加工處理的有序的步驟。這種操作步驟的有序性就決定了如何對所挑選的語句做適當的排列組合。
由粗到細是我們解決問題的一種典型的思維過程。按照這一思維特點,算法設計也有一個由粗到細的過程,即算法細化。
算法細化要適可而止,即有一個度的問題,那么我們又該如何把握這個度呢?一般而言,算法細化只要細化到其中的每一操作步在準備采用的語言中都能找到對應的語句直接加以實現即可,而且也必須細化到這種程度!算法細化好了,如何挑選合適的語句也就解決了。
總之,算法決定了如何挑選合適的語句以及怎樣對所挑選的語句做適當的排列組合!因此有了算法,我們只需要通過很簡單的翻譯轉換就可以很容易地得到程序。
4高級語言的相關功能成分
高級語言是書寫和記錄程序的工具。為了適應程序的功能需要,高級語言自然應該提供相應的手段或機制讓程序設計人員借以實現所需要的程序功能,高級語言的相關功能成分指的就是這些手段和機制。
4.1數據安排機制
高級程序設計語言中的數據安排機制主要體現為用于定義常量、變量、數組和記錄(或結構體)等的功能成分。單純從語言成分的角度來看,這些功能的實現主要是由一組和數據類型有關的關鍵字來體現的。換言之,高級語言為我們提供了一組與數據類型有關的關鍵字以便程序設計人員根據自己的意愿對數據空間進行組織和安排。以C語言為例,這些關鍵字主要有:char、int、float、double、struct以及signed、unsigned、short、long,等等。在源程序中來看,數據空間的組織和安排都是通過基于上述關鍵字的數據定義語句來實現的,比如:
1)int abc;
2)char abc[12] ;
3)*float abc;
4)struct abc{x char;y int;z float;}
struct abc xyz;
作為程序設計的工具,為了盡可能給程序設計人員帶來方便,高級語言除了支持基本數據類型外,還支持用戶自定義類型,如上面的例4)。
4.2數據I/O機制
高級語言中的數據I/O機制主要體現為各種用于數據輸入/輸出的語句或函數(庫函數)等。在C語言中,這些函數常用的有:
fprintf、printf、sprintf、vprintf、vfprintf、vsprintf、
fscanf、scanf、sscanf、fgetc、fputc、getc、putc、getchar、putchar、fgets、fputs、pus、gets等。
以上列出的是所謂系統預定義函數,即標準函數或庫函數。此外,用戶還可以根據自己的需要以上述標準函數為基礎自行定義一些可以得到某些特殊I/O效果的函數。
4.3數據處理機制
前面已經提到,數據的內部加工處理主要包括數據在主機內部的傳送和各種運算,高級語言的數據處理機制就
是指為此目的而提供的各種運算符。在C語言中,這些運算符包括為數據傳送提供的賦值運算符“=”和為數據運算提供的算術運算符“+、-、*、/、%、++、--”、關系運算符“>、>=、
4.4流程控制機制
高級語言中的流程控制機制主要體現為用來實現分支程序結構、循環程序結構以及子程序結構的功能成分,換言之,就是分支語句、循環語句以及子程序的定義和調用機制等。在C語言中,這些語句包括:if語句、switch語句、goto語句、break語句、continue語句、for語句、while語句、do…while語句以及return語句等。
5結束語
歷史上高級程序設計語言有好多種,目前仍然流行的也有好幾種,而且還在不斷的推陳出新。從“功能意念”的角度,不難看出,所有的高級語言都應該有相類似的功能成分,以解決程序設計所面臨的共同問題。因此,只要我們認真地學好一種語言,重點掌握好程序設計的一般思想方法,就可以很容易地掌握另外一種。從一種語言過渡到另一種語言,從語言的角度來說,只不過是一種形式上的轉換而已,它們的內容(程序的功能)和程序設計的思想和方法卻總是相通的。
參考文獻:
[1] 譚浩強. C程序設計(第三版)[M]. 北京:清華大學出版社,2005.
[2] Brian W.Kernighan, Dennis M. Ritchie. C程序設計語言(第二版)[M]. 北京:清華大學出版社,2002.
[3] Bruce Eckel著. 劉宗田等譯. C++編程思想第1卷:標準C++導引[M]. 北京:機械工業出版社,2002.
高級語言程序設計是大部分高校計算機專業本科生接觸的第一門計算機語言課程,是計算機專業的核心課程,也是數據結構、軟件工程等后續專業課的基礎,其教學效果的好壞直接影響到學生對計算機軟件開發的認識和后續課程的學習。傳統的教學側重于知識的傳授,對學生的學習興趣等因素重視不夠。筆者在多年的高級語言程序設計課程教學實踐和研究中深深體會到,培養、激發和提高學生對課程的興趣對提高教學質量具有至關重要的意義,濃厚的學習興趣是搞好課程教學、提高學生學習效果的關鍵。如何培養、激發和提高學生的學習興趣,是一個值得廣大計算機教育工作者深入研究和探索的問題,本文將結合筆者多年的教學經驗和對本科計算機教學改革的嘗試,從6個方面來探究這個問題,并給出相應的方法。
1融洽師生感情,創造良好學習氛圍
興趣是一種巨大的激勵學習的潛在力量,也是人們認識某種事物或愛好某種活動的傾向,這種傾向總是和一定的情感相聯系。美國心理學家布魯納提出:“學習的最好刺激是對所學材料本身發生興趣,興趣可以孕育愿望,可以滋生動力[1]”。當一個學生對自己所學的知識產生興趣時,他就會積極主動地去學習探索,而不會把學習看成是負擔。濃厚的學習興趣會
使學生對知識的世界進行積極地、不懈的追求和探索,充滿激情,會主動克服所遇到的一切困難。正如孔子所說:“知之者不如好之者,好之者不如樂之者。” 學生具有明確的學習目的、高昂的學習情緒、濃厚的學習興趣、強烈的學習愿望,是學好課程的最重要的內部動力。據國外學者研究發現,獲得成功的諸因素中,興趣占25%,而失敗的諸因素中,缺乏興趣占35%,足見興趣在取得成功中所起的重要作用。
培養學生的學習興趣,首先要搞好師生之間的關系。古語云:“親其師、信其道。”師生之間感情上的融洽程度,會直接影響到學生對課程的喜好程度,以至影響最終的教學效果。要想使學生喜歡老師,教師必須從自身做起。良好的道德修養和高尚的人格魅力,認真的工作態度及扎實、豐富的知識,是愛學生和被學生愛的教師的內在需求。教師首先要自修,自身素質好的教師,才能對學生產生吸引力,有了這個吸引力,學生才會悅納老師。其次要尊重學生,關愛學生,公平對待每一個學生。只有這樣,學生才會真正喜歡上老師,進而可能喜歡這個老師上的課程。
2讓學生一開始就認識到課程的重要性
要想培養學生的學習興趣,就要讓學生一開始就認識到課程的重要性。任何人對事物的認識都是由淺入深,學生對一門課程的認識也是如此,剛開始還沒有意識到該課程的重要性或者認識不深,隨著教學的深入,學生逐漸認識到課程的重要性,等到認識全面的時候已經到了學期的期末,想要好好學習卻已經有些晚了。為此,作為教師有必要在剛開始的教學活動中,讓學生充分認識到課程的重要性,認識到該課程無論是在專業體系中還是在日常生活中都是至關重要的,讓學生在主觀上重視起來,進而有動力去學,并在學習中逐漸體會到學習的樂趣,從而對課程建立起濃厚的學習興趣。
在講授高級語言程序設計時,教師除了在第一次課上向學生介紹課程在計算機專業體系中所處的地位及作用外,還需結合課堂內容給學生列舉高級語言在生產實踐中的應用及其發展前景,使學生意識到學習高級語言確實學有所用,無論是對社會發展還是對自身就業都有所幫助,這樣學生就會對這門課程更感興趣,也更有動力去學。
3精心選擇例題
由于沒有編程經驗,大部分學生接觸到這門課程時,對編程會感到非常新奇、好玩,但隨著課程中大量的語法規則、概念的不斷引入,問題難度的逐漸加大,其中一部分甚至是大部分學生會感覺枯燥無味。為了使學生保持最初的好奇心乃至轉化為學習興趣,需要教師在教學過程中精心地選擇例題。
1) 選擇趣味性的例題。
在課堂和實踐教學過程中可選擇一些趣味性的例題,如“撲克牌洗牌”、“百錢買百雞”、“愛因斯坦階梯”等。這些充滿樂趣的問題有利于學生輕松愉快地學習、積極主動地思考,而且印象深刻。
2) 選擇能夠解決實際問題的例題。
傳統的高級語言程序設計教學主要以語法規則的逐步深入為線索來進行教學,這種方法有利于學生對語法知識循序漸進地學習,但往往是學生學了大半學期,學會了語法規則,卻不知道這些語法規則有什么用,最終的后果是所學和所用嚴重脫節。因此在教學過程中,筆者所在教學梯隊精心設計了一些能解決實際應用問題的案例,每一章安排一個比較完整而且有實際應用價值的實例,例如:求玉米地產量、求綠化帶面積、學生成績管理、圖書卡管理等日常生活中能遇到的實際應用問題。在教學過程中引導學生首先把實際問題轉換成為數學問題,再為數學問題的求解尋找合適的方法,然后為實現計算方法給出具體的算法,最后利用高級語言編寫程序、調試、測試。針對每一個問題,都引導學生學會如何分析問題、解決問題,而不是只去學語法規則。這樣學生就能了解如何利用計算機解決現實世界中的問題,從而增加他們學習的動力和積極性。當然,在案例的編排上,要注意結合語法規則的循序漸進。
3) 在游戲中快樂學習。
游戲是絕大部分學生都喜歡做的一件事情,如果能把知識的學習融入到游戲中去,就能寓教于樂[2]。高級語言程序設計的目的是讓學生熟練掌握一門計算機高級語言,熟悉利用該語言開發軟件的過程,進而解決實際問題。高級語言本身的基礎知識和基本操作的學習相對來說比較枯燥乏味,但是我們不能把枯燥乏味帶給學生,使學生對學習失去興趣,要使學生在快樂中學習。正因為這些,在計算機教學設計中要充分利用游戲的作用,利用游戲的精彩,提高學生學習計算機的興趣。
計算機游戲非常多,從掃雷、五子棋到三國等,教師可以引導學生利用所學的計算機高級語言來編寫一些簡單的游戲,不僅可以鍛煉學生的邏輯思維能力,而且可以讓學生在快樂中掌握該種語言的基礎知識、熟悉開發項目的過程,更能激發學生的學習興趣。學生在游戲過程中生動地學習,在學習過程中快樂地游戲,從而達到預期的教學目的。
0引言
醫藥院校計算機專業的教學目標是培養出能夠服務于中醫藥行業的計算機專業技術人才[1]。為使學生能夠將計算機和中醫藥知識進行有機的結合,更好的發揮專業優勢和特長,本文探索了與中醫藥特色相適宜的“高級語言程序設計實驗”教學模式,進行了實驗課程教學創新模式的改革。
在實驗教學過程中,我們設計一些由易到難的以中醫藥作為背景的實驗案例,有意的對學生進行引導,促進學生對中醫藥院校計算機專業課程體系全面而又深入的理解,逐步找到計算機和醫學的契合點,為學生將來在計算機學科和醫學兩個學科領域進行交叉學科的科學研究工作打下良好的基礎,成為真正有特長、有特色的計算機專業人才。
1實驗教學存在的問題
1.1學生缺乏學習的主動性
以往的實驗教學大體上實行的是“課前預習——課堂實驗——課后學生完成實驗報告——教師評閱并評定成績”的串行模式,在本質上還是應試教育。因為相當比例的學生的實驗目的是通過考核或者得到好的分數,所以常會出現學生不重視預習,實驗時感到內容枯燥,缺乏主觀能動性,課后不認真總結思考,甚至出現缺課、抄襲報告等現象,學生提交的實驗報告無法全面反映取得的實驗效果,教師只憑實驗報告評定成績有失真實,也無法真正了解學生的學習情況。
1.2 缺乏與中醫藥知識的結合
由于中醫藥院校的計算機專業在課程設置上具有中醫藥特色,有一部分醫學課程,而學生在學習過程中體會不到計算機和醫學的結合點在什么地方,甚至認為學習醫學課程沒用,這和我們的初衷是相違背的,需要加強對學生的引導。在實驗教學過程中引入一些以中醫藥作為背景的實驗案例,進行醫學類相關題目的訓練,使學生實現對計算機和中醫藥知識的有機結合。
2 教學模式研究與改革
2.1課程改革
傳統的高級語言程序設計實驗是附屬在理論課中的,實驗學時比較少,只有24個學時,這對于實踐性較強的課程來說,實驗學時是很欠缺的,遠遠不能滿足提高學生編程能力的目的。學生也反映單靠24個學時,實驗是做不完的,甚至體現不出實驗效果。基于此,我們以新的專業培養方案為指導,設置獨立于理論課的實驗課程,《高級語言程序設計實驗》在教學大綱中獨立設置,獨立學時學分,學時增至36學時,在此基礎上增加24個學時作為機動時間,加強實踐訓練。
2.2 教學改革
2.2.1設置目標,激發學習熱情
在每個實驗開始前明確列出學生完成該實驗應該具備的知識點,讓學生有目的地進行資料的查找和學習。在實驗課上給出實驗任務,使學生明確所要達到的目標。通過驗證性實驗強化基礎實驗技能,幫助學生樹立自信心;通過綜合性實驗提高學生的綜合應用能力;通過設計性實驗提高學生創新能力,不斷激發學生的求知欲和學習激情,使學生學而有趣,達到教學目標。
實驗過程中發揮學生的主觀能動性,重視教師的主導作用,遵循“教師是主導、學生是主體”的“雙主”原則[2],突出學生的主體地位,增強學生的自學能力。
2.2.2 設計合理的案例
我們把實驗教學內容的優化放在改革的首要位置。學生盡管學習了多門醫藥類課程,但體會不到其用處所在,為使學生能將計算機和中醫藥的知識進行有機結合,老師在教學過程中必須進行有意的引導,要求學生在完成本課程教學計劃規定必須完成的題目之后,編制一部分以中醫藥作為背景的設計性與創新性實驗。這些實驗題目一部分是由老師精心設置的與中醫藥相關的題目,比如中藥復方配伍的藥效檢測程序設計;一部分由學生根據自己所學知識選取感興趣的題目進行設計。教師設計的題目要遵循由淺入深、由易到難的原則,避免一開始設計的題目就太難而使學生感覺無法入手,從而產生厭煩心理,這就要求授課教師設計出學生感興趣、符合專業特色的案例,以達到良好的教學效果。
2.2.3 因材施教,針對性地培養學生的實驗技能
整齊劃一的教學要求不能適應學生的個體差異[3]。同樣的實驗任務后進生吃不消,失去學習信心,尖子生吃不飽,缺乏興趣,所以教師既要考慮學生的總體基礎,又要考慮學生的個體差異,針對性地培養學生的實驗技能。在學生初步具備分析和解決問題能力的基礎上,加強知識的深廣度,與實際接軌,因材施教。對基礎差的學生主要通過針對性較強的習題使學生樹立自信心,培養學習興趣;為那些學有余力的學生增加一些創新設計性實驗,創新設計性實驗以課題形式進行,學生自由組合,自己選題,自己設計實驗方案;讓少數優秀學生設計一些中醫藥類實用軟件,通過參與大學生研究訓練(SRT)項目或參加科研項目,提高他們綜合應用知識的能力。
2.2.4 多方位的考核方式
《高級語言程序設計實驗》獨立設課后需要單獨考核,為了促進學生編程能力的提高,采用上機考試、單元考核、大作業與平時成績相結合的方式進行考查。上機考試試題主要側重于基礎知識、基本能力的考查;單元考核側重于學生按時按量規范編程的訓練;大作業側重于編程語言與中醫藥知識的綜合應用;平時成績主要是對學生平時的學習態度、學習的自覺性和課堂作業完成情況的考核檢查。多方位的考核方式可以較好地培養學生學習的綜合能力。
2.2.5 不斷更新教學資料和教學案例
教材一般滯后于實際教學,而教學是活的,教師應準備大量的不斷更新的教學資料以及教學案例。在教學過程中,教師不斷根據學生對教學案例的反應,找出不足之處,通過反復比較研究,得出最佳教學案例,隨時補充新的案例。選編經典、切實可行的案例需要教師有很深的專業知識和廣博的案例積累,所以對于教師而言需要做大量的工作來提高自己的專業素質。
3 結束語
本文探索了與中醫藥特色相適宜的“高級語言程序設計實驗”教學模式,在實驗課程中因材施教;通過有意的引導,合理的案例,多方位的考核方式促進學生將計算機和中醫藥的知識進行有機的結合,使學生在學習程序設計語言的同時把中醫藥知識鞏固并掌握。通過針對性地培養學生的實驗技能,提高了學生的綜合應用知識的能力和創新能力,獲得較好的教學效果。
參考文獻:
[1] 竇彥玲.醫藥院校計算機專業建設的研究與實踐[J].中國教育技術裝備, 2012,3:36-37
[2] 傅胤榮.C++程序設計課程改革探索[J].高等教育研究,2008, 2: 47-48.
[中圖分類號] G642 [文獻標識碼] A [文章編號] 2095-3437(2015)08-0125-02
一、引言
在信息技術高速發展,全面建設智慧城市、智慧校園的大背景下,傳統的課堂教學也面臨著變與不變的外部挑戰。[1]新興技術的不斷沖擊,使得課堂教學不再是師生間單一的教與學關系,更多的是師生間平等的對話與互動,傳統課堂已無法滿足教育需要。將信息技術與教育深度融合,優化教育模式,已經成為一種必然的趨勢, 由此智慧課堂這一新的教學模式便應運而生了。智慧課堂是指充分利用信息化技術,以引導學生的高度參與以及主動性的充分發揮,以自主地發現問題、研究問題和解決問題為主要學習形式,是以培養多樣化、高素質、創新型人才為目標的教學方式。[2]相對以教師為中心的傳統課堂,智慧課堂強調以學生為中心,注重學生的主動學習、合作學習和快樂學習。[3]
作為高校理工科電子、計算機等相關專業的一門重要基礎課程,高級語言程序設計的目標是培養學生的程序設計理念、掌握程序設計的基本方法,培養學生熟練使用C語言編程解決實際問題的能力,為后續程序設計課程的學習和應用打下扎實的理論和實踐基礎。[4]學生是否具有較高的編程能力和良好的編輯習慣是衡量其對該課程掌握程度的一個重要指標,而編程能力的提高和編程習慣的養成離不開上機實踐,因此上機實踐是高級語言程序設計教學中的一個至關重要的環節。[5]
本文針對高級語言上機教學的課程特點和存在問題,充分利用上機實驗室的信息設備優勢,將信息技術與教育深度融合,實現上機教學的智慧課堂。
二、教學現狀和問題
一般院校的高級語言程序設計理論課和上機課的比例為1∶1,由32學時理論課和32學時上機課組成。上機課目前多采用傳統的“教師講授―教師演示―學生上機練習”的教學模式,主要存在以下問題:
(1)學生編程的信心和積極性有待提高。高級語言程序設計的開課時間設在大一的第二個學期,此時絕大部分學生對計算機軟硬件知識缺乏全面了解,再加上C語言本身學習起來有難度,使學生不能很快掌握算法的思維特點,編程能力、調試能力普遍較差,增加了C語言上機學習的難度。很多學生在上機的過程中非但沒有對編程產生興趣,反而還產生懼怕心理,進而放棄學習。
(2)學生自主分析問題、解決問題的能力有待提高。目前上機教學模式以教師“教”為中心,學生過多依賴于實驗指導書和教師,基本處于被動接受狀態。在上機課中常出現“寫程序就抄書,出現問題等老師”的現象,分析錯誤、動手調試本是最能發揮學生能動作用的環節,現在卻由教師來承擔,往往導致學生離開指導書和教師就寫不出程序、調試不了程序的局面,很難培養學生在程序設計上的創新能力和邏輯思維能力。
(3)機房得天獨厚的信息技術環境沒有得到充分的利用。一般機房都配備有計算機、高速局域網和多媒體教學管理軟件,具備開展智慧課堂的條件。以我院機房為例,采用的是海光多媒體軟件,海光多媒體軟件是一款實現在電子教室、多媒體網絡教室或者電腦教室中進行多媒體網絡教學的非常好的軟件,集電腦教室的同步教學、控制、管理、音視頻廣播、網絡考試等功能于一體,并能同時實現屏幕監視和遠程控制等網絡管理的目的,其核心功能包括教師演示、學生示范、語音教學、遙控輔導、屏幕錄制、屏幕回放、提交作業、電子搶答和文件傳輸等。但目前該軟件主要用于教師演示和收發文件,現有的信息技術設備沒有得到充分的利用,信息技術改變教育方式沒有得到充分的體現。
三、智慧課堂開展內容
針對以上情況,本文將充分利用機房的信息技術環境優勢,將信息技術與教學深度融合,通過分組合作學習、任務驅動教學、網絡學習和多元化考核等教學手段,創建高級語言程序設計上機教學的智慧課堂,實現學生主動學習、合作學習和快樂學習。
(一)小組合作學習
針對部分學生不能單獨完成編程及缺少興趣的問題,采用分組學習的教學模式,每次上機課將學生分為4人一組,每組學生通過合作學習共同完成一個實驗任務。小組合作學習一方面更能突出學生的主體地位,培養學生主動參與的意識,激發學生的學習興趣;另一方面學得好的學生可以帶動其他學生,在達到學習均衡的同時,也培養了學生的合作能力和團隊精神。
分組合作學習的關鍵是有效地組織學生學習,沒有組織的學習會使課堂變得嘈雜、分散,所以合理劃分小組是分組合作學習的首要前提。主要考慮兩種分組方式,第一種是學生自愿組合,第二種是教師按學生的基礎分組。第一種分組方式有利于調動學生合作學習的積極性,激起學生學習的興趣,但是自由式的小組組合很可能出現分組不均衡的現象,即學習基礎好的學生分在一組,學習基礎薄弱的學生分在一組;第二種分組方式需要教師在全面了解學生的前提下,根據班級內的情況,有意識地將不同基礎、不同類別的學生分到一組,使班級小組間基本上是相似的、均衡的。綜合考慮兩種分組方式的優缺點,可交替采用兩種方式進行分組。
小組劃分后需進行合理分工,每一組選擇一個組長,組長協助教師組織任務攻關工作,同時監督組員,避免出現“蹭組”現象。組長的選擇要考慮學生的成績、與同學間的關系等因素,可采用自由推選的方式,給每個學生改變角色和鍛煉的機會,進而提高其學習興趣。
(二)任務驅動教學
在上機實驗過程中,以完成一個具體的任務為線索,把教學內容隱含在每個任務之中,要求學生在具體的任務驅動下,在討論和對話的氛圍中,進行自主學習和協作學習。這樣學生在完成任務的過程中始終處于主體地位,不僅提高了學生的積極性,也培養了學生的探索與創新精神。任務完成后,隨機挑選或通過海光多媒體軟件的“電子搶答”功能選出若干小組,通過軟件的“學生演示”功能進行演示,并引導學生進行總結和改進。
在任務驅動教學中,任務設計的質量直接關系到教學效果。在設計任務時,要以學生為中心,根據學生的實際情況和學生感興趣的方向來設置任務,同時要注意高級語言知識點的系統性和連貫性,將理論課的知識點融入上機任務中,使學生在完成任務的過程中,既鞏固已學過的內容,又探索新知識,實現總體的教學目標。
例如,在練習C語言控制結構中的選擇結構時,任務設計為:設計一個程序,輸入某年某月某日,要求計算出這一天是該年的第幾天。學生拿到任務后,分組討論程序思路,教師通過管理軟件隨機選擇若干小組聽取他們的設計思路,根據回答情況進行引導,學生得到以下正確思路并編程實現:
1.從鍵盤上讀入3個整數,分別作為年、月、日。練習輸入函數。
2.要計算出某天是當年的第幾天,應該將當年中本月之前所有月份的天數相加,再加上本月的天數。根據所輸的月份練習switch選擇結構。
3.考慮閏年問題,二月是一個特殊月,如該年是閏年,則二月有29天,否則,便是28天。根據所輸的年份練習if選擇結構。
4.輸出答案。練習輸出函數。
這個有趣的任務讓學生在討論中學會了選擇結構的使用方法,并了解了switch和if這兩種常用的選擇結構的區別,且鞏固了前面學習的輸入輸出函數知識點。
(三)網絡學習
為學生提供豐富的網絡學習資源。利用海光多媒體軟件的錄制和回放功能,可以在執行“教師演示”播放教師機上的屏幕畫面的同時,將播放的圖像畫面以動畫影像的形式錄制下來,跟不上教學進度的學生可通過“回放”學習。將錄制的視頻、課件、參考資料和課外拓展練習資料等上傳到課程群,提供豐富的網絡學習資源,讓學生學習不受時間、地點的限制,實現全方位學習。
(四)多元化考核方式
考核方式對學生有重要的學習方向引導作用,在智慧課堂的教學模式中,采用多元化考核方式,進一步調動學生的學習主動性和積極性。學生的上機成績由三部分組成:課堂表現考核,由教師根據學生的分組表現、課堂展示和任務完成情況給出成績,占總成績的30%;組內考核,每次實驗由小組長根據組員的表現打分,最后取平均分,占總成績的20%;期末上機考試,占總成績的50%,對學生的總體掌握情況進行測評。
四、結語
本文充分利用了機房得天獨厚的信息技術環境,采用小組合作學習、任務驅動教學、網絡學習和多元化考核等教學手段,創建了高級語言程序設計上機教學的智慧課堂。實踐證明,該教學方法深受學生的歡迎,有效提高了學生的積極性,取得了良好的教學效果。
[ 注 釋 ]
[1] 黃榮懷,張進寶,胡永斌,等.智慧校園:數字校園發展的必然趨勢[J].開放教育研究,2012(4):12-17.
[2] 吳曉靜,傅巖.智慧課堂教學的基本理念[J].教育探索,2009(9):6.
培養創新人才是我國發展戰略的內在需要,高等學校擔負著培養具有創新精神和實踐能力的高級專門人才的神圣使命,應該責無旁貸地開展創新教育,為社會不斷輸送具有創造性思維和創新能力的各種專業人才[1]。
在高等學校高級語言程序設計課程教學中,學生通常一開始就接觸具體的語法。隨著所學知識的增多,學生原有的想法都沒有了,變成了學習某種高級語言的機器。這種形而上學的教學方法往往讓學生忽視了解決問題的過程,而將注意力都集中在語言細節上。最后學生掌握了大量的語言細節,卻不會編程解決實際問題。有的學生開始學習某門課程想做許多事情,可學期結束后發現離自己的興趣越來越遠,所擁有的只是大量的知識,而學生一旦失去興趣,學習的勁頭也就少了很多。
好的人才應該能夠駕馭知識和創新知識,而不應是知識的擁有者和附從者。因此,我們要積極探索培養創新型學生的學習模型,以適應國家培養創新型人才的戰略需要。
1高級語言程序設計新學習模型
高級編程語言是為解決問題產生的,好的高級編程語言應該容易讓人理解,因此,對問題的理解有助于對編程語言的理解。學生對生活和以前所學知識有大量的體驗,也有許多新奇的想法,這些都是創新的源泉。學習高級語言程序設計不是讓學生丟掉這些想法,而是讓學生把已有的體驗和所學的高級語言建立關聯。這樣,學生既可以通過自己以前解決問題的體驗理解高級語言,又可以通過自己的體驗進行有新意的編程實踐,不僅不會扼殺已有的創造性,還會豐富自己的創造思維,掌握如何用編程實現自己的新奇想法。好奇心和興趣是學生創新的源泉[2],課程學習應時刻圍繞個學生的興趣推進。激發學生的創新意識,調動其創新的勇氣,最根本的是要尊重學生的個性和想象力[3]。
根據這種思路,在高級編程語言――C語言課程教學中,我們沒有讓學生一開始就學習數據類型、表達式等具體知識,而是在課程簡介后安排了許多有趣的程序演示,如求兩數之最大數、猜數游戲、估時游戲、輸入重現、輸入鏡像、迷宮游戲、積分計算等,這些有趣的例子使學生可以將高級編程語言和自己以前的體驗建立關聯。
學生找到自己感興趣的例子后,老師直接讓學生讀這些程序的源代碼,其中就包含著許多學生沒有學到的語句,如類型聲明、表達式、條件語句、循環語句等。由于學生對例子的功能已經非常了解,所以會根據自己的經驗和想法作出猜測,結果表明,經過努
力,學生還是基本看懂了代碼。對于復雜一些的例子,老師可以在關鍵的地方稍加講解。
學生基本理解演示例子的代碼后,老師就C語言的特點、程序基本結構和一些注意事項作出提示和補充,學生很快就能掌握基本的編程。這一過程的學習學生不是強制記憶,因此不會輕易忘掉。
對于編程語言的細節,老師只告訴學生有哪些地方值得注意,讓學生一一了解,至于具體的規定,學生可以自學,有疑問時和老師一起探討。如果學生畢業以后遇到相關問題,可以通過查閱書籍,就能夠解決問題。
2知識互動的學習模型
知識互動學習模型和傳統學習模型的不同之處在于,在知識互動學習模型中,不是直接學習新知識,而是在和舊知識的互動中學習。正因為如此,它具有以下特點:
(1) 新知識和已有知識互動,學習新知識的同時激活舊知識,舊知識和新知識相互促進,交替增長。
(2) 新知識的學習沒有壓制已有的想法,相反能保持和發揚已有的創新性。
(3) 新舊知識交叉創新。
(4) 乘積式效果,新舊知識互動產生乘積放大效應,充分調動知識張力。
(5) 學生已有的興趣獲得繼承和提升。
知識互動學習模型如圖1所示。
知識互動學習模型和傳統學習模型的不同如下:
(1) 舊的學習模型中,新學的知識壓制了學生已有的創造性。因為新知識的學習往往只注重自身的知識結構,而忽視學生已有的知識結構和體驗,雖然學生掌握了大量的新知識,卻失去了原有的創造性。而在知識互動學習模型中,新學的知識和學生已有的知識結構和體驗是一種平等的關系,新知識的學習在二者的互動中進行。
(2) 學生在新舊知識的互動中激發新想法,衍生新知識,不僅學到了要學的知識,而且舊知識也被激活。
(3) 新的學習模型更尊重學生內在的創造性,更能保持和發揚學生的創新能力,有利于培育既有知識又有創新能力的人才。
3知識互動學習模型實施方法
知識互動學習模型的實施方法如下:
(1) 在學習新知識的過程中,通過新知識喚醒舊知識,通過舊知識吸納新知識。每學習一些新知識,就及時和舊知識充分互動。
(2) 避免一次大量學習與舊知識無關的新知識,正如給草添土一樣,要慢慢添,邊添邊長,而不要一次添大量的土,把草壓住。新知識的學習不要一味追求量,即新知識的細節讓學生有選擇地接受,而不要讓學生一攬子全部接受。可以通過例子演示等方式,讓學生將新知識與已有知識建立關聯,而不要急于灌輸新知識。這樣做的另一個好處是給學生新舊知識發酵的時間,讓新舊知識產生張力。
(3) 教師就新知識的關鍵點和注意事項及時做出講解和補充。由于教學是圍繞學生的興趣進行,而不是按照新知識的體系面面俱到地講解,因此教師應在學生學習過程中就新知識的關鍵點和注意事項及時做出講解和補充。
(4) 注重學生自學與創新能力的發揮。在充分調動學生的興趣后,以學生的興趣為引導,把重點放在新知識的關鍵點和注意事項上,而讓學生在實踐中有選擇地自學細節。老師應關注新舊知識的互動,并注重學生自學與創新能力的發揮,把課堂舉例趣味化、實用化,讓學生在自己感興趣的實踐中得到提高。
(5) 計算機知識與人文知識互動。人文教育不一定必須開辟相關課程,計算機廣泛服務于社會的方方面面,尤其是非數字計算,這其中自然包含很多的文化發展教育。例如:算法是程序設計的核心,但至今為止,不是全部的算法都可以在現代計算機上實現,其原因就在于計算機空間的有限性和人類生命時間的有限性。在多重循環語句嵌套的教學中,如“百錢買百雞”案例,教師不僅教學生循環知識點的使用,而且分析算法的時間復雜度,促進學生關注程序優化的重要性。教師更可以提出“人類基因圖譜”繪制研究為什么出現在今天、禽流感基因為什么難于被繪制、感冒病毒為什么不可以提前預測等一系列問題。
4結語
高等學校擔負著培養創新型人才的重要使命,而學習模型直接影響到能否保持和發揚學生的創新性。在這方面,知識互動的學習模型具有重要的價值和意義,值得進一步深入研究。
參考文獻:
[1] 于衡,張竟洋.高素質創新人才培養之我見[J].遼寧行政學院學報,2008,10(07):143.
[2] 林崇德.培養和造就高素質的創造性人才[J].北京師范大學學報:社會科學版,1999(1):5-13.
[3] 岳曉東,龔放.創新思維的形成與創新人才的培養[J].教育研究,1999(10):9-16.
Exploration of Learning Model for Innovation Capability in High-level Language Programming Teaching
LI Xiao-dong, ZHANG Xiao-li
1.前言
匯編語言是我們理解整個計算機系統的最佳起點。人們往往認為匯編語言的應用范圍很小,因而忽視了它的重要性。其實匯編語言對學習計算機科學與技術的人是非常重要的。所有程序,不論用何種語言進行編制,只有轉成機器指令,運用機器的邏輯功能,功能才得以實現。
匯編語言直接a描述機器指令,比機器指令更容易記憶和理解。通過學習和使用匯編語言,我們才能夠感知、體會、理解機器的邏輯功能,這樣不僅可以為理解各種軟件系統的原理打下技術理論基礎,而且可以為掌握硬件系統的原理打下實踐應用基礎。
2.教學中存在的問題
當前高級語言的發展非常迅速,各種開發工具層出不窮,其功能也越來越強大。高級語言進行程序設計的可操作性越來越強,許多非計算機專業人員在不了解計算機的結構、沒掌握計算機相關的專業理論和各種計算機語言具體編程等情況下,同樣能很好地使用高級語言。所以,高級語言的發展弱化了匯編語言的地位,這使部分高職學生覺得匯編語言已不重要了,學不好沒有多大的關系。所以,思想認識上的不重視,導致了部分學生學不好這門課程。
《匯編語言程序設計》的學習需要一定的英語知識。高職學生的英語基礎普遍差,據有關職業教育方面的統計資料顯示:在高職高專院校中60%的學生英語基礎差;30%的學生有一定的基礎,但對英語學習不感興趣;10%的學生英語基礎較好。實際上,普通高職高專院校學生英語的基礎情況比統計的更嚴峻。這就為他們學習這一課程帶來了一定的障礙。
針對這一系列的情況,筆者根據教學經驗,總結了在高職院校教《匯編語言程序設計》的一些心得,希望對大家有所幫助。
3.注重課堂教學
3.1優化教學內容。
本課程涉及內容較多,教師應在講課之前先對課本內容進行優化。并不是課本上所羅列的內容都需要講,教師要有選擇性講解:對學生有用的而課本上講得不全面的要補充講解,而對學生用處不大的可以不講或一帶而過,爭取做到“少而精”。
3.2讓學生充分認識到該課程的重要性,提高學生的學習的興趣。
“興趣是最好的老師”,如何讓學生對本課程感興趣?筆者認為關鍵是把握好開學第一堂課。在學生剛接觸本課程時,教師不要急于介紹理論知識,而是要強調該課程的實際應用,通過介紹匯編語言的特點和匯編語言在一些典型系統開發中的具體應用來激發學生的學習興趣。
目前對單片機的靈活編程已經應用到各個領域,無論是尖端科技,如軍事、通信、能源、機器人、交通、IT,還是現代工業、農業,如儀器儀表、汽車電子系統、家用電器、玩具、個人信息終端等諸多領域,都離不開單片機。而單片機的編程里大部分都使用了匯編語言,匯編語言的易用和靈活的特性,使得匯編語言將繼續占有獨特的地位,其適用的領域要求執行效率高、反應快,如操作系統內核、工業控制、實時系統、家用電器的計算機控制功能等。在講述其重要性和應用領域時,教師應結合一些身邊的、具體的實例,如電梯升降的控制程序和廣場的大型噴泉的控制程序均是由匯編語言編寫的,學生的興趣會被這些實例極大地調動起來。
3.3注重實踐環節。
在計算機相關專業的教學領域,實驗教學是培養學生學習能力、實踐能力、思考能力、創新能力的重要環節和有效途徑。學生在學習匯編語言這門課程中產生的困難,來自于他們對所學知識缺乏必要的感性認識,沒有得到充分的實踐。
計算機在很多方面不同于其他學科,尤其是與硬件有密切關系的課程。由于匯編語言課程與硬件操作有著密切關系,因此實驗環節在整個教學活動中占據了舉足輕重的地位。匯編語言的實驗對培養學生的動手能力和學習興趣,提高學生閱讀、編輯和調試程序的能力,有著不可替代的重要作用。學生通過實驗能深入了解CPU、存儲器、接口及外部設備的工作特性,對數據在計算機中的表達和傳送產生感性認識,在實驗中學生能對匯編語言有更好的理解、掌握,從感性認識上升到理論認識。
4.改進教學方法
4.1對照教學法。
在講匯編語言時,教師可以和其它語言對照講解,比如C語言。C語言作為一門基礎和先驅課程,在此時起到了很好的借鑒作用,由于大部分學生對C語言掌握得較好,基于語言的相通性,在匯編語言的相關教學中教師若以C語言作為對照展開講解,將會收到很好的教學效果,也能增進各科之間的知識和方法上的聯系。下面筆者結合教學實踐,列舉一些應用對照教學法的實例。
MOV指令是8088指令系統中首要講解的一個指令,也是匯編程序設計中使用最頻繁的指令,教師應強調對操作數的要求。有幾點我們可以用C語言來對比解釋:
傳送過程。其傳送過程類似于C語言中的賦值,只是在這里是給寄存器或存儲單元賦值,其實C語言中的變量名本身就是一個符號地址,匯編程度的賦值最終應對應到存儲器的某些存儲單元。
兩操作數的類型匹配問題。該內容在C語言中已作了強調,匯編中類型匹配問題也是一個重點。與C語言類似,匯編語言操作數的位數要保持一致,只是在8088中常用的類型為字節和字。
強制類型轉換。C語言中用到了該知識,學生也已掌握,那么匯編語言中又如何實現呢?很自然地我們就可以引出“BYTE PTR”和“WORD PTR”這兩個操作符。
4.2互動式和啟發式教學。
高職學生的課堂氣氛一般比較活躍,他們非常喜歡教師引導、提問,喜歡回答問題。所以教師應利用這一特點在上課過程中設計一些有意義的提問,利用提問將要講的知識點引出來,避免平鋪直敘地講解知識點,這樣讓學生帶著問題來學習知識點,會起到事半功倍的作用。例如,在講解編程部分的循環結構時,筆者先舉了這樣一個例子:求1+2+3+……+100的和。學生立刻就說出結果為5050。筆者接著問:加到1000呢?這樣很多學生饒有興趣地聽講。可見,教師所選的題目要由淺入深,要能激發學生的學習興趣,要想辦法讓學生變被動學習為主動學習。
課堂練習也是互動式教學一個非常重要的方法。在講解完某一個例題后,教師可以出一道類似的習題讓學生在課上完成,請學生上講臺在黑板上寫出解題步驟并進行講解。例如剛學習了用循環的方法求1+2+3+……+100的和,教師可以讓學生練習一道2+4+6+……+100的和。這樣可以檢驗學生的掌握情況,找到學生理解錯誤的地方,從而對癥下藥。就學生理解錯誤的知識點再進行講解,這樣除了可以讓學生當堂能夠掌握所學的知識點,還能讓其做到舉一反三。
4.3實例教學法。
由于本課程是一門比較抽象的課程,因此教師在課堂講授中應該盡量用一些通俗易懂的例子進行教學。
例如在講解匯編中存儲器地址分段的概念時,為了便于學生理解,教師可以借助平時生活的居民樓,進行舉例。一個小區有多個居民樓,如一號樓、二號樓等,每個樓里有多個室,如101室、102室等。我們可將樓號比作段基值,每個樓里的房間比作偏移地址,很顯然一號樓的101和二號樓的101是不一樣的。這個例子可以使學生易于理解分段的概念。
再如在講解中斷的概念時有很多例子可舉。把教師上課比作CPU正在處理的事,門外有學生打報告,教師就暫停正在處理的事情讓學生進來,等學生進來后接著講課。這樣學生很容易就能掌握中斷的概念。
教師可以將難理解的知識點與日常生活中的小事相聯系,這樣既可以使學生學到扎實的理論知識,又不會使學生學得吃力。
5.充分發揮多媒體教學的作用
匯編語言指令多、變化多,相對其他可編程語言來說源程序長而復雜,一個簡單的問題解決至少要幾十行,多則上百行,教師講解例題時如果板書,就要花去大部分時間。如何解決這個問題呢?多媒體能夠提高教學效果,擴大教學范圍,延伸教師的教育功能。教師應在課前準備講解的程序,上課時直接操作計算機,一邊講解指令的格式及算法,一邊將指令使用前后的情況、程序的效果等通過投影儀展示給學生。計算機教學還可借助網上豐富的資源、圖文并茂的生動界面、多姿多彩的影像資料,這些可使教學具有感受性、新穎性、可組合性、可擴充性,使學生的思維更加具有發散性,更容易培養學生的創新思維。
6.結語
筆者對匯編語言課程的教學內容和教學方法進行了探討,這些教學方法促進了課程的建設與發展,為學生學好后續課程打下了一個良好的基礎。摸索一條適合高職學生需要的、有效的教學方法,使高職學生能更好地、更快地掌握匯編語言程序設計,培養學生的分析問題、解決問題和實際操作能力,我們在匯編語言課程教學中需要繼續探索研究的目標。
二、目前程序設計類課程教學在主語言選擇中面臨的問題
作為高校目前開設的程序設計類課程主語言,C語言和VB語言具有相對悠久的歷史,也有很多自身特有的優勢,在程序設計教學中起到過非常重要的作用,但同時也因為時間較久,很多功能和編程思想稍顯陳舊,逐漸變得難以適應計算機教學發展的新形勢。一般計算機類專業開設C語言程序設計課程,可以培養學生嚴謹認真的編程素養,使學生基本掌握一門高級語言進行程序開發的基本技能。同時,因為C語言更貼近底層,因此用C語言作為程序設計的主語言可以讓學生更深切的了解計算機最基本的運作原理,開發出高效、優化的程序。C語言雖然具有上述很多優點,而且目前應用仍然較廣,但是它本身是上一代的面向過程的語言,語法晦澀嚴苛,應用時特別容易出錯。從語言本身的角度來說,基本數據類型不夠完善,缺乏布爾型、日期時間型、對象型等數據類型;構造型的數據類型中,僅支持數組類型,對集合類的類型缺乏支持[1],很多基本的功能都有賴于用戶自己設計,進行程序開發時工作量很大,難度也較高,對非計算機專業學生來說不適合作為程序設計基礎語言。VB語言一般作為文科類專業的程序設計類課程主語言,具有可視化、面向對象、便于操作數據庫、難度較低、容易上手等特點[2]。目前國內高校大多仍然選擇VB6.0的程序開發環境。但是VB6.0是一種非純粹的面向對象語言,僅適用于Windows系統,沒有跨平臺的特性,在非Windows系統下無法使用。而且由于VB6.0已經長期沒有更新,很多新的編程思想也難以體現,在新操作系統下支持不好。同時,目前的主流移動計算平臺大多不支持VB語言作為開發語言,在移動計算發展迅猛的形勢下,VB6.0難以因應時展,從長遠的角度來看,不利于學生的學習,因此選用更科學合理的語言作為程序設計基礎語言是必要的。
三、Python語言作為程序設計課程主語言的優勢
選用什么語言來進行程序設計教學不僅關系學生的學習效果,還對學生以后的發展有著一定影響。計算機編程語言的發展非常迅速,基本上每過幾年就會有新的形勢出現。近年來,Python已經成為最受歡迎的程序設計語言之一,它逐漸被廣泛應用于處理系統管理任務、圖形處理、網絡編程和Web編程等領域。Python語言是一種簡潔、易讀的解釋性語言,具有優良的可擴展性和平臺可移植性,同時Python是開源的語言,擁有豐富的第三方庫和插件,為使用Python進行開發提供了極大的便利[3]。在國外用Python做科學計算的研究機構日益增多,諸多的國外高校已經開始采用Python語言來作為程序設計課程的主語言。從教學的角度來說,使用Python語言作為程序設計課程的主語言有以下幾種優勢。1.簡單易學。Python是一種解釋性語言,具有類似腳本語言一樣的簡單易學的特點,無須像C語言一樣強制定義變量,程序的執行也無須經過編譯、鏈接等中間步驟,可以直接執行,給用戶良好的交互式編程體驗,也便于學生的記憶和學習。2.開源小巧的多平臺開發環境。Python在多種操作系統下都具有良好的支持,有些操作系統甚至自帶Python的開發環境。在常用的Windows平臺下,只需一個很小的開源安裝包就可以安裝Python開發環境,便于學生的自學和交流。如果需要,也有很方便的圖像化開發界面可以下載安裝。3.豐富的數據類型和高層的編程體驗。Python提供豐富的數據類型,內置像元組、集合、列表、字典等方便使用的集合數據類型,過濾了底層內存管理、垃圾回收等細節,可以讓用戶把更多的精力放到程序開發本身上來。在教學上可以節省很多時間和精力,便于學生把重點放在解決問題的真正邏輯上。4.可擴展性和持續更新。Python具有良好的可擴展性,可以把其他語言開發的程序“粘合”到Python程序中,發揮不同語言各自的優勢。同時,Python語言仍在不斷的更新,具有良好的發展前景,便于調動學生學習的主動性。總而言之,盡管Python語言也有運行速度較慢、縮進格式要求嚴格等缺點,但是其簡單易學等特點使得在目前學時普遍較少的程序設計類課程教學中具有較好的優勢,把語言的部分語法和內容進行篩選后作為程序設計課程的主語言進行教學是可行的。