c語言程序設計實驗報告范文

時間:2023-04-02 18:47:07

導語:如何才能寫好一篇c語言程序設計實驗報告,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

c語言程序設計實驗報告

篇1

實驗目的

1、熟練掌握if、if…else、if…else if語句和witch語句格式及使用方法,掌握if語句中的嵌套關系和匹配原則,利用if語句和switch語句實現分支選擇結構。

2、熟練掌握while語句、do…while語句和for語句格式及使用方法,掌握三種循環控制語句的循環過程以及循環結構的嵌套,利用循環語句實現循環結構。

3、掌握簡單、常用的算法,并在編程過程中體驗各種算法的編程技巧。進一步學習調試程序,掌握語法錯誤和邏輯錯誤的檢查方法。

實驗內容

計算并輸出1000以內的10個素數以及它們的和。

要求:

在程序內部加必要的注釋。

由于偶數不是素數,可以不考慮對偶數的處理。

雖然在1000以內的素數超過10個,但是要對1000以內不夠10個素數的情況進行處理。

輸出形式為:素數1+素數2+素數3+…+素數10=總和值。

算法描述流程圖

Main函數:

判斷素數:

源程序

#include

#include

int sushu(int n)/* 判斷素數的函數 */

{

int t,i;

t=sqrt(n);

for(i=2;i1;i-=2)/* x為奇數時,做函數計算 */

{

n=sushu(i); /* 做判斷素數的函數調用 */

( 勵志天下 )

if(n!=0)/* 對素數的處理 */

{

a[j]=n;/* 把素數由大至小存入數組a[ ]中 */

篇2

關鍵詞:C語言;教學內容;教學方法與手段;教學改革

中圖分類號:G642 文獻標識碼:A

1引言

我院“高級語言程序設計”課程是以C語言作為指定語言的。它不但成為計算機專業的必修課,而且也越來越多地成為非計算機專業的學習課程。但在“高級語言程序設計”課程教學中,許多學生都認為C語言涉及的概念比較復雜,規則繁多,使用靈活,容易出錯,且程序設計課程邏輯性又很強,學生不能很好地理解算法,編寫程序也很困難,教師教學和學生學習都感到困難,并在不同程度上產生畏難心理。特別是我院將C語言作為學生進校后首先接觸的第一門專業基礎課,這種現象尤為明顯,而C語言基礎打不牢會直接影響后續專業課程的學習。因此如何改革“高級語言程序設計”課程,進一步提高教學效果,成為專業課程建設中的一個緊迫任務。

本文根據多年的程序設計課程的教學實踐,對“高級語言程序設計”課程從教學內容、教學手段、教學方法等方

面提出幾點建議。

2教學內容

2.1教材的選擇

我院一開始使用的教材是由譚浩強教授編著的《C程序設計》,該書的特色是針對初學者的特點和認知規律,精選內容,分散難點,降低臺階,例題較為豐富,通過深入淺出的敘述,闡明C語言復雜的概念,知識結構系統、清晰、通俗易懂。但在編程思路和編程技巧方面較為欠缺。

在2005級學生中使用了Harvey M.Deitel和Paul J. Deitel編著的《C程序設計經典教程》,該書的特色是應用軟件工程原理講述結構化程序設計方法,加強對控制語句和模塊化的有效使用,并強調程序的清晰性,通過從各種渠道收集來的大量實例、習題以及項目,讓學生能夠有機會來解決現實世界中有趣的問題,對學生編程思路和編程技巧有很好的幫助。但在整個知識結構方面不如譚書系統和清晰。

由以上分析可知,兩本教材各有利弊,經過實踐比較,并結合我院學生的實際情況,現在計算機科學與技術系仍然使用《C程序設計經典教程》教材,而其他系使用《C程序設計》教材,但都給出若干本參考書,以彌補各自的不足。如電子信息工程系的參考書為:

《C語言設計教程》,薛萬鵬等譯,機械工業出版社

《C程序設計經典教程》,(美)Harvey M.DeitelPaul J.Deitl著,清華大學出版社

《從問題到程序――程序設計與C語言引論》,裘宗燕編著,機械工業出版社

《The C Programming Language》,Brain W.Kernighan,清華大學出版社

2.2課堂教學內容的改革

以譚浩強的《C程序設計》為例,教學內容主要包括C語言語法基礎、數據類型、程序控制結構、函數、指針、文件等。教材在內容組織上,在語法上講解過細、過多。在各章節的編程例子中,多數難度較大,分析較少;不夠形象,學生較難理解,且適用性不強。筆者本著“深入淺出,突出實用”的指導思想,在課堂教學過程中,對教學內容重新進行了歸納,將難點再次分散,以縮小臺階,達到循序漸進。例如,C語言數據類型、運算符、表達式種類繁多,放在一塊講授,學生學習起來難度較大,且過于枯燥,于是筆者就將其分散在不同的章節。譬如,先介紹算術型的數據類型、運算符以及相關的表達式,使學生學習起來沒有想象中的那么難,緊接著又教學生編寫簡單、實用的C程序,然后趁機引入基本輸入、輸出函數就順理成章了。這樣一來臺階小了,學生的信心也增加許多,學習積極性很快就被提高起來。對于生硬的語言敘述,盡量改用生動的、學生熟悉的例子進行比喻,進行詳盡引導。例如,在開始學習指針的概念時,教材對“間接存取”敘述比較深硬,學生難以理解,就借用比喻:將A房間的鑰匙放在B房間里,若要取A房間里的物品,就需要先打開B房間,取出A鑰匙,再打開A房間,取出A房間的物品,這就是“間接存取”。學生很快就能理解,也加深了指針的概念。在教學過程中,還應及時查閱英文版教材和有關報刊雜志,對較難理解的概念,用不同的方式給以解釋。

2.3實驗教學內容的改革

“高級語言程序設計”是一門實踐性很強的課程,既要掌握概念,更要動手編寫程序。其主要任務就是培養學生具有一定的閱讀程序、設計編寫程序的能力,分析問題、解決問題的能力和邏輯思維的能力。因此,上機實驗是學習程序設計語言必不可少的實踐環節,特別是C語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。

筆者對實驗內容上進行了認真的探討,在實驗題目的設置上,應根據課時安排以及要掌握基本知識進行,一般一次實驗給出2~3個實驗題目,分為必做與選做。這樣做的好處是一方面保留基礎性實驗,相對簡單的基礎編程實驗。使學生能夠較順利地編寫出程序,并及時理解和消化課堂教學內容,同時也使學生獲得一定的成就感,使其學習熱情得到進一步的提高。另一方面,增加一些實用性強的、難度略大的實驗題目,以進一步提高學生的編程能力;同時還可以滿足較高層次學生的需要。下面以電子信息工程系為例介紹實驗內容的設置。

我院為非計算機科學與技術系和信息安全系開設的“高級語言程序設計”課程的實驗學時是12學時,共4個實驗。由于實驗課時較少,在實驗內容的安排上就顯得十分重要。第一次實驗安排在約6學時以后,實驗內容是“熟悉上機環境、編寫簡單程序”,其目的是讓學生熟悉C語言上機環境,學習完整的C程序開發過程和程序調試方法;理解簡單的C程序結構。為學生課下上機練習打下良好的基礎。鑒于函數、指針和文件是C語言的重點和難點,我們分別將其作為第二、第三、第四次的實驗內容;其他各章我們也給出相應的實驗題目,讓學生課下自己上機練習。

另一方面要重視實驗的總體要求,強調上機實驗要經歷三個步驟:

(1) 上機前的準備

讓學生寫出實驗預習報告。內容包括對實驗題目的理解和分析,選擇適當算法,畫出流程圖并編寫程序。分析可能遇到的問題及解決的對策。準備幾組測試程序的數據和預期的正確結果,以便發現程序中可能存在的錯誤。

首先調用C語言集成開發環境,輸入并編輯事先準備好的源程序;然后進行調式。在調試過程中,要充分利用C語言集成開發環境提供的調試手段和工具,例如單步跟蹤、設置斷點、監視變量值的變化等。整個過程應自己獨立完成。不要遇到一點小問題就找老師,學會獨立思考,勤于分析,通過自己實踐得到的經驗用起來更加得心應手。同時加大實驗的輔導。

(3) 整理上機實驗結果,寫出實驗報告

實驗結束后,要求學生整理實驗結果并認真分析和總結,寫出實驗報告。實驗報告要包括如下內容:

實驗內容:實驗題目與要求。

算法說明:用文字或流程圖說明。

程序清單

3教學方法與手段

在教學方法上,從以教師為主體的“滿堂灌”的方式轉向以學生為主體、教師為主導的教學方法。有效地培養學生的分析問題與解決問題的能力。以“選擇排序”為例,筆者沒有平鋪直敘地介紹算法與程序代碼,而是先給出例題:在長度為10的數組中找出最小元素,并與第一個元素對調,引導學生編寫出相應程序。然后給出新的問題:在后9個元素中最小值與第二個元素對調應如何修改;……;在后10-i個元素中最小值與第i+1個元素對調應如何修改;最后總結出選擇排序算法的全過程,直至整個程序編寫完整。即沿著問題帶出算法,由算法帶出程序設計語言的思路講述C語言中的各個知識點。整個講解過中結合板書,逐步引導,層層深入,取得很好的教學效果。

在C語言教學過程中,注意各章節講述中的前后呼應和類比,加深學生的理解與應用。例如以“求1000以內的所有‘水仙花’數”例題為例,筆者先后分別在循環控制、數組和函數三章中進行了講解,讓學生自己總結出最佳的程序結構,提高編程能力。同時通過不同的解題方法,有利于學生加深對所學知識的理解,讓學生真正體會到C語言的靈活性,激發學生的學習興趣和求知欲。

另外在C語言教學過程中,還要充分發揮學生的積極性與主動性。筆者針對這門課程的特點,激發學生主動思考,課前可以給學生布置幾個專題,讓學生利用課余時間去思考、收集資料,并在課堂上組織學生發言和討論。這種教學法不僅可以讓學生獲得許多課外知識,同時也促進教學內容的改革,而且也有利于充分挖掘學生的學習潛力。

在教學手段上,積極采用現代化的教學手段,如多媒體教學、網絡教學等,這樣有利于激發學生的學習興趣,發展學生的主體能力;同時由于多媒體信息量大,也能夠優化教學過程。但多媒體教學也有一些不利之處,主要體現在不恰當的使用會分散學生注意力,影響主要問題的理解,也不利于發揮學生的想象力。在C語言程序設計課程教學過程中,考慮到課程的特點,揚長避短,將傳統教學與多媒體教學進行了有機的結合。例如可以將一些概念、語句的格式、大信息量的案例代碼制作成課件,在課堂做展示供學生增加信息量用。但對于案例分析或程序的編寫過程,就發揮傳統教學的優勢,進行課堂討論、板書講解、結合提問,將問題層層剖析、層層深入,達到師生互動的效果,學生的想象力也會得到充分的發揮,對問題的理解也變得更容易。另外,充分利用網絡資源,將電子教案、大綱、課件、習題等放在網上,供學生自行調用,同時通過其QQ、E-mail等形式對學生的提問進行

答疑、討論,以彌補課堂教學的不足。

4改革課程考核辦法

建立一個服務于課程目標的學生學習評價方法是一項非常重要的工作,考核不是目的,“以考促學”才是考核的本質。

傳統的期末“筆試”這種單一的、“一考定終身”式的考核方式,已遠遠不能滿足課程的需要。為使考核真正發揮“以考促學”的作用,我們改革了考核內容和考核方法,重視對學生學習過程的考核,重視實際動手能力的考核,側重考核學生對知識的融會貫通和靈活運用能力,而不僅僅是基本理論、基本知識的掌握。具體的改革措施如下:

(1) 變單一考核為復合考核,從多個方面對學生進行考核。課程總成績由平時成績、實驗成績、期中成績、期末成績四個部分構成。其中,平時成績考核包括對出勤、隨堂實訓、課堂提問、作業等部分;實驗成績考核是針對課程的4次實驗成績。

(2) 衡量這門課學習的好壞,不是看學生“知不知道”,而是“會不會干”。期末試題考核的方法不用是非題和選擇題,把重點放在讀程序、編制程序和調試程序。

實踐表明,這種考核方法不但能更客觀地反映學生的學習情況,同時也能促進學生學習,起到良好的教學效果。

5結束語

本文教學內容、教學方法與手段的改革,是根據實際教學過程中學生存在的問題提出的,并已經在“高級語言程序設計”課程教學實踐中加以運用,得到大部分學生的認可,取得了較好的教學效果。當然,同樣的教學內容面對不同的學生,在使用與設計某種教學方法時,還要求學生的配合才行,也就是說教的方法與學的方法要有機統一。我們將繼續努力探索,使“高級語言程序設計”課程教學日趨完善。希望本文能對大學計算機基礎教學有一定的借鑒作用。

參考文獻:

[1] 譚浩強.C程序設計[M].3版.北京:清華大學出版社,2005.

[2] (美)Harvey M.Deitel,Paul J.Deitl.C程序設計經典教程[M].4版.北京:清華大學出版社,2005.

“High-level Language Programming” Course Teaching Reform and Practice

XU Xiao-qing, LI Xiao-dong

(Department of Computer Science and Technology, Institute of Beijing Electronic Science and Technology, Beijing 100070, China)

篇3

[關鍵詞]C語言程序設計 實驗教學 Wiki協作學習

[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2013)24-0083-02

長期以來,C語言程序設計實驗教學環節一直是高校教學改革的重點之一。[1]利用基于Web 2.0的Wiki技術,近年來我們通過引入網絡化協作學習模式,探索進一步豐富C語言程序設計的實驗教學手段、提高實驗教學質量的有效途徑,取得了良好效果。

一、建構主義與協作學習

建構主義強調以學生為中心,學生是認知的主體,是知識意義的主動建構者,教師只發揮輔助、促進作用。協作學習模式是一種比較突出地體現建構主義思想的教學模式。[2]它通過建立學習小組,以對話、協商、討論形式開展學習。為實現特定的小組學習目標,小組成員共享信息、觀點和認知結構,通過合作互助完成知識的意義建構。

Wiki具有易用性、共享性、開放性和社會性等特點,目前基于Wiki的網絡化協作學習研究越來越受到人們的關注[3,4,5]。比如,課堂教學與Wiki知識庫相結合的雙平臺協作學習模式、基于Wiki的學習共同體、基于Moodle的網絡學習模式的教學模式等為我們開展C語言程序設計實驗教學改革研究提供了有益參考。

二、實驗教學中面臨的主要困難

當前,C語言程序設計實驗教學面臨的主要困難包括:

(一)加強實驗指導的困難

因近年來招生規模擴大,不少班級人數超過50人,以致任課教師的教學壓力陡增,理論教學環節尚可勉強維持,但實驗教學過程則顯得不堪重負。通過增加實驗輔助人員可在一定程度上緩解部分壓力,但因他們缺乏對學生特點的足夠了解,實驗指導的效果大打折扣。

(二)滿足不同層次學生學習需求的困難

因學生的學習基礎和能力差異明顯,要滿足不同層次學生的學習需求存在困難。學生的兩極化趨勢突出,有的學生讀大學前已學習過基本的編程方法、學習興趣較濃,喜歡挑戰有難度的編程問題。而另一些學生在理解C語言的函數、遞歸、指針時顯得吃力。

(三)培養學生學科競賽能力的困難

目前,大學生程序設計競賽已成為省教育廳認可的重要學科競賽。C語言學習對培養學生的計算思維、協作能力等有關鍵作用。如何將傳統課程實驗教學環節與學科競賽能力培養目標相接軌,具有一定難度。

三、基于Wiki協作學習的實驗教學設計

針對以上問題,我們嘗試以基于Wiki的網絡化協作學習模式改革現有的C語言程序設計實驗教學,實驗教學活動的設計如圖1所示。實驗開始前由教師確定實驗目標、選定實驗任務,并到面向所有學生的“主Wiki”。實驗教學分組進行,先由學生參考學習資源進行課前預習,然后各小組從“主Wiki”自由選擇實驗任務,各小組的任務可不相同。實驗開始后以小組為單位,基于“小組Wiki”協作實驗,組員可面對面對話或網絡交互協商和討論,可在“小組Wiki”共享自己的知識和成果,通過相互啟發、互助合作,實現共同學習。而教師通過教學巡視,有針對性地引導學生積極思考,適時答疑解惑,推動學生自主強化知識的理解和運用。

圖1 基于Wiki協作學習的實驗教學設計

實驗結束后各小組須提交實驗報告到“主Wiki”。教師再評價實驗結論,評選優秀實驗報告,并采取一定的激勵機制,獎勵表現優秀的學生或小組。實驗過程中每名學生需充分發揮主觀能動性,通過組員的全力合作才能爭取最佳的實驗成績,從而有利于促進學生提高自主構建知識的質量。

四、實驗教學實施的關鍵環節

為實現預期的教學改革目標,基于協作學習的實驗教學實施過程中需注意以下關鍵環節。

(一)合理構建學習小組

小組規模以3~5人為宜,應包括不同學習基礎和能力的學生。研究表明,在研究性學習和探討式學習中,將不同性格和思維特點的學生混搭,通過思維撞擊和頭腦風暴可獲得更好的學習效果。[6]小組長是非常重要的角色,他應成績優秀且領導力強。可在開學第一周內組建學習小組,教師可召開討論會了解學生個性,組織邏輯測驗、參考高考成績了解學生的學習情況,再競選若干候選小組長、組織其他學生報名,在教師協調下,考慮小組構成的合理性后確定學習小組。

(二)營造競賽式實驗學習氛圍

引入大學生程序設計競賽的競爭機制,可有效提高學生的學習效率。每次下發任務即啟動一次競賽,平臺支持實驗計時和提醒,以及C程序在線編譯和評判功能。根據完成速度和程序執行耗時評定成績。適當的激勵機制有利于營造更好的學習氣氛,比如,每次實驗完成情況納入平時成績考核;每次表彰一個最優小組,可給予一定的象征性物質獎勵。

(三)優化實驗任務

作為大學生接觸的第一門專業基礎課,C語言程序設計的實驗目標是建立基本編程素質,培養計算思維能力,所以實驗任務不能停留在基本概念的驗證和傳統算法的復制,強度不宜過大、難度不宜過高。在融入大學生程序設計競賽試題時要進行優化,避免學生產生畏難心理,通過設計一些較貼近現實生活的計算問題,提升學生的學習興趣,讓其體會到挑戰性和成就感。

五、網絡化協作學習的教學實踐

教學實踐中使用的實驗協作平臺如圖2所示。首頁即“主Wiki”區域,“實驗任務”模塊展示了教師的習題。小組長完成選題后組員登錄即進入“小組Wiki”頁面。組員可提交和修改任務代碼,系統自動記錄版本狀態以及失敗次數,將其列入考核指標。實驗過程中教師可進入小組Wiki參與討論、巡視進度,以便及時發現問題和不足并進行輔導。實驗評定后,可將正確答案到“主Wiki”。平臺也支持小組,由其他小組應答的實驗任務并對其手工評判,以便促進小組間的學習交流。

圖2 實驗協作平臺

通過近年來的實踐,基于Wiki的協作學習模式取得了顯著效果。老師輔導實驗的壓力得到緩解,小組長的積極性被調動后帶動了團隊的學習進步。通過融入大學生程序設計競賽試題,培養了學生的計算思維能力和團隊協作能力,為我校學生參加學科競賽打下良好基礎。近三年來我校學生報名參加省級大學生程序設計競賽的人數持續增加,并在省級競賽中多次獲獎。

六、結語

作為一所應用型本科院校,培養具有較強實踐能力、應用分析能力的高素質應用型人才是我校教學改革研究的核心目標。基于網絡化協作學習平臺開展實驗教學,有利于提升C語言程序設計課程的教學效果,提高人才培養質量。今后我們將根據教學實踐反饋情況,進一步完善協作學習平臺,并通過對協作學習模式的深入研究不斷提升協作學習效果。

[ 參 考 文 獻 ]

[1] 呂風杰,馬士明.C語言實驗教學改革初探[J].中國電力教育,2012,(10):118-119.

[2] 賀東光,孫博文,孫百瑜.網絡教學協作學習模式的設計與實現[J].計算機教育,2010,(2):90-93.

篇4

關鍵詞:C語言程序設計;實例;能力

中圖分類號:G622 文獻標識碼:A 文章編號:1009-3044(2008)23-1094-02

The Reform of the Teaching on Public "C Programming Language"

LI Ni

(Yuncheng University Public Computer Teaching Department, Yuncheng 044000, China)

Abstract: "C Programming Language" is one of the necessary courses of college students in science and engineering studying and can electe one of the students learning process design technology-oriented courses. This article assesse the methods described in reforming on C programming language teaching form inspireing students to learn from the interest and enthusiasm, and the comprehensive understanding of the course content, teaching experimental ,approch of testing.

Key words: C-language programming language; example; capacity

公共計算機課程的教學改革應在更高的層面上考慮人才培養模式,營造更加柔性、更加生氣勃勃的氛圍。教師應從所教學生本專業實際應用著眼,在給學生傳授算法、語言的基本理論與方法的同時,更加注重培養學生解決實際問題的能力。

C語言的功能強大,能直接訪問計算機的物理部件,目標代碼質量高,可移植性好,但其豐富的運算符、數據類型以及自由、靈活的程序設計卻給初學者帶來了不少的困難。尤其是對于非計算機專業的學生,怎樣才能讓他們快速入門,并迅速掌握程序設計的方法和能力,成為許多公共課教師考慮的問題。下面就C語言程序設計課程的教學從以下幾方面和大家一起探討。

1 激發學生的學習興趣和積極性

由于我們面向的對象是非計算機專業的學生,他們對計算機編程一無所知,或略知一二,也可能對計算機課程不感興趣,所以課程開始的第一次課是非常重要的。要求教師必須認真準備這次課,從C語言出現的歷史背景、C語言的優點到開設本課程的原因,都要給學生一個全面的介紹,同時結合學生所學的專業,列舉一個或幾個實例,讓學生先對C語言程序有一個整體的認識。第一次課的主要目的是提高學生學習C語言程序設計的興趣、認識C語言程序設計的全貌、樹立學習C語言程序設計的信心,可以先不用介紹具體的內容。這樣的教學安排,可以使學生很快了解C語言程序設計的全過程,并有豁然開朗的感覺,從而產生濃厚的學習興趣和積極性。以此為契機,在以后的課堂教學環節中,不斷增添程序內容,學習更高標準和要求的程序就不是一件困難的事情了。

在第一次課激發了學生學習C語言的興趣和積極性后,一定不能讓學生的熱情冷卻,以后的每次課都要使用新知識設計一個或幾個吸引學生的實例,課前展示實例,讓學生先對這個例子產生興趣,引出他們必須要解決這個問題的欲望,帶著興趣開始學習,這對于提高學生學習的自覺性,活躍課堂氛圍可以起到積極的促進作用。

2 對課程基本內容做簡單全面地介紹

在《C語言程序設計》課程教學中,許多教師和同學都認為,無論是教材還是教師上課,都是先介紹數據類型和表達式,再介紹各種語句的語法規則,然后是函數、指針、數組、字符串等。這種編寫安排或教學模式不利于學生編程能力的提高。學生在學習C語言時,開始懷著神秘興奮的心情進入課堂,隨著幾節關于大量難以理解和記憶的新術語、新規則的介紹,枯燥乏味的例題分析后,學生會慢慢失去興趣,覺得學習C語言很枯燥,往往在一學期快結束時,才對編程有了一點點地理解。這樣的教學內容安排,使學生很到厭倦,許多學生都是被動的學習。

針對這種情況,建議教師先把各部分的基本內容抽取出來,太難理解的部分比如結構體、公用體、文件等內容可以先不介紹,在講解這部分內容時,精心設計一些簡單有趣的實例,讓學生對C語言的基本內容有一個全面地認識,這樣他們所掌握的知識是完整地,而不是零碎地。

3 精心組織課堂教學

結合課程特點和21世紀人才的需求,課程教學內容改革的重點應是“扎實學習語言知識,突出程序設計能力培養,強調信息素養提高”。為了進一步提高學生的綜合素質,拓寬學生的知識面,加深理解所學的語言基礎知識,培養學生應用或自學程序語言知識的能力,能夠獨立或協作解決專業實際問題,在教學內容的設計上既要注重培養學生的創新設計能力,從知識整體性出發,巧妙設計例題和作業,使學生在課程學習中得到較完整的案例設計的基本訓練;也要求教師不斷激發學生的創新欲望,營造創新環境,培養創新意識、思維、方法和技能,通過淡化知識記憶,加強分析綜合和系統訓練,采用案例教學法、進行小組討論協作學習等,使教學內容改革實現兩個轉變:(1)由過去的脫離專業向專業緊密結合轉變,使程序設計課程與專業技術統一起來,提高學習者興趣和創新欲望。(2)由過去重語言知識點學習和程序設計結果再現向提高綜合分析和設計能力轉變,培養學生算法構成與設計創新能力和綜合應用知識解決實際問題的能力。

本課程既有高度的抽象性,又有很強的實踐性,許多概念需要在動態調試過程中才能準確理解、精確描述、完善應用。為此,使用信息化教案、過程演示、大屏幕視頻投影機等設備,由教師邊講解、邊點動演示的方式,使學生在學習時可直接觀察、參與到設計過程中,引導學生討論、協作學習,激發起學生的好奇心,加快對概念和原理理解速度,提升學習效果。

在教學方式上,可以將課堂教學過程分成四部分:通過案例引出新內容、知識傳授、小結和作業布置。開始上課時先演示一個由教師精心設計的、吸引學生注意并包含當天上課新內容的運行結果。這個過程實際上也就是向學生提出了一個新的問題,即如何實現它?接著講解新內容,在講解新內容的過程中,要特別注意教師“教”和學生“學”的互動。增加提問和討論的環節,形成一個以學生自己動腦為主,教師引導與點評相結合的啟發式教學模式。遇到問題時要更多地鼓勵學生們自己想辦法解決,教師可以提供解決問題的思路或方法,具體過程由學生自己主動完成。這樣可以提高學生獨立提出、分析和解決實際問題的能力,提高教學效果;最后做適當的小結,并結合本次課內容給學生留作業。

對于學生課后遇到的問題,通過定時答疑或電子郵件的方式與教師交流。教師將學生討論、答疑中出現的典型性的問題加以綜合集中講解,對學生中有創新的程序設計方法和算法予以公布,并對這樣的學生提出表揚,以達到提高學生的學習積極性和創新意識

4 加強實驗環節的教學管理

上機實驗是學生掌握基礎知識和算法理解,提高程序設計能力的重要一環,應該和理論教學同步進行。在上機實驗課前,教師結合所講的內容布置好實驗題,提出具體要求;學生根據教師的要求在上機實驗課前先完成作業要求,并寫成書面的預習報告;上機實驗課時,對自己的分析結果進行驗證,提交電子或文字方面的實驗報告。要求分別注明自己的分析結果和上機運行結果,這樣教師可以從學生出現的問題中了解學生的學習動態,達到更好的教學目的。

在完成課內的基本實驗外,還可以增加一些特色實驗。由教師精心設計一些具有較強的實用性、綜合性和一定創新性的題目,不向學生具體提出要求,只提出需實現的功能,學生可以選擇學習伙伴,由他們自己設計實驗方案。在學生完成的過程中,教師一定要做好學生的參謀。這樣的實驗可以提高了學生的創新思維,培養學生對知識系統的整體認識,注重學生的參與,加強學生的實踐訓練,拓寬學生的知識面,提高學生的創新設計能力與動手實踐能力,提高學習興趣與教學質量,適應時代對于人才的需求。

5 改革考核機制

衡量學生學習效果的好壞,都是通過考試來檢驗的。常用的考核方法就是卷面答題,通過一些選擇題、填空題、程序改錯題、編程題等,這樣的考核往往忽略了對學生其它能力的培養。因此應該把重點放在編制程序和調試程序上,對學生學習成績的評定,可以采用綜合考核法,將平時同學之間的合作、參與問題討論的效果、書面作業、實驗作業等與期末卷面成績進行綜合,得出本課程綜合評分。這種方法不但能更客觀地反映學生的學習情況,同時也能促進學生自主學習,起到很好的教學效果。

這種考核方式增加了對學生學習過程的測評,也是對學生學習課程的階段性考核,其根本目的是要加強對學習過程的指導和管理,及時反饋學習信息,指導教學,提高學生的綜合素質和能力。最后學生的總成績可以按照下列分數比例給出:

總成績=平時學習表現(10%)+作業(20%)+實驗(30%)+期末考試成績(40% )

教師在各自的教學過程中,可以對上述比例靈活調整。

以上是從五方面對C語言程序設計課程的教學的一些思考,希望對公共課教師的教學起到幫助作用。

參考文獻:

[1] 施金良,湯仕龍,余群威.《C語言程序設計》課程教學改革的探索與實踐[J].中國冶金教育,2003,(3):40-42.

篇5

【摘要】在高職院校,計算機是一門很重要的學科,而《C語言程序設計》則是計算機學科中一門基礎專業課

程,如何讓基礎比本科生差的高職院校的學生去學好這門課程,是許多高職院校計算機專業課教師的難點。

本文是筆者在C語言教學過程中的一些教學改革,希望對調動學生的積極性和教師素質的提高起到一些促進

作用。

【關鍵詞】C語言實驗教學高職院校

一、引言

C語言是一門各大院校的基礎計算機課程,等級考試二級的考試語言。并且C語言是一種通用性計算機

程序設計語言。它兼有匯編語言和高級語言的雙重優點,運用它既能編寫操作系統軟件,又能開發各個領域

的應用軟件。C語言計算機語言的入門基礎語言,學好了C語言,不管今后再學習其他各類語言,就有了堅實

的基礎。但是在職校,學生本身的基礎就比較薄弱,又缺乏學習的主動性和自覺性,很多學生只能簡單的掌握

C語言的一些基礎知識,像函數調用,指針的引用,結構體,共用體的知識點就掌握不了了,而且C語言是

沒有固定的計算機老師來教授的,幾乎任何計算機老師都上過這門課程,但大部分老師都沒有精力去鉆研

這門課程,基本操作也不熟練,調試程序也難通過,這樣一來學生就出現厭煩,消極的情緒,達不到實驗

的教學效果[1-2]。

二、網絡環境下C語言實驗系統的設計

1、系統設計思想

C語言實驗系統具有比較完備的C語言知識體系的介紹,有培養興趣的綜合性實驗設計題,具有出現各種

問題的解決方法和資料庫,這個系統是用JSP開發B/S模型的網絡環境下的C語言實驗系統[3]。

2、系統設計模塊

(1)新手上路模塊:主要是介紹C語言的入門基礎知識。

(2)基本操作模塊:主要是介紹調試環境。

(3)進階實驗模塊:每一實驗章節都有50道實驗題,學生可以抽取調試,不會的有答案介紹。

(4)問題中心模塊:學生可以提問,老師定時回答。

(5)專題匯總模塊:包括計算機等級考試二級的模擬試題,在線模擬考試,評分。

三、實驗教學過程

嚴格制定C語言實驗課的成績和評分標準,課后嚴格要求學生填寫實驗報告。以2010級計算機軟件(1)

班為例,學生實驗課按學號和姓名上機登陸,根據自身的能力選擇題目的難易進行實驗,進入相應的章節

,題目會自動出來,然后根據題目編寫和調試程序,上機老師隨機抽出實驗題目,由老師邊調試邊講解讓

學生記住常見語法錯誤和熟悉調試程序的過程,這樣對學生既有壓力又有動力,學生可以學到知識(實驗

教學過程如圖1所示)。

選擇難度低又完成較早的同學可以重新登陸,選擇難度較高的題目再做,對于學習好的同學在完成自已的

實驗任務后可以進入C語言的在線學習,遇到問題可以自已查找資料學習,遇到的難題可以在線和老師同學

交流。

在這樣的教學過程中,學生開始慢慢對C語言編譯器有了進一步的了解,對編譯器的提示也開始看得懂了,

對調試程序也有了興趣,可以在線討論,學生在這里可以交流心得體會,好奇和求知欲在他們體內逐漸膨

脹。

四、教師素質的提高[4]

"雙師型"的教師要求教師既要能將課上好,又要能將實際應用帶入課程,使教學從實踐中來,又服務于實

踐。隨著教學改革的深入,現代教育技術和成果的應用,以及應用型人才培養的需要,對老師素質提出了

更高要求。在將實驗平臺搭建于課堂之上后,由于是在課堂上編寫程序,而不是已編寫好的程序的展示,

這就要求老師具有良好的計算機編程工具的使用能力、字符輸入能力和程序設改革以往的考試由任課老師

自己命題并且考核成績為平時成績(30%)+考試成績(70%)的模式,實現教考分離,準備建立網

上考試系統,把平時測驗和期末考試有機地結合起來。嚴格按教學大綱要求建立高質量的試題庫,并根據

教學的發展積極探索考試內容和方法的改進,不斷的充實和完善試題。

五、結束語

采用在網絡環境下C語言實驗教學系統進行教學以來,老師不用對同一錯誤講解多遍,幾乎所有學生都

會參加程序的調試,老師和學生配合得更好,形成了良性循環。本著教學內容突出基礎理論知識的應用和

實踐能力培養的原則,以應用為目的,以"必需、夠用"為度,加強針對性和實用性,教學效果顯著。但在

實驗前學生無法知道實驗內容和題目而進行準備,還有些學生由于底子薄自學能力和動手能力不夠高,在

具體實驗過程中無法完成實驗任務,所以在今后的C語言教學實驗過程中還須做進一步的進行改革和摸索。

參考文獻

[1]徐章艷."C語言程序設計"實驗教學的探討[J].電子電氣學,2004,(2):84-85

[2] 孫仲廷.《試討論如何實施C語言實驗教學》省略

[3]楊紅云,邱曉虹,于義科.計算機相關專業適應市場需求的教學改革初探[M].江西人民出版社,

篇6

關鍵詞:模塊化;程序設計;實驗教學

中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2009)15-3964-03

Research and Practice on Modular Test Teaching of Programming

HUANG Wei1, ZHOU Ming-zhen2

(Dept. Computer Science and Technology of Anhui University of Technology and Science, Wuhu 116029, China)

Abstract: Test teaching is an important part of the courses of computer programming in Engineering Colleges, its teaching result will directly effect the whole teaching process. Aiming at the current deficiency, the paper proposes a test teaching mode based on some structural computer programming courses. The actual teaching effect seems to be very satisfied because of the modular thought. It will cultivate the practical ability of the college students.

Key words: Modularization; Programming; Test Teaching

1 引言

高校非計算機專業計算機基礎教學改革勢在必行。應該根據現代教育思想和教學理論,改進教學方法,正確選擇教學內容,改革課程體系和教學模式,更新教學手段,強化實驗教學[1],改進考核方式,加強師資隊伍建設,以提高計算機基礎的教學效果和教學質量。掌握和應用計算機知識,是培養新型人才的一個重要環節,是高等學校全面素質教育中極為重要的組成部分。

結構化程序設計語言類課程在多數工科院校均普遍開設,作為計算機基礎教育課程,非計算機專業學生選課面較廣,學生人數也較多,課程教學效果的好壞將直接影響到是否能有效培養和提高學生的程序設計思維和動手能力。由于程序設計課程非常注重學生實踐能力的培養,因此實驗教學環節尤其重要。非計算機專業程序設計課程的教學同樣非常強調對于學生實踐和動手能力的培養,實驗教學是程序設計課程的重要組成部分,實驗效果的好壞直接影響到課程的整體教學質量。課堂的理論知識,能否被學生真正接受并加以應用,是通過實驗這一重要環節進行消化、吸收的。但是目前在實際的教學過程中,出現了諸多急待解決的問題,如實驗教學過程控制不合理,教學方法和內容陳舊,教學效果不佳等等。本文針對實驗教學存在的不足,提出基于一般結構化程序設計語言類課程(如C語言,FORTRAN)的實驗教學模式,將”模塊化”思想應用到整個教學過程中,以培養和提高學生的實踐動手能力為導向,以教學大綱為基準,根據學生專業背景和掌握程度的差異設置不同的實驗環節,在實際的《C語言程序設計》課程教學實踐中取得了比較好的效果,學生反映良好,此方法還可推廣到其他課程的實驗教學中去。

2 對于傳統教學模式的分析

實驗課程教學實際上是程序設計教學過程當中的重頭戲。近幾年隨著高校的擴招,學生人數急劇上升,但師資卻沒增加多少,從而經常出現一個老師同時輔導多個班級的實驗。實驗課上學生網上聊天、打游戲、聽歌、看電影等現象比較嚴重,從而導致實驗環節的教學質量大大下降。目前多數實驗還是驗證性的,這樣做固然有它的好處,但這不利于學生的創新性教育,使學生失去了學習計算機的興趣。根據對所在學校情況的分析調查和研究分析,大部分專業的學生對于程序設計類語言課程實驗環節的學習主要具有以下特點:

1) 由于專業背景和能力的不同,學習中大都有畏難情緒。課程初期階段,學生都有一定的學習興趣,但是到最后能堅持下來的寥寥無幾。很多學生抱怨程序看不懂,不會編,久而久之喪失了學習下去的信心。

2) 在非計算機專業同學中,有一部分學生對于F語言程序設計的基本理論和知識掌握比較好,但是缺乏一定的實際動手設計能力,實驗設計環節效果不理想,遇到具體問題不能很好地編程解決和實現。

3) 由于課程結束后要參加統一的省級考試,所以相當一部分學生為了應試,只能硬者頭皮來上課,導致課堂教學氣氛沉悶,很多學生不認真上課,而是利用上課時間做水平考試的練習題。綜上所述,現有的程序設計課程實驗教學重點大多放在了程序設計的理論知識點上,沒有很好地考慮到實際應用和各專業學生的學習特點和狀態,因此存在各種各樣的問題急待研究和改革。首先,現有的教學模式下,實驗教學理論知識和實踐應用相脫節。理論知識不能很好地體現在實際的教學內容中。學生普遍感覺到實驗教學與實際的專業和具體應用聯系不緊密,沒有什么用處。比如在F語言程序設計實驗教學中,對于輸入輸出語句的格式控制部分,由于現有內容設置不夠合理,很多學生感覺到沒有什么實際意義。

其次,實驗內容和教學方法陳舊。實驗教材質量的好壞會直接影響到整個實驗教學過程的效果,現有的實驗內容雖然對實驗類型做了劃分,但是還沒有能夠很好的考慮到學生的專業和個體差異,只是“一刀切”,如何合理科學地設置實驗內容和教材是一個急待解決的根本問題;授課教師把精力主要放在了理論教學環節上,而現有的實驗教學方法幾乎是空白,只是學生在實驗課做實驗,完成實驗報告而已,實驗教學不能很好的被控制,同時也導致理論和實踐相脫節。

另外,現有的實驗教學管理水平不高,對于學生的實驗秩序管理,實驗內容管理和實驗教學的效果評價等諸多問題還沒有較好的通用解決方法。最后,學生對于實驗教學的興趣度比較低,普遍存在實驗上課態度不認真,準備不充分,實驗完成后不認真總結分析寫報告,甚至抄襲。

針對以上問題,如果不很好地反思和改革我們現有的實驗教學模式并解決相應的問題,那么將會在很大程度上阻礙我們的程序設計課程教學總體質量。

3 模塊化教學思想

3.1 模塊化的理論根據

設函數F(x)定義問題x的復雜程度, 函數E(x)確定解決問題x需要的工作量(時間)。對于兩個問題R1和R2,如果F(R1)>F(R2),顯然E(R1)>E(R2)。

根據我們解決一般問題的經驗和過程,可以找到另一個規律是 F(R1+R2)>F(R1)+F(R2),于是E(R1+R2)>E(R1)+E(R2)[2]。這個結論是模塊化的根據――把復雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。

根據模塊化理論觀點, 實驗教學課程體系可視為一個由許多獨立的課程子系統(即實驗內容)構成的, 課程子系統從屬于課程體系這一大系統;而各課程子系統又彼此構成完整的實驗教學體系。每個專門的課程子系統都有獨立而特定的功能。課程子系統與課程體系之間,以及彼此的子系統之間通過內在運作機制建立起和諧的關系,當系統間的耦合實現平衡時,整個課程體系的綜合功能就能達到最佳。按照這一系統功能運作,模塊化的實驗教學效果就能發揮出來。借助模塊化思想可以對現有實驗教學的各個層面進行改進和完善。

3.2 基于模塊化的實驗教學模式

3.2.1 教學目標模塊化

教學目標模塊化的目的在于針對學生掌握知識的不同情況來設置各個層次的學生在教學活動中所要達到不同的學習目標。可根據學生的不同專業來區分,可歸結為計算機專業和非計算機專業兩類。對于計算機專業學生,程序設計能力是必須很好掌握的;而對于非計算機專業學生,既要培養他們基本的程序設計能力和思維以適應今后的實際專業工作需要,又不能過于苛求.因此可在實驗教學大綱中依據情況設置不同的教學目標作為指導。

3.2.2 教材及教學內容的模塊化

實驗教材及內容是實驗教學的基本材料。現有的程序設計實驗教材或指導書數量較多,難度各異,層次不齊。為適應不同層次不同專業的學生,本著因地制宜的原則,教師應根據模塊化的教學目標做到從實際出發[3],選擇相當難度的教材,最好同一課程組的各授課教師能根據實際情況組織自編實驗指導教材,以使得實驗內容滿足模塊化的原則。

首先根據教學目標和實際要求確定程序設計課程的實驗次數以及實驗類型,設置一般驗證性實驗,設計性實驗和綜合性實驗等,每種實驗類型均要設置相應數量的設計題目和要求以供選擇,各類型實驗之間力求做到通用性和靈活性,教師要把實驗教學的內容和具體要求闡述清楚;其次,針對每次實驗內容,同樣進行模塊化分層,如圖1所示,分別設置基礎編程題(驗證性實驗),應用設計題和能力拓展題。

基礎編程題和應用設計題主要針對掌握程度一般及非計算機專業學生,應用設計題和能力拓展題則針對掌握程度較好及計算機專業的學生,這樣可以做到各取所需, 能力拓展題可劃分為選做題范圍,主要涉及一些綜合性設計內容,也可結合課程設計內容來設置。分層的好處在于適應不同的情況,同時也在側面可對實驗教學進行有效管理,每個同學完成的實驗內容都有所不同,就能在一定程度上避免實驗報告的抄襲現象。另外,尤其對于設計性實驗,教師要主動積極融入到實驗環節中來,而不是被動地等待學生問題的出現。設計性實驗一般都有一定的綜合應用特點,對學生而言也有一定的難度和自由性,教師可參與其中做相關的必要指導,例如可預先根據理論內容提出一些設計要求,讓學生在實驗過程中靈活選擇,這樣可提高設計性實驗的效果,避免學生的盲目性。

3 教學過程的模塊化

在整個實驗教學過程中,也要以模塊化思想為主線,這樣可促進對于實驗教學本身的有效控制和管理。對于一般驗證性實驗,要讓學生有準備這一環節和過程,即事先建立算法編寫好程序在進行上機實驗,實驗完成后提交實驗驗證報告;對于設計性實驗和綜合性實驗,可設置同步教學和實驗討論兩個必要的過程,教師可在實驗室利用相應的授課手段(如多媒體)進行同步教學,參與到設計性實驗中,而學生之間可針對與具體要求進行實驗討論和互動,這樣既可調動學生的積極性,也可大大提高實驗的效,實驗完成后可提交實驗總結和研究報告。

4 基于模塊化的實驗教學實踐

以結構化語言《C語言程序設計》課程的教學實踐為例,在實驗教學的各個實際層次應用了模塊化思想,從而很大程度上提高了程序設計課的整體教學質量。循環結構是結構化程序設計中過程描述的主要語句,C語言中分為for語句,do while循環語句和do loop循環等幾種主要形式,一般均要設置相應的實驗內容模塊以訓練學生,下面以循環結構的實驗教學為例,介紹實際的教學過程, 模塊化教學的整個過程如圖2所示。

4.2 制定分層的實驗教學內容

課堂上我們主要將授課重點放在分析程序的算法模型上,重點講解程序的設計思想和循環結構的實現,明確將一個實際問題轉化為計算機能夠實現的算法模型的過程,指導學生“分析具體問題,建立算法模型”,培養學生分析問題的能力。學生通過大量的上機實驗解決“怎樣將算法模型轉化為最終的C語言程序循環結構”的問題。其次設置具體的實驗內容, 實驗指導書中明確指出了每次實驗的實驗目的、實驗要求和實驗內容,用以保證實驗的進度和試驗的效果,實驗難度中等為宜。對于驗證性的內容,我們在實驗教材中設置了一定數量的基本編程題目,例如”求500以內3的倍數的總和”,“統計全班某門課程不及格同學的人數”等,每題都要求使用不同的循環形式來實現,主要針對多數學生以鍛煉他們對于循環語句的基本表達和應用能力;對于設計性的內容,我們也給出了相應總體設計目標和要求,例如“思考如何實現彩票機的功能,程序可以隨機按要求輸出號碼”,“實現小型計算器”等,在實驗過程中激發了很多學生的設計興趣。

4.2 制定分層的實驗教學管理

在實驗過程中,非計算機專業學生對于基本的for語句,do while循環語句和do loop循環等三種形式均掌握不夠好,在程序書寫過程中常常搞錯系統關鍵字,究其原因主要是語法知識不清楚,因此教師的指導和主動管理就非常關鍵。在實驗之前,我們要求所有的非計算機專業學生寫出并上交實驗報告,主要是把他們對于循環結構語句的學習掌握情況和實驗預習情況進行反饋,讓他們把還不理解的問題,想要用循環結構解決的問題全部表達出來, 這樣教師就可有的放矢,通過這一過程我們了解到很多學生對于怎樣把具體問題轉化為三種循環結構還不了解,在實驗中可允許這類同學相互討論;對于設計性實驗和綜合性實驗的管理,我們要求實驗完成后提交實驗總結和分析報告,要求學生在報告中分析解決具體問題的思路和實現的過程,已經實現了什么功能,還有哪些沒有很好解決或有待改進,而不是把源程序簡單抄寫一下。

4.3 制定分層的實驗教學組織

我們根據各專業學生的具體情況,借助模塊化的靈活原則,組織了程序設計實驗課程小組,一個教學班級中由學生自愿組合并在老師的協調下組成若干小組,有的小組中學生能力較好,可設置為綜合性實驗組;也有的小組中學生對基本的循環結構掌握一般甚至較差,可設置為驗證性實驗組,各層次小組可進行動態的模塊化重新組合,實際證明這種實驗組織方式優于傳統方式,使得各層次學生能夠彼此幫助和協作。我們規定四至五個同學為一組并根據實際情況作了調整,實踐結果表明,有85%的同學基本掌握了for語句和do while語句,70%以上的實驗內容學生均能很好掌握。

4.4 實驗教學效果的評價

對于學生反饋的實驗報告,我們根據實驗類型的不同,給出不同的評價結果,可總結為“ABC”法和“123”法。對于一般驗證性實驗,依據學生的實際完成情況和態度給出A,B,C三個等級, A代表完成較好,能夠利用循環結構處理一般問題;B表示完成情況一般,可能有語法錯誤;C等代表完成情況較差。對于設計性和綜合性實驗,給出積分結果,即根據具體設計需求目標,思路正確但未實現的可得1分;思路合理并部分實現的可得2分;完成較好得3分,由于有一定的設計難度,評價結果要對學生有積極促進作用。實踐結果表明,有一半做驗證性實驗題的同學得了B等, 近三成做設計性實驗內容的學生得了2分。

5 結論

本文針對實驗教學存在的不足,提出基于一般結構化程序設計語言類課程的實驗教學模式,將”模塊化”思想的靈活優點應用到整個教學過程中,在實際的《C語言程序設計》課程教學實踐中取得了比較好的效果,學生反映良好,此方法還可推廣到其他課程的實驗教學中去,但是在實際的程序設計實驗教學組織管理和評價中還有很多的問題值得今后進一步研究和改進。

參考文獻:

[1] 瞿葆奎. 教育評價[M].北京:人民教育出版社,1999.

篇7

關鍵詞:智慧教育;云平臺;教育云;實踐教學

0引言

傳統時代的智慧教育通常是用一套公眾接受的帶有真理性質的思維模式來啟發和教育學生。進入信息化時代,人們對智慧教育的認識又發生了改變:智慧教育是一種通過信息技術來改革傳統教育各個方面,目的在于培養學習者的創新能力、批判思維能力、問題解決能力等高階思維能力,即發展學習者的智慧[1]。信息時代的智慧教育是利用現代的科學技術,來改進或完善傳統教育的缺陷,通過對教育的不斷優化來培養學習者終生學習的能力和發展學習者的智慧。智慧實驗是智慧教育的一個分支。云計算作為分布式計算的一種,其在教育領域的遷移稱為“教育云”[2]。國外研究者在2009年前后開始關注教育云[3]。根據國家十二五規劃《素質教育云平臺》的要求,各個地區涌現出了諸多教育云的教學應用案例[4]。例如,2014年5月,重慶市召開了教育“云課堂”項目應用推進工作研討會,會上展示了教育云課堂教師講授與同學學習和互動的整個過程,整堂課利用云平臺+微課+PPT來呈現,學生在課堂上利用平板電腦學習,實現學習資源的共享。明確感受到了實驗教育云未來發展的強勁趨勢及學校自身發展的需要和辦學定位,我校——長春工業大學計算機科學與工程學院的科研團隊結合學院自身需要研發了實驗教育云平臺。

1實驗教育云平臺的功能設計、架構設計及實現

1.1實驗教育云平臺的功能設計

實驗教育云平臺功能模塊主要包含系統管理模塊、實驗教學管理模塊和實驗進度管理模塊。系統管理模塊包括班級管理、權限管理、課程管理和鏡像管理子模塊。班級管理子模塊主要是系統管理級以班級為單位導入學生的姓名、學號和密碼。權限管理子模塊是系統管理者為實驗教師和學生分配不同的使用權限。課程管理子模塊為教師分配本學期的實驗課程。鏡像管理子模塊為不同的實驗課程分配不同的實驗環境。實驗教學管理模塊主要是教師進行實驗教學的管理,包括教師上傳實驗指導書,課前布置每堂課使用的實驗環境。教師可以查詢學生的實驗報告完成情況,并對學生的實驗相擬度進行查詢,并最終給出學生的實驗成績。實驗進度管理模塊的操作者是學生。首先學生完成實驗教育云平臺的登錄,然后根據實驗指導書的實驗內容對實驗環境進行實際操作或程序設計,完成實驗內容后截圖并提交實驗報告,最后由教師給出實驗成績后,學生在學生端查詢實驗成績。實驗教育云平臺的功能設計如圖1所示。

1.2實驗教育云平臺的架構設計

在圖2中,Web服務器的主要功能是通過互聯網接入Web服務,通過虛擬現實技術將虛擬實驗環境移植到Web頁面和生成動態網頁[5],這樣使用者就通過虛擬生成的實驗環境進行實驗操作。將多個Web服務器組成了云端Web客戶群。應用服務器端主要負責數據采集,并對采集后的數據進行數據分析和處理,然后將處理后的數據的結果傳送到數據庫服務器進行保存,同時將處理結果通過Web傳送到Web服務器端。由于此可,這種B/S結構極大地簡輕了云端Web服務器的工作負荷,只需安裝Web瀏覽器作為云端的運行平臺同時只負責一小部分的人機交互的業務邏輯處理工作,主要的業務邏輯處理工作由服務器群實現。所以這種“瘦客戶端/胖服務器”模式易于后臺管理和維護,并具有良好的穩定性、魯棒性和可擴展性。

1.3實驗教育云平臺的實現

按照實驗教育云平臺的功能設計與架構設計,其教育云平臺的實現如圖3所示。圖3的左側為學生的實驗指導書的內容,圖的右側為R語言的實驗環境。學生提交實驗報告后,教師可以在后臺查詢實驗報告提交情況和錄入實驗成績。

篇8

關鍵詞:新升本科院校;C語言程序設計;課程質量保障

新升本科院校的前身多為專科學校,其在教學管理、師資、教學質量保障各方面存在一系列的問題。為了保障教學質量,培養學歷和能力兼備、知識和素質齊飛的高素質人才,建立健全、科學、有效的教學質量保障體系迫在眉睫。

C語言程序設計是計算機專業的專業基礎課,在計算機教學中舉足輕重, C語言程序設計課程被很多學校作為計算機專業的入門課程。該課程具有很強的理論性和實踐性,課程的教學目標是使學生學會程序基本的邏輯表達,培養分析問題、解決問題的能力,使學生養成良好的編程習慣,為后續專業課程的學習奠定堅實的基礎。

為了達到人才培養方案制定的教學目標,落實教學內容,課程組教師長期進行教學手段、教學方法的改革和信息化建設以保證教學質量,提高教學效率。主要在以下幾個方面進行了努力:

1 教學方法的改進

為了實現教學目標,學生不僅需要掌握編程語言的語法知識、編程技巧和算法,更要掌握程序設計的思想方法,培養分析問題解決問題的能力和探索創新的精神。在教學方法上主要進行了以下改革:

1.1 強化實踐鍛煉,注重能力培養

在教學過程中,以實用性、熟練性為基本要求,注重學生分析問題、解決問題能力的培養,強調程序設計的實踐。學生多加練習,才能真正掌握語法知識,理解和掌握程序設計的思想和方法,進而能夠利用計算機解決實際問題。主要采用基本練習和綜合練習相結合的方式展開。具體如下:

1)通過大量作業反復地練習,使學生熟練掌握基本的語法知識,具備編程基礎;然后通過完成一些難度較大的作業,將語法知識和程序設計的內容結合起來,加深對內容的全面理解和掌握,培養語言的應用能力,提高編程水平。

2)實施項目教學,提高學生綜合應用能力。采用綜合練習,讓學生真正掌握程序設計的思想和方法。整個過程以學生獨立完成為主,教師只提供必要的輔導。這種方式不但可以培養學生問題求解能力和綜合運用的能力,還能夠培養學生的自主學習能力和探索創新的精神。

1.2 目標分層次遞近

C語言的語法相對容易掌握,但算法難以把握,同一個問題可以有多種算法,其優劣差別很大。編程能力的培養是一個循序漸進逐步提高的過程。因此,把培養的過程分為五個層次:

第一層次:分析問題,描述算法。先讓學生掌握解決問題的思想方法。

第二層次:了解程序整體結構。以一個完整的程序為例,介紹程序的組成結構。學生看到一個程序要能夠識別出程序的各個組成部分,比如預編譯命令、函數定義部分、變量函數的聲明部分、語句塊等。

第三層次:認識每條語句。讓學生認識程序中的每個符號,比如標識符、關鍵字和數據結構等。

第四層次:理解語義。講解每條語句的語法功能。讓學生通過閱讀分析程序的執行結果。

第五層次:編寫程序。讓學生自己編寫程序,先編寫比較簡單的,難度逐步增大。

本課程是專業基礎課,教學過程中遵循“以入門為主,以多數同學掌握為目標”,從最基本的開始,循序漸進,最終達到教學目標。程序設計能力因人而異,培養時間也較長,需要課后主動再學習,不能單純依賴課堂。

1.3 實施啟發式教學

為培養學生自主學習能力和創新能力,教學過程中遵循啟發式教學原則,采用多種教學方式和手段激發學生的學習欲望,使其積極投入到學習活動中,積極思考,能夠發現問題,提出問題,并學會解決問題。例如,在講解程序設計時,首先引導學生分析問題,找出解決問題的方法,然后再寫出其算法,最后編寫出完整的程序,在這個過程中,每一步都是與學生一起討論的,讓學生在啟發下思考問題,在思考中解決問題,逐步掌握分析問題、解決問題的方法。

1.4 激勵個性化學習

由于學生存在個性化差異,因此,在教學內容的實施上,考慮多樣性和靈活性,讓學生有選擇的余地。例如,在實踐教學中,每項實驗都包括必作題和選作題兩部分,鼓勵學生根據自己水平和興趣,自由選取其中的模塊,選擇適當的數量和難度,自主安排學習進度,使自己得到充分的發展和提高。鼓勵學生參加計算機等級考試和各類計算機大賽,挑戰自我,實現自我。

1.5 采用豐富多樣的教學方法

單一的教學方法不能適應教學過程的復雜性,無法取得好的教學效果。老師針對不同的教學內容要選擇適宜的教法,才能體現教材與教法的結合。例如對程序設計的基礎知識,以講授法為主,自學討論法為輔;對程序設計的三種基本結構和函數,則選用引導分析、提問、實例演示、實際操作等方法;對數組、指針、結構體、文件類型等難度較大的內容,則選用啟發式、歸納法和實驗等方法,通過老師的操作演示,學生理解總結出知識點,并在計算機上進行實踐驗證。

1.5.1 固定框架法

目的是讓學生掌握分析問題的方法。入門階段都以“輸入,處理,輸出”三個順序步驟分析和實現編程,對任何一個問題,教師都從這三個方面入手,往往從“輸出”倒過來分析,在講解用C語言如何實現這三個步驟。要求學生做習題也如法炮制。在講解例題時,分析是重點,分別對輸入、處理、輸出三塊分析,并給出如何用語言表達。由分析給出算法,再由算法寫出程序。要求學生遇到問題都從這三個方面分析,每一步都落實到“在C語言中如何實現”, 這樣做不至于初學者無從下手。如果遇到還沒有涉及的語法點,鼓勵學生查找資料學習,形成分析問題的框架,這樣即使沒有完全實現,也能寫出基本的算法來,消除了初學者的畏難情緒,這對本課程的入門有很大好處,特別是對少數民族地區基礎差的學生更有幫助。

1.5.2 案例驅動法

案例驅動法的目的是提高學生的學習興趣,主要強調任務是有應用背景的,學生的學習目的就更明確。通過典型程序,按照提出問題—分析問題—引入新知識解決問題—總結提高的思路教學,過程中能夠調動學生學習的積極性,能夠主動參與,而且通過問題的不斷擴展,能有效開闊學生的思維,使得學生在課堂上真正地成為主體,變被動為主動。

1.5.3 任務驅動教學法

任務驅動法主要運用在實驗教學中,對綜合設計性實驗,給學生一些基本目標,讓學生通過討論、查找資料等手段主動運用所學知識解決問題。這樣,不但使大部分學生完成了學習要求,建立起學習的興趣,又可以使少數程度較高的學生充分發揮潛能,給出個性化的設計,培養了學生的創造性。這種教學方法給學生提供了較大的發揮空間,進一步培養學生的創造性和自主學習能力。

1.5.4 探索式學習

目的是培養學生的研究能力、自主學習能力和探索精神。在C語言程序設計教學中,尋找一些有趣且具有實際應用背景的問題,引導學生運用C語言表達自己求解問題的想法,幫助學生樹立“算法”的思想[1]。引導學生在解決問題的過程中學習程序設計與算法分析所必須的知識,借助其他人的幫助,利用必要的學習材料,通過意義建構的方式獲得知識[2-3]。

2 教學手段的改革

2.1 制作多媒體課件

課題組老師根據教學大綱要求和教材內容,制作了C語言程序設計課程的多媒體課件。課堂上,根據內容需要在多媒體教室采用傳統板書與課件等多種手段相結合的方式進行教學,使課堂教學形象、生動,取得了好的教學效果。多媒體教學具有可重復再現的特點,有助于適應學生的差異,使學生可以根據自己的能力水平適當調整進度,積極、主動地學習,做到真正意義上的因材施教,因人施教。特別是對加快操作技能的訓練速度能起到事半功倍的效果。

2.2 建立和利用網絡資源

在教學過程中充分應用網絡化輔助教學手段。課題組建立了教學網站,提供了豐富的網絡資源,其中主要包括教學進度、教學大綱、電子教案、實驗指導、多媒體課件、樣卷、習題庫、參考資料等,為學生的自主學習提供了平臺。

利用先進的現代教育技術手段、豐富的網絡資源進行教學,使教學形成了一個信息交流的立體網,同時引導學生參與軟件設計等活動,極大地調動了學生的積極性,激發了學生的學習興趣,使教學效果得到明顯提高。

2.3 引入評測系統

評測系統的核心是“比賽”機制,事先設計好實驗題目和正確的測試數據,然后讓學生在規定的時間內進行實驗,每做完一道題學生都可以自行提交,系統進行檢查,并可以給出提示,學生能快速知道結果,然后根據結果再修改,系統支持多次提交,并對參加比賽的用戶按照提交正確任務的多少及所用時間進行排名,排名可以更好地激發學生的學習積極性。

我相信,將評測系統引進到實驗教學中,一定能夠更好的提高教學效果。

3 作業和考試改革

應試性學習轉變為研究性學習,注重考試結果轉變為注重學習過程,這樣更有利于優秀學生才能的充分施展和發揮。

3.1 作業改革

豐富作業內容,增加作業形式。一般教材中的課后作業題型單一、內容不夠豐富。我們提供了大量與教材同步的習題,題型多樣,知識點覆蓋全面,有助于學生理解和消化所學內容。

單純使用傳統的作業形式對于本課程來講明顯存在不足:作業本上的程序代碼未經編譯系統的語法檢查,容易存在著許多簡單的語法錯誤,而這些錯誤又是較容易發現和避免的。程序最終是要在計算機上得以實現的,對于程序設計語言的作業來講,編譯系統是最嚴謹的作業批改者。因此,我們設計3種類型的作業形式,即書面作業、實踐作業和綜合作業。

書面作業由老師根據授課內容和知識點,布置的偏重基本知識作業,規定完成期限,學生提交作業后,教師公布解答,由學生自行批改更正。這類作業的目的在于加深對基本概念、基本知識的理解和掌握。

實踐作業是由教師布置的對基本知識的應用類的作業,分為選作和必作兩類,對于必作作業,要求學生上機調試正確之后提交電子作業解答,教師批改。這類作業考查的是知識的全面理解和掌握,培養的是編程能力和分析問題的能力。

綜合作業先由教師命題,學生分成小組,自由選題,然后就要解決的問題,進行分析和討論,查閱資料,確定解決方案;緊接著進行組內分工,分別進行算法設計、編碼調試,合作完成后,提交源程序和報告。整個過程學生小組相互協作完成,老師只提供必要的輔導。這類作業,要求學生真正掌握程序設計的思想和方法,能夠應用解決實際問題,不僅能提高學生的實際編程能力和對知識的綜合運用能力,還有利于培養探索、創新和團隊協作能力。

3.2 考試改革

在課程考核中,采用多種考核形式。課程成績由筆試、上機實驗和平時作業三部分成績綜合評定,分別從不同的方面考核學生理論知識掌握情況和程序設計的綜合能力,真實反映學生對該門課程的掌握程度。

3.2.1 筆試

主要考核語言基礎、基本的閱讀和編寫程序的能力。題型主要包括:選擇題、填空題、判斷題、程序閱讀題和編程題。

3.2.2 實驗

主要考核程序的編碼和調試能力。

實驗考核采用平時實驗、平時上機測驗、期末上機考核相結合的方式。平時實驗:通過學生動手操作并提交實驗報告來考核;平時上機測驗:根據課程教學的需要,由任課教師隨堂出題考核,要求學生提交答卷。采用這種考核方式,可使教師及時了解學生學習情況,并對學生的學習和實驗起到督促的作用。期末上機考核:學期結束時,由教師命題,學生上機完成。考核學生在規定的時間內正確編寫和調試程序的能力。

3.2.3 作業

主要考核學生的學習態度。

4 結束語

要提高教學質量只有教學方法和教學手段還遠遠不夠,好的師資隊伍和監督機制也是必不可少的。

師資隊伍建設是教育保障的一個重要條件,新建本科院校在引進師資時應掌握學科特點,充分發揮教學委員會的控制篩選作用[5],引進緊缺的專業教師。

學校現有的聽評課制度、督導制度、教學檢查制度和學生評教制度是對教學的一種監督,起到了一定的作用;我們還應該借鑒國外的有益經驗,結合我校的實際情況,發揮政府的作用,政府作為社會公共利益的代表[6],為了確保教育質量,有權利和義務對大學的辦學活動進行評估和監督。相信通過學校和政府的共同努力,教學質量將會上一個新的臺階。

參考文獻:

[1] 肖瀟.C語言程序設計教學探索[J].計算機教育,2011(5):65-68. (下轉第91頁)(上接第94頁)

[2] 陸蓓.建構主義指導下的C語言程序設計教學[J].杭州電子科技大學學報:社會科學版,2006(4):64-67.

[3] 基于建構主義的計算機任務驅動式教學法[J]. 重慶工學院學報,2005,19(2):178-180.

[4] 汪小林,羅英偉,李文新,等. 北京大學“計算概論”課程的建設與改革[J].計算機教育,2009(20):45-49.

篇9

關鍵詞:實踐課程;教學方案;程序設計;軟件技術

1課程目標

培養實用型、創新型人才,提升軟件研發能力,構建系統、完善的理論及實踐專業課程體系架構,一直是計算機專業課程和專業基礎課程的根本目標。為積極落實計算機學院計算機科學與技術專業的專業培養目標,強化對學生應用編程實踐能力的體系化培養,進一步構建、充實計算機軟件、硬件緊密結合的基本知識架構,貫徹系統、可持續發展的培養思路和課程體系,在C語言程序設計、面向對象技術、計算機基礎等先修課程基礎上,加強學生軟件開發能力的培養,設置并開設程序設計實踐課程“計算機設計項目實踐”。

課程設計方案針對專門的實用編程技術及其應用實現方法,進行特定系統功能的設計,確立實現方法,完成程序編碼與調試。進一步加強程序設計基礎理論技術的掌握,提升程序設計的深度和難度,培養學生設計實現較大程序的能力。為專業素質和能力的培養奠定扎實基礎。

本課程的設計項目對方案設計目標、設計內容、設計思路、實施基本方法進行系統規劃,學生能夠了解面向具體應用的程序設計基本方法,明確系統功能、設計、實現的基本流程,理解一個實用應用程序的基本架構,掌握設計實現的應用程序的運行流程。在選擇C語言編程環境及其方法的基礎上,能夠基于庫函數或類庫函數接口,運用具體編程方法,完成應用程序的設計、編碼等開發工作。選擇學生感興趣的項目,構建用戶自己的應用程序代碼,達到熟練運用編譯環境工具、開發較大型應用程序的目的。

課程方案設計的基本原則在于,通過精選應用系統的需求分析、功能設計、編碼、實現、測試、提交等基本環節,展現軟件開發基本過程,運用實用編程技術及其應用實現方法,培養學生實際開發經驗,提升學生應用編程實力,鞏固學生程序設計基本規范、基本流程的理解和實現技術,達到充實程序設計的應用知識體系、激發學生的學習興趣和主動性、開拓學生的專業視野和實際工作能力的目的。

2教學方案設計

2.1應用系統的設計

通用操作系統的文件系統為用戶數據的存儲和讀寫等提供必備支持,應用程序設計也需要有關文件操作功能的支持,文件系統及其各項實現技術具有實用價值,C語言程序設計課程中,文件系統相關章節對文件的基本操作、編程接口、實現方法等內容進行了簡要介紹,學生具備一定的理解文件系統功能和處理文件的知識基礎[1]。

參考相關資料,使用高級語言實現的一個文件系統,作為一個應用原型系統,基于該系統,完成軟件項目設計的各個過程[2]。

首先通過分析文件系統基本功能,理解文件系統的設計步驟,及設計實現一個簡單、功能完善的模擬文件系統SMFS。該文件系統功能包括文件操作、文件存儲管理、文件系統一致性和容錯性管理[3]。

SMFS文件系統采用C語言設計實現。通過分析原型程序的數據結構設計、算法設計實現,掌握該應用軟件的模塊劃分與集成,掌握編譯環境、運行環境的構建與使用。

首先對現有原型系統初步改錯并進行調試,查看運行結果,分析并找出原型系統仍然存在的問題。

再根據所設計的文件系統應用程序方案功能,進行設計和修改,對應用程序進行二次開發,完成應用程序的設計、編碼、調試、運行。

方案的實施使學生應用能力得到鍛煉和提高。學生可了解軟件開發規律、開發思路和實現技術。

2.2開發平臺的選擇

使用PC機、Windows操作系統、高級語言編譯工具及其環境,作為硬件、軟件開發運行平臺。選擇Turbo C或 Borland C作為編譯工具。開發、運行平臺易建。原型軟件程序已通過初步調試,可運行,為學生的調試、二次設計、開發提供有利支持和保證。方案可行性、可操作性較強。

3教學內容

3.1文件系統分析

以UNIX操作系統文件系統為例,對文件系統管理數據結構及基本構成進行必要分析,了解文件系統基本工作方式及其功能實現的基本方式。動手實現一個模擬文件系統――文件應用系統。

3.2文件應用系統規劃

文件應用系統設計功能包括,提供一個文件操作接口函數庫,基于該函數庫實現一個簡單的文件系統,提供高效的存儲管理功能。該文件系統提供較好的容錯性能,系統崩潰時進行數據的一致性檢測,確保數據不丟失。

基于文件函數庫的基本文件操作函數,設計實現一個簡單的單用戶文件系統。文件系統功能設計簡化為以下幾個模塊。

Naming:將文件名映射為文件占用的磁盤塊,空閑磁盤塊管理的內存與磁盤數據結構,稱為磁盤空閑表。該表可跟蹤磁盤上每一個磁盤塊分配使用情況,該表永久存放在磁盤上,文件系統啟動時放入內存,指導文件的空間分配。

Allocated:磁盤塊的分配記錄,即文件系統的物理組織。采用索引節點方式進行文件分配磁盤塊的管理。每個文件擁有唯一I節點,每個文件的屬性信息存放在該文件的I節點中。此外,目錄文件中包含該目錄下子目錄名及其I節點或文件名及其I節點,用于按目錄逐級查找,將文件名映射到I節點上。

文件操作包括:創建文件;修改文件;刪除文件等。

容錯性、一致性的設計。文件系統的恢復策略。確保文件數據的完整性、持久性。

3.3文件應用系統數據結構設計

全局數據結構包括:文件系統文件最大數量;文件系統最大空間;文件系統操作提示符――字符串;文件系統名稱――文件名表示;文件系統文件指針;文件I節點――結構體類型;文件I節點指針;文件I節點表――數組。

3.4文件函數庫設計

文件系統應能永久存儲數據,物理上存儲數據的是磁盤。為簡單起見,使用一個文件模擬磁盤。將文件磁盤塊大小設定為4KB,每個磁盤塊有唯一編號,每個文件以磁盤塊為單位存儲數據。

磁盤函數庫模擬真實的硬件接口,設計為函數實現,函數接口提供良好的調試接口,為將磁盤驅動器接口映射為模擬的磁盤函數庫函數接口。磁盤函數庫設計如下函數:

void creat_file_system()

函數功能:創建一個文件,包括文件管理數據和實體數據結構,表示文件系統。

void open_file_system();

函數功能:打開或創建文件系統,錯誤返回error;正確則返回文件系統指定的文件管理數據和實體數據結構位置指針。

int new_a_file(char *file_name)

函數功能:搜索文件系統,查出可用空閑管理塊,存入指定文件名,返回管理數據位置指針,否則,返回-1。

int del_a_file(char *file_name)

函數功能:搜索文件系統,查出指定文件,從文件系統中刪除該文件,返回該文件位置指針,否則返回-1。

void list()

函數功能:搜索文件系統,只要文件名不為空,輸出文件名和文件長度,文件計數。

int open_a_file(char *file_name)

函數功能:搜索文件系統,如指定文件存在,返回指定文件所在的序號。

int offset_by_i(int i)

函數功能:返回第i個文件在文件系統存儲空間的偏移量。

int write(char *file_name,int offset,char *str,int count)

函數功能:打開文件file_name,寫入文件,寫入文件系統管理塊信息。

int read(char *file_name,int offset,int count,char *str)

函數功能:打開文件file_name,讀出該文件字符串內容。

void print_help()

函數功能:輸出系統文件操作提示信息,供用戶選擇。

int main()

函數功能:啟動文件系統,進入幫助界面,用戶可以輸入各項操作代碼,循環執行對應文件操作,或結束系統運行。

合法操作包括:①創建文件系統;②新建一個文件;③刪除一個文件;④顯示文件列表;⑤寫入文件;⑥輸出文件;⑦退出文件系統。

3.5應用文件系統運行分析

測試中,查看存在的設計缺陷。如,文件系統中文件數量的檢測和控制;文件長度的檢測和控制;文件系統啟動確認等[4]。

3.6應用文件系統的再設計方案

根據學生對原型系統的理解和掌握程度進行自行設計。測試改進方案的系統運行的完善性和健壯性。

4教學過程

本課程課堂授課課時為8學時,上機實踐學時為24學時。教學采用講課、上機交替進行的方式。便于學生及時把教師交付的每個任務貫徹落實、設計實現,教師能將學生實踐中出現的問題,利用課堂教學及時反饋、說明、給出指導意見。

教師在授課期間,對設計方案的設計思想、設計方法、實現系統功能、實現技術及方法、編譯運行環境等進行簡要講解、說明。學生在上機實踐環節過程中,完成項目方案的設計實現,通過接受教師檢查、驗收、答辯等環節,提交實驗報告。鍛煉和提升分析,設計,文字、語言表述,實現,工具運用等能力。

該方案教學過程可設計為三個階段。

4.1授課內容設計

該階段完成進行系統開發的技術理論、程序架構、軟硬平臺搭建等準備工作。從項目設計目標、方案設計、實施過程及要求、編程技術分析、系統功能等方面進行授課。指導學生奠定扎實基礎,為進行下一階段的實踐作好準備。為了比較系統全面了解有關軟件開發的基本概念、基本過程,設計授課內容按系統功能驅動的方法展開,緊密結合實現編程技術,引導學生逐步系統了解開發一個特定應用系統所必需掌握的基本概念和基本技術。

教師在8學時的授課中,首先向學生明確說明方案系統的功能,然后進行功能的分解,直至完成模塊的劃分,講解需要的編程技術,實現模塊功能,學生在此基礎上,設計模塊內部的算法流程,并實現、調試、運行軟件系統。

4.2實踐內容設計

上機實踐24學時。實踐環節以課題組模式進行工作,利于互相幫助,培養合作能力和意識。學生以課題組為單位進行方案論證、設計、開發環境構建、分工、單元開發、調試、系統運行,完成項目實踐報告的編寫。組長是項目主持人。該過程能使學生明確軟件開發的各個環節,結合自身條件對每個環節進行自己的設計實現。課題組學生可按以下實施內容及步驟開展工作,并按計劃接受教師的檢查和評估。

每2人自由結為一個課題組。可以均衡學生的能力,達到互助的目的。確立方案的功能及設計基本方法,設計模塊函數功能及其編程接口。

安裝開發環境、調試開發工具。對于開發使用的 C/C++語言環境及工具、函數等作必要的調試。

分析設計系統功能,劃分每位同學的模塊分工明細。完成各自的功能模塊設計、編碼實現、調試,并接受教師檢查、評估。

課題組完成系統集成調試。提交調試報告和系統使用說明書,并接受教師軟件驗收。

項目實踐上機環節的內容可操作性強、實施要求具體、目標明確,便于對學生的研究能力、協調協作能力、軟件系統分析設計能力、編碼能力,解決問題能力、語言、書面表述能力等作一個綜合的培養、評價、考核。

5評價體系

對學生方案設計實現的評價,旨在通過實踐的各個環節的監督檢查,深入了解學生的進展情況、方案實施效果、出現的問題等,為學生提供指導、建議,考核設計與實現結果是否達到方案目標的要求。

針對項目實踐課程的目標和特點,必須規劃、確立學生成績評價標準。否則,課程開設效果難以保證。對學生方案設計實現的評價,旨在通過實踐的各個環節的監督檢查,深入了解學生的進展情況、方案實施效果、出現的問題等,為學生提供指導、建議,考核設計與實現結果是否達到方案目標的要求。

課程實施過程分為:課堂教學,課題組完成系統分析設計的理解、模塊功能設計與劃分、編程實現與調試、軟件驗收、答辯等。

學生成績評價體系設計根據每位學生的各個部分的實施情況進行評估。學生應提交規定格式、內容的文檔、實驗報告,完成編碼、調試、軟件驗收,學生在階段檢查時對設計實現內容進行講解、答辯。答辯對學生的系統總體設計模式與運行模式進行考核,確認學生是否對軟件系統的設計流程、運行流程及其出現的問題,有全面的理解。敦促學生全面系統地完成項目實踐整個實施計劃與實施過程。

學生成績評價體系包括文檔成績評估設計和軟件驗收答辯兩個部分。

文檔成績評估設計。組長及其組員負責組織編寫實驗報告,實驗報告的詳細格式及內容的規范要求見附錄。其中包括分析設計、系統調試、系統運行手冊、設計實現的模塊和調試等內容。根據實驗報告的可讀性、創新性、結構內容完整性、工作量等因素,評估每位學生的文檔成績。

軟件驗收答辯。根據教師提出的系統需求和設計方案建議,以課題組為單位進行系統分析設計,每人獨立進行模塊詳細設計及編碼調試工作,根據提交的模塊設計實現文檔和調試文檔,學生對模塊使用的數據結構及算法設計進行講解、答辯。教師根據講解簡明、思路清楚、工作量飽滿、使用技術有獨到之處等方面給予成績評定。根據提交的實驗報告進行軟件系統驗收,根據系統的運行功能實現、界面設計、編碼技術運用等評估學生的驗收成績。考核分值分布如表1所示。

表1考核分值分布表

考核內容百分比

系統分析設計報告10%

模塊詳細設計報告10%

原運行系統調試報告15%

系統調試報告用戶手冊15%

階段檢查25%

驗收檢查25%

6教學文檔及環境支撐

計算機設計項目實踐包括24學時的上機操作,需要完成課程軟件系統開發與文檔組織編寫,是以學生自主完成為主,教師指導為輔的實踐過程。為配合師生的需求,提高學生的工作效率,支持文檔的編寫、系統的設計實現、編碼、調試等諸多具體要求,一個方便實用的文檔及具體要求支持體系十分必要。教學文檔可提前提交給學生參考,一般包括:①授課教案;②實驗指導書;③應用軟件開發環境;④課程實踐環節參考手冊;⑤網上教學資源平臺;⑥教學大綱;⑦實驗大綱;⑧授課計劃;⑨實驗上機學期計劃表。

7課程實踐環節參考手冊設計

特別設置一個實踐環節參考手冊,對課程設計所有環節具體要求和實施辦法作一說明。為學生方便地編寫文檔和規范地完成實施過程,提供規范文檔體系參考與指導,使學生的成果體系完整、有據可查。

附錄一,實驗報告規范模板;附錄二,實驗任務書;附錄三,報告文檔內容格式參考;附錄四,進度安排及成果提交;附錄五,實驗報告撰寫規范;附錄六,成績評估表。

8結語

操作系統技術對于大學計算機專業課體系教育的重要性勿容置疑,實踐教學對理論教學有延伸和提升的作用,其教學重要性、迫切性、科學性越來越得到國內外同行的共識,如何將實用技術引入實踐教學

環節一直是教學中探索的重點和難點。本方案的創新性在于系統全面地設計了實踐類課程的各個環節,提供了較全面的方案設計內容,有一定的參考價值。方案具有較好的可操作性和可移植性,可供其他計算機專業課的實踐環節參考。該方案已應用于教學,對學生拓展應用編程技術,進行軟件開發具有較好的效果。

該方案具有技術實用、平臺易建、功能明確、難度適中的特點。通過方案的實施,學生系統軟件分析能力和應用軟件的開發能力能得到一個全面的實踐和鍛煉。

參考文獻:

[1] 譚浩強. C語言程序設計[M]. 北京:清華大學出版社,2006(6):150-210.

[2] 盧軍. Linux0.01內核分析與操作系統設計[M]. 北京:清華大學出版社,2004(6):139-198.

[3] 孟慶昌,牛欣源. 操作系統[M]. 2版. 北京:電子工業出版社,2009(11):183-216.

[4] 趙斌. 軟件測試技術經典教程[M]. 北京:科學出版社,2007(5):1-59.

Research and Implementation of Programming Practice Project

NIU Xin-yuan

(School of Computer, Beijing Information Science and Technology University, Beijing 100101, China)

篇10

關鍵詞:大學計算機基礎;教學;實踐

中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2013)14-3340-02

大學計算機基礎課程是普通高校非計算機專業入學開設的一門公共必修課。近年來,隨著信息技術與網絡技術的發展,為適應不斷發展的社會需要,為提高教學質量,培養計算機應用人才,培養學生創新能力,教師們一直致力于大學計算機基礎教學改革,通過對大學計算機基礎課的教學方法、教學手段、教學模式的分析和研究,開展了多種多樣的大學計算機教學改革實踐活動。

1 在實踐教學中開展多種教學方法的融合

大學非計算機專業計算機基礎課作為一門基礎學科,是一門應用性極強的學科。本課程分為理論課與實驗課教學,為避免理論與實踐脫解,授課教師采用討論式教學與任務驅動教學等多種教學方法。理論課根據課程內容積極進行討論式及案例教學,使學生參與到教學中來,真正成為課堂的主人。實驗課多采用任務驅動教學,學生帶著任務操作,學習目的明確。在實際教學中,對教學大綱、教案講稿及授課計劃進行了細分,均分為理論和實驗兩部分,內容更具體,更具針對性。例如理論講稿內容增加了案例,讓學生帶著問題聽課,積極參與教學討論,使教師做為課堂的主導,學生成為課堂的主體;實驗講稿對實驗任務進行了詳細說明,實驗課學生任務明確,學生動手操作能力增強,不在糾結學習本門課程有什么用,思考的重點是怎么把這門課學好。

2 實驗學時大幅度增加

按照現行的大學計算機基礎課程教學計劃,本門課程總學時60學時,分為理論課、實驗課教學,傳統教學方式為理論課與實驗課學時分配為1:1。教學改革實施后,理論學時為20學時,實驗學時增加為40學時。實驗學時的增加,極大的提高了學生的動手操作能力,進而培養了學生的自主學習及創新能力。學生的實驗操作任務大部分都能按時完成,實驗報告書寫完整,電子作業完成質量很高,并且有一定程度的自我創造。在所有的電子作業中,學生的Word文檔及PPT演示文稿作業尤為出色。例如,PPT演示文稿設計實驗,實驗目的:①掌握PPT文件的建立,保存方法;②掌握對 象(圖片、文字、音頻和視頻)的添加方法;③掌握動畫的設置方法和幻燈片的切換方法;④掌握超鏈接的使用;⑤掌握幻燈片設計和幻燈片版式的應用。通過學生的電子作品檢查,實驗基本要求都實現,演示文稿放映時有幻燈片切換效果,有動畫效果,很精美。另外該生創造性地添加了GIF格式的動畫圖片和自選圖形,進一步美化了幻燈片。理論課前用20分鐘演示學生作業,同學生一起給出客觀評價,學習優點,彌補不足,學生學習興趣濃厚,學習的積極性增強。

3 分層次教學

目前,雖然計算機基礎教學已從原來的大學起步過渡到中小學為起點,但剛進入大學校園的新生中還有很大一部分對計算機了解甚少,甚至還有的學生沒摸過計算機,屬于零起點學生。本課程依據學生的專業特點及計算機基礎掌握情況進行分層次教學。理論分文、理、藝體三個教學層次。文科及藝體開設Visual FoxPro程序設計,理科開設C語言程序設計。實際教學中,因為藝體學生的特殊性,對其進行基本操作知識講授。實驗教學由理論教師在第一堂課對學生進行問卷調查,將學生分成有一定基礎和沒有基礎的兩部分,將實驗課由理論課的大班額教學采用分層次方法分為兩個小班,由兩個實驗教師進行指導。實驗教學中實驗任務的設置由易到難,首先要求完成較容易的任務,然后根據自身情況及時間安排有選擇的完成較難的任務。

實驗學時的增加及分層次小班額授課,學生學習熱情及實際動手操作能力明顯增強,結合多種教學方法,教學手段,學生自主學習能力、創新能力大大提高,學生制作的Word作業,PowerPoint作業,從質量及美感各個方面均有大幅提高。

4 分模塊教學,分階段考核

模塊化教學是大學計算機基礎課程教學改革的重點,也是我院大學基礎課程教學的特色所在。根據教學內容特點分為六大模塊:操作系統、文字處理、電子表格制作、演示文稿制作、Visual FoxPro程序設計、C語言程序設計。每一模塊教學完成后,隨堂進行考核,采用上機考試,在線閱卷,學生當場可知道成績,60分合格,不及格者繼續強化該部分訓練,另行考核。期末考核式方式為上機考試,學生不用再死記硬背,而是需要對所學內容熟練操作,極大地提高了學生對計算機的實際操作能力,增強了自主學習能力與實踐創新能力的培養,也提升了學生未來就業競爭力。

5 教學模式網絡化,提高學生自學能力

本課程教學模式采用傳統教材、網絡課件、網上資源三大資源為基礎,以網絡課程為補充、課堂教學和網絡課程結合、網絡課程自學為主體等多種教學模式,達到整體優化教學,充分培養學生的信息素養,提高教學質量,增強大學生計算機應用能力。

充分利用電子郵箱、學院網絡教學平臺、學院教務管理系統、聊天軟件等等現有的交互式信息平臺,與學生實現隨時隨地溝通,實現了教學在時間和空間上的延伸,解決了過去只有上課才能見到老師的問題,實現了教學的可持續發展,使教師不僅僅是學生的良師還是學生的益友。

教學模式改革之后,經常有學生對現有知識內容進行擴展,向老師詢問一些本課內容之外的問題,例如,“如何做PPT特效”,這就要求教師及時擴充知識儲備,迎接未來一個又一個挑戰。

6 大學計算機基礎課程教材改革

讓學生學習好計算機基礎這門課程,需要教師、學生及教材的三方配合才能實現最好。教材是重要的課程資源,是教師教學的依據,學生學習的依據。通過多年的大學計算機基礎教學實踐工作發現,傳統大學計算機基礎課程教材內容偏重于理論的教學,而在實踐方面過于膚淺并且缺少有針對性的強化練習內容,所以學生在學習過后并沒有真正的體會到應用的樂趣,另外學生個體對計算機基礎知識的了解和對計算機技能的掌握也是因人而異的。為了使教材能適應不同層次的學生需要,能體現和發揮出學生的能力和特長,達到學以致用,會學會用,大學計算機基礎教學部的老師,根據多年一線教學經驗,及目前學生實驗課狀況和學生目前學習情況,對高校非計算機專業學生的計算機應用能力進行調研,對教學內容進行了改革,對教學過程中教案進行整理,編寫了一系列教材,《大學計算機基礎教程》、《大學計算機基礎實訓教程》、《Visual FoxPro程序設計教程》、《Visual FoxPro程序設計實踐教程》、《C語言程序設計教程》、《C語言程序設計實訓教程》。

《大學計算機基礎教程》與《大學計算機基礎實訓教程》結合非計算機專業計算機應用能力培養要求設置,凸顯項目教學、任務教學、主題教學、案例教學。《Visual FoxPro 程序設計》教材立足于計算機公共課程,理論聯系實際,簡明扼要,層次分明;《Visual FoxPro 程序設計實踐教程》為學生的學習提供了大量實際操作任務,讓學生由淺入深,一步一步操作,激發學生自主學習興趣,培養學生創新能力。《C語言程序設計教程》教材采用了“提出問題-分析問題-解決問題”的案例教學方式;《C語言程序設計實訓教程》教材中的上機實訓題型豐富,且來自實際生活,有利于培養學生編程解決實際問題的意識和能力;教材投入使用后,深受教師及學生的好評。

新教材加強了學生實踐操作技能培養,突出了面向對象的程序設計思想,注重培養學生科學嚴謹的編程思想,掌握程序設計的方法,力求由淺入深、循序漸進地引導學生掌握計算機基本技能操作、程序設計教程的基礎知識和基本方法,促進學生將理論知識融會貫通,真正起到提高學生運用計算機技能解決實際問題的能力,并被國內很多高校采用。

7 實踐教學中引入教育心理學

目前,大學生均為90后,彰顯各性的年代,在實際授課中,授課教師采用多種教學方法,并將教育心理學應用到教學實踐中,實現教與學過程的最大化。例如,在實驗教學中引入教育心理學的社會助長現象,鼓勵學生主動幫助其他遇到操作難題的同學。在實際授課中,有的同學性格開朗,極其主動要求:“老師,我會,我告訴他”;分模塊教學中,每一模塊測試結束后,學生有喜有憂,及時引入教育心理學正確引導學生加強后續內容的學習,學生都能端正學習態度,認真聽課,按要求完成后續實驗操作任務。整個教學過程中,教師不僅幫助學生掌握理論知識,操作實踐,更要幫助學生形成良好的心理和行為模式,培養學生的積極情感。教育心理學的滲透以及靈活多樣的教學方法積發了學生的學習興趣,進一步提高了學習的主動性、積極性和創造性,提高了學習效率,并在最大程度上體現“學以致用”的教育宗旨,凸顯了學生的主體地位,培養學生的自主創新意識和探究意識,最終讓學生學會學習、學會協作。

參考文獻:

[1] 宋麗,吳玉華,蔡麗艷.任務驅動教學法在大學計算機基礎教學中的探索[J]. 電腦知識與技術,2009(7).