高級語言程序設計范文
時間:2023-03-30 16:24:38
導語:如何才能寫好一篇高級語言程序設計,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
C語言程序設計課程通常在教學計劃中都被安排在大學一年級上學期,這個階段剛好是新生入學的第一個學期,一方面新同學對程序設計的概念還比較淡薄,另一方面,教學過程中程序練習題解決問題的針對性也不是很強,這都給教學環(huán)節(jié)帶來了不少的困難。傳統(tǒng)的實踐教學中存在較多的問題,主要表現(xiàn)為[1]:(1)由于程序練習題解決問題的針對性、新穎性、復雜性等方面的原因,學生對上機實踐課的興趣較難調動,對上機實踐通常不夠重視;多數(shù)學生上機前不做預習準備,上機過程中總是敷衍了事,碰到問題時,既不積極思考,也不向教師提問;(2)實踐教學中傳統(tǒng)的練習題內容有點簡單單一,缺乏層次性,不能滿足不同層次學生的需求;(3)實踐教學中的練習內容與后續(xù)相關課程有一定的脫節(jié),表現(xiàn)為某些專業(yè)的學生雖然學了C語言,但到后續(xù)一些相關課程中需要使用C語言進行編程時,學生感覺仍然無從下手;(4)程序設計課程的考核方式不是很合理,現(xiàn)在只重視筆試考核和理論知識的掌握,忽略了編程動手能力的考核;(5)實踐教學過程沒有較好的延續(xù)性,不少學生當C語言課程考試結束后,也就把C語言放置一邊了,沒有把C語言的學習和應用很好地延續(xù)下去,因此并不能很好地掌握C語言。《C語言程序設計》是實踐性很強的一門課程,實踐教學是整個教學過程中的重要環(huán)節(jié),抓好實踐教學可以加強學生對抽象理論知識應用的理解和掌握,培養(yǎng)學生的編程實踐動手能力,讓學生掌握編寫程序和調試程序的方法技巧。另一方面,程序設計實踐教學環(huán)節(jié)中還存在著實踐教學內容缺乏系統(tǒng)性和層次性,實踐教學方式方法單一,編程實踐內容與后續(xù)課程存在脫節(jié),學生學習興趣不高等問題。所以應根據(jù)C語言實踐教學情況,分析現(xiàn)在實踐教學中存在的問題,采取相應的改進措施。例如,加強練習題的層次性和針對性,將練習題分為基本練習題和提升練習題等。教學中必須通過大量的實踐訓練來促進學生對知識應用的理解和掌握,提高其分析問題、解決問題、編寫程序和調試程序的能力,以保證良好的教學效果。
針對《高級語言程序設計》實踐課程教學中存在的諸多問題,教學時可按專業(yè)研究方向有所側重地進行教學設計,設計不同的教學導向、教學內容、教學方法等。對電子信息類學生,可有所側重地加強該實踐課程與后續(xù)信號處理類課程,數(shù)學實驗與數(shù)學建模課程的聯(lián)系。
2.1加強該課程與信號處理類課程的聯(lián)系
信號與信息處理的方法和能力是電子信息類學生在專業(yè)學習中必須要求掌握的一個基本技能環(huán)節(jié)之一。其中,比較典型的課程有《算法與數(shù)據(jù)結構》《數(shù)值分析與算法》《數(shù)字圖像處理》《語音信號處理》《信息隱藏技術》等。在《高級語言程序設計》實踐教學的教學內容設計上,可將學生引導到信號處理的方向上來,增加相應課程中涉及的特征參數(shù)提取,特征識別或判別、求解方程或某一類問題的算法實現(xiàn)等內容,一方面增加了練習題目的針對性,趣味性,同時還提升了題目本身的難度和層次性。例如,《語音信號處理》課程的學習過程中,可以設計一個小型的系統(tǒng)辨識問題[2],讓學生完成10個孤立數(shù)字的語音識別問題。其中包括了語音特征參數(shù)的提取、特征的判別兩個環(huán)節(jié)。
2.2加強該課程和數(shù)學建模與數(shù)學實驗課程的聯(lián)系
數(shù)學實驗與數(shù)學建模是計算機和數(shù)學軟件引進教學后的新事物,是數(shù)學教學體系、內容和方法改革的一項嘗試。以往我們對數(shù)學的學習著重在,通過嚴密的邏輯推理完成公式的推導、定理的證明和實現(xiàn)一些簡單快捷的計算,忽略了數(shù)學的實際應用。對于大多數(shù)理工科大學生來說,將來的工作并不是數(shù)學領域的研究工作,更多的時候,他們很可能將以數(shù)學為工具來解決各種實際問題。數(shù)學實驗與數(shù)學建模課程正是鍛煉了學生這一方面的能力。另一方面,一次數(shù)學建模實驗過程相當于進行一次小型科研活動,在一定程度上,培養(yǎng)了學生初步的科研能力。通過最近幾年的教學實踐和組織學生參加全國和國際大學生數(shù)學建模競賽活動,發(fā)現(xiàn)數(shù)學實驗和數(shù)學建模課程對學生科研能力的鍛煉有很大的促進作用,我們對該門課程的教學也著力在數(shù)學模型的建立和編程求解方面加強更多的聯(lián)系。下面就這方面談談教學實踐中的一些體會。在全國大學生數(shù)學建模競賽中有這樣一道題目[3-4]:2000年6月,人類基因組計劃中DNA全序列草圖完成,此后人類將擁有一本記錄著自身生老病死及遺傳進化的全部信息的“天書”。這本大自然寫成的“天書”是由4個字符A,T,C,G按一定順序排成的長約30億的序列,其中沒有“斷句”也沒有標點符號,除了這4個字符表示4種堿基以外,人們對它包含的“內容”知之甚少,難以讀懂。破譯這部世界上最巨量信息的“天書”是21世紀最重要的任務之一。在這個目標中,研究DNA全序列具有什么結構,由這4個字符排成的看似隨機的序列中隱藏著什么規(guī)律,又是解讀這部天書的基礎,是生物信息學(Bioinformatics)最重要的課題之一。雖然人類對這部“天書”知之甚少,但也發(fā)現(xiàn)了DNA序列中的一些規(guī)律性和結構。例如,在全序列中有一些是用于編碼蛋白質的序列片段,即由這4個字符組成的64種不同的3字符串,其中大多數(shù)用于編碼構成蛋白質的20種氨基酸。又例如,在不用于編碼蛋白質的序列片段中,A和T的含量特別多些,于是以某些堿基特別豐富作為特征去研究DNA序列的結構也取得了一些結果。此外,利用統(tǒng)計的方法還發(fā)現(xiàn)序列的某些片段之間具有相關性等。這些發(fā)現(xiàn)讓人們相信,DNA序列中存在著局部的和全局性的結構,充分發(fā)掘序列的結構對理解DNA全序列是十分有意義的。作為研究DNA序列結構的嘗試,提出對序列集合進行分類的問題。圖1就是發(fā)現(xiàn)的兩個DNA序列堿基結構,要求從中提取特征,構造分類方法,完成特征表達并利用其進行判識。為完成上述任務,一方面,從C語言程序設計過程來看,學生需考慮特征數(shù)據(jù)如何表達,采用什么數(shù)據(jù)類型,如何設計算法完成搜索查詢目標;另一方面,這是一個帶有挑戰(zhàn)性和實際意義的交叉學科問題,既擴展了學生的知識面,又增加了趣味性。這對提高高級語言程序設計實踐教學環(huán)節(jié)的教學效果是很有幫助的[5-6]。本文來自于《實驗科學與技術》雜志。實驗科學與技術雜志簡介詳見
3結束語
篇2
關鍵詞:程序設計;高級語言;算法設計;功能意念
中圖分類號:G642 文獻標識碼:B
1引言
“高級語言程序設計”是各類學校計算機相關專業(yè)的一門重要的專業(yè)基礎課,許多學校都將其安排在新生入學后的第一學期開設。
對剛接觸這門課程的學生而言,“高級語言程序設計”課程的中心內容包括兩個部分:高級語言和程序設計。從高級語言和程序設計的關系來說,程序設計應該是這門課程的核心內容。
對于如何搞好“高級語言程序設計“的教學,不同的人有不同的看法。筆者在多年的教學實踐中,多次嘗試采用“功能意念教學法”,取得了教好的效果。本文就是這一教學法的簡單總結。
2功能意念教學法
“高級語言程序設計”的功能意念教學法就是從程序的一般功能、程序的一般結構以及程序設計的一般過程出發(fā),按照功能+意念+機制的方式組織教學。簡單地說,就是為了設計一個程序,先解決我們需要做些什么,然后解決程序需要做些什么,最后解決高級語言怎么做到等一序列問題,也就是從問題和任務出發(fā)進行教學。
以上所述主要圍繞程序最基本的功能展開,至于其它功能部分,比如C語言的編譯預處理、宏、模塊化、混合語言編程、指針、文件、鏈表等,也可以從功能意念的角度展開教學。
在具體實施教學的過程中,可以根據(jù)教學要求按照自頂向下的原則制定出所教授的高級語言的基本功能意念表,以方便教學。
3算法的意念作用
筆者認為,程序設計其實就是為了解決某個問題而從我們所熟悉的程序設計語言中挑選合適的語句做一個適當?shù)呐帕薪M合。
在上面的這段話中,明顯地有兩個值得我們進一步探討的關鍵詞:合適的語句和適當?shù)呐帕薪M合。現(xiàn)在我們的問題是,如何挑選合適的語句?又怎樣做適當?shù)呐帕薪M合?
這兩個問題的解決有賴于所謂算法的概念。因此,為了解決這兩個問題,我們必須針對面臨的具體問題設計出有效的算法。
算法是解決特定問題的一序列操作的集合,代表的就是一種意念,換言之,就是設計者所希望的對數(shù)據(jù)進行加工處理的有序的步驟。這種操作步驟的有序性就決定了如何對所挑選的語句做適當?shù)呐帕薪M合。
由粗到細是我們解決問題的一種典型的思維過程。按照這一思維特點,算法設計也有一個由粗到細的過程,即算法細化。
算法細化要適可而止,即有一個度的問題,那么我們又該如何把握這個度呢?一般而言,算法細化只要細化到其中的每一操作步在準備采用的語言中都能找到對應的語句直接加以實現(xiàn)即可,而且也必須細化到這種程度!算法細化好了,如何挑選合適的語句也就解決了。
總之,算法決定了如何挑選合適的語句以及怎樣對所挑選的語句做適當?shù)呐帕薪M合!因此有了算法,我們只需要通過很簡單的翻譯轉換就可以很容易地得到程序。
4高級語言的相關功能成分
高級語言是書寫和記錄程序的工具。為了適應程序的功能需要,高級語言自然應該提供相應的手段或機制讓程序設計人員借以實現(xiàn)所需要的程序功能,高級語言的相關功能成分指的就是這些手段和機制。
4.1數(shù)據(jù)安排機制
高級程序設計語言中的數(shù)據(jù)安排機制主要體現(xiàn)為用于定義常量、變量、數(shù)組和記錄(或結構體)等的功能成分。單純從語言成分的角度來看,這些功能的實現(xiàn)主要是由一組和數(shù)據(jù)類型有關的關鍵字來體現(xiàn)的。換言之,高級語言為我們提供了一組與數(shù)據(jù)類型有關的關鍵字以便程序設計人員根據(jù)自己的意愿對數(shù)據(jù)空間進行組織和安排。以C語言為例,這些關鍵字主要有:char、int、float、double、struct以及signed、unsigned、short、long,等等。在源程序中來看,數(shù)據(jù)空間的組織和安排都是通過基于上述關鍵字的數(shù)據(jù)定義語句來實現(xiàn)的,比如:
1)int abc;
2)char abc[12] ;
3)*float abc;
4)struct abc{x char;y int;z float;}
struct abc xyz;
作為程序設計的工具,為了盡可能給程序設計人員帶來方便,高級語言除了支持基本數(shù)據(jù)類型外,還支持用戶自定義類型,如上面的例4)。
4.2數(shù)據(jù)I/O機制
高級語言中的數(shù)據(jù)I/O機制主要體現(xiàn)為各種用于數(shù)據(jù)輸入/輸出的語句或函數(shù)(庫函數(shù))等。在C語言中,這些函數(shù)常用的有:
fprintf、printf、sprintf、vprintf、vfprintf、vsprintf、
fscanf、scanf、sscanf、fgetc、fputc、getc、putc、getchar、putchar、fgets、fputs、pus、gets等。
以上列出的是所謂系統(tǒng)預定義函數(shù),即標準函數(shù)或庫函數(shù)。此外,用戶還可以根據(jù)自己的需要以上述標準函數(shù)為基礎自行定義一些可以得到某些特殊I/O效果的函數(shù)。
4.3數(shù)據(jù)處理機制
前面已經提到,數(shù)據(jù)的內部加工處理主要包括數(shù)據(jù)在主機內部的傳送和各種運算,高級語言的數(shù)據(jù)處理機制就
是指為此目的而提供的各種運算符。在C語言中,這些運算符包括為數(shù)據(jù)傳送提供的賦值運算符“=”和為數(shù)據(jù)運算提供的算術運算符“+、-、*、/、%、++、--”、關系運算符“>、>=、
4.4流程控制機制
高級語言中的流程控制機制主要體現(xiàn)為用來實現(xiàn)分支程序結構、循環(huán)程序結構以及子程序結構的功能成分,換言之,就是分支語句、循環(huán)語句以及子程序的定義和調用機制等。在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]. 北京:機械工業(yè)出版社,2002.
[4] 鄭啟華. PASCAL程序設計(第二版)[M]. 北京:清華大學出版社,1996.
篇3
[關鍵詞]智慧課堂 高級語言程序設計 上機教學
[中圖分類號] G642 [文獻標識碼] A [文章編號] 2095-3437(2015)08-0125-02
一、引言
在信息技術高速發(fā)展,全面建設智慧城市、智慧校園的大背景下,傳統(tǒng)的課堂教學也面臨著變與不變的外部挑戰(zhàn)。[1]新興技術的不斷沖擊,使得課堂教學不再是師生間單一的教與學關系,更多的是師生間平等的對話與互動,傳統(tǒng)課堂已無法滿足教育需要。將信息技術與教育深度融合,優(yōu)化教育模式,已經成為一種必然的趨勢, 由此智慧課堂這一新的教學模式便應運而生了。智慧課堂是指充分利用信息化技術,以引導學生的高度參與以及主動性的充分發(fā)揮,以自主地發(fā)現(xiàn)問題、研究問題和解決問題為主要學習形式,是以培養(yǎng)多樣化、高素質、創(chuàng)新型人才為目標的教學方式。[2]相對以教師為中心的傳統(tǒng)課堂,智慧課堂強調以學生為中心,注重學生的主動學習、合作學習和快樂學習。[3]
作為高校理工科電子、計算機等相關專業(yè)的一門重要基礎課程,高級語言程序設計的目標是培養(yǎng)學生的程序設計理念、掌握程序設計的基本方法,培養(yǎng)學生熟練使用C語言編程解決實際問題的能力,為后續(xù)程序設計課程的學習和應用打下扎實的理論和實踐基礎。[4]學生是否具有較高的編程能力和良好的編輯習慣是衡量其對該課程掌握程度的一個重要指標,而編程能力的提高和編程習慣的養(yǎng)成離不開上機實踐,因此上機實踐是高級語言程序設計教學中的一個至關重要的環(huán)節(jié)。[5]
本文針對高級語言上機教學的課程特點和存在問題,充分利用上機實驗室的信息設備優(yōu)勢,將信息技術與教育深度融合,實現(xiàn)上機教學的智慧課堂。
二、教學現(xiàn)狀和問題
一般院校的高級語言程序設計理論課和上機課的比例為1∶1,由32學時理論課和32學時上機課組成。上機課目前多采用傳統(tǒng)的“教師講授―教師演示―學生上機練習”的教學模式,主要存在以下問題:
(1)學生編程的信心和積極性有待提高。高級語言程序設計的開課時間設在大一的第二個學期,此時絕大部分學生對計算機軟硬件知識缺乏全面了解,再加上C語言本身學習起來有難度,使學生不能很快掌握算法的思維特點,編程能力、調試能力普遍較差,增加了C語言上機學習的難度。很多學生在上機的過程中非但沒有對編程產生興趣,反而還產生懼怕心理,進而放棄學習。
(2)學生自主分析問題、解決問題的能力有待提高。目前上機教學模式以教師“教”為中心,學生過多依賴于實驗指導書和教師,基本處于被動接受狀態(tài)。在上機課中常出現(xiàn)“寫程序就抄書,出現(xiàn)問題等老師”的現(xiàn)象,分析錯誤、動手調試本是最能發(fā)揮學生能動作用的環(huán)節(jié),現(xiàn)在卻由教師來承擔,往往導致學生離開指導書和教師就寫不出程序、調試不了程序的局面,很難培養(yǎng)學生在程序設計上的創(chuàng)新能力和邏輯思維能力。
(3)機房得天獨厚的信息技術環(huán)境沒有得到充分的利用。一般機房都配備有計算機、高速局域網和多媒體教學管理軟件,具備開展智慧課堂的條件。以我院機房為例,采用的是海光多媒體軟件,海光多媒體軟件是一款實現(xiàn)在電子教室、多媒體網絡教室或者電腦教室中進行多媒體網絡教學的非常好的軟件,集電腦教室的同步教學、控制、管理、音視頻廣播、網絡考試等功能于一體,并能同時實現(xiàn)屏幕監(jiān)視和遠程控制等網絡管理的目的,其核心功能包括教師演示、學生示范、語音教學、遙控輔導、屏幕錄制、屏幕回放、提交作業(yè)、電子搶答和文件傳輸?shù)取5壳霸撥浖饕糜诮處熝菔竞褪瞻l(fā)文件,現(xiàn)有的信息技術設備沒有得到充分的利用,信息技術改變教育方式沒有得到充分的體現(xiàn)。
三、智慧課堂開展內容
針對以上情況,本文將充分利用機房的信息技術環(huán)境優(yōu)勢,將信息技術與教學深度融合,通過分組合作學習、任務驅動教學、網絡學習和多元化考核等教學手段,創(chuàng)建高級語言程序設計上機教學的智慧課堂,實現(xiàn)學生主動學習、合作學習和快樂學習。
(一)小組合作學習
針對部分學生不能單獨完成編程及缺少興趣的問題,采用分組學習的教學模式,每次上機課將學生分為4人一組,每組學生通過合作學習共同完成一個實驗任務。小組合作學習一方面更能突出學生的主體地位,培養(yǎng)學生主動參與的意識,激發(fā)學生的學習興趣;另一方面學得好的學生可以帶動其他學生,在達到學習均衡的同時,也培養(yǎng)了學生的合作能力和團隊精神。
分組合作學習的關鍵是有效地組織學生學習,沒有組織的學習會使課堂變得嘈雜、分散,所以合理劃分小組是分組合作學習的首要前提。主要考慮兩種分組方式,第一種是學生自愿組合,第二種是教師按學生的基礎分組。第一種分組方式有利于調動學生合作學習的積極性,激起學生學習的興趣,但是自由式的小組組合很可能出現(xiàn)分組不均衡的現(xiàn)象,即學習基礎好的學生分在一組,學習基礎薄弱的學生分在一組;第二種分組方式需要教師在全面了解學生的前提下,根據(jù)班級內的情況,有意識地將不同基礎、不同類別的學生分到一組,使班級小組間基本上是相似的、均衡的。綜合考慮兩種分組方式的優(yōu)缺點,可交替采用兩種方式進行分組。
小組劃分后需進行合理分工,每一組選擇一個組長,組長協(xié)助教師組織任務攻關工作,同時監(jiān)督組員,避免出現(xiàn)“蹭組”現(xiàn)象。組長的選擇要考慮學生的成績、與同學間的關系等因素,可采用自由推選的方式,給每個學生改變角色和鍛煉的機會,進而提高其學習興趣。
(二)任務驅動教學
在上機實驗過程中,以完成一個具體的任務為線索,把教學內容隱含在每個任務之中,要求學生在具體的任務驅動下,在討論和對話的氛圍中,進行自主學習和協(xié)作學習。這樣學生在完成任務的過程中始終處于主體地位,不僅提高了學生的積極性,也培養(yǎng)了學生的探索與創(chuàng)新精神。任務完成后,隨機挑選或通過海光多媒體軟件的“電子搶答”功能選出若干小組,通過軟件的“學生演示”功能進行演示,并引導學生進行總結和改進。
在任務驅動教學中,任務設計的質量直接關系到教學效果。在設計任務時,要以學生為中心,根據(jù)學生的實際情況和學生感興趣的方向來設置任務,同時要注意高級語言知識點的系統(tǒng)性和連貫性,將理論課的知識點融入上機任務中,使學生在完成任務的過程中,既鞏固已學過的內容,又探索新知識,實現(xiàn)總體的教學目標。
例如,在練習C語言控制結構中的選擇結構時,任務設計為:設計一個程序,輸入某年某月某日,要求計算出這一天是該年的第幾天。學生拿到任務后,分組討論程序思路,教師通過管理軟件隨機選擇若干小組聽取他們的設計思路,根據(jù)回答情況進行引導,學生得到以下正確思路并編程實現(xiàn):
1.從鍵盤上讀入3個整數(shù),分別作為年、月、日。練習輸入函數(shù)。
2.要計算出某天是當年的第幾天,應該將當年中本月之前所有月份的天數(shù)相加,再加上本月的天數(shù)。根據(jù)所輸?shù)脑路菥毩晄witch選擇結構。
3.考慮閏年問題,二月是一個特殊月,如該年是閏年,則二月有29天,否則,便是28天。根據(jù)所輸?shù)哪攴菥毩昳f選擇結構。
4.輸出答案。練習輸出函數(shù)。
這個有趣的任務讓學生在討論中學會了選擇結構的使用方法,并了解了switch和if這兩種常用的選擇結構的區(qū)別,且鞏固了前面學習的輸入輸出函數(shù)知識點。
(三)網絡學習
為學生提供豐富的網絡學習資源。利用海光多媒體軟件的錄制和回放功能,可以在執(zhí)行“教師演示”播放教師機上的屏幕畫面的同時,將播放的圖像畫面以動畫影像的形式錄制下來,跟不上教學進度的學生可通過“回放”學習。將錄制的視頻、課件、參考資料和課外拓展練習資料等上傳到課程群,提供豐富的網絡學習資源,讓學生學習不受時間、地點的限制,實現(xiàn)全方位學習。
(四)多元化考核方式
考核方式對學生有重要的學習方向引導作用,在智慧課堂的教學模式中,采用多元化考核方式,進一步調動學生的學習主動性和積極性。學生的上機成績由三部分組成:課堂表現(xiàn)考核,由教師根據(jù)學生的分組表現(xiàn)、課堂展示和任務完成情況給出成績,占總成績的30%;組內考核,每次實驗由小組長根據(jù)組員的表現(xiàn)打分,最后取平均分,占總成績的20%;期末上機考試,占總成績的50%,對學生的總體掌握情況進行測評。
四、結語
本文充分利用了機房得天獨厚的信息技術環(huán)境,采用小組合作學習、任務驅動教學、網絡學習和多元化考核等教學手段,創(chuàng)建了高級語言程序設計上機教學的智慧課堂。實踐證明,該教學方法深受學生的歡迎,有效提高了學生的積極性,取得了良好的教學效果。
[ 注 釋 ]
[1] 黃榮懷,張進寶,胡永斌,等.智慧校園:數(shù)字校園發(fā)展的必然趨勢[J].開放教育研究,2012(4):12-17.
[2] 吳曉靜,傅巖.智慧課堂教學的基本理念[J].教育探索,2009(9):6.
[3] 祝智庭,賀斌.智慧教育:教育信息化的新境界 [J].電化教育研究,2012(12):13.
篇4
我國高校很多非計算機類專業(yè)學習程序設計課程所用語言主要為C語言和VB語言。這些語言歷史較久,也具有自身的很多特點,但更新很慢或者已經停止更新,因而導致與計算機最新的發(fā)展不相適應。尤其是VB語言,存在較多不足,如難以進行移動計算的編程、在新操作系統(tǒng)下支持不好、功能和編程思想陳舊等。這些不足使得傳統(tǒng)的程序設計課程所用的語言難以緊跟計算機發(fā)展的新形勢,不利于學生計算思維的培養(yǎng)。因此,選用更科學合理的語言作為程序設計課程的主語言對于高校高素質人才的培養(yǎng)具有很重要的現(xiàn)實意義。在計算機飛速發(fā)展的大背景下,以C語言、VB語言程序設計為主的高校程序設計類課程教學多年來缺少變化,已經與時代有些脫節(jié)。現(xiàn)在國內外很多高校開始設置Python語言、C#語言等作為程序設計的主要語言,取得了良好的效果。本文就以Python語言為例,借鑒國外在程序設計類課程教學中的先進經驗,探討在我國高校以Python語言作為程序設計類課程主語言的可能。
二、目前程序設計類課程教學在主語言選擇中面臨的問題
作為高校目前開設的程序設計類課程主語言,C語言和VB語言具有相對悠久的歷史,也有很多自身特有的優(yōu)勢,在程序設計教學中起到過非常重要的作用,但同時也因為時間較久,很多功能和編程思想稍顯陳舊,逐漸變得難以適應計算機教學發(fā)展的新形勢。一般計算機類專業(yè)開設C語言程序設計課程,可以培養(yǎng)學生嚴謹認真的編程素養(yǎng),使學生基本掌握一門高級語言進行程序開發(fā)的基本技能。同時,因為C語言更貼近底層,因此用C語言作為程序設計的主語言可以讓學生更深切的了解計算機最基本的運作原理,開發(fā)出高效、優(yōu)化的程序。C語言雖然具有上述很多優(yōu)點,而且目前應用仍然較廣,但是它本身是上一代的面向過程的語言,語法晦澀嚴苛,應用時特別容易出錯。從語言本身的角度來說,基本數(shù)據(jù)類型不夠完善,缺乏布爾型、日期時間型、對象型等數(shù)據(jù)類型;構造型的數(shù)據(jù)類型中,僅支持數(shù)組類型,對集合類的類型缺乏支持[1],很多基本的功能都有賴于用戶自己設計,進行程序開發(fā)時工作量很大,難度也較高,對非計算機專業(yè)學生來說不適合作為程序設計基礎語言。VB語言一般作為文科類專業(yè)的程序設計類課程主語言,具有可視化、面向對象、便于操作數(shù)據(jù)庫、難度較低、容易上手等特點[2]。目前國內高校大多仍然選擇VB6.0的程序開發(fā)環(huán)境。但是VB6.0是一種非純粹的面向對象語言,僅適用于Windows系統(tǒng),沒有跨平臺的特性,在非Windows系統(tǒng)下無法使用。而且由于VB6.0已經長期沒有更新,很多新的編程思想也難以體現(xiàn),在新操作系統(tǒng)下支持不好。同時,目前的主流移動計算平臺大多不支持VB語言作為開發(fā)語言,在移動計算發(fā)展迅猛的形勢下,VB6.0難以因應時展,從長遠的角度來看,不利于學生的學習,因此選用更科學合理的語言作為程序設計基礎語言是必要的。
三、Python語言作為程序設計課程主語言的優(yōu)勢
選用什么語言來進行程序設計教學不僅關系學生的學習效果,還對學生以后的發(fā)展有著一定影響。計算機編程語言的發(fā)展非常迅速,基本上每過幾年就會有新的形勢出現(xiàn)。近年來,Python已經成為最受歡迎的程序設計語言之一,它逐漸被廣泛應用于處理系統(tǒng)管理任務、圖形處理、網絡編程和Web編程等領域。Python語言是一種簡潔、易讀的解釋性語言,具有優(yōu)良的可擴展性和平臺可移植性,同時Python是開源的語言,擁有豐富的第三方庫和插件,為使用Python進行開發(fā)提供了極大的便利[3]。在國外用Python做科學計算的研究機構日益增多,諸多的國外高校已經開始采用Python語言來作為程序設計課程的主語言。從教學的角度來說,使用Python語言作為程序設計課程的主語言有以下幾種優(yōu)勢。1.簡單易學。Python是一種解釋性語言,具有類似腳本語言一樣的簡單易學的特點,無須像C語言一樣強制定義變量,程序的執(zhí)行也無須經過編譯、鏈接等中間步驟,可以直接執(zhí)行,給用戶良好的交互式編程體驗,也便于學生的記憶和學習。2.開源小巧的多平臺開發(fā)環(huán)境。Python在多種操作系統(tǒng)下都具有良好的支持,有些操作系統(tǒng)甚至自帶Python的開發(fā)環(huán)境。在常用的Windows平臺下,只需一個很小的開源安裝包就可以安裝Python開發(fā)環(huán)境,便于學生的自學和交流。如果需要,也有很方便的圖像化開發(fā)界面可以下載安裝。3.豐富的數(shù)據(jù)類型和高層的編程體驗。Python提供豐富的數(shù)據(jù)類型,內置像元組、集合、列表、字典等方便使用的集合數(shù)據(jù)類型,過濾了底層內存管理、垃圾回收等細節(jié),可以讓用戶把更多的精力放到程序開發(fā)本身上來。在教學上可以節(jié)省很多時間和精力,便于學生把重點放在解決問題的真正邏輯上。4.可擴展性和持續(xù)更新。Python具有良好的可擴展性,可以把其他語言開發(fā)的程序“粘合”到Python程序中,發(fā)揮不同語言各自的優(yōu)勢。同時,Python語言仍在不斷的更新,具有良好的發(fā)展前景,便于調動學生學習的主動性。總而言之,盡管Python語言也有運行速度較慢、縮進格式要求嚴格等缺點,但是其簡單易學等特點使得在目前學時普遍較少的程序設計類課程教學中具有較好的優(yōu)勢,把語言的部分語法和內容進行篩選后作為程序設計課程的主語言進行教學是可行的。
四、結論
篇5
關鍵詞:C語言程序設計;教與學;學習理論;教學設計
中圖分類號:G712 文獻標志碼:A 文章編號:1674-9324(2014)09-0156-02
一、引言
C語言作為一門出色的程序設計語言,既有高級語言的特點,又有匯編語言的特點。它以精練、靈活、可移植性好、應用領域廣泛、目標程序效率高而著稱。在高職院校中,C語言程序設計作為計算機應用專業(yè)及相關專業(yè)的專業(yè)必修課,也是學生學習程序設計的入門課程。它在程序員的學習中起著非常重要的基礎作用。
二、C語言教學現(xiàn)狀分析
作為以重點培養(yǎng)學生技術應用能力的高職院校,C語言程序設計作為一門理論性較強的課程,在實際教學中,將知識轉化為能力的教學效果往往并不理想。主要體現(xiàn)在C語言煩瑣的各種語言細節(jié)和抽象的設計理論上,學生在接觸大量難以記憶的概念、名詞和規(guī)則時常常會感到枯燥乏味。對于抽象的程序設計理論,不能較好地建立算法和基本編程思路。學生在獨立上機編程時,常常感到無從下手,在調試程序中,由于效率較低,很難從學習中體會到成就感。很快學生對這門課程失去了興趣,喪失了學習信心。因此想要C語言教學中,收到良好的教學效果,就需要加大對C語言程序設計的教學內容以及教學方法好好研究。本文將通過針對C語言中不同的教學內容,采用不用的教育學習理論,探索相應的教學方法,重點培養(yǎng)學生通過C語言的學習,掌握程序設計的基本方法、基本思路和基本技術。讓C語言程序設計課程更加符合高職教育的目的。
三、幾種教學系統(tǒng)設計的應用
1.以“教”為主的教學系統(tǒng)設計應用。以“教”為主的教學設計理論和方法經過幾十年來眾多專家的深入研究與發(fā)展,已形成一套完整嚴密的理論體系。主要基于行為主義學習理論和認知學習理論,教學設計的焦點在教學上,強調教師的主導作用,突出循序漸進,按部就班,精密嚴密的應用系統(tǒng)方法對教學進行設計。特點是有利于教師主導地位的發(fā)揮,教師把握整個教學過程,它適用于基礎知識和系統(tǒng)知識的掌握和傳授,有利于教學目標的完成。
C語言中基本知識的內容比較適合此種教學設計模式,比如C語言概述、C語言的數(shù)據(jù)結構類型、C語言的基本運算符及表達式等內容。教師依據(jù)教學大綱,把教學內容細分為知識點,確定各知識點的學習水平,比如了解、識記、理解、掌握及綜合應用等。課前分析學生的基礎,設計教學過程,靈活運用多種教學方法,通過講授法讓學生對基本知識概念認識,通過案例法學生在例子中理解感念,通過討論法學生對學習的知識進行交流和提問,通過測驗驗證學生的掌握情況。教師要監(jiān)控整個教學過程,通過嚴密的教學設計,學生會對基礎知識有扎實的掌握。當然此種教學模式也有其弊端,比如重教輕學,忽視學生的自主學習、自主探究,容易造成學生對教師、對教材、對權威的迷信,使學生缺乏發(fā)散思維、批判思維的創(chuàng)建。但對于C語言中基本概念知識的內容的特點,這些弊端還是較好地回避了。
2.以“學”為主的教學系統(tǒng)設計應用。建構主義理論指導下的以“學”為主的教學系統(tǒng)設計認為,在教學中體現(xiàn)以學生為中心,認為在學習過程中充分發(fā)揮學生的主動性,要體現(xiàn)學生的首選精神;要讓學生有多種機會在不同的情境中應用所學的知識;讓學生能根據(jù)自身的行動的反饋信息來形成對客觀事物的認識和解決實際問題的方案。重視發(fā)揮學生的首創(chuàng)精神,將知識外化和實現(xiàn)自我反饋。
C語言中的三大程序設計結構,即順序結構、選擇結構和循環(huán)結構。主要培養(yǎng)學生架構化程序設計的思想,讓學生理解掌握自頂向下,逐步求精的程序設計,進行模塊化程序設計,應用三種基本控制結構解決復雜問題的能力。注重程序設計方法能力的培養(yǎng)。教師在教學設計中,以簡單的程序為例導入學習內容,讓學生通過自學,理解程序流程,學生通過案例實驗,在做中理解程序設計思想。在學生掌握基本方法后,給學生提供豐富的實驗資源,讓學生在實踐中舉一反三,達到知識的掌握,方法的理解,從而實現(xiàn)能力的獲得。當然,在實施教學過程中,要注意避免其弊端的影響,比如不能忽視教學目標的分析,學生在自主學習的自由度過大時,容易偏離教學目標的要求。不能忽視教師的指導作用,強調以學生為中心,要充分考慮體現(xiàn)學生的主導作用,就是要為學習者設計主動建構知識意義的學習環(huán)境,教師可通過任務驅動法,比如先選擇結構學習時,用單循環(huán)結構導入,再讓學生思考乘法表的編程方法,給學生基本的算法思路的提示,讓學生循序漸進地掌握嵌套選擇的復雜結構。要注意師生之間情感交流和情感因素在學習過程中的重要作用,學生在完成任務時,要及時鼓勵,通過優(yōu)秀作業(yè)的講解和總結,讓學生獲得學習的信心和熱情。
3.教師為主導、學生為主體的“雙主”教學系統(tǒng)設計應用。“雙主”教學設計理論既不是僅以教師為中心,也不完全是以學習者為中心,而是充分考慮兩者的有機融合,相互交流,相互溝通,雙邊互動,不但能夠發(fā)揮教師的主導作用,又充分體現(xiàn)學習者的認知主體作用。在整個過程中教師處于中心地位,是教學過程的組織者、指導者、知識建構的幫助者、促進者。對于學習者并非在本過程中自始至終處于“傳授―接受”的學習狀態(tài),更多的時候是在教師幫助下進行主動思考與探索。而教學媒體在整個教學過程中有時作為輔助教學的工具,有時作為學習者自主學習的認知工具,各個要素彼此相互聯(lián)系,從而形成一種新的教學設計模式。
C語言中數(shù)組、函數(shù)、指針、文件等內容較適合采用此種教學模式。在教學中教師的角色發(fā)生了轉變,教師是教學活動的組織者、執(zhí)行者,但是對教師能力的要求卻提出了更大的挑戰(zhàn)。教學課程內容可以由課堂教學、分組教學、上機實踐和自學活動等部分組成,教學項目的開發(fā)者。可以通過課前設計教學項目任務、教學雙邊活動策劃、典型例程選擇、課堂隨機提問等手段來實現(xiàn)。分組教學:分組教學強調環(huán)境因素對學生意義建構的促進作用。根據(jù)學生的具體情況進行分組,分組既要考慮學生的互補性,又要設立小組成員的帶頭作用,實現(xiàn)良性自主學習策略,最終把因材施教內容融入到該環(huán)節(jié)中去。上機實驗:程序設計掌握的關鍵是算法的編制和語言的運用能力,因此上機實踐是必需的,在上機前可以設定一些貼近實際應用的項目模塊,讓學生從項目需求、環(huán)境變量、算法流程、語言格式及模塊I/O等方面進行練習,教師可以在上機時間內進行相應的實踐引導和結果評價工作。自學活動:學生在課余時間提供豐富的網絡學習資源,學生在通過網絡進行深入研究學習,教師也可提供一些實用的軟件項目供學生課余參與,通過比賽的形式學生在項目參與過程中提高了對知識的應用能力,鍛煉了一定的程序員素質和團隊合作精神。
四、結語
實踐證明,針對不同教學內容采用相應的教學模式,課堂教學與實驗教學效果都比過去有了明顯改善。通過對由淺入深的理論學習和循序漸進的實驗練習,學生在學習中培養(yǎng)了程序設計的興趣和學習熱情。通過整合教學內容、改進教學方法,教師要通過研究教學內容的特點,采用相應的教學模式,注意避弊取利,采用多種教學策略進行補充完善,以實現(xiàn)C語言教學效果最優(yōu)化。
參考文獻:
[1]夏瑜.基于雙主理論的程序設計教學方法[J].四川教育學院學報,2009,(11).
篇6
關鍵詞:程序設計 建構主義理論 興趣驅動 問題探索
中圖分類號:TP311.1 文獻標識碼:A DOI:10.3969/j.issn.1672-8181.2013.19.030
1 引言
目前,程序設計是工科高等院校的重要基礎性課程,對于信息類專業(yè)學生的職業(yè)技能培養(yǎng)和實踐能力的鍛煉起到不可替代的作用[1]。程序設計課程是在學生系統(tǒng)地學習了一種面向對象的程序設計語言的基礎上,教師設置和指導涵蓋多知識點的軟件課題,期望學生通過課題的實踐來鞏固面向對象的程序設計語法和思想的一種手段。由于面向對象程序設計通常在低年級開課,大部分學生在中學期間接觸很少,導致學生普遍對編程語言課程存在畏難情緒和厭惡心理,嚴重缺乏學習興趣,因此影響了課程的學習效果。而程序設計課程是一門實踐性很強的課程,該課程的教學效果不僅影響到學生對編程語法和方法的掌握,也直接關系到學生對后續(xù)專業(yè)課程的自信心。
建構主義[2,3]的思想來源于認知加工學說,融合了維果斯基、皮亞杰和布魯納等人的思想,皮亞杰等人的認知觀點中解釋了如何使客觀知識結構通過個體與之交互作用而轉化為認知結構的方法,建構主義理論中教學觀表明:教師不應只是知識的呈現(xiàn)者,不應扮演知識權威角色,而更應關注學生對各種知識的理解,時刻掌握他們的學習進展,并以此為據(jù),引導學生豐富或調整自己的解釋,應當在教師引導下以學生為中心,使學生在特定階段承擔起教學中的主體作用。建構主義理論中一個重要核心思想即教師應當引導學生的學習興趣,在教學過程起始階段教師是主體,而通過學生興趣的提高,學生應該慢慢替代教師成為教學中的主體。
2 現(xiàn)狀及存在問題
現(xiàn)有多種教學方法應用于程序設計課程,并且取得了一定的實際效果,三種較為典型的程序設計教學方法歸納如下。
2.1 任務驅動教學法[4]
任務驅動式教學是以任務為主線開展的教學方法,是一種探究式教學模式,該模式中在教師的設計引導下,以學生自學為主,教師負責把知識點融入各個子任務中去,學生層層推進任務的完成。盡管這種方法沒有遵守傳統(tǒng)教學法中從易到難、循序漸進的方式,是以完成任務作為驅動來進行教學,但是可以在完成任務過程中培養(yǎng)學生自主學習的能力。
2.2 案例分析教學法[5]
案例分析式教學是教師運用典型案例材料,引導學生參與理解、分析、探討、反饋等教學活動,該方法注重培養(yǎng)學生運用知識分析問題和解決問題的能力。該方法的核心是鼓勵學生表達對問題的分析及解決問題的想法。通過教學對象的雙方互動,通過參與研討,使得學生在解決課題的實踐中掌握知識、熟練技能、側重實用。
2.3 競賽驅動教學法[6]
由于把考試作為課程的目標會使學生缺乏正確的學習目標,因此提出競賽驅動教學方法,期望通過競賽方式讓學生在課程學習中獲得成就感,在程序設計教學中引入競賽的訓練方法與評判規(guī)則,以競賽為驅動,激發(fā)學生的學習興趣和競爭意識,例如南京郵電大學每年開展的ACM競賽、程序設計大賽等,會吸引很多學生踴躍參與。
綜上所述幾種現(xiàn)行方法,盡管從不同角度改進了程序設計課程的教學效果,但是都存在以下幾方面的共性問題。
①重語法、輕方法。高級語言的語法規(guī)則繁多,比如函數(shù)、指令、輸入輸出格式等,通常在編程語法教學時教師側重介紹各種語法規(guī)則,并且要求學生記憶并嚴格遵守規(guī)則進行編程。而實際上,程序語言的學習應側重于對問題的解決思路的訓練,培養(yǎng)學生分析問題和解決問題的能力。
②重結果、輕過程。程序設計類課程的成績評定一般都取決于最終程序的操作效果,所以學生往往關注程序的功能是否實現(xiàn),而忽略了程序實現(xiàn)方法的選擇和取舍,這對于未來大型程序的開發(fā)可能會導致嚴重后果。
③重規(guī)范、輕探索。程序設計課題的一般都有標準答案,要求學生所開發(fā)程序達到或者接近標準結果,盡管這種課題便于教師對學生的成績評定,但是限制了學生自由探索的空間。
程序設計能力實質上是一種需要學生發(fā)揮主觀能動性、激發(fā)靈感的一種技能,過多的約束與限制不利于職業(yè)技能的養(yǎng)成和后期發(fā)展。以上所述的三方面問題顯然抑制了學生對程序設計課程的學習興趣,降低了學習樂趣,進而也影響了學習效果。因此,本文提出一種基于建構主義理論,面向興趣導向的程序設計課程改革思路。
3 興趣為導向的課程改革
以興趣為導向的程序課程改革包括課程設置、教師引導、學生實踐和教師評價四個步驟,如圖1所示,本節(jié)分別介紹這些步驟的實施方法。
圖1 興趣為導向程序設計的主要步驟
3.1 課題的選擇與設置
課題的選擇對于程序設計課程而言非常重要,與課題的合理性和可探索性有著直接關系,一個合適的課題體現(xiàn)幾個特點:①知識點涵蓋完整、合理,課題所需要用到語法能貫穿高級語言的主要知識點,另外這些知識點應與實際軟件開發(fā)相符合;②趣味性,課題可以引起學生的主動思考、激發(fā)研究的意愿,比如可以采用巡回賽競分型課題;③可探索性,課題未必有標準的答案,程序開發(fā)的結果可以是多樣化的,允許學生的獨立思考和個性發(fā)揮,并且可以通過自主學習其他相關課程來加深對課題的理解和分析。
3.2 教師引導課題
由于程序設計課程主要面向低年級本科生開設,教學對象的專業(yè)基礎想對薄弱,而探索性課題具有一定的復雜性和多樣性特征,所以教師對課題的引導很有必要。課題引導應側重于課題所涉及知識點、解決思路、基礎理論等,尤其是關注對解決過程的引導,解決過程可以采用“問題剖析―問題建模―方法凝練―實施解決”的模式來開展和介紹,可以把課題的關鍵步驟作為入口,逐步增加細節(jié),按照“關鍵步驟―增加細節(jié)―全局”步驟加以分析和引導。
3.3 學生探索與實踐
經過教師對課題內容和方法的引導之后,學生要開始課題的具體實施。實施過程包括課題分析、課題準備、方法選擇、編程實現(xiàn)和結果驗證及反饋環(huán)節(jié)。課題分析需要根據(jù)教師的引導開展,根據(jù)分析結果學生進行相關知識的儲備,之后選擇合適的方法進行編程實現(xiàn),在對結果進行驗證之后可能還需要反饋結果進一步調整方法,對程序進行修改和完善,所以該步驟是一個迭代過程,學生可能需要進行多次的“方法選擇(調整)開發(fā)(完善)程序結果驗證方法選擇(調整)”。在該過程中,學生將不斷加深對程序設計思想的理解和應用水平,還有助于提高學生解決問題的能力。
3.4 教師評價
在該方法中,教師評價將不僅僅依據(jù)學生所開發(fā)的程序結果,而更多關注學生在實踐過程中的分析和思考過程,特別是學生在方法選擇和調整過程中的實踐軌跡。教師評價的指標應覆蓋學生實踐的四個環(huán)節(jié),分別對學生的分析能力、準備情況、方法選擇、程序結果進行評價,得到一個綜合的評價等級。盡管在該方法中,教師的工作量會有所增加,但是將有助于提高學生的課程學習的效果,并給予更為客觀的評價。
4 結語
當前信息類高校中學生對程序設計課程普遍存在興趣不強的現(xiàn)象,因此影響了教師所預期的教學效果。針對該現(xiàn)象,本文基于建構主義理論,提出一種以興趣為導向的程序設計教學改革方法,期望通過激發(fā)學生學習興趣,驅動學生進行自主地學習和探索,提高課程的教學效果和學生的專業(yè)技能。此外,本文還提出一種對程序設計課程中學生成績評定的模型,該模型涵蓋學生參考課程的各個環(huán)節(jié),有利于教師對學生給出一個更為客觀的評價。
參考文獻:
[1]喬淑云,黃剛.程序設計類課程教學改革與計算思維之培養(yǎng)[J].計算機教育,2012,(19):17-23.
[2]張建偉,陳琦.簡論建構性學習和教學[J].教育研究,1999,(5).
[3]張建偉,陳琦.從認知主義到建構主義[J].北京師范大學學報(社會科學版),1996,(4).
[4]冀松.興趣教學法在高級語言程序設計語言類課程中的應用[J].教育探索,2012,(3):52-53.
[5]王嵐.程序設計課程教學法探討[J].中國職業(yè)技術教育,2009,(11):65-67.
[6]王桂平,馮睿.程學設計課程實踐教學的改革探索[J].現(xiàn)代教育技術,2010,20(13):51-53.
[7]羅伯特?阿克塞爾羅德.合作的進化[M].上海人民出版社,2007.
作者簡介:劉林峰(1981-),男,博士,副教授,南京郵電大學計算機學院,江蘇南京 210023
篇7
關鍵詞:任務驅動;實踐教學體系;教學做一體化;階梯遞進
C語言是計算機類相關各專業(yè)學生學習的最重要的程序設計語言之一,它不但是一些專業(yè)課程(如數(shù)據(jù)結構)實踐所用語言,也是目前工程項目主要編程語言之一。C語言不但成為計算機類相關各專業(yè)的必修課,而且也越來越多地成為非計算機專業(yè)的學習課程,同時該課程也是一門實踐性很強的課程,有較高的實驗要求。但在C語言課程教學中,許多教師和學生都認為C語言涉及的概念比較復雜,規(guī)則繁多,使用靈活,容易出錯,教師教學和學生學習都感到困難,并不同程度產生畏難心理。近幾年來,筆者先后承擔了計算機網絡技術、計算機應用技術等高職專業(yè)的C語言程序設計教學任務,在教學過程中發(fā)現(xiàn),高職學生普遍認為C語言枯燥難學、概念復雜、容易出錯,學生的畏難、厭學情緒使得教學困難重重。這些都是C語言課程教學改革是所面臨的問題。
高職C語言程序設計課程的教學目標是:掌握C編程語言基礎語法;掌握初步編程思想,熟悉基本算法,能根據(jù)問題正確選擇、組合算法并繪制程序流程圖;能獨立編寫代碼,編寫測試數(shù)據(jù),并能獨立調試程序,獲得正確結果;對本課程和軟件開發(fā)相關課程有興趣,能自主學習。對高職學生而言,C語言程序設計是一門理論性和實踐性都很強的課程。
筆者在課程建設過程中,通過“任務驅動”教學模式對C語言程序設計這門課程進行教學改革,構建了階梯遞進的課程實踐教學體系,通過教學實踐,
已取得了階段性的成果。
1課程實踐教學體系設計主要思路
1.1“任務驅動”教學模式
“任務驅動”教學模式符合探究式教學,它提出了由表及里、逐層深入的學習途徑,便于學生循序漸進地學習知識和技能。“任務驅動”教學要求每次課都提出一個明確的任務,內容兼具趣味性和實用性。教師引導學生由簡到繁、由易到難、循序漸進地完成這些任務,介紹所需知識點,弱化實用性不強的細節(jié),突出重點內容。同時,教師圍繞實現(xiàn)任務講解和演示應用程序開發(fā)過程,介紹知識點的應用方法,使學生能夠直觀的理解難點內容,學習積極性大為提高。在這個過程中,學生會不斷地獲得成就感,可以最大限度地激發(fā)他們的求知欲望和學習興趣,逐步形成良性循環(huán),有利于培養(yǎng)開拓、探索、創(chuàng)新能力。
1.2階梯遞進教學模式
階梯遞進教學模式是指對一門課的教學在不同的階段針對已設定的階梯目標,以多種多樣的且逐階向上的形式開展教學,它是按照教學心理學和教學法理論,從學生心理、學習方法出發(fā),涵蓋學生自學能力和科學思維能力培養(yǎng)等全過程所設立的循序漸進的教學模式[1]。
作者簡介:胡建榮(1963-),男,講師,碩士,研究方向為計算機教學及計算機網絡技術;羅杰紅(1969-),女,副教授,碩士,研究方向為計算機應用技術及教學管理。
依據(jù)階梯遞進教學模式所構建的課程體系是:把課程教學的能力目標和知識目標劃分成一個個階梯式遞進的小目標,達到目標是從易到難,從簡單到復雜,從單一到綜合的階梯式遞進,形成一個小目標體系,每一目標都是前一目標的進步階梯。從能力目標和知識目標出發(fā),充分應用高職高專“項目導向,任務引領”課程建設的方法,把課程教學內容作了優(yōu)化整合,按照階梯遞進的設計思路,C語言程序設計課程實踐教學體系的設計是以綜合項目“學生成績管理系統(tǒng)”為主線,貫穿順序、選擇、循環(huán)結構和數(shù)組、指針等所有章節(jié)中,課程實踐教學具有連貫性。通過項目教學法,將C語言知識點都溶化到一個個任務的程序編寫中,所以實踐教學體系中的任務設計是非常重要的[2]。
1.3任務階梯的設計思路
以“任務驅動”和“階梯遞進”為理念,把實踐教學體系中的任務設計成階梯遞進的任務鏈,形成任務階梯。任務階梯是指按項目要求所設計的任務包括幾個小任務,這幾個小任務不是單獨存在的,前一個任務的完成應該要為后一個任務的展開做好鋪墊,幾
個任務層層推進,最終完成一個綜合的任務。也就是說,所設置的任務應該是一種階梯型任務鏈,任務由簡到繁,由易到難,再由高級任務涵蓋初級任務,數(shù)個微型任務循環(huán)構成大的“任務鏈”。這些大大小小的任務共同完成教學實踐項目,使教學呈現(xiàn)階梯式層層遞進的體系。
2課程實踐教學體系設計主要內容
偉大的教育家陶行知先生說“教學做是一件事,不是三件事。我們要在做上教,在做上學”。也就是讓學生邊學邊做,邊做邊理解。C語言程序設計的實踐教學體系遵循“教學做一體化”的教學模式,構建以實現(xiàn)“學生成績管理系統(tǒng)”項目為主的任務階梯實踐體系,整個實踐教學體系序化為9個階梯,形成一個從單一到綜合、從簡單到復雜的層層遞進梯次結構體系。
針對“學生成績管理系統(tǒng)”項目,在實踐教學中將其分解重構為以下19項任務,這19項任務貫穿整個C語言的實踐教學,形成了較完整的實訓體系,如表1所示。
表1階梯遞進的C語言程序設計課程實踐教學體系的設計
階梯序號知識階梯項目任務階梯
1認識C語言學生成績管理系統(tǒng)任務1
2順序結構程序設計任務1、任務2、任務3
3選擇結構程序設計任務4、任務5、任務6
4循環(huán)程序設計任務7、任務8、任務9、任務10、任務11
5數(shù)組應用任務12、任務13、任務14、任務15
6函數(shù)設計及應用任務16
7指針應用任務17
8結構體應用任務18
9文件應用任務19
表1中任務1-19具體內容如下。
任務1:編寫計算某同學C語言總評成績的程序(總評成績的計算方法:總評成績=平時成績*0.4+期末成績*0.6)。
任務2:計算某同學參加入學考試語文、數(shù)學和英語三科目總分。
任務3:計算某同學參加入學考試語文、數(shù)學和英語三科目平均分。
任務4:已知某同學期中各科考試成績,請計算該同學的平均成績,并輸出各科成績等級(90分以上為“A”級,80-89之間的為“B”級)。
任務5:已知某同學期中各科考試成績,請輸出該同學考試科目中的最高成績。
任務6:輸入某同學期中考試語文成績,輸出該同學各科成績等級(90分以上為“優(yōu)秀”,80-89之間的為“良好”,70-79之間的為“中等”,60-69之間的為“及格”,60以下為“不及格”)。
任務7:某同學參加了十門專業(yè)課考試,請編程求出該同學的專業(yè)課平均成績。
任務8:某同學參加了十門專業(yè)課考試,請編程求出該同學的專業(yè)課中的最高成績。
任務9:某同學參加了十門專業(yè)課考試,請編程求出該同學的專業(yè)課中的最高成績和最低成績。
任務10:某同學參加了十門專業(yè)課考試,請編程統(tǒng)計該同學的專業(yè)課成績的優(yōu)秀率。
任務11:某同學參加了十門專業(yè)課考試,請編程統(tǒng)計該同學的專業(yè)課的平均成績。(以-1結束輸入。)
任務12:某同學每一學年有十門課參加考試,編程計算該同學三學年以來每一學年的平均成績。
任務13:某同學參加了十門專業(yè)課考試,請編程將該同學的專業(yè)課中成績按高分到低分的順序排列。
任務14:某同學每一學年有十門考試,編程計算該同學三學年以來所有課程的平均成績。
任務15:某同學參加了十門專業(yè)課考試,請編程將該同學的專業(yè)課中成績從高分到低分的順序排列。如下表2所示。
表2成績表排名
序號課程名稱課程成績/分
1C語言90
………………
任務16:某同學參加了十門專業(yè)課考試,請編程將該同學的專業(yè)課中成績按高分到低分的順序排列(應用函數(shù)設計程序)。
輸入:89567898764490806573
輸出(如下格式):
****************************************
989089807876 73655644
****************************************
任務17:某同學參加了十門專業(yè)課考試,請編程將該同學的專業(yè)課中成績按高分到低分的順序排列(應用指針設計程序)。
輸入:89567898764490806573
輸出(如下格式):
****************************************
989089807876 73655644
****************************************
任務18:計應07班有50名學生,每名學生一學年學習十門專業(yè)課,請編程將全班同學的專業(yè)課平均成績按從高分到低分的順序排列(應用結構體設計程序)。
任務19:計應07班有50名學生,每名學生一學年學習十門專業(yè)課,請編程將全班同學的專業(yè)課平均成績按從高分到低分的順序排列(應用文件設計程序)。
3結語
通過教學實踐表明,基于“任務驅動”階梯遞進的C語言程序設計課程實踐教學體系倡導教師的“教”是前提、學生的“學”是主體、學生的“做”是實踐,實踐體系設計形成了一個從單一到綜合、從簡單到復雜的體系,使“教、學、做”有機的結合,有效的避免了教與學、學與做等環(huán)節(jié)的脫節(jié),實現(xiàn)理論學習與實際應用的“零距離”,從而提高了學生C語言綜合應用開發(fā)能力。
參考文獻:
[1] 王良春. 階梯式人才培養(yǎng)模式在高技能人才培養(yǎng)中的應用[J]. 教育與職業(yè),2007(23):42-43.
[2] 孫庚. 項目教學法在“C++程序設計”課程教學中的實踐[J]. 計算機教育,2008(2):51-54.
Design of Practical Teaching System of Higher Vocational Course of Programming with C
HU Jian-rong, LUO Jie-hong
(Guangdong Textile Polytechnic Institute,Foshan 528000, China)
篇8
關鍵詞:C語言;教學;程序設計
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2012)21-5137-02
進入21世紀以來,隨著我國市場經濟的不斷發(fā)展和深入,越來越多的人投入到計算機這個新興的、高速發(fā)展的行業(yè)中來,編程領域已經成為我國國民經濟中極富有生命力和創(chuàng)造力的重要行業(yè)之一。但是我國的C語言程序設計發(fā)展水平和C語言的教學水平與國外相比還比較低,對提高C語言程序設計教學的有益性的認識與發(fā)達國家相比還有很大的差距。該文主要通過分析C語言編程技術在程序設計的教學中所具有的優(yōu)勢與劣勢,對其應用過程中所產生的問題進行闡述,進而對其應用的意義進行分析,以求使更多的學校能夠加入到C語言程序設計的教學大軍中來,以使C語言程序設計教學能夠更好的發(fā)揮優(yōu)勢。
1 C語言程序設計教學簡述
1.1 C語言程序設計的步驟
程序設計的五部分:1)分析問題。確定輸入和輸出的數(shù)據(jù)的描述和表示。即確定數(shù)據(jù)結構。2)設計算法。確定某個問題由多少個步驟完成。即確定算法。3)編碼。用計算機語言編寫程序代碼,即編程。4)調試程序。消除邏輯錯誤和語法錯誤。5)整理并寫出文檔資料。
1.2 C語言程序設計的注意事項
符號命名要有含義,必須便于對程序功能的理解。在源程序中,極功能性注釋。書寫代碼,在一行內只寫一條語句。編寫的程序應優(yōu)先考慮清晰性,除非對效率有特殊的要求。首先要保證程序的正確。然后才要求提高速度。輸入數(shù)據(jù)時,最好使用結束標志。(如回車\n)輸入與輸出要有提示語句。不要修補不好的程序,要重新編寫。
1.3 C語言程序的三種基本結構
1)順序結構
先執(zhí)行A,再執(zhí)行B。一串指令嚴格地按照某一個序列依次向下執(zhí)行先……然后……再……最后。2)選擇結構
存在某條件P,若P為真,則執(zhí)行A,否則執(zhí)行B。
3)循環(huán)結構
當循環(huán)條件P成立時(T) ,則重復執(zhí)行語句A,當循環(huán)條件P為“假”(F)時,則終止循環(huán).
1.4 C語言程序構成格式的設計
C語言程序規(guī)定必須用main作為主函數(shù),main函數(shù)后的對花括號不能省略。一個C語言源程序文件中可包含任意多個不同名的函數(shù),但有且只有一個主函數(shù)(main函數(shù))。一個C程序總是從main()函數(shù)的第一個“{”開始執(zhí)行,至main()函數(shù)的最后第一個“}”結束。每個函數(shù)都必須有一對“{”和“}”,左“{”表示開始,右“}”表示結束。每條語句都要以“;”結束,分號是C語言語句的一部分,不是語句之間的分隔符。注釋以“/*”開始,以“*/”結束。(一個好的源程序應該有詳盡的注釋)。其中,注釋不參與程序的編譯,不參與程序的運行。
1.5 C語言程序設計的書寫規(guī)則
C語言的書寫格式自由。一行內可寫多條語句,一條語句也可分寫在多行上。C語言沒有行號,每條語句和數(shù)據(jù)定義的最后必須有一個分號。注:程序的最后也應包含一個分號為了保證程序的準確性和可讀性建議在書寫程序時,應釆用階梯縮進格式。C語言規(guī)定。可以在語句中的任何一個分隔符或空格處換行。即一行寫不完時,可以在任何一個空格處換行。
2 C語言編程技術在程序設計的教學中所具有的優(yōu)勢
2.1簡單
與C++等語言相比較,語法上的C語言是簡單的,這是因為其垃圾回收機制與異常捕獲機制使其代碼的復雜性大大降低。因此學校的教學人員不需具備較為復雜的計算機知識,就能更加容易的編出準確的、符合教學所需要的程序,因而在面對學生的教學時也就能夠做到使更多的人容易學會C語言。
例: # include < stdio.h >
main()
{
char ch1, ch2;
ch1=‘A’;
ch2=‘a’;
ch1=ch1+32; ch2=ch2+3;
printf(“%c %d%c %d\n”, ch1, ch1, ch2, ch2 );
}
結果:a97d100
2.2 C語言運行速度較快
由于C語言的編譯原理較為簡單,因而其運行時的速度在所有高級的編程語言中效率時最高的。因此在學生進行實際的編程過程中,能夠在課堂上及時的檢測自己的程序是否會出現(xiàn)相應的問題,這樣運行速度較快的語言的編譯在課堂教學中能夠節(jié)約更多的時間,使教學結構更加緊湊。
3 C語言編程技術在程序設計的教學中所具有的劣勢
3.1關于函數(shù)的學習內容較為繁瑣
函數(shù):一段可以被反復執(zhí)行,功能單一且獨立的程序段.(一段子程序)。功能:用于完成特定的任務或功能,并根據(jù)需要返回一個確定的狀態(tài)值。我們把這一段程序或子程序稱為一個函數(shù),也稱之為一個模塊,把分模塊的程序設計稱為模式塊化程序設計(特點:自頂向下,逐步分解)。但是由于其具有的多種類型及相對復雜語法,因而在教學中相對較難。
3.2學習周期較長
C語言的學習主要要學習的內容分為:C語言詞法、輸入與輸出、程序設計、循環(huán)結構、數(shù)組、指針、函數(shù)幾個部分,由于其內容相對較多,因而在實際的教學過程中需要一個較長的周期。
4 C語言程序設計教學的有益性
C語言教學在學校教學的總體成本中占有不小的比重,對學校的計算機教學來說是一個非常重要的組成部分。因而將C語言技術更好的融入教學,對于學校計算機教學的長遠發(fā)展,有著重要的意義。
4.1降低教學成本,提高學生學習的積極性
由于C語言的運行所需的計算機的配置不需太高,因而在無形中為學校的設備開支省下了很大一筆費用。又由于C語言是所有編程語言教學的基礎,因而其相對簡單、有規(guī)律性的詞法能夠使得更多的學生在學習中不會感到太過吃力,因而在學有余力的時候能夠激發(fā)興趣進行進一步的、深入的學習。
4.2提高了學校計算機教學的質量和總體競爭力
C語言的教學水平的高低直接影響著學校計算機編程語言教學的水平,進而影響其教學的質量。而C語言程序設計教學水平的提高標志著整個學習編程語言教學的基礎水平,因而加強其教育,能夠更好的彰顯學校的編程語言教學水平。
4.3使學生學有所用
無論教學的內容如何,最基本的一點還是應該以讓學生學到知識為前提。因為如果學者沒有應有的基礎知識,無論什么樣的教學方法改進都是妄談。而C語言的教學不是一個教學的斷層,而是一個編程學習的基礎,因而進行C語言程序設計的學習后,學生能夠有更多的機會進行深入的其他語言的學習。并且在以后的生活、工作中,C語言的運用十分普遍,這有利于學生將所學的知識更好的學以致用。
5結束語
C語言程序設計的教學促進了我國計算機編程語言的發(fā)展,更促進了新的計算機編程語言的形成。C語言的教學也使得更多的學生以此為基礎,能夠更好的進行深入的其他語言的學習。
參考文獻:
[1]李敏文.C語言程序設計教學的有益性的分析與設計[J].邯鄲職業(yè)技術學院學報,2007(2) .
篇9
關鍵詞: 分層教學; 自動評測系統(tǒng); 程序設計; 以學生為中心
中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2015)11-90-03
Abstract: On the basis of full investigation of many of the lack in current teaching and learning of computer programming course, a hierarchical teaching mode is proposed based on the teaching practice, namely the enlightening, advancing, improving and excellence selecting four levels, and its effect is evaluated. The hierarchical teaching mode can effectively stimulate students' professional learning interest, enhance the coherence between the professional courses, make computer programming course to play an aggregation role in between the various courses. The automatic evaluation system of programming ability training maximizes the liberation of the teacher's workload of mechanical correction. The hierarchical teaching mode reflects the student-centered teaching idea, improves the students' programming ability and social competitiveness.
Key words: hierarchical teaching mode; automatic evaluation system; programming language; student-centered
0 引言
信息社會的高速發(fā)展,軟硬件產品及服務的朝夕瞬變,使高素質程序設計人才需求與日劇增,高校的計算機專業(yè)人才培養(yǎng)也時刻面臨更新更高的要求。在計算機學科知識體系中,計算機程序設計類課程具有啟蒙、銜接和聚核的作用。對計算機專業(yè)的學生來說,在程序設計過程中貫穿閱讀判斷、分析思考、抽象表達、綜合創(chuàng)造等多項技能[1]。因此,如何提高大學生程序設計能力一直是計算機專業(yè)教師研究和考慮的問題。
1 現(xiàn)狀分析
基于多年的程序設計課程教授經歷,我們歸納總結了大學生程序設計能力培養(yǎng)和訓練方面存在的一些問題或不足。
⑴ 實踐環(huán)節(jié)時間太少。
⑵ 傳統(tǒng)教學手段不適合程序設計課程,學生處于被動學習狀態(tài)。
⑶ 教師人工判題評閱課后作業(yè)、上機實驗報告以及試卷的負擔沉重,而且對學生來說時效性差,學習效果受到影響。
⑷ 相關課程多但課程之間聯(lián)系少。
⑸ 目前的學生課程評價體系不夠完善。
2 具體改革內容
著名的教育學家Gagné R.M說過:“教育的中心目標就是教會人們思考,運用他們的理性,成為更好的問題解決者[2]。”針對以上的不足點,結合目前我校計算機專業(yè)的教學規(guī)劃和學生不同階段程序設計能力特點,我們設計了如下層次教育模式,并初見成效。
2.1 層次化教育模式
啟蒙層次(第一學期):目標是使一年級的學生具備基本的程序設計能力,掌握一些基礎算法,知曉如何編寫程序解決一些生活和科學的問題。
進階層次(第二學期,第三學期,第四學期):目標是通過與數(shù)據(jù)結構課程的銜接和滲透,讓學生理解數(shù)據(jù)結構的本質。強化學生的計算思維,引導解決綜合型系統(tǒng)級別的應用型問題。
銜接層次(第五學期,小學期實踐):目標通過與軟件工程課程的銜接和滲透,培養(yǎng)學生的綜合程序設計能力,讓學生具有利用程序解決綜合性問題的能力。
拔優(yōu)層次(二年級,三年級):目標是培養(yǎng)學生創(chuàng)新能力。從對程序設計感興趣的學生中選拔出一批算法運用設計能力較強的學生,進行ACM競賽訓練,以及更高級算法的學習和訓練,培養(yǎng)出一批具有榜樣作用的創(chuàng)新人才。
2.2 程序在線評測激勵系統(tǒng)及其模式的建立
培養(yǎng)程序設計能力的關鍵是動手編程實踐,一般程序設計類課程實驗課與理論課的比例是1:1,從教學安排上,實踐類課時已經很多了,但是僅靠課時要真正掌握好一門程序設計類課程是遠遠不夠的。雖然絕大部分學生都較重視理論課的學習,但課內實驗就不那么理想了。
根據(jù)實際教學的情況,我們設計了程序在線評測激勵系統(tǒng)化訓練平臺。根據(jù)不同層次需求,配置了不同內容的題庫和具體機制。我們將其用于實際教學中發(fā)現(xiàn),這個作為學生練習程序編制的平臺,在提高學生編程水平的同時,大大減少了教師的工作量;而且較之人工,機器自動評測更具嚴格性和客觀性。同時加入了激勵策略,輕松激發(fā)了學生的學習興趣。如:提交解答后系統(tǒng)會對提交的代碼自動進行評判,并同時給出時間占用和內存占用等相關信息,如果排名在前三,就給予首頁彩帶滾屏獎勵,提升學生的自我榮譽感。又或給予學績考核的額外加分等。
在線評測系統(tǒng)的工作流程如圖1所示。學生提交一個程序源代碼后,評測程序就對代碼進行編譯,然后執(zhí)行,將執(zhí)行結果和評測系統(tǒng)后臺正確的測試數(shù)據(jù)進行比較,如果答案和后臺數(shù)據(jù)完全相同則AC(Accept),說明你的程序是正確的;否則返回錯誤信息,對不同的錯誤類型給出不同的提示。同時源代碼的評測結果保存到系統(tǒng)數(shù)據(jù)庫中。教師如需要結果列表,也可一次性導出。
目前程序設計的教學過程中很需要這樣的自動評測平臺。它既減輕了教師繁重的程序代碼批改工作量,也可更客觀和高效地給出評判結果。國際最重要的程序設計大賽ACM-ICPC[4]使用的就是這樣的模塊來測評結果。在實際教學中我們也真實地感受到了這個系統(tǒng)帶給我們教師的便捷,學生也體會到了實時高效評測的興奮和成就感。
2.3 構建軟件設計課程群[3]
程序類課程教學中重視語法結構和案例,很少能從程序設計的基本方法和思想進行引導,使學生停留在照樣畫瓢的程度,缺少抽象思維、邏輯思維能力,難以編程解決實際問題。我們希望在學生掌握程序設計過程中激發(fā)起學生的軟件工程興趣。因此,在本學年新一階段的程序設計課程中,安排軟件工程的原理討論。討論的目的當然不是代替獨立的軟件工程課程,而是將基本的軟件工程原理引入早期的學習中,讓學生能更好地為以后正式參與項目開發(fā)做好準備;同時起到一個承上啟下的銜接作用。如果一開始就將邏輯簡單清晰、易讀易懂作為程序編寫的一個重要標準,學生就不會在以后被強迫忘卻壞習慣和重新學習。他們能在以后的課程中更好地理解軟件的涵義,了解軟件開發(fā)的過程。
以下是主要的實施環(huán)節(jié)。
⑴ 按照上面構建的程序設計能力層次化教育模式的框架,制定出每個層面的教學目標、教學大綱,匯聚有層次差別的各種教學資源。
⑵ 在線訓練激勵系統(tǒng)與學生實踐評價體系相配合。及時激勵先進,樹立榜樣。
⑶ 配置有層次化的學習輔導及習題集資料。豐富目前BlackBoard網絡教學平臺上內容的質與量。
⑷ 軟件工程環(huán)境映襯整個程序設計課程的教學環(huán)節(jié)。
3 結束語
本文研究了分層化教學改革,我們的總體目標是針對程序設計能力培養(yǎng)的啟蒙入門、發(fā)展提高和開發(fā)應用三個階段,研究和設計軟件程序設計課程體系的分階段學習模式,建立以任務驅動的課外程序設計激勵機制,實現(xiàn)大學四年平均每位學生累計達到1萬行程序編寫量,并能獨立完成千行以上的較大規(guī)模的程序設計。
我院從2009年開始就在探索學生程序層次化教育的培養(yǎng)模式,就前面講到的第四層次的學生群的實踐來看,已經積累了一定的經驗。在這些比較出色的程序設計的愛好者中,我們挑選了部分學生每年參加ACM-ICPC國際大學生程序設計競賽[4-5]。其作為世界最高水平的競賽,有獨特的氛圍和形式,吸引了無數(shù)愛好者,也鍛煉了一大批具有超強問題求解能力的人才。其中在2014年9-11月的比賽中,我院的隊伍獲得了亞洲賽區(qū)的5個銅獎。由于在ACM比賽中近幾年的良好賽績以及學生高漲的ACM熱情,我院還在2015年3月承辦了首屆全國中醫(yī)院校程序設計競賽,采用的就是ACM-ICPC的競賽規(guī)則與形式。接繼這樣的成果,我們接下來準備將層次細化到其他相關專業(yè)課程,希望通過這樣的實施過程,能達到預期的最大化目標。
參考文獻(References):
[1] 韓建民,王麗俠,賈s.大學生程序設計能力的層次化培養(yǎng)模
式[J].計算機教育,2012.3:15-18,22
[2] Jonassen, D.H. Toward a Design Theory of Problem
Solving[J]. Educational Technology: Research & Development,2000.48(4):63-85
[3] 傅川,沈鑫,蔣巍巍.軟件工程環(huán)境下的C程序設計課程教學[J].
計算機教育,2011.13:96-99
[4] Wikipedia. ACM International Collegiate Programming
Contest[EB/OL]. https:///wiki/ACM_
International_Collegiate_Programming_Contest.2015
篇10
【關鍵詞】C語言程序設計 多元化教學法 因材施教 非計算機專業(yè)
目前,大部分高職院校都開設了計算機公共課,我校根據(jù)學生的實際需要,為文科專業(yè)開設了計算機應用基礎、網頁設計課程;為理工科專業(yè)開設了計算機應用基礎、C語言程序設計等課程。本人所從事的是機電、數(shù)控類專業(yè)《C語言程序設計》課程的教學。作為一門專業(yè)基礎課,它面向的是非計算機專業(yè)的學生。結合多年的教學實踐,本人對本課程的課改方面也作了探索。
一、研究學生現(xiàn)狀,確定教學目標
在學習《C語言程序設計》之前,學生已學習了《計算機應用基礎》,已有一定的計算機基本操作能力。但是,對于程序設計,學生之前并沒有接觸過,而且,對于高職學生而言,教學內容確實比較難。因此,本人在第一次教授本課程時就不敢掉以輕心,每天認真?zhèn)湔n,鉆研教材,研究教法,以便上好每堂課。然而,學生仍舊抱怨課程枯燥難懂,課堂反應一般。經過多方面研究以及通過請教同行,本人才意識到,在教學過程中,面對手中的書和學生,我都沒能把他們放在應有的位置上,只是一味地按照教科書的節(jié)奏和內容強行灌輸給學生,根本沒有去研究他們到底需要什么?不需要什么?怎樣講課才是他們最容易接受的?針對上述情況,我作了以下分析。首先,我面對的是高職學校的學生,他們進校時學習成績一般,基礎知識掌握程度相對較差,學習習慣也不好,學習上不夠主動。而開始我對他們的要求過高,上課節(jié)奏太快,沒有等他們將一個知識點理解透透徹就急忙趕到了下一個知識點,這樣導致了學生越來越聽不懂,上課像聽“天書”。因此,研究學生的實際情況是確定教學目標的首要任務。其次,研究本課程對本專業(yè)的作用也是確定教學目標的關鍵。機電、數(shù)控類專業(yè)的學生學習《C語言程序設計》課程并不是要在今后能編寫C語言程序,而是學習一些編程方法,為以后學習數(shù)控編程打好基礎。因此,并不需要像要求計算機專業(yè)的學生一樣能準確無誤地寫出每一條代碼,只要能讀懂程序,并且在遇到一個問題時能分析問題,畫出流程圖。這樣,難度就降低了不少,學生不再覺得每堂課都是在聽“天書”。同一門課程,面對不同類型的學生,若不研究和考慮他們的實際需求,而只是從教材出發(fā),是絕對不可取的。
二、因材施教,設計課程內容
在確定教學目標后,本人對教學內容作了一些修改和完善。
(一)內容精簡,實例廣泛
對于機電、數(shù)控類學生而言,不需要學得太廣泛,內容“夠用”就好。因此,突出了流程控制、數(shù)組、函數(shù)、指針、結構體等核心內容的教學,削弱了枚舉、位運算、宏定義等非核心內容的教授。為加強C語言與機電、數(shù)控類專業(yè)知識的聯(lián)系,在實例講解時除了比較大小、電文譯、排序等類型實例外,還增加了具有專業(yè)特色的實例,例如:設計一個紅綠燈自動變化(紅燈:2秒;綠燈:3秒;黃燈:1秒)程序實例。
(二)理論與實踐相結合
理論與實踐互相依托,密不可分。經過一段理論知識的學習以后,很多學生只能將課堂上講解的程序一字不漏地輸入電腦,甚至還把程序抄錯,編譯時出現(xiàn)的語法問題自己不能解決,要依靠老師替他解決。針對這一現(xiàn)象,本人決定在每次上機實踐前將典型錯例錯誤提示信息、錯誤原因分析等編成錯誤小結發(fā)給學生,盡量使學生能獨立完成實踐課。上機結束前總結學生出現(xiàn)的常見錯誤,使其加深夠印象,在下次上機時能夠避免。
(三)多方位學習資源
本課程是校級精品課程,校方制作了精品課程網頁放到了學校網站中。學生可以通過注冊用戶下載電子課件、上機實踐指導、上課視頻等教學資源以便課后學習,也可以在學習論壇中提問或與其他老師、同學討論問題,交流心得。
三、組合多元化教學方法,改善教學效果。
多年來,我校的C語言教學模式一直比較傳統(tǒng),主要以教師講授為主,學生往往處于被動接受知識的狀態(tài),學生雖然學完了全部內容,但離開老師的幫助,拿到具體問題還是無從下手。本人經過多年教學經驗,總結了幾種行之有效的教學方法,并結合機電、數(shù)控的學科特點,在C語言教學中運用嘗試。
(一)提問教學法
本人在教學過程中發(fā)現(xiàn),經過一段時間的學習,學生往往提不出問題。然而,問題是最好的老師,沒有問題便沒有深入。作為教師就要在教學過程中,引導學生發(fā)現(xiàn)問題,然后留給學生思考、討論的時間,之后解決問題,從而更深入地展開學習。
例如,當學習數(shù)組時,教師先設置問題:編程計算10個學生的語文平均成績。學生根據(jù)以前的所學會想到:需要定義10個類型相同的變量用于存放這些成績。再進一步要求:計算50個學生的語文平均成績。這時學生就會考慮到,如果按照以前的方法,問題將會變得很復雜,有沒有更合理的定義方法呢?此時,當教師引出數(shù)組的概念,分析數(shù)組的性質時,學生不僅能很容易記住數(shù)組的性質,還能知道在什么情況下使用數(shù)組類型。這一環(huán)扣一環(huán)的提問,能激發(fā)學生探索的欲望,使學習不再是枯燥、復雜的理論說教,事半功倍。
(二)分段教學法
高職學生學習基礎差,接受能力也一般,而C語言課程本身就比較難學,要求他們一開始就能自己編程幾乎是不可能的,只能“慢慢來”。
分段教學就是讓學生由易到難地學習。第一步,讀程序。將相關程序通讀一遍,并且為每一條不熟悉的語句寫上注釋,標明這條語句是干什么用的?為什么用它?要注意些什么?這些過程雖然煩瑣,但堅持下來,學習效果還是比較明顯的,經過一段時間的訓練后,學生基本上可以讀懂的程序了。第二步,改程序。將讀過的程序功能改一改,改寫算法,這一階段實際上是算法分解組合的過程,學生在這個過程中,能收獲很多知識。最后一步,編程序。有了前兩步的基礎,編程就不再是那么“恐怖”的事了。但一開始,老師還是要適當?shù)亟o一些提示,鍛煉機會多了以后,在老師沒有提示的情況下,大部分學生對程序都能有一個大概的思路,對于機電、數(shù)控專業(yè)的學生而言已經足夠了,也有同學可以編寫出完整的程序。對于一些學習能力較強的學生,鼓勵他們用不同的方法實現(xiàn)同一功能,這樣可以加深學生對理論知識的理解,提高融會貫通和舉一反三的能力。實踐證明,分段教學法是可取的,教學效果是明顯的。
(三)案例教學法
傳統(tǒng)教學中,C語言的例題雖然很多,但是相對比較獨立、零散,沒有層層遞進的連續(xù)性。案例教學法是將實例的功能由小到大、由簡到全,各知識點因新增的功能需要被引入教學。
例如,在講授“結構類型數(shù)據(jù)”時,設計如下案例:
案例一:定義一個實型變量gz,從鍵盤輸入,如果大于等于500,則輸出其值,否則輸出信息:“最低工資不得少于500”;
案例二:定義一個描述職工工號(gh)、姓名(xm)、工資(gz)的結構類型gongren,并定義一個gongren類型變量gr1,并賦初值,如果gr1的工資在500以上,則輸出:“××(姓名)的工資是××”,否則輸出信息:“最低工資不得少于500”。
案例三:定義6個gongren型變量gr1、gr2、gr3、gr4、gr5、gr6,并從鍵盤輸入其值,輸出平均工資及工資最高的職工信息。
從案例的設計中可以知道:案例一所用的知識點是學生已掌握的,所以作為“溫故”,由學生自己完成;案例二涉及了結構類型數(shù)據(jù)的使用,在教師輔導和相關資料的指導下,學生對結構類型已基本了解,此時,作為“新知”讓學生在簡單的案例中實踐;案例三為了讓學生靈活運用知識解決實際問題,在“新知”的基礎上進一步“鞏固”相關知識。這樣層層推進,使學生每一步學習都有基礎,是循序漸進、螺旋式上升的過程,使學生在不斷探索中完成學習任務,激發(fā)學生的學習興趣,增強學生的自信心。
四、結論
2010-2011學年第一學期,本人按此教學模式實施了教學活動。經過了一學期的實踐發(fā)現(xiàn),此教學模式能有效解決我校C語言教學中存在的問題。以上是本人在非計算機專業(yè)《C語言程序設計》課程教學中的一點經驗和總結,實際上在教學過程中應注意的問題還有很多。總之,只有根據(jù)實際情況采用合適的教學模式和教學方法,才能取得最佳的教學效果。
參考文獻:
[1] 謝延紅.C語言程序設計公共課教學模式改革與實踐[J].計算機時代:2010,12:45-46.
[2] 龔靜,曾建一.多元教學法在高職《C語言程序設計》課程教學中的實踐[J].職業(yè)教育研究:2010,4:90-91.
[3] 蔡艷婧.C語言程序設計教學方法探析[J].福建電腦:2008,5:213,209.
[4] 蔣漱清.高職非會計專業(yè)《會計學》課程改革探討研究.科苑學譚:2010,3(2):24-27.