真人一对一直播,chinese极品人妻videos,青草社区,亚洲影院丰满少妇中文字幕无码

0
首頁 精品范文 程序設計報告

程序設計報告

時間:2023-06-01 08:52:47

開篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇程序設計報告,希望這些內(nèi)容能成為您創(chuàng)作過程中的良師益友,陪伴您不斷探索和進步。

程序設計報告

第1篇

Abstract: Matrix is an important mathematical method of diagonalization, but because of its computational complexity, it has caused great difficulties on the application, The mathematical software has the function of processing of diagonalization, but for rational matrix diagonalization problem in the field of rational number the result is not satisfactory. So the study of rational matrix over the rational number field similarity diagonalization diagonalization, contract and orthogonal diagonalization algorithm and program project, design to realize rational matrices over the field of rational numbers on the diagonalization of utility software, solves the rational matrices over the field of rational numbers on the diagonalization of the accurate determination and computation problem.

關(guān)鍵詞: 有理矩陣;有理對角化;算法;程序

Key words: rational matrix;rational diagonalization;algorithm;program

中圖分類號:TP311.1 文獻標識碼:A 文章編號:1006-4311(2013)22-0237-04

0 引言

經(jīng)過一年多的潛心研究,我們有理矩陣有理對角化軟件創(chuàng)作小組完成了《有理矩陣有理對角化問題的算法及程序設計》的課題研究與軟件開發(fā)任務,現(xiàn)將研究情況總結(jié)報告如下。

1 研究意義

矩陣是重要的數(shù)學工具,在各個領(lǐng)域中都有廣泛的應用,如電路學、力學、量子物理乃至三維動畫的制作都用到矩陣理論。矩陣對角化是矩陣理論中重要的變換方法,利用矩陣相似對角化可以快速地計算出矩陣所對應的行列式的值或矩陣的高次冪;利用矩陣合同對角化可以化簡二次型,為二次曲面的研究提供了極大的方便;利用矩陣正交對角化化簡的二次型幾何意義是保形變換,更有實在價值,等等,可見矩陣對角化應用廣泛。從理論上說矩陣對角化方法已經(jīng)完善,但是人工實現(xiàn)卻非常困難,甚至力不能及,所以研究用計算機實現(xiàn)之就非常重要。

值得注意的是,在實際應用及計算中所面對的數(shù)都是有理數(shù),因此所直接打交道的也都是有理矩陣(即有理數(shù)域上的矩陣),因此考慮有理矩陣在有理數(shù)域上的對角化問題即有重要意義,盡管說已有的數(shù)學軟件(如,Mathematica、Matlab、Maple等)能夠解決矩陣對角化問題,但因為這些軟件均是基于實數(shù)進行運算,所以對有理數(shù)而言勢必存在誤差(如對于循環(huán)小數(shù)),因此用之處理有理矩陣在有理數(shù)域上的對角化問題所得結(jié)果并不精確,有的誤差還很大,例如關(guān)于相似對角化問題,對于矩陣A=■

人工與我們設計的軟件都可求得:

可逆矩陣T=■與對角陣D=■

使得T-1AT=D。但Mathematica求出的可逆矩陣是:

T1=■

而Maple求出的可逆矩陣是:

T2=■

比較可見,Mathematica和Maple的計算結(jié)果存在著誤差。

又如對于矩陣

A=■

人工與我們設計的軟件都可求得正交矩陣

U=■與對角陣D=■

使得UTAU=D.但是在“矩陣工作室”——Matlab中所求的結(jié)果卻是:

正交矩陣T=■

與對角陣D=■

可見此結(jié)果存在較大的誤差。再如對于矩陣:

A=■

人工與我們設計的軟件都可求得可逆矩陣

p=■,使得

P′AP=■

但是Matlab中所求得的可逆矩陣卻為

T=■,比較可見Matlab的結(jié)果存在誤差。

因此研究和設計有理矩陣有理對角化軟件具有重要意義,為有關(guān)矩陣對角化問題的學習、教學及研究提供輔助工具。

2 研究現(xiàn)狀

本課題的研究主要是處理有理矩陣的有理對角化問題,從國外來看,相關(guān)的研究是已有的大型數(shù)學軟件(如Matlab、Mathematica、Maple等),不過從對角化來說,這些軟件均是在實數(shù)域、復數(shù)域上計算矩陣的對角化問題,而不具有精確處理有理矩陣在有理數(shù)域上對角化問題的功能,并且這些軟件系統(tǒng)龐大、使用不便、輸出的結(jié)果也不直觀。從國內(nèi)來看,在知網(wǎng)與維普資訊上搜索,只見到計文軍等人《基于MATLAB的實對稱矩陣對角化》的論文(該文系內(nèi)江師范學院大學生科研項目論文),未見其它相關(guān)的研究。總之關(guān)于有理矩陣有理對角化的的算法與程序設計研究非常少見。

3 相關(guān)概念界定

有理矩陣:有理數(shù)域上的矩陣稱為有理矩陣。

偽正交矩陣:如果n階實矩陣T滿足TT′=T′T=D(D是對角形矩陣),則稱T是偽正交矩陣。特別地,當D是單位矩陣時T即是正交矩陣。當T、D都是有理矩陣時稱T為偽有理正交矩陣。當T、D都是有理矩陣且D是單位矩陣時稱T為有理正交矩陣。如果T的列單位化后仍是有理矩陣,那么T是有理正交矩陣,此時稱T是可有理正交化的。

有理相似對角化:對于有理矩陣A,如果存在可逆的有理矩陣T,使得T-1AT為對角形,則稱A能有理相似對角化。

有理合同對角化:對于有理對稱矩陣A,如果存在可逆的有理矩陣T,使得T′AT為對角形,則稱A能有理合同對角化。

偽有理正交對角化:對于有理對稱矩陣A,如果存在偽有理正交矩陣T,使得T-1AT為對角形,則稱A能偽有理正交對角化。

有理正交對角化:對于有理對稱矩陣A,如果存在有理正交矩陣T,使得T-1AT為對角形,則稱A能有理正交對角化。

4 研究方法

本項目的基本研究方法可簡示為:

理論研究■算法設計■程序設計

這是一個周而復始的過程,為此制定了以下的研究方案:

5 研究過程

根據(jù)上述的研究方案,我們展開了具體的研究工作,下面介紹其中的部分工作:

①最困難的一步是有理矩陣特征多項式的算法設計。因為[xI-A]是含有未知數(shù)x的行列式,如果按照行列式的計算方法直接計算,算法即將非常復雜,程序設計也將非常困難,因此我們努力爭取在不展開行列式的前提下而求得矩陣有理特征根。起初的思維是,因為整系數(shù)多項式有理根的求法只與最高項系數(shù)和常數(shù)項有關(guān),而根據(jù)根與系數(shù)的關(guān)系以及矩陣的跡與根的關(guān)系,求特征多項式的最高項系數(shù)與常數(shù)項是容易的,所以就企圖在只求出特征多項式的最高項系數(shù)與常數(shù)項的狀態(tài)下解決問題。然而事與愿違,因為接下來需要判定是否所有特征根都是有理數(shù),而完成這一工作的唯一途徑是判斷所有互不相同的特征根的重數(shù)和是否等于n,而確定重數(shù)又只能依靠綜合除法,但使用綜合除法就必須知道特征多項式的所有系數(shù),因此即陷入了困境!為了在山窮水盡之際覓得柳暗花明,我們曾構(gòu)想過許多方法,又查找了很多資料,終于找到了參考文獻[2],其中給出了以矩陣A的冪及其冪的跡表示特征多項式fA(x)系數(shù)的方法,由此解決了確定特征多項式系數(shù)的算法。

②眾所周知,高于四次方程的根是很難求得,這也就使一般的求多項式的根的算法依賴于近似計算方法。但因為整系數(shù)多項式的有理根容易求得,而有理矩陣的特征多項式必然是有理系數(shù)多項式,又根據(jù)有理系數(shù)多項式可約性理論,有理系數(shù)多項式完全可以轉(zhuǎn)換為與其同解的本原多項式來求根,這就使我們形成了求所有特征根的算法思想:先將有理矩陣的特征多項式轉(zhuǎn)化為與其同解的本原多項式,然后再用整系數(shù)多項式有理根的求法來求其特征根,并用綜合除法來確定其重數(shù).然而經(jīng)過多次運算檢驗后,發(fā)現(xiàn)當特征根為0時,綜合除法失效,于是只能先將0作特別處理,然后再用綜合除法判定余下的部分。對此,經(jīng)過討論研究后,擬定了以特征多項式的最低次項系數(shù)來判定0是否為特征根,若是,則再由最低次項系數(shù)來確定其重數(shù)。

③在正交對角化中,當使用施密特方法對所求的變換矩陣正交化后(為了方便我們稱正交化后的變換矩陣為“偽有理正交矩陣”),需要對偽有理正交矩陣的列單位化。然而并非每一個偽有理正交矩陣都能單位化,所以對于偽有理正交矩陣的每一列,在單位化之前需要判定其能否單位化,經(jīng)研究,我們采用了“當其模均為有理數(shù)時,才可單位化”的判定方法。

④為實現(xiàn)有理數(shù)域上的精確計算,我們設計了分數(shù)加法、分數(shù)乘法子函數(shù)來實現(xiàn)有理數(shù)的四則運算,算法上說并不復雜,但麻煩的是程序設計中如何存儲分數(shù)以及實現(xiàn)算法,在這里我們采用了用兩個矩陣對應地存儲一個有理矩陣的辦法。

⑤由于有限小數(shù)及無限循環(huán)小數(shù)均為有理數(shù),因此程序運行時除了以分數(shù)形式輸入數(shù)據(jù)外,還允許輸入小數(shù),輸入后程序?qū)⒆詣訉⑺斎氲男?shù)轉(zhuǎn)化為分數(shù)來計算,以確保運算精確性。

⑥程序設計中,由于矩陣對角化運算中,會臨時出現(xiàn)不同維數(shù)的數(shù)組,這樣動態(tài)數(shù)組就成了算法實現(xiàn)的關(guān)鍵之一,這需要反復調(diào)試、認真的處理,比如數(shù)組是定義在調(diào)用函數(shù)中,還是定義在被調(diào)用函數(shù)中,是需要具體處理的,否則會無故地損失內(nèi)存,我們的經(jīng)驗是,對于循環(huán)調(diào)用的情況,數(shù)組最好定義在調(diào)用函數(shù)中。

6 研究結(jié)果

經(jīng)過一年多的研究,我們完成了有理矩陣有理相似對角化、有理合同對角化、有理正交對角化的算法設計,三篇:①有理矩陣有理相似對角化的計算機實現(xiàn);②有理矩陣有理合同對角化的計算機實現(xiàn);③有理矩陣有理正交對角化的計算機實現(xiàn)。

并使用通用的、移植性好的C語言設計出程序,形成了一個方便、實用的有理矩陣對角化軟件。由于該軟件是在分數(shù)運算的基礎(chǔ)上設計的,所以使用該軟件能夠精確地解決有理矩陣在有理數(shù)域上的對角化問題。具體說軟件有以下三種功能:①有理矩陣有理相似對角化:對于有理矩陣A,判別有理矩陣A在有理數(shù)域上能否相似對角化,若能有理相似對角化,則輸出其對角矩陣及相應的變換矩陣P;若不能有理相似對角化,則輸出不能有理相似對角化的原因;②有理矩陣有理合同對角化:對于有理對稱矩陣A,求出其標準形及相應的變換矩陣P;③有理矩陣有理正交對角化:對于有理對稱矩陣A,首先判別有理矩陣A在有理數(shù)域上能否偽正交對角化,若能,則求出相應的偽有理正交矩陣T及對角矩陣,然后再判別T能否在有理數(shù)域上單位化,若能,則將T單位化后得到正交矩陣U,同時輸出U與相應的對角陣;若T不能單位化,則輸出不能有理正交對角化的原因。

下面給出三個計算例子:

例1 有理相似對角化計算例子,對于矩陣

A=■

存在可逆矩陣P=■

使得P^(-1)AP=■

程序運行時間:0.375000秒。

例2 有理合同對角化例子,對于矩陣

A=■

存在可逆矩陣P=■

使得P’AP=■

程序運行時間:0.312000 秒。

例3 有理正交對角化對于矩陣A=■

存在偽有理正交矩陣T=■

使得T^(-1)AT=■

進而,又存在有理正交矩陣U=■

使得U’AU=■

即A可以有理正交對角化。

程序運行時間:0.407000秒。

7 結(jié)論

本課題通過設計有理矩陣在有理數(shù)域上的相似對角化、合同對角化和正交相似對角化的算法,應用C語言編寫相應的程序,設計出一個具有有理矩陣有理對角化功能的軟件,為有關(guān)領(lǐng)域的學習、教學提供輔助工具。

但該軟件仍存在著些許不足,如大規(guī)模矩陣問題、大整數(shù)運算問題、控制數(shù)據(jù)運算結(jié)果溢出問題都需要繼續(xù)優(yōu)化,進一步提高軟件運算速度。

致謝:

感謝韓山師范學院王積社副教授的悉心指導!

參考文獻:

[1]計文軍,楊海彬,王艷華.基于MATLAB的實對稱矩陣對角化[J].內(nèi)江科技,2007(4).

第2篇

【關(guān)鍵字】程序設計 實驗教學 ACM

一、引言

近來年,隨著信息技術(shù)在社會各個應用領(lǐng)域的滲透和普及,程序設計類課程已經(jīng)發(fā)展為高校計算機教育的重點課程。理論教學與實驗教學是程序設計類課程的重要組成部分,其中,實驗教學是完整教學過程中的不可或缺的實踐性教學環(huán)節(jié)。實驗的目的不僅僅是為了驗證所編程序的正確與否,也是為了加深對程序設計語言知識的充分理解,更重要的是培養(yǎng)學生的實際操作能力和積累豐富的編程經(jīng)驗,從而引導他們利用程序設計語言編程來解決實際問題。基于此,本文對如何更好的進行程序設計類課程的實驗教學作一些探討。

二、現(xiàn)狀分析

目前,我校計算機學院開設了高級語言如C、C++等多門程序設計類課程,這些課程的共同目標就是讓學生通過上機實驗和課程設計來鞏固課堂上講解的語法規(guī)則和算法技巧,鍛煉編程能力。但是現(xiàn)有的程序設計類課程實驗教學存在著很多問題,導致整個教學效果得不到提高,與教學目標的要求不相符。本節(jié)將主要從三個方面對其存在的問題進行總結(jié):

2.1 實驗教學安排

我院程序設計類課程的上機實驗課時是有限的,一般都是每周安排兩個課時,或者最多四個課時,通常會在連續(xù)的幾周內(nèi)結(jié)束。由于一般程序的編寫和調(diào)試比較費時間,要是學生不事先做好充分的準備,僅僅靠在兩個課時內(nèi)去完成一個完整的程序編寫是不太可能的,對所學內(nèi)容也沒能充分理解,很難在課堂上培養(yǎng)學生的實際編程能力。

2.2 實驗教學內(nèi)容

我院專業(yè)實驗中心的機房環(huán)境是一個內(nèi)部的局域網(wǎng),不能連接到互聯(lián)網(wǎng),教師都是通過課件投影或屏幕廣播教學軟件來完成主要的實驗教學過程。實驗內(nèi)容基本卜^都是對課堂理論教學內(nèi)容進行驗證和實現(xiàn),學生按照教材或課件來完成實驗。整個的實驗教學環(huán)節(jié)中,教師根據(jù)實際的情況來選擇是否進行案例教學,而當前多數(shù)實驗教學過程中的案例所覆蓋的知識點范圍不夠理想,不能將新舊知識點都包含進來。案例陳舊,缺少更新,實用性和趣味性也不強,因此不能很好的激發(fā)學生的學習熱情,不利于培養(yǎng)學生的獨立思考和動手操作能力,未能達到教學目標的要求。

2.3 實驗教學考核

實驗課程主要是通過實驗報告中的程序編寫情況來考核的。由于時間有限,實驗報告的批改都是教師在課后另找時間檢查,教師往往只能通過紙質(zhì)的實驗報告來分析學生的程序,要求程序能正常通過,看到運行結(jié)果就可以了,而忽略了程序中的調(diào)試環(huán)節(jié),而這些環(huán)節(jié)中通常都是學生未掌握的知識點。這種考核方式不利于教師對學生學習情況的掌握,也不利于培養(yǎng)學生的創(chuàng)新能力。

三、ACM學習模式的特點

現(xiàn)在,隨著ACM國際大學生程序設計競賽(簡稱ACM)在高校中的推廣,越來越多的學生參與進來了。在迎接ACM競賽的學習過程中,形成了一種具有ACM競賽特點的學習模式,這種學習模式的特點如下:

l、ACM競賽所涉及的知識面十分廣泛,算法電極具復雜性。通常在平時的訓練過程中為了能深刻而透徹的理解各個知識點,教師會引入大量的案例教學。運用典型案例可以將學生帶人特定的問題進行案例分析,通過學生的獨立思考或團隊合作,進一步提高其解決具體問題的能力。

2、ACM競賽是通過在線測評系統(tǒng)上實時提交程序代碼,給出評判結(jié)果的競賽形式。ACM測評系統(tǒng)能夠?qū)崟r的給出參賽隊的排名情況和每道題的通過率以及通過人數(shù),教師可根據(jù)題目的通過率來掌握學生對知識點的學習情況,也可以反思其教學方法和教學內(nèi)容中存在的問題。

四、基于ACM模式的程序設計類課程實驗教學的做法

將ACM學習模式應用到我院現(xiàn)有的程序設計類課程實驗教學過程中,具體措施運用如下:

4.1 實驗課程的開設

我院高級語言(C、C++)程序設計實驗課程都是在大一這一學年開設的,大一第一學期是面向過程的C語言編程學習,大一第二學期是面向?qū)ο蟮腃++語言編程學習。這樣開課的結(jié)果就使得大多數(shù)學生連面向過程的編程都還沒有完全搞清楚,就直接跳到了面向?qū)ο蟮木幊蹋梢哉f整個大一學期都是處于混沌的編程狀態(tài)。因為對程序設計語言的思想和語法還沒完全掌握,所以很多學生不具備基本的編程能力,甚至對編程有恐懼感。為了解決這些問題,我們結(jié)合ACM的競賽模式來調(diào)整開課計劃,把原計劃2個學期的高級語言程序設計實驗課程的教學時間調(diào)整為5個學期,這樣可以貫穿整個計算機專業(yè)課的學習過程,從而將程序設計語言和其他計算機專業(yè)課的學習更好的結(jié)合起來,讓學生有時間去深刻地理解程序設計語言的思想和方法,不斷地鍛煉實踐操作能力和積累編程經(jīng)驗。

4.2 實驗內(nèi)容的選取和實驗課程的考核

對實驗環(huán)境來說,要求將我院專業(yè)實驗中心機房連接到我校的源程序在線測評(Onlinejudge,簡稱OJ)平臺上。根據(jù)程序設計類課程的實驗內(nèi)容和具體要求,每次實驗前,教師可以從我校或者其他高校的OJ平臺上的ACM競賽題庫中挑選或改造2-3個相關(guān)題目作為實驗內(nèi)容掛到我校的OJ上。在實驗課階段,由學生獨立完成或者自由組隊來編寫程序,調(diào)試程序,解決問題,編寫好的程序提交給OJ來判斷正確與否。通過每次實驗在OJ上完成的做題數(shù)量,教師可以由此掌握到學生對知識點的學習情況,對欠缺的知識點再給與重點講解。同時教師可以根據(jù)OJ上的排名很輕松的完成實驗課程的考核。學生也可以通過每次實驗的做題和排名情況,來檢查自己的學習方法和學習內(nèi)容,從而達到熟練掌握所學內(nèi)容的實驗教學目的。

第3篇

關(guān)鍵詞: C語言; 程序設計; 職業(yè)技能; 課程改革

中圖分類號:G424 文獻標志碼:A 文章編號:1006-8228(2015)05-54-02

Abstract: The traditional software development course, focus on programming skills and logical thinking ability, can not meet the needs from the human resource market. Based on the analysis of the existing problems of current software development course, combining with the teaching practice of C language program course, this paper propses a teaching reform scheme for occupation skill training, integrates the information system software mechanism into classroom teaching practice, and gives one example of teaching design. The practice proved that, the reformed teaching scheme improves the students' engineering ability to apply knowledge to solve practical problems.

Key words: C language; programming; occupation skill; course reform

0 引言

在國家“信息化帶動工業(yè)化”戰(zhàn)略指導下,企業(yè)信息化飛速發(fā)展,帶動了區(qū)域經(jīng)濟轉(zhuǎn)型和產(chǎn)業(yè)結(jié)構(gòu)升級,相關(guān)行業(yè)和企業(yè)對信息技術(shù)人才的綜合素質(zhì)能力要求越來越高,對從事信息技術(shù)應用型工作的技能型創(chuàng)新人才需求非常迫切[1]。高級語言程序設計作為高職院校信息技術(shù)專業(yè)的必修課,主要是面向編程技能和邏輯思維能力培養(yǎng),人才培養(yǎng)質(zhì)量和規(guī)格已遠不能滿足人才市場需求[2]。職業(yè)能力是人們從事其職業(yè)多種能力的綜合,也是高等職業(yè)教育的重點培養(yǎng)目標之一,主要指靈活運用知識解決實際問題的工程能力和動手能力。當前流行的C++、Java開發(fā)平臺運用,一般信息系統(tǒng),Android應用開發(fā),以及一些工具的應用和配置等,都離不開C語言的基礎(chǔ)知識。如果將職業(yè)能力培養(yǎng)注入到C語言程序設計的教學目標,從系統(tǒng)工程的角度,重新安排知識點的學習路徑,結(jié)合信息系統(tǒng)的建設、管理、運行、維護工作需求,增強實際應用技能和解決問題能力培養(yǎng),將有利于提高學生的學習積極性和第一任職技術(shù)能力培養(yǎng)。

1 面臨問題分析

C語言基礎(chǔ)知識普遍適用于當前流行的開發(fā)平臺,成為很多高職院校信息技術(shù)專業(yè)的必修課。但是,現(xiàn)有的C語言程序設計教學往往過多的關(guān)注結(jié)構(gòu)化程序設計方法,按照知識點的先后順序和難易程度講解程序的基本結(jié)構(gòu)[3],注重語言的各種語句、語法和命令,即便是列舉了一些典型例題,也僅僅是從編寫程序的角度幫助學生理解所講的內(nèi)容,無法達到靈活應用的教學目的,課程學習價值得不到充分發(fā)揮。

1.1 與應用需求脫節(jié)

很多學生畢業(yè)后認為程序設計課程教學安排不合理,37%的學生認為對就業(yè)沒有任何意義,20%的學生認為沒有掌握所學知識[4]。究其原因,是因為隨著計算機和互聯(lián)網(wǎng)應用的普及,人才需求兩極分化嚴重,大量的人才需求是信息系統(tǒng)管理、運行和維護人員,不需要開發(fā)系統(tǒng)而要懂得系統(tǒng)優(yōu)化配置、故障排除和客戶服務。對于高職教育而言,顯然應要求學生從技術(shù)上理解信息化系統(tǒng)的構(gòu)成和配置。

1.2 與技術(shù)發(fā)展不相適應

計算機技術(shù)已經(jīng)從一個高端的技術(shù)行業(yè)演變成一個工具,云計算、物聯(lián)網(wǎng)等新技術(shù)層出不窮,多數(shù)實際應用是利用第三方平臺進行二次開發(fā),只需調(diào)用相關(guān)的軟件構(gòu)件,通過圖形化的界面配置幾個參數(shù)就能實現(xiàn)簡單的應用。企業(yè)更關(guān)注人才解決實際應用問題的技術(shù)能力。單純的語句、語法教學模式已經(jīng)不能滿足技術(shù)發(fā)展需求。

1.3 與職業(yè)技術(shù)能力不匹配

對語法、命令掌握的技術(shù)壁壘很低,但是數(shù)據(jù)建模、抽象問題的解決能力需要系統(tǒng)的學習。學生通過程序設計課程學習,應該能夠真正理解掌握計算機軟件的內(nèi)在運行邏輯機理,而不是了解簡單的語言規(guī)范。現(xiàn)有授課模式下,學生只是被動的接受語法和語句,而不能真正掌握軟件的運行機理,也就無法轉(zhuǎn)化成自身的職業(yè)技術(shù)能力。

2 面向職業(yè)技能的教學改革方案

職業(yè)技能體現(xiàn)的是第一任職技術(shù)能力。要適應市場人才需求,轉(zhuǎn)變以傳授知識為主的理論教學為提升學生技術(shù)能力的應用教學。教學內(nèi)容要圍繞應用技能需求設計,提煉出共性的知識和應用范疇,提高學生對程序設計背后運行機理的掌握,培養(yǎng)學生提出問題、分析問題、解決問題的綜合能力。其教學強調(diào)在應用情景的驅(qū)動下,最大限度地調(diào)動學生的主觀能動性,探究完成任務或解決問題,增強創(chuàng)新實踐能力。

2.1 C語言應用現(xiàn)狀深度分析

根據(jù)來自CodeEval的編程語言統(tǒng)計數(shù)據(jù)分析,2013年開發(fā)者使用Object-C飆升了300%,C#增長了100%,JavaScript增長了33%,Java雖然降低了14%,仍保持在領(lǐng)先地位。國內(nèi)一些教育網(wǎng)站,則大量推崇Java編程、C#和Android應用開發(fā)。雖然已經(jīng)很少將標準C作為開發(fā)工具,但上述這些編程語言的基礎(chǔ)知識都在C語言程序設計教學中有體現(xiàn)。

2.2 教學改革思路

以就業(yè)第一任職技術(shù)能力為導向,突出程序運行機理分析和解決實際問題方法等應用內(nèi)容,提高施教的針對性。在教學計劃上,要依托學生在計算機組成和操作系統(tǒng)等相關(guān)課程上學到的知識,把軟件系統(tǒng)運行機理融入到程序設計,增強C語言程序設計授課的有效性。在教學目標上,在掌握C語言編程基本規(guī)則的基礎(chǔ)上,適當增加軟件系統(tǒng)管理、配置和優(yōu)化。在教學重點上,圍繞編寫、調(diào)試和配置一個實用、規(guī)范、可讀性的程序,靈活運用任務驅(qū)動和項目教學法,由簡單到復雜,逐步涵蓋C語言的基本語法、編程知識點,涵蓋實際運行維護各項流程,設計并實施一系列完整的項目,充分發(fā)掘?qū)W生的創(chuàng)造潛能,提高學生解決實際問題的綜合能力。

2.3 課程教學方案設計

改革后的C語言程序設計課程,以學習項目為知識載體,以項目導向活動作為課堂教學的主要形式,突出項目開發(fā)過程中的管理、運行、維護等能力培養(yǎng)。教師要充分利用自身的知識能力優(yōu)勢,分析就業(yè)市場需求,定位課程崗位能力培養(yǎng)目標,在教學設計時突出對學生的專業(yè)技能、項目經(jīng)驗、職業(yè)素質(zhì)等方面的訓練。課程設計通常包括:設計項目、分解任務、協(xié)作開發(fā)、應用評價、迭代升級五個環(huán)節(jié)。首先,要對項目開發(fā)的相關(guān)技術(shù)進行概況式介紹,包括開發(fā)環(huán)境搭建、項目背景、任務要求。設計項目要由簡到繁,前后關(guān)聯(lián),遞進完善,將C語言程序設計的知識點融入到一系列項目中;分解任務,要成立項目小組,對應項目開發(fā)中的項目管理、系統(tǒng)分析員、程序員、測試員和運行維護人員等角色,輪流完成指定任務;協(xié)作開發(fā)就是創(chuàng)建仿真工作任務,采用任務驅(qū)動調(diào)動學生的積極主動性,由項目小組獨立完成任務;應用評價要組織對一次任務完成情況進行研討,分析下一次項目迭代升級方案,繼而開展項目的迭代升級。

3 課程教學設計方法案例

精心設計課堂實例是教學內(nèi)容的關(guān)鍵。仿真項目的安排,應該遵循課程內(nèi)容之間的內(nèi)在邏輯關(guān)系,充分包含課程知識點,完成相關(guān)應用知識和技能的掌握。

3.1 項目設計

讓學生充分了解當前常用的C語言開發(fā)平臺,在此基礎(chǔ)上搭建TC2.0開發(fā)環(huán)境,研討應用軟件的安裝配置基本要求,培養(yǎng)學生的項目建設能力,將其作為學生從事信息技術(shù)應用的基本技能。例如每五人分為一個仿真任務工作組,完成一個“找出最大數(shù)”的應用程序編寫。其中每個人輪流擔任項目管理,負責溝通協(xié)調(diào)項目開發(fā)中出現(xiàn)的問題,匯總系統(tǒng)分析員、程序員、測試員和運行維護人員文檔,撰寫項目報告。要求學生在程序設計過程中,不只是完成某一功能,還要分析每一行語句的應用場景,通過查找資料,轉(zhuǎn)化為應用技能。下面例子中,重點是注釋中的應用說明,拓展學生的知識點。

#include //C語言調(diào)用的頭文件,實現(xiàn)對已有函數(shù)的引用,

可根據(jù)需要選擇。C#、Java也有類似作用的package。這是實現(xiàn)程序復用的主要途徑。

int main(void) //主程序,必須存在,是系統(tǒng)調(diào)用軟件進程的入口。

Windows、Linux操作系統(tǒng)管理進程的入口,也可實現(xiàn)程序之間的調(diào)用和通信。本程序涉及了int和void變量類型,int類型數(shù)據(jù)在實際應用中可以用來表示一些整數(shù)如職員序號等。

{ //C程序的分段標識,以C為基礎(chǔ)發(fā)展起來的程序大多以此為標識。

int i,j,k,t; //定義變量,要放在函數(shù)的最前面。主要是要考慮具體應用的對象屬性。

printf(“input 3 number(exp:12 32 34):”); //輸出顯示,一方面

是調(diào)用已有的程序模塊,二是實現(xiàn)程序界面的交互,當前主要是圖形化交互界面,但在工業(yè)控制上還有一些字符型交互界面,主要取決于具體的應用場景。

scanf(“%d %d %d”,&i,&j,&k); //函數(shù)調(diào)用,接受鍵盤輸入。每個

應用程序都要通過與輸入輸出設備實現(xiàn)信息的收集,存到相應的內(nèi)存變量,然后進行處理。

t=i; //臨時存儲,計算機的功能之一就是存儲功能,很多實際應用

都需要將數(shù)據(jù)格式化后進行存儲處理。

if(j>t) t=j; //比較邏輯處理,完成功能要求,并存儲結(jié)果。

if(k>t) t=k;

printf(“\n The max number is :%d”,t); //函數(shù)調(diào)用,顯示結(jié)果。

由采用的函數(shù)決定什么方式來顯示結(jié)果。加格式符是為了顯示的人性化。

renturn 0; //向上層操作系統(tǒng)或調(diào)用程序返回運行結(jié)果,可以實

現(xiàn)應用間的銜接。

} //完成順序程序結(jié)構(gòu)的處理。

根據(jù)這一示例,學生分別完成程序設計、文檔編寫,并通過查閱相關(guān)資料,開展應用拓展分析。通過這個簡單的項目設計,能讓學生在學習C語言編程基本規(guī)則的基礎(chǔ)上,創(chuàng)建仿真工作任務,讓學生帶著任務學習,擁有學習的主動權(quán),帶動起學生的學習興趣。這個過程可以有效地拓展學生的應用技能。

3.2 項目評估

組織小組討論,引導學生分析項目存在的應用問題。該程序存在的主要問題,一是只能處理3個數(shù);二是程序不能重用;三是程序結(jié)果無法存儲。一個完整的用戶報告應包括提交問題報告和新的需求報告。通過學生的研討和書面報告,對學生的綜合素質(zhì)進行評價,并給出問題處理方法建議。

3.3 項目迭代

在項目評估問題的基礎(chǔ)上,提出項目迭代任務,一是進行輸入保護,采用循環(huán)的方式實現(xiàn)隨機個數(shù)數(shù)據(jù)輸入和比較,掌握循環(huán)結(jié)構(gòu)知識點;二是利用函數(shù)實現(xiàn)程序代碼級的重用,掌握函數(shù)知識點;三是實現(xiàn)數(shù)據(jù)文件寫入,掌握文件操作方法。教師講解示例,完成相關(guān)應用分析后,交予仿真任務工作組進行實踐開發(fā)。這樣就將枯燥的語法融入到了一個不斷完善的項目應用過程中,培養(yǎng)學生思考問題、解決問題的職業(yè)能力。

4 結(jié)束語

本文提出的C語言程序設計課程改革方案,以一個完整項目的迭代升級貫穿教學過程的始終,將編程知識點融入每次任務設計中,在任務驅(qū)動下提高學生學習的積極性和主動性,以仿真任務工作組提高學生溝通交流和實際工作能力,以應用拓展分析帶動職業(yè)技能提升。該方法通過近年來的課堂教學實踐,取得了較好的效果,學生在畢業(yè)實習階段就明顯得到了企業(yè)用人單位的認可,是一種適合于程序設計課程的教學方法。

參考文獻:

[1] 工業(yè)和信息化部中小企業(yè)司.中小企業(yè)信息化發(fā)展指南[M].機械工業(yè)出版社,2013.

[2] 朱殷勤,論高職計算機應用專業(yè)技能型創(chuàng)新人才培養(yǎng)[J].農(nóng)業(yè)網(wǎng)絡信息,2013.11:150-153

第4篇

關(guān)鍵詞:程序設計;學習模式;在線學習;自主學習;移動終端

DOIDOI:10.11907/rjdk.162141

中圖分類號:G433

文獻標識碼:A文章編號:1672-7800(2016)012-0193-04

0 引言

當前軟件人才培養(yǎng)的重要目標是有效提升學生的程序設計能力,使其擁有程序設計語言、數(shù)據(jù)結(jié)構(gòu)、算法、計算機理論、軟件工程等專業(yè)知識以及分析與解決實際問題的能力。常規(guī)的程序設計能力訓練以傳統(tǒng)課堂教學模式為主,側(cè)重于理論教學,強調(diào)應試教育,而忽視對學生學習興趣的培養(yǎng),通常使學生處于被動學習狀態(tài)。近年來,隨著ACM國際大學生程序設計競賽(ACM-ICPC)的發(fā)展,程序設計能力訓練能夠利用成熟的ACM-ICPC在線評判系統(tǒng),形成基于ACM-ICPC的程序設計學習模式。

該模式可激發(fā)學習者對程序設計的學習興趣,并幫助其提高程序設計水平[1]。

當前移動互聯(lián)網(wǎng)和移動終端設備已成為人們?nèi)粘W習、工作和生活中獲取信息的重要手段,以此形成的普適化學習模式讓人們的注意力中心回歸到要完成的學習本身,構(gòu)建出一個泛在的、隨時隨地可獲得的智能化教育體系[2]。本文為程序設計能力訓練設計了一種在線自主學習模式,研究將基于Web的ACM-ICPC在線評判系統(tǒng)[3]擴展至移動互聯(lián)網(wǎng)環(huán)境下的移動終端平臺,從而為學習者搭建起交流平臺,形成一種高效的普適化程序設計學習體系。

1 程序設計在線自主學習模式設計

網(wǎng)絡與信息技術(shù)的發(fā)展使程序設計學習可以突破時空限制,將現(xiàn)有的程序設計學習資源和平臺有機整合,有助于實現(xiàn)在線自主的學習方式。本文將程序設計在線自主學習模式劃分為課內(nèi)學習、課外學習兩個階段,如圖1所示。課內(nèi)學習階段主要適用于在校的程序設計學習者,要求提高實踐課時比例,增加自主學習內(nèi)容,因此采用適合在線學習的程序設計練習題目;課外學習階段適用于所有程序設計學習者,要求構(gòu)建課外學習在線資源,因此采用Web客戶端、移動終端等多樣化用戶端,并逐步構(gòu)建形成程序設計在線自主學習社區(qū)。

程序設計在線自主學習模式融合常規(guī)學習模式的優(yōu)點,利用現(xiàn)有移動互聯(lián)網(wǎng)和移動終端設備發(fā)展成果,使程序設計學習趨向于全天候在線及自主可控。課內(nèi)學習階段由課堂知識傳授模式發(fā)展到包括實踐學習、自主學習、在線學習等多樣化的綜合學習模式。課內(nèi)學習階段強調(diào)多樣化的用戶端,從個人自主學習模式逐步導向協(xié)作互助的社區(qū)學習模式。由此可見,程序設計在線自主學習模式為程序設計能力訓練提供了一個便捷、開放、互動的普適化程序設計學習平臺。

2 程序設計在線自主學習系統(tǒng)設計

程序設計在線自主學習模式的具體實施依賴于系統(tǒng)服務平臺、Web客戶端系統(tǒng)、移動終端系統(tǒng)以及普適化程序設計學習應用等,這些系統(tǒng)構(gòu)成了程序設計在線自主學習系統(tǒng),如圖2所示。

圖3給出了程序設計在線自主學習系統(tǒng)的功能。程序設計在線自主學習系統(tǒng)服務平臺可以使用現(xiàn)有的ACM-ICPC在線評判系統(tǒng)[1,4]。移動終端系統(tǒng)主要實現(xiàn)數(shù)據(jù)的獲取,與程序設計在線自主學習系統(tǒng)服務平臺進行交互,一方面利用網(wǎng)絡通過服務平臺獲取數(shù)據(jù),另一方面訪問本地數(shù)據(jù)庫讀取數(shù)據(jù)。與服務平臺進行交互時,采用HTTP協(xié)議進行通信以及JSON解析[5]。下面給出幾個重點功能模塊設計。

2.1 顯示題目列表

在程序設計在線自主學習移動終端系統(tǒng)中,顯示題目列表功能模塊包括題目列表界面設計、與服務平臺的交互設計。圖4給出了移動終端系統(tǒng)的顯示題目列表功能模塊類圖。

在程序設計在線自主學習系統(tǒng)服務平臺中,顯示題目列表獲取移動終端系統(tǒng)發(fā)送來的請求后,從數(shù)據(jù)庫獲取題目列表數(shù)據(jù),然后將這些數(shù)據(jù)以JSON對象的形式返回移動終端系統(tǒng)。圖5為服務平臺的顯示題目列表功能模塊類圖。

2.2 顯示代碼提交狀況功能模塊設計

移動終端系統(tǒng)的顯示代碼提交狀況功能模塊包括編輯代碼界面設計、提交代碼交互設計、代碼提交狀況顯示界面設計等。圖6給出了移動終端系統(tǒng)的顯示代碼提交狀況功能模塊類圖。

服務平臺的顯示代碼提交狀況功能模塊設計主要為獲取移動終端系統(tǒng)發(fā)送來的提交代碼,對這些代碼進行評判,再將評判結(jié)果保存到后臺數(shù)據(jù)庫中。圖7為服務平臺的顯示代碼提交狀況功能模塊類圖。

2.3 提示詞功能模塊設計

移動終端系統(tǒng)的提示詞功能模塊設計主要包括添加默認提示詞、添加自定義提示詞以及顯示提示詞。圖8為該功能模塊的類圖。

3 程序設計在線自主學習系統(tǒng)實現(xiàn)與測試

為實施程序設計在線自主學習模式,上一節(jié)詳細設計了程序設計在線自主學習系統(tǒng),下面給出該系統(tǒng)的具體實現(xiàn)過程,并進行系統(tǒng)測試。

3.1 系統(tǒng)實現(xiàn)

在程序設計在線自主學習系統(tǒng)實現(xiàn)中,系統(tǒng)服務平臺采用南京郵電大學的ACM程序設計在線評判系統(tǒng)(NOJ)[4],移動終端平臺采用Android[6],程序設計普適化應用包括在線開放練習、在線實時比賽、訓練交流等。以下為用戶提交代碼在系統(tǒng)服務平臺上的執(zhí)行情況示例:

Tomcat v7.0 Server at localhost [Apache Tomcat] C:\\Program Files\\Java\\jre7\\bin\\javaw.exe (2015年6月2日 下午2:18:06)

1241551 [http-bio-8080-exec-12] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1001

整數(shù)求和

1268658 [http-bio-8080-exec-9] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1

gao

1001

GCC_prompt

1683525 [http-bio-8080-exec-9] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1683637 [Thread-3] INFO com.nuaa.util.judge.JudgeWaiter-JudgeWaiter提前題目ff8080814db2ec16014 d30 5addc0001

1683795 [Thread-3] WARN com.nuaa.Hibernate.SolutionDAO-getting Solution instance with id: ff808081 4db 2ec16014d305addc0001

1683989 [Thread-3] WARN com.nuaa.Hibernate.SolutionDAO C getting Solution instance with user_name: gao

getting Solution instance with user_name: gao

1684093 [Thread-3] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1684093 [Thread-3] INFO com.nuaa.util.judge.Checker-開始評判--D:\\www\\AcmJudge\\ ff8080814db2ec16014 d305addc0001 1001 1 100 33600

1685739 [Thread-3] INFO com.nuaa.util.judge.Checker-評判結(jié)束

3.2 系統(tǒng)測試

下面對程序設計在線自主學習系統(tǒng)進行功能測試和在線自主學習模式的用戶使用測試。在系統(tǒng)功能測試中,表1是顯示代碼提交狀況的模塊用例表,該表用于測試系統(tǒng)是否能夠正確提供給用戶顯示代碼的運行結(jié)果。其它測試用例與之類似,所有功能測試結(jié)果均為“通過”。此外,根據(jù)在線自主學習模式的用戶使用測試報告,用戶對程序設計在線自主學習系統(tǒng)及其支持的在線自主學習模式普遍持有肯定意見。其中,74%以上的用戶使用Web客戶端、移動終端等多樣化用戶端登錄系統(tǒng);86%以上的用戶認為現(xiàn)在或未來需要在程序設計能力訓練中使用移動終端系統(tǒng);近94%的用戶認為程序設計在線自主學習系統(tǒng)實現(xiàn)了隨時隨地的普適化學習;85%以上的用戶認為

在線自主學習模式提高了程序設計學習的興趣和效率;近95%的用戶認為在線自主學習模式能夠提高或有時能夠提高程序設計學習的自主性。

4 結(jié)語

本文提出了一種在移動互聯(lián)網(wǎng)環(huán)境下的程序設計在線自主學習模式,該模式將程序設計能力訓練劃分為課內(nèi)學習和課外學習兩個階段,每一個階段都強調(diào)程序設計的在線學習、自主學習和社區(qū)協(xié)作學習,這種普適化學習體系由系統(tǒng)服務平臺、Web客戶端系統(tǒng)、移動終端系統(tǒng)以及具體學習應用等構(gòu)成。為此,本文設計與集成開發(fā)了一個程序設計在線自主學習系統(tǒng),該系統(tǒng)使用現(xiàn)有的ACM-ICPC在線評判系統(tǒng)作為系統(tǒng)服務平臺,支持包括Web客戶端、移動終端在內(nèi)的多樣化用戶端,實現(xiàn)了程序設計在線自主學習模式,有效提高了學習者的自主化程序設計能力訓練效率。

參考文獻:

[1] 陳志, 李夢澤, 馬嫣, 等. 基于 ACM 程序設計競賽的常規(guī)教學改革[J]. 電氣電子教學學報, 2011, 33(6): 18-20.

[2] PENA-AYALA A, CARDENAS L. A revision of the literature concerned with mobile, ubiquitous, and pervasive learning: a survey[C]. Switzerland: Springer International Publishing, 2016: 55-100.

[3] 蔡崇超. 基于 Web 的在線判題系統(tǒng)設計與實現(xiàn)[J]. 軟件導刊, 2016, 15(3): 107-109.

[4] 南京郵電大學. NOJ: NJUPT ACM online judge[EB/OL]. http://.

第5篇

關(guān)鍵詞:C++程序設計;獨立學院;教學改革

中圖分類號:G434文獻標識碼:A文章編號:1672-7800(2012)012-0220-02

1《C++程序設計》在計算機專業(yè)課設置中的重要性 《C++程序設計》就是應潮流與需求而進化的一門優(yōu)秀的程序設計語言。學生在前面學習了面向過程的《C語言程序設計》課程。C++語言是兼容C語言的。C語言的學習對學生掌握C++語言奠定了基礎(chǔ)。學習C++語言后再學習Java語言或C#語言就變得相對容易。體現(xiàn)了這門課程在教學中的作用和重要性。

2獨立學院學生學習《C++程序設計》課程存在的問題 (1)學生在剛開始學習C++語言時,感覺語法和C語言有很多類似的地方,但又有很多的不同點。針對兩種語言的很多知識點都容易混淆,教學過程中需要幫助學生區(qū)別這兩種語言,找到類似點幫助學習新的知識。

(2)針對獨立學院部分學生基礎(chǔ)較差的問題,教學中應該避免讓學生在學習程序語言課程時感到枯燥。如何提高課堂的教學效果,需要采用多種教學方法來活躍課堂,促使學生去思考問題。

(3)很多學生反映學習計算機語言的特點就是語法太多,很容易忘記,課后又疏于復習,所以掌握起來較難。教師需要通過課堂的控制督促學生進行預習與復習。

(4)實驗課程中對于教師布置的實驗題目,經(jīng)常是一部分學生在課堂內(nèi)難以完成實驗題目,而另外一部分學生提早做完了,課堂剩余時間沒有事干。這需要教師合理安排實驗的難易度,讓不同進度和不同能力的學生在實驗課堂內(nèi)都能夠很好地完成實驗。

(5)很多學生提出課程設計課的課時太短,難以完成課程設計的內(nèi)容,沒有留有足夠的思考設計時間來對程序進行優(yōu)化與改進。這需要教師把握課程設計的靈活性,既要留有足夠的時間給學生進行自主的設計,又不被課時所限。

3改進《C++程序設計》課程教學方案

3.1采用類比式教學法進行計算機語言教學

學生在學習了C語言的基礎(chǔ)上學習C++語言時,把C++與C語言進行對比,比較兩種計算機語言的相同點和類似點,找出不同點,能使學生快速掌握C++的基本語法。作為計算機語言,語法結(jié)構(gòu)都是很類似的,例如,都有變量與常量,但C++語言要求更為嚴格。

計算機語言既然稱為語言,就和自然語言也有共通點。計算機語言復雜性比較自然語言更為簡單。對于計算機系的學生,初次接觸計算機語言,對于語言基礎(chǔ)的部分,總覺得需要記住的瑣碎的語法很多。其實,與中文或英語相比這些語法是相當簡單的。

學會中文的語法和英語的語法,有助于掌握語言,但是,真正能夠?qū)懗龊玫奈恼拢枰氖钦Z言表達出好的思想。同樣,在程序設計課程中所有計算機語言的語法結(jié)構(gòu)都是很相似的。掌握了基本語法以后,最重要的是用好的編程思想來實現(xiàn)各種程序。計算機語言中定義的各種常量與變量,就好比英語中的單詞。在計算機語言中,通過運算符來連接各種常量與變量,組成表達式。在英語中,通過連詞來連接單詞,組成短語,多個短語組成句子。在英語中,一個或多個句子組成一個段落,用來表達一個中心思想。在計算機語言中,通過函數(shù)來完成某個功能,函數(shù)中包含若干條表達式。編程思想涉及很多算法,不同的算法能夠提高程序的運行效率,使得程序更為簡潔,提高程序的復用性。在英語中句子與句子間的關(guān)系,包括轉(zhuǎn)折結(jié)構(gòu)、并列結(jié)構(gòu)、假設結(jié)構(gòu)等。在計算機語言中,計算機語言控制結(jié)構(gòu)簡單得多,只有3種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

3.2啟發(fā)式教學法在C++語言課程中的應用

問題啟發(fā)是啟發(fā)式教學方法的重要途徑,問題本身的質(zhì)量是影響啟發(fā)式教學效果的重要因素。C++語言編程是采用面向?qū)ο蟮某绦蛟O計思想。但是,C++并不是純的面向?qū)ο蟪绦蛟O計語言。C++是兼容C語言的。這就意味著C++程序設計也是兼容面向過程的程序設計。面向?qū)ο蟮某绦蛟O計語言當然比面向過程的程序設計思想要好,但是,為什么C++ 必須兼容C語言?這種啟發(fā)式教學法促進學生去思考問題。有很多學生在學習《C++程序設計》特點時教師授課一帶而過。因為微軟公司原先有一部分產(chǎn)品是采用C語言編寫的,后期產(chǎn)品維護也需要微軟公司來提供服務,而對之前C語言編寫的產(chǎn)品,需要進行產(chǎn)品升級,也需要后續(xù)推出的C++產(chǎn)品作鋪墊。

3.3《C++程序設計》課堂教學控制

針對獨立學院學生思考問題和完成作業(yè)和實驗的主動性和自覺性較差的問題,教師在課堂教學過程中需要對課堂教學的過程進行控制與把握。為了促使學生進行課堂知識的鞏固與復習,在每次下課之前就布置一些關(guān)于本堂課程和下一堂課程內(nèi)容的思考題。在每次上課之前對這些思考題進行點名提問,并對上堂課重要的知識點進行回顧。這樣可使學生主動回憶上堂課程的內(nèi)容,并很自然地進入當堂課程內(nèi)容的學習。

3.4《C++程序設計》實驗課程的教學設置

《C++程序設計》課程實驗課的教學,在上機題目設置上應采用多種類型相結(jié)合,包括驗證型實驗、設計型實驗和綜合型實驗。每次實驗課之前布置上機實驗題目與要求,每次上機教師的主要工作是檢查所做的實驗內(nèi)容。上機題目分為4類,基礎(chǔ)題、應用題、設計題和選做題。選做題是針對于已經(jīng)完成了基本實驗內(nèi)容的基礎(chǔ)較好的學生,安排需要運用綜合知識點,并結(jié)合課外知識,完成難度較高的實驗題目。

3.5《C++程序設計》課程設計教學改革

《C++程序設計》課程學期末安排本課程的課程設計。《C++程序設計》課程一般在第三學期,課程設計在期末給出題目,學生利用寒假期間來完成課程設計的內(nèi)容。這樣的安排既給學生留有足夠的時間完成設計內(nèi)容,又能讓學生在假期復習鞏固專業(yè)知識。學生必須完成實驗內(nèi)容,提交課程設計實驗報告,以及系統(tǒng)實現(xiàn)源碼,以光盤形式提交。光盤文件應包含課程設計報告、源程序、編譯后的執(zhí)行程序,測試數(shù)據(jù)文件以及說明文件來說明安裝、運行、配置系統(tǒng)的注意事項。

課程設計采用團隊分組模式,可以培養(yǎng)學生的團隊意識。課程設計的考核在第四學期開始,進行分組提交課程設計作品,按照分組進行答辯,按照團隊綜合給分。

具體課程設計安排可以采用如下步驟:搜集設計課題的資料;總體方案設計(包括選用器件、原理圖的總體框架、程序的流程);數(shù)據(jù)結(jié)構(gòu)及算法的設計;編寫程序;調(diào)試程序,對設計方法及結(jié)果進行測試;編寫設計說明書;總結(jié)并書寫課程設計報告;答辯。

課程設計成績評定方法,按照百分制給分:①出勤、認真態(tài)度占10%;②設計方案的正確性占30%;③設計說明書內(nèi)容及規(guī)范程度占20%;④軟件正確性占30%;⑤答辯占10%。

3.6考核體系

《C++程序設計》課程考核的評分應該是綜合評分,在評分標準中應該強調(diào)編程能力及操作能力的要求。實驗及課程設計成績應該占總成績50%的分值。考試的最終總評成績中期末考試占50%,平時成績及實驗課成績占20%,課程設計占30%。

參考文獻:

[1]郭建宏.C++面向?qū)ο蟪绦蛟O計語言教學探討[J].遼寧高職學報,2008(2).

[2]袁柳,路綱.程序設計語言教學過程中的學生思維能力培養(yǎng)[J].計算機教育,2011(12).

[3]李學俊,李龍澍,徐怡.問題誘導啟發(fā)式程序設計語言教學方法[J].計算機教育,2010(16).

Research on Teaching Reform of C++ Programming

Course in Independent College

第6篇

由中南大學信息科學與工程學院承辦的湖南省大學生計算機程序設計競賽研討會于2009年5月9日在中南大學隆重召開!中南大學校本部民主樓小禮堂迎來了來自全省38所高等院校110名教務處領(lǐng)導及湖南省程序設計競賽教練與領(lǐng)隊。

湖南省教育廳高教處夏智倫處長、王文斌副處長出席會議并發(fā)表熱情洋溢的講話,中南大學信息學院院長、博士生導師桂衛(wèi)華教授代表承辦單位致歡迎詞。中南大學學校教務處陳立章副處長參加會議并講話。《計算機教育》雜志奚春雁主編參加了會議。

會上,清華大學博士生導師、全國ACM程序設計競賽總教練吳文虎教授作了精彩的專題報告“國際大學生ACM程序設計競賽”,受到與會代表們熱情歡迎。湖南省高教學會計算機教育專業(yè)委員會理事長、競賽專家組組長、中南大學信息學院副院長、博士生導師鄒北驥教授介紹并解讀了競賽新章程,與會代表踴躍發(fā)言,為把湖南省大學生計算機程序設計競賽推向一個新的階段獻計獻策,會場氣氛熱烈。 當天下午,省高教學會計算機教育專業(yè)委員會召開了第四屆常務理事第六次會議,會議就湘南學院籌備2009年學會年會情況、第五屆湖南省大學生計算機程序設計競賽安排以及與《計算機教育》雜志社合作、計算機學科教材建設、實驗室建設等相關(guān)事項進行了激烈的討論,形成了統(tǒng)一意見。

據(jù)悉,湖南省大學生計算機程序設計競賽(HunanCollegiate Programming Contest,簡稱HNCPC)由湖南省教育廳主辦,湖南省高教學會計算機教育專業(yè)委員會防辦。競賽每年舉辦一次,一年為一屆,力求將國際ACM大學生程序設計競賽引入校園,激發(fā)大學生開展計算機程序設計的興趣,培養(yǎng)大學生的創(chuàng)新能力、團隊合作精神和用計算機解決實際問題的能力,推動大學計算機基礎(chǔ)課程的教學改革,加強湖南省各高校大學生之間的交流和學習。

近年來,中南大學信息科學與工程學院在學校的正確領(lǐng)導和教務處的大力支持下,高度重視大學生程序設計競賽。2008年,學院共派出兩支隊伍,代表中南大學參加國際大學生ACM程序設計競賽,并雙雙獲得賽區(qū)銀獎。在歷屆省級競賽上也取得一系列優(yōu)異成績,為接下來的競賽奠定了良好的基礎(chǔ)。

第7篇

關(guān)鍵詞:計算機學科;實驗教學;教學改革

當前,培養(yǎng)適應社會發(fā)展、適應激烈科技競爭環(huán)境,且具有創(chuàng)新意識、創(chuàng)新能力的新一代高素質(zhì)人才,已成為我國高校人才培養(yǎng)的核心任務和神圣使命,而傳統(tǒng)的教學方式已經(jīng)不能適應這種新形勢的需要。

程序設計是計算機專業(yè)的基礎(chǔ)必修課,是本科學習的入門課程,熟練掌握程序設計是計算機學生應具備的最基本技能。打好程序設計編程基礎(chǔ),學生對后續(xù)專業(yè)課程的學習就會產(chǎn)生濃厚的興趣,這對學生的學習是無形的促進。實驗是程序設計學習過程中的重點,只有經(jīng)過編程實驗的磨練才能熟練掌握程序設計課程的技巧。計算機知識的學習一定與實驗結(jié)合,熟練掌握編程技巧是學生掌握理論知識、培養(yǎng)創(chuàng)新能力的關(guān)鍵,對學生畢業(yè)后走上工作崗位的持續(xù)性發(fā)展也會產(chǎn)生積極的影響。

改革程序設計教學,使之真正成為理論與實踐相結(jié)合的紐帶,成為培養(yǎng)實用性、創(chuàng)新性人才的平臺。我們應在科學發(fā)展觀的指導下解放思想,改變傳統(tǒng)的教學方式,努力構(gòu)建新型的教學機制。把培養(yǎng)目標定位在培養(yǎng)和訓練學生的動手操作和實驗設計能力,實施創(chuàng)新教育。學生不僅理論水平要高,實踐能力也要強。

1改革目標

2008年我院試行大類招生計劃,第一個學期是新生學習的基礎(chǔ)階段,我們要培養(yǎng)學生對專業(yè)的愛好,激發(fā)學習興趣,這一階段的程序設計實驗教學尤為重要。以前,實驗教學與理論教學聯(lián)系不緊密,程序設計的實驗教學也一樣,實驗教學學時少,教學內(nèi)容簡單,不重視實驗教學,理論與實驗脫節(jié),教學達不到理想效果。一年級新生由于高中時所在地區(qū)經(jīng)濟發(fā)展的差別,對所學的信息技術(shù)課程的內(nèi)容掌握程度不同,多數(shù)學生計算機的實際操作能力和編程能力普遍偏低,大多數(shù)同學只見過計算機,而沒有實際操作過。我們發(fā)現(xiàn)以往的學生如果在一年級時,沒有打好編程基礎(chǔ),后續(xù)課程需要編程序時則無從下手,也不了解如何進行調(diào)試、測試,后續(xù)的專業(yè)課程更無法入門,因此失去學習的興趣。這對他們今后幾年的學習會產(chǎn)生很大影響。另外,忽視程序設計實驗教學,還會制約學生日后創(chuàng)新思維的發(fā)展[1]。

針對上述問題,我們以培養(yǎng)和提高學生實驗學習能力、分析和解決問題能力,培養(yǎng)學生專業(yè)學習能力為目標,嘗試對實驗教學方法進行改革,盡快提高實驗操作水平偏低同學的操作能力,克服學生對編寫程序的恐懼心理,讓新生的編程能力得到實質(zhì)性的提高。

2改革思路

計算機實驗教學是計算機教學的一個重要組成部分,是培養(yǎng)學生創(chuàng)新能力、獨立工作能力和實踐能

作者簡介:黃荔(1963-),女,高級工程師,本科,研究方向為實踐教學;龐雄文(1972-),男,講師,博士,研究方向為軟件工程;徐永廣(1970-),男,實驗師,碩士,研究方向為實踐教學;司徒錫康(1949-),男,高級工程師,本科,研究方向為實踐教學。

力的主要途徑。當今計算機實驗教學的功能已由過去單一教學發(fā)展成為集教學、科研、開發(fā)研制為一體。因此,為了適應教學改革的形勢,必須深化計算機實驗教學的改革,加強計算機實驗室建設,最大限度地發(fā)揮其作用。另一方面,隨著高校教育體制改革的深化、學生群體時代特色的增強,強調(diào)以生為本,注重人文關(guān)懷和個性發(fā)展的教學模式將成為高校計算機實驗教學的必然選擇。

成功的教學改革應使學生在基本知識、基本方法、基本技能等方面都得到良好的訓練,并在潛移默化中培養(yǎng)學生的觀察力和思考習慣。實驗教學不僅要重視知識的綜合性與完整性,更要注重學生的創(chuàng)造性思維,增強學生的創(chuàng)造性能力[2]。為此,我們進行了以下的改革。

(1) 隊伍多元化:參與教學改革的成員來自同一學科和專業(yè),既有理論教學經(jīng)驗豐富的教學人員,也有長期從事實驗教學的教學人員,體現(xiàn)了教學與實驗交融、優(yōu)勢互補、教學方法滲透的特色。

(2) 內(nèi)容求變化:改變傳統(tǒng)的實驗教學依附于理論教學的內(nèi)容,建立一套適用新生基本技能學習的內(nèi)容體系,將理論教學和實驗教學有機聯(lián)系起來。

(3) 方法求創(chuàng)新:以一門實驗課程研究探索為基礎(chǔ),通過對過去的教學經(jīng)驗進行研究探索與實踐應用并行的方法,拓展為計算機方向適用并具有特色的實驗教學模式。

(4) 成果求突破:建立一個狠抓計算機專業(yè)基本功的教學模式,通過新的教學模式,對學生程序設計學習過程有一個科學、合理的描述,形成有助于學生終身發(fā)展的“程序設計實驗”課程教學大綱。

3改革內(nèi)容

針對原有教學模式中存在的“重理論、輕實踐,重教學,輕實驗”的情況,我們對原有的教學內(nèi)容進行整合,進行大膽而有效的改革嘗試,具體改革內(nèi)容如下。

3.1構(gòu)建新的教學體系

從根本上改變實驗教學依附理論教學的傳統(tǒng)觀念,將“計算機科學技術(shù)導論”和“高級語言程序設計”的實驗課合并為獨立課程來開設。形成新的實驗教學體系,為程序設計的后續(xù)實驗課程提供教改樣例。

按照我院計算機專業(yè)的特點,我們加強基礎(chǔ)專業(yè)能力的培養(yǎng),從強基礎(chǔ)、重實踐的指導思想出發(fā),總結(jié)以往學生學習的情況,在第一個學期開設32個學時的“計算機基礎(chǔ)實驗”課程。

3.2形成新的教學內(nèi)容

從學生實驗能力的培養(yǎng)出發(fā),有針對性地安排實驗教學內(nèi)容,對每次實驗課編寫具體的實驗教材,形成與理論教學既有機結(jié)合又相對獨立的教學內(nèi)容。整合后課程安排如下。

(1) 將“計算機基礎(chǔ)實驗“作為必修課程,總課時為32節(jié),安排1個學分。每周安排2節(jié)教學學時,以實驗教學方式進行教學。

(2) 要求預修課程有計算機科學技術(shù)導論、程序語言基礎(chǔ)(C++語言基礎(chǔ))。

(3) 課程授課面向?qū)ο罂梢允歉鲗I(yè)學習計算機基本操作和“C++程序設計“的學生,要求學生必須有一定的數(shù)學基礎(chǔ)。

(4) 明確教學目的與基本要求。“計算機基礎(chǔ)實驗”課程是計算機科學與技術(shù)、軟件工程、網(wǎng)絡工程專業(yè)的必修課程。本課程以實驗教學為主線,緊扣基礎(chǔ),循序漸進,面向編程應用。首先使學生掌握Windows 操作系統(tǒng)的基本使用、Office工具軟件的基本使用、網(wǎng)絡的基本使用,作為學生以后學習的鋪墊。接著通過對C++程序設計的教學,使學生能把理論上學到的C++程序設計的基本思想和方法結(jié)合到實踐編程中去,培養(yǎng)學生熟練掌握C++語言編程能力和解決實際問題的能力,培養(yǎng)學生無論以后在學習、工作中使用什么語言編程,都能靈活應用這些思想和方法的能力。為學生進一步學習其他專業(yè)課程和今后從事軟件開發(fā)工作打下堅實的基礎(chǔ)。

(5) 明確課程主要內(nèi)容、基本要求及學時分配。

實驗1:微機的基本操作(4學時)。

了解實驗課程的總體要求,掌握上機實驗的基本操作與步驟,了解Window操作系統(tǒng)的界面,掌握“計算機基礎(chǔ)實驗”實驗課程中涉及的基本軟件操作(包括Word、Excel 、PowerPoint及上網(wǎng)的基本知識)。

實驗2:VC++程序設計的入門基礎(chǔ)(4學時)。

掌握C++單文件應用程序的開發(fā)步驟,掌握C++單文件程序的輸入、編譯、鏈接和運行的過程。掌握標識常量和變量的定義方法、各種運算符的功能、表達式的運算。

實驗3:控制結(jié)構(gòu)程序設計(4學時)。

掌握三種程序控制結(jié)構(gòu)的程序設計和執(zhí)行過程。4學時中用0.5學時對計算機基本操作進行堂上作業(yè)檢查。

實驗4:函數(shù)、作用域(4學時)。

掌握函數(shù)的定義及其調(diào)用、參數(shù)的傳遞,變量存儲特性,作用域。

實驗5:程序設計小專題(4學時)。

綜合實驗2~4的程序設計方法,掌握程序設計方法的綜合運用。

實驗6:數(shù)組、結(jié)構(gòu)體、指針(4學時)。

掌握使用一維數(shù)組、二維數(shù)組的程序設計方法,了解結(jié)構(gòu)體的簡單編程方法,了解指針的簡單使用。

實驗7:程序設計大專題(綜合性實驗6學時)。

開發(fā)一個小型系統(tǒng)。了解程序開發(fā)環(huán)境調(diào)試工具的使用,掌握小型系統(tǒng)的開發(fā)過程,了解用該語言解決問題的方法。實驗涉及的內(nèi)容包含“程序語言基礎(chǔ)(C++語言)”的大部分知識點,主要包括三種基本的控制結(jié)構(gòu)、函數(shù)和函數(shù)調(diào)用、數(shù)組、結(jié)構(gòu)、指針,還有一些必要的知識點,包括Windows界面的程序開發(fā)、Windows API調(diào)用、Windows中的畫圖功能,需要學生了解這些涉及到類的聲明和調(diào)用的額外的知識點。

(6) 課程需要的實驗環(huán)境。

主要儀器設備,硬件有多媒體計算機;軟件有Windows 2000/2003/XP、Visual C++6.0;實驗時每人1臺設備。

3.3改變以往的教學形式

以實驗課堂上的教學和學生操作為主,以實驗室課后開放時間所進行不同難度的練習為輔,并以課內(nèi)課外相結(jié)合的方式對新生進行教學和培訓。

我們在實驗室方面作了調(diào)整,主要是抽調(diào)實驗教師專職擔任實驗教學,聘請本科畢業(yè)生做實驗管理和技術(shù)維護的工作,全天開放軟件實驗室讓學生在課余時間加強上機實踐和自己選擇上機題目,定期與學生溝通,了解教學和學生掌握知識的情況以便對教學進度和難度進行調(diào)整。

3.4構(gòu)建新的教學評價體系

構(gòu)建實驗考試題庫、考試軟件,在期末對學生進行實驗考試,作為實驗考核的一項重要內(nèi)容。

本課程期末進行實驗現(xiàn)場上機考試,成績按百分制計算。本課程總成績包含平時成績、綜合性實驗成績、期末考試成績[3],并按以下依據(jù)進行評價。

(1) 綜合性實驗成績根據(jù)學生程序設計大專題完成的效果和實驗報告給予評分。

(2) 平時成績根據(jù)學生基本實驗技能的掌握程度及學生的實驗報告給予評分。

(3) 綜合期末考試成績和上述各項平時成績,評定學生的總成績。學生總成績=50%的考試成績+20%大專題實驗+30%平時成績。

(4) 實驗報告要求學生全部使用計算機完成并提交電子版本的實驗報告。這是因為學生上機的實驗結(jié)果(程序)都已在機器上通過,學生可以方便地把實驗結(jié)果加入到實驗報告中,老師在批改實驗報告時也能及時驗證學生的實驗結(jié)果(程序)。學生在計算機上完成實驗報告的同時也是對“實驗1”內(nèi)容的復習鞏固。

(5) 注意提交電子版本作業(yè)的報告雷同問題,對抄襲引起的報告雷同問題,一經(jīng)發(fā)現(xiàn),嚴肅處理。

4改革的實施

為了使改革更有效地進行,在確定改革目標、思路和做法后,我們在2007級新生中做試點教學,并為2008年大類招生的人才培養(yǎng)做好準備,2008年新生正式按計算機基礎(chǔ)實驗課程安排教學。實施分如下幾個階段進行。

4.1專題研究

分析整理前幾年“計算機科學技術(shù)導論”和“高級語言程序設計”課程中實驗教學的內(nèi)容和教學方法,發(fā)現(xiàn)兩者關(guān)系密切,它們都是學生學習計算機專業(yè)內(nèi)容的入門課程。因此我們決定將兩門課程的實驗教學合二為一,作為一個新的實驗課程“計算機基礎(chǔ)實驗”,初步確定新實驗課程的教學方法和計劃。

4.2擬定教學計劃和內(nèi)容

分析兩門課程中實驗教學內(nèi)容的公共部分和不同部分,并加以整合,形成“計算機基礎(chǔ)實驗”課程教學的初步計劃、內(nèi)容和結(jié)構(gòu),課程有針對性地編排一系列對應的實驗以幫助學生鞏固課程內(nèi)容的學習,改變過去由教師完成理論教學后學生自行上機的做

法,并按計劃查找、收集、編寫有關(guān)的教學材料,在此基礎(chǔ)上編寫出與新的實驗課程相應的教學大綱和教材。

4.3探索與實踐

我們在2007年新生“程序設計實驗”課中試行新的教學計劃,學生按照“計算機基礎(chǔ)實驗”課程計劃進行實際上機操作,由于內(nèi)容和要求明確,學生較過去更能有針對性地進行操作,實際操作能力大大提高,更易于掌握相應的課程內(nèi)容,我們在試行過程中仍不斷探索和改進教學方法和手段。

作為一門新的課程,它和理論課程一樣,我們也將其實驗課程納入學校教學處的正式課程管理,期末考試安排在學校統(tǒng)一的考試周進行,學生成績由教務處統(tǒng)一管理。根據(jù)“計算機基礎(chǔ)實驗”課程的教學大綱要求,學生的實際操作能力需要以上機完成指定的內(nèi)容的形式進行考查,因此,我們在進行實驗教學的同時構(gòu)建實驗考試題庫,開發(fā)考試軟件,以適應新的課程的需要。

4.4實驗教學大綱的構(gòu)建

我們及時對2007級新生實施改革后的教學計劃、方法和手段進行總結(jié)。在此基礎(chǔ)上構(gòu)建這門實驗課程的教學大綱,修改考試題庫,修改、調(diào)試考試軟件,為2008年大類招生的教學改革實施做好準備。

4.5新實驗課程教學大綱的實施

我們在2008年大類招生的人才培養(yǎng)中實施新構(gòu)建的實驗課程教學大綱,用以驗證新教學大綱的合理性、適用性,并使用考試軟件對學生進行考核。在此基礎(chǔ)上,我們也再一次總結(jié)了這門實驗課程的教學方法和手段,修改教材,修改考試題庫,修改、調(diào)試考試軟件。

5結(jié)語

培養(yǎng)技術(shù)型和應用型專門人才是高等院校的目標和任務,為了完成此項目標和任務,我們對程序設計教學的改革方案和思路進行分析和探討,提出針對學生特點教學的新體系。自從教育部實施“質(zhì)量工程”以來,各高校根據(jù)本校人才培養(yǎng)的定位,大力進行實驗教學體系改革,將實驗教學與理論教學有機結(jié)合,而不是僅將其作為課堂教學的輔助環(huán)節(jié)。這樣的改革是提高實驗教學質(zhì)量,培養(yǎng)學生創(chuàng)新精神和實踐能力的重要基礎(chǔ)[4]。

實踐證明,重視教學體系改革,嚴格執(zhí)行教學要求,充分調(diào)動學生學習積極性,教學質(zhì)量就會明顯提高。高質(zhì)量的實驗教學不僅能培養(yǎng)學生嚴謹?shù)目茖W態(tài)度,也能提高學生獨立思考和獨立工作的能力。改革對教師提出更高的要求,只要我們扎扎實實地進行改革,就能完成新世紀賦予我們的歷史使命,為國家培養(yǎng)更多高素質(zhì)的應用型人才。

參考文獻:

[1] 喬憲遐,鄭焦. 網(wǎng)絡環(huán)境下非計算機專業(yè)“計算機操作技術(shù)”實驗教學改革的研究與實踐[J]. 實驗技術(shù)與管理,2009(3):207-209.

[2] 雷東升,鄭全英. 計算機專業(yè)實踐教學體系的改革與探討[J]. 黑龍江教育,2006(10):65-66.

[3] 衛(wèi)紹元,王彤,盧曼惠. 優(yōu)化實驗教學質(zhì)量監(jiān)控體系,提高實驗教學質(zhì)量[J]. 實驗技術(shù)與管理,2009(3):225-226.

[4] 單志龍. 淺談計算機專業(yè)實踐教學體系的改革[J]. 教科文匯, 2008(8):81-82.

Strengthening the Foundation and Practice of Programming Reforms and

Explorations of Programming Experimental Teaching

HUANG Li, PANG Xiong-wen, XU Yong-guang, SI TU Xi-kang

(School of Computer Science, South China Normal University, Guangzhou 510631,China)

第8篇

關(guān)鍵詞:C語言程序設計;算法設計;能力培養(yǎng);課程設置

《C語言程序設計》課程的教學目標著重培養(yǎng)非計算機專業(yè)學生使用計算機分析和解決實際問題的意識與方法。筆者在多年的C語言課程實踐教學活動中發(fā)現(xiàn),該門課程的教學普遍以知識的傳授為主,注重語言基本語法知識講解,輕視學生編程能力的培養(yǎng)。這種教學現(xiàn)狀導致很多學生只能考試,不能編程。這種教學現(xiàn)象的存在與課程的教學目標是完全相違的。為此本文提出了以算法設計能力、編程能力和自主學習能力培養(yǎng)為目標的課程教學方案。

1基于能力培養(yǎng)為目標的程序設計方案的實施

程序設計是為解決實際的某一問題而設計的一系列求解活動的描述,其實現(xiàn)的關(guān)鍵就是構(gòu)建出解決問題的算法。基于能力培養(yǎng)為目標的程序設計教學方案的實施,要拋棄傳統(tǒng)的復雜的語法細節(jié),以突出算法設計和編程能力為主要目標,并注重計算思維能力的培養(yǎng)。

1.1課程教學內(nèi)容設置

以能力培養(yǎng)為目標的教學,注重對學生分析實際問題、構(gòu)建算法、編程能力的培養(yǎng)。具體教學內(nèi)容安排如下:(1)詳細講解算法知識。算法是程序設計課程的靈魂,掌握常用算法知識對程序設計課程的學習可起到意想不到的效果。在程序設計基礎(chǔ)課程的教學中應樹立算法這一核心思想。首先通過自然語言的描述引入算法概念,強調(diào)結(jié)構(gòu)化程序設計中順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的重要地位。(2)略講基礎(chǔ)語法中的數(shù)據(jù)類型和數(shù)據(jù)的輸入與輸出方法。對于C語言基礎(chǔ)語法中的數(shù)據(jù)類型涉及到的繁瑣的數(shù)據(jù)存儲相關(guān)知識省略不講,簡化對數(shù)據(jù)類型自動轉(zhuǎn)換與強制轉(zhuǎn)換的討論。簡化數(shù)據(jù)輸入輸出方法,省略復雜的輸入輸出格式。通過順序結(jié)構(gòu)程序設計訓練,掌握最簡單的程序設計方法。(3)課程基礎(chǔ)語法知識的的核心集中在三大控制結(jié)構(gòu)、函數(shù)和數(shù)組。通過對大量的實際常用問題的算法設計,逐步建立問題求解一般過程。并通過對一些常見的算法的實現(xiàn),強化編程能力的訓練,使學生理解和掌握模塊化的程序設計方法。

1.2多元化教學方法的使用

基于能力培養(yǎng)為目標的程序設計課程教學,授課過程中應采用多元化的教學方法,如案例教學法、任務驅(qū)動教學、互動式教學等。在理論課的教學中重點嘗試使用了四段式互動式教學方法,該方法的實施由四個階段組成:模仿編程、讀程序、改寫程序和獨立編寫。模仿編程適用于程序設計的初學階段,采用類似書法學習中描紅的方法,只需要按照授課老師給的一些程序例題進行模仿編程。讀程序階段需要授課教師事先準備好大量的程序例題,讓學生逐行閱讀,并逐行添加注釋。改寫程序階段就是將一個已經(jīng)閱讀過的程序?qū)嵗貌煌绞竭M行實現(xiàn)。通過前面三個階段的反復訓練,學生已經(jīng)掌握了C語言基本語法知識,最后就是讓學生獨立分析問題編寫程序的訓練。與傳統(tǒng)教學方法相比,互動式教學方法有利于提高學生學習C語言程序設計的積極性,提高了程序設計課程學習的效率,可有效使學生從被動學習轉(zhuǎn)換為主動學習。

1.3課程實驗環(huán)節(jié)設置

改變C語言程序設計實驗課中傳統(tǒng)的“課前預習———課堂實驗———撰寫實驗報告”的三段串行模式,重視程序調(diào)試環(huán)節(jié)。以能力培養(yǎng)為目標的程序設計課程教學,應注重程序調(diào)試方法和調(diào)試能力培養(yǎng),要教會學生進行單步執(zhí)行、觀察數(shù)據(jù)變化、斷點設置等。在實驗課開設的初期,當遇到有學生請求教師進行排錯,授課教師要抓住機會,講解程序調(diào)試和查錯的方法,以使學生在實驗課的前期就能夠掌握程序調(diào)試的方法。在實驗課的教學過程中以培養(yǎng)學生能力為目標,使用了“結(jié)對編程”這一創(chuàng)新的教學模式。結(jié)對編程是指兩名同學肩并肩地坐在同一臺電腦前合作完成同一個程序設計。通過研究發(fā)現(xiàn),采用獨立編程的學生在實驗過程中遇到語法錯誤、邏輯錯誤總是習慣請教老師。然而采用結(jié)對編程的同學,在整個實驗期間則忙于廣泛與其他同學交流和討論,遇到問題時相互幫助,利用他們所學的知識積極解決問題。結(jié)對編程能夠提高程序設計質(zhì)量、減少程序代碼的錯誤、提高編程技巧、增強團隊之間的相互溝通、使每個參與者都能受益。

2實驗教學效果分析

在實施以能力培養(yǎng)為目標的程序設計教學方案之前,武漢生物工程學院開設的C語言課程,大多數(shù)學生的編程能力和算法設計能力較低,學生學習該門課程的積極性不高,課程的教學質(zhì)量偏低。通過改革方案的實施,在2012年秋季開始采用了以能力培養(yǎng)為目標的程序設計課程教學方案進行課程教學的開展,考試方式采用編程題占60%的試卷統(tǒng)一進行測試,近3年課程考試編程能力的結(jié)果分析見表1。從表1的數(shù)據(jù)分析可以看出,通過實施了以能力培養(yǎng)為目標的程序設計教學,授課教師認清了語言知識與編程能力之間的聯(lián)系。在課程教學中有意識的突出對學生編程能力的培養(yǎng),弱化了一些語言語法知識的講解。這種教學方式不僅有效的提高了學生課程的學習興趣,降低了課堂的流失率,還有效的提高了學生的算法構(gòu)建、程序調(diào)試和編程能力的提高,考核效果較好。

3總結(jié)

以能力培養(yǎng)為目標的課程教學方案的使用,有效的改善了傳統(tǒng)C語言教學偏重語言語法知識,忽視編程能力培養(yǎng)的教學誤區(qū)。以能力為目標的程序設計課程教學,重在學生編程能力的培養(yǎng)。在保證能夠描述算法的前提下簡化語言的語法知識,改進教學方法、改革課程考核方法,總體提高了學生學習C語言程序設計課程的興趣,取得了較好的教學效果。

參考文獻

1李麗萍,王冬梅.C語言教學改革的探索與實踐[J].遼寧工業(yè)大學學報,2009(2)

2王孝平,董秀成,謝維成.電器信息類專業(yè)高級程序設計教學內(nèi)容和方法的探索與實踐[J].武漢大學學報(理學版),2012(S2)

3袁紅照,關(guān)涌濤.程序設計教學中結(jié)對編程的實踐和效能分析[J].安陽師范學院學報,2011(5)

4詹英,王黎征.結(jié)對編程在程序設計課程實踐教學中的應用[J].南陽理工學院學報,2009(3)

第9篇

關(guān)鍵詞:建構(gòu)主義理論;程序設計;教學結(jié)構(gòu);創(chuàng)新人才

中圖分類號:G64文獻標識碼:B

文章編號:1672-5913(2007)02-0023-04

1 引言

計算機教育是高等教育的基礎(chǔ)之一,而程序設計基礎(chǔ)是一門十分重要的計算機基礎(chǔ)課程。運用現(xiàn)代教育技術(shù)的先進理論──建構(gòu)主義理論構(gòu)建程序設計基礎(chǔ)的新型教學結(jié)構(gòu),不僅有利于程序設計基礎(chǔ)學科的自身建設,更有利于培養(yǎng)和提高廣大學生的創(chuàng)新思維、創(chuàng)新能力。

2 建構(gòu)主義理論

建構(gòu)主義理論是當今國際教育界影響較大,并日益顯示其強大生命力的一種新的、較成熟的教育理論,它對于我們深入教育改革、進行學科教育研究等都有重要的借鑒和啟示作用。建構(gòu)主義理論的核心觀點是:人作為認知主體對知識的獲取不是被動地接受、而是主動加工建構(gòu)的,即學習知識是“認知主體”的內(nèi)部心理過程,并把學習者看作是“信息加工主體”,而不再是“刺激──反應”的行為過程,而把學習者看作對外部刺激作出被動反應的“知識灌輸對象”。也就是說,學習是學習者在原有知識的基礎(chǔ)上借助外來信息、通過雙向、交互作用來加工建構(gòu)的認知過程,用一句話可概括為:以學生為中心,強調(diào)學生對知識的主動探索、主動發(fā)現(xiàn)和對所學知識意義的主動建構(gòu)(而不是像傳統(tǒng)教學那樣,只是把知識從教師頭腦中傳送到學生的筆記本上)。因此,建構(gòu)主義理論的主要目的是讓學生自主建構(gòu)自身知識,教師只是起到通過科學的教學方法和手段幫助學生積極主動完成知識建

構(gòu)的輔助、指導作用。

3 運用建構(gòu)主義理論構(gòu)建程序設計基礎(chǔ)的新型教學結(jié)構(gòu)

3.1程序設計基礎(chǔ)的傳統(tǒng)教學結(jié)構(gòu)

程序設計基礎(chǔ)的傳統(tǒng)教學結(jié)構(gòu)是以教師為中心,教師講、學生聽,主要靠教師向?qū)W生灌輸知識,作為認知主體的學生在教學過程中自始至終處于被動狀態(tài),難以發(fā)揮其主動性、積極性。這樣的教學,既不能保證教學的質(zhì)量與效率,又不利于培養(yǎng)學生的發(fā)散性思維、批判性思維和創(chuàng)造性思維,也不利于創(chuàng)造型人材的成長。在程序設計基礎(chǔ)的具體教學內(nèi)容安排上,過于注重語句、語法和一些細節(jié),基本上是以高級語言自身的體系為脈絡展開滿堂灌式的講解,沒有把邏輯和編程解題思路放在主體地位上;對如何分析問題和解決問題啟發(fā)和引導不夠,對學生的編程、上機解題的能力訓練不夠,直接導致學生普遍反映該課程枯燥難學,而且學過之后,不能用來很好地解決實際問題。在教學評價上,考試是“指揮棒”,它對教學目標、教學過程有著較大的負面影響,許多學生就是為了通過考試而學,學習過程中表現(xiàn)得十分被動,教師為了合格率而教,教學效果自然不好,也就更談不上學生創(chuàng)造思維、創(chuàng)造能力的培養(yǎng)了。

3.2運用建構(gòu)主義理論建構(gòu)程序設計基礎(chǔ)的新型教學結(jié)構(gòu)

運用建構(gòu)主義理論改革傳統(tǒng)的教學結(jié)構(gòu),構(gòu)建程序設計基礎(chǔ)的新型教學結(jié)構(gòu),可以從根本上提高教學質(zhì)量,真正培養(yǎng)和提高學生的計算機應用能力、實際操作能力,更有助于他們的創(chuàng)造性思維和創(chuàng)造性能力的發(fā)揮。

3.2.1構(gòu)建程序設計基礎(chǔ)的新型教學模式

運用建構(gòu)主義理論構(gòu)建程序設計基礎(chǔ)的新型教學模式就是要強調(diào)以學生為中心,將學生視為教學主體,設計和安排教學首先考慮學生的認知規(guī)律和學習特點,并在具體的教學過程甚至每一個環(huán)節(jié),都顧及到學生的實際情況,最大限度地激發(fā)學生的學習興趣,幫助學生形成學習動機;通過創(chuàng)設符合教學內(nèi)容要求的情境和提示新舊知識之間聯(lián)系的線索,幫助學生建構(gòu)當前所學知識的意義;為了使意義建構(gòu)更有效,教師應在可能的條件下組織協(xié)作學習(開展討論與交流),并對協(xié)作學習過程進行引導,使之朝有利于意義建構(gòu)的方向發(fā)展,最終引導學生實現(xiàn)主動學習,創(chuàng)造性地學習。有了這樣先進的教學理念,程序設計基礎(chǔ)的教學內(nèi)容安排就更趨于合理:以強調(diào)動手實踐、上機編程為切入點;以任務驅(qū)動方式,通過實例講授程序設計的基本概念和基本方法;并將授課重點放在程序設計的思路解析上,即在C/C++語言的環(huán)境下,針對問題進行分析,構(gòu)建數(shù)學模型,理出算法并編程實現(xiàn),努力提高學生分析、解決問題的能力,從中激發(fā)他們的創(chuàng)新意識,鍛煉他們的創(chuàng)新精神,培養(yǎng)他們的創(chuàng)新能力。為此,在日常的教學過程中,我們采取了如下的細化方案。

(1)采用雙語教學

程序設計基礎(chǔ)的課堂教學采用雙語(英語和漢語)授課。程序設計所選用的計算機語言(如C/C++)與自然語言(英語)很相似,采用雙語教學便于學生對計算機語言的理解和掌握,有利于進一步學習程序設計。教師通過適時、必要的雙語講解和提示,啟發(fā)和引導學生充分利用大學英語的語言背景,站在語言學習的基點來完成計算機語言及程序設計理論意義的建構(gòu),為順利實現(xiàn)與計算機的真正交流打下堅實的理論基礎(chǔ)。在此期間,學生作為主體直接參與教學,“外化”已學過的英語知識,并不斷產(chǎn)生正遷移,自己發(fā)現(xiàn)規(guī)律、自己去糾正和補充片面的認識,進而完善程序設計知識的建構(gòu);因此,學生的學習興趣和學習熱情、主動性和建構(gòu)性不斷被激發(fā),發(fā)散、逆向等創(chuàng)造型思維得以孕育和培養(yǎng)。學生完全是在一種“探索與發(fā)現(xiàn)”式的學習過程中,去積極主動地建構(gòu)自己的計算機語言和程序設計知識。

(2)強化學生動手實踐

強化學生動手實踐貫穿程序設計基礎(chǔ)的整個教學。教師明確告訴學生:程序設計是高強度的的腦力勞動,不是聽會的,也不是看會的,而是自己練會的。在整個教學中,始終讓學生直接參與思考、直接動手操作,鼓勵和支持他們在親自參與的實際操作中發(fā)現(xiàn)問題、解決問題,并積極啟發(fā)和引導學生把當前學習內(nèi)容所反映的事物盡量和自己已經(jīng)知道的事物相聯(lián)系,并對這種聯(lián)系加以認真思考,最終用探索、發(fā)現(xiàn)的方法建構(gòu)程序設計知識的意義。例如,每節(jié)課2/3的時間,學生都在教師的鼓勵和支持下,積極動腦去參與具體的實際操作,教師既不是簡單地指出學生的錯誤操作,也不是簡單地解答學生的提問和要求,而是啟發(fā)和激勵他們進行個性化的學習,讓學生自己積極主動進行所學知識意義的建構(gòu),最大限度地提高每一位學生的學習效率。除此之外,教師可將一些有較好編程基礎(chǔ)的學生組織起來,因材施教,引導他們進行探索式的研究性學習,讓他們繼續(xù)提高,同時還讓他們擔任“輔導員”,指導和幫助其他同學解決所遇的問題,通過“自我協(xié)商”與“相互協(xié)商”,提高建構(gòu)意義的效率和質(zhì)量,開拓學生的創(chuàng)新性思維。這期間,教師始終是教學過程的組織者、指導者、知識建構(gòu)的幫助者、促進者;學生則是積極、主動、快樂的學習者。

(3)培養(yǎng)理性思維,進行理性實踐

有的學者認為:

程序設計=計算機編程語言+數(shù)據(jù)結(jié)構(gòu)+算法

程序設計就是把用戶解決問題的方法思路(數(shù)據(jù)結(jié)構(gòu)和算法)用計算機能夠讀懂的語法格式表達出來,并通過運行來完成用戶問題的解答。計算機是由人發(fā)明的,是“人類通用的智力工具”,它的“思維模式”完全是人類思維模式的反映。因此,在程序設計基礎(chǔ)的教學中,教師有意識地將人的思維與程序設計的編程算法一一對照,引導學生不斷尋找兩者間的聯(lián)系,理性思維,從而積極主動地建構(gòu)起程序設計編程算法的理論和規(guī)律,并指導自己進行理性實踐。

例如,在課堂教學中,針對一些理論知識,如計算機語言的語法結(jié)構(gòu)及程序設計的算法等,教師可以利用5~10分鐘的時間,通過精煉、簡短的CAI雙語課件演示和講解,然后分別對比自然語言和人的思維,由感性認識上升到理性認識,啟發(fā)他們通過理性思維遞推和建構(gòu)起計算機語言的語法結(jié)構(gòu);面對一些程序設計的經(jīng)典實例,同樣對照人的自然思維,結(jié)合一些數(shù)學知識,引導他們理性地總結(jié)和建構(gòu)出程序設計編程算法的理論和規(guī)律,進而在具體的編程實戰(zhàn)中舉一反三,進行理性實踐。教師平時比較注意對學生學習方式的正確引導,讓他們明白:理論很重要,動手實踐更重要。要在理論指導下,動手動腦、有條有理地進行實踐。

因此,學生經(jīng)過這樣的理性思維和理性實踐,掌握了程序設計的技巧和方法,成功地解決了具體問題,獲得了成就感,進而對程序設計產(chǎn)生興趣,真正克服了學習程序設計的畏難情緒,學習起來也會更加從容。

(4)培養(yǎng)良好的編程習慣

程序除了寫給自己看,還要交流,良好的編程風格可以提高程序的可讀性、規(guī)范性、通用性。在日常教學中,教師應該注意對學生這方面習慣的培養(yǎng)。比如,教師可通過規(guī)范、嚴謹?shù)慕虒W課件展示聲明變量加注釋,程序構(gòu)思有說明,通過分析和調(diào)試典型的編程實例,讓學生學會有效地編寫程序、調(diào)試程序、優(yōu)化程序,并對程序的運行結(jié)果作出正確與否的判斷和分析,從而達到對學生良好編程素質(zhì)的培養(yǎng),也有助于學生嚴謹治學精神的塑造,這是建構(gòu)主義理論對教師在教學中進行學習情景設計的要求。

(5)培養(yǎng)和提高學習能力,創(chuàng)新能力

程序設計基礎(chǔ)是培養(yǎng)大學生學習能力、創(chuàng)新能力的大課堂。程序設計是一門實踐性極強的計算機學科,所學內(nèi)容與要求實踐的操作完全一致。因此,適當安排學生自學,有助于提高學生的自學能力。網(wǎng)絡平臺的搭建為學生提供了一個較好的學習環(huán)境,為此,教師在教學期間可以不時地設計一些能夠調(diào)動學生學習積極性的有關(guān)程序設計的最新問題,鼓勵他們通過網(wǎng)絡渠道學習和提高自己的程序設計能力,而且通過上網(wǎng)可以提高他們獲取信息、處理信息和交流信息的能力,有助于培養(yǎng)他們的批判性思維和創(chuàng)制性思維[4]。

總之,經(jīng)過近幾年程序設計基礎(chǔ)的教學實踐證明:這種新型的教學結(jié)構(gòu)產(chǎn)生了較好的教學效果,學生不僅掌握了程序設計的編程方法和技巧,還養(yǎng)成了良好的編程習慣,同時又培養(yǎng)了學生的創(chuàng)新思維能力和較強的動手實踐能力,得到了廣大學生的贊同。

3.2.2 構(gòu)建程序設計基礎(chǔ)的新型教學評價模式

運用建構(gòu)主義理論構(gòu)建程序設計基礎(chǔ)課程的新型教學評價模式,主張評價不能僅依據(jù)客觀的教學目標,還應該包括學習任務的整體性評價,學習參與度的評價等,即通過讓學生去實際完成一個真實的任務來檢驗學生學習結(jié)果的優(yōu)劣。而建構(gòu)主義主張學習是自我建構(gòu)知識意義的過程,因此,源于建構(gòu)觀的評價并不強調(diào)使用強化和行為控制工具,而較多使用自我分析和元認知工具。因此,程序設計基礎(chǔ)的新型評價模式既便于學生及時了解自己學習的進展情況、存在的問題等,以便能夠及時彌補知識漏洞,學生自主學習的積極性、創(chuàng)造性被調(diào)動和激發(fā),同時又能夠幫助教師及時調(diào)整和改進教學工作,最終促進教學質(zhì)量的提高。

(1)學生學習效果的評價

考試是檢驗學生學習效果、評價學生學習業(yè)績的重要環(huán)節(jié)。開課之初,我們就提醒同學:課程的考核方式是以上機考試取試,考試結(jié)果也由計算機評判,對就是對,錯就是錯,不紙上談兵,不考死記硬背的東西。這樣對學生的日常學習有一個正確的引導。然而,考試只是手段,不是最終目的,我們采用設計合理的階段測試系統(tǒng),對學生各階段的學習情況進行跟蹤測試,測試結(jié)果隨機給出,學生可以根據(jù)結(jié)果隨時調(diào)整和糾正這一階段的學習方式和方法,及時查漏補缺,進而積極主動、創(chuàng)造性地完成學習。

(2)教師教學效果的評價

設計開發(fā)科學的程序設計考試系統(tǒng),不僅可以實現(xiàn)考試功能,同時還可對考試結(jié)果進行評析,針對各位教師所教班級的考試結(jié)果給出相應的評估報告,實現(xiàn)學校對教師教學情況的監(jiān)控,進而對教師的教學予以指導,以提高程序設計的教學質(zhì)量,而教師本人也可根據(jù)評估報告及時調(diào)整自己的教學計劃和教學設計,進而摸索出符合教學規(guī)律、更能培養(yǎng)學生創(chuàng)造性思維和能力的教學方法,最大限度地提高教學效果。

4 結(jié)束語

不論是從國際還是從國內(nèi)的教學情況看,當前各級各類學校深化教學改革的關(guān)鍵都在于能否打破長期以來統(tǒng)治他們課堂的傳統(tǒng)教學模式。為了改變這種狀況,國內(nèi)外許多教育工作者、教育學家、教育技術(shù)專家多年來從理論與實踐兩個方面作了大量的研究與探索,建構(gòu)主義理論正是這種努力所取得的主要理論研究成果。廣大教師在具體的教學實踐中如何理論聯(lián)系實際,將之轉(zhuǎn)化成有效的教學方法和手段,還需要不懈地探索和開拓,最終才能使建構(gòu)主義理論成為我們深化教學改革的指導思想和批判傳統(tǒng)教育思想與教學觀念的銳利武器。

參考文獻:

[1]何克抗,李文光.教育技術(shù)學[M].北京:北京師范大學出版社,2005.

[2]馮忠良,伍新春,姚梅林,等.教育心理學[M]. 北京:人民教育出版社,2002.

[3]張建偉,孫燕青.建構(gòu)性學習[M]. 上海:上海教育出版社,2004.

第10篇

關(guān)鍵詞:程序設計課程;實驗教學改革;應用型本科院校;“雙主”教學設計;項目教學法

當前,應用型本科教育已成為高等教育體系發(fā)展完善的重要方面。與研究型本科教育所采取的“精英教育”思想不同,應用型本科教育的價值選擇已經(jīng)從社會本位過渡為市場本位,強調(diào)要從未來的人才市場需求出發(fā),實現(xiàn)高等教育的供給與就業(yè)市場需求之間的平衡,實現(xiàn)學術(shù)性教育與職業(yè)性教育之間的平衡。

程序設計課程是目前國內(nèi)大多數(shù)高校為本科生開設的計算機基礎(chǔ)課程,不但有較強的理論性,更具有較強的實踐性。實驗教學效果的好壞直接影響到整體的教學質(zhì)量和效果。在應用型本科人才培養(yǎng)背景下,程序設計類課程的實驗教學對于培養(yǎng)學生的思維能力、分析能力、實踐能力以及創(chuàng)新能力具有重要意義。

本文針對程序設計課程實驗教學的特點,結(jié)合應用型本科教育的人才培養(yǎng)目標,探索通過改革程序設計課程的實驗教學模式、內(nèi)容和方法,以提高實驗教學的質(zhì)量和效果。

1 面向應用型本科教育的教學設計

目前,應用型本科教育正處于發(fā)展初期,其相關(guān)的理論體系仍有待實踐的探索和驗證。

1.1 教育信息化的發(fā)展

教育信息化大致經(jīng)歷了以下三個發(fā)展階段:①CAI(computer-assisted instruction,計算機輔助教學)階段(20世紀60年代初~80年代中后期),其特征是利用計算機輔助教師開展教學活動,CAI課件多以演示型為主。②CAL(computer-assisted learning,計算機輔助學習)階段(20世紀80年代中后期~90年代中后期),其特征是輔助“教”轉(zhuǎn)向輔助“學”,利用計算機作為輔助學生學習的工具,如搜集資料、制定計劃、輔導答疑、對等討論和交流等。③(ITCfintegrating IT into the curriculum,信息技術(shù)與課程整合)階段(20世紀90年代中后期開始到現(xiàn)在),其特征是著重利用信息技術(shù)構(gòu)建理想的學習環(huán)境、全新的學習方式與教學方式,從而徹底改變傳統(tǒng)的教學結(jié)構(gòu)與教學模式。

1.2 建構(gòu)主義學習理論

建構(gòu)主義學習理論是一種“以學生為中心”的自主學習理論,最早由皮亞杰(J.Piaget)提出。但是直到20世紀90年代以后,由于多媒體與網(wǎng)絡技術(shù)的快速發(fā)展,建構(gòu)主義學習理論才得以在世界范圍產(chǎn)生重大影響,進而成為IITC階段實現(xiàn)“信息技術(shù)與課程整合”的重要理論基礎(chǔ)。在信息技術(shù)支持的教學環(huán)境下,通過建構(gòu)主義理論的正確指導,可以有效地培養(yǎng)青少年的創(chuàng)新精神、實踐能力與合作精神。

1.3 “主體-主導”教學設計

“以學為主”的教學設計有利于促進學生自主探究和創(chuàng)新精神培養(yǎng),但不利于系統(tǒng)傳授與掌握科學知識。而傳統(tǒng)的“以教為主”的教學設計恰好與之相反。所以,將“以學為主”的教學設計和“以教為主”的教學設計結(jié)合起來,形成了融合教師的“主導性”和學生的“主體性”的“雙主”教學設計。在“雙主”(即“主體-主導”)教學設計下,學生不是被動地接受教師所傳授的知識,而是在老師為其設置的學習情境下,提出問題,開展自主的學習,從而提高了學生的學習積極性。教師通過對學習者的學習活動進行有效的組織,來體現(xiàn)教師的主體性。以上特點正好適應于應用型本科程序設計課程的實驗教學的改革需要。

1.4 項目教學法

項目教學法是由美國教育家凱茲博士和加拿大教育家查德博士共同創(chuàng)建的一種以學生為主的活動教學法,它以項目驅(qū)動教學,學生在項目教學中以探索性學習為基礎(chǔ)。根據(jù)應用型本科的教學要求,融合企業(yè)的典型案例,重構(gòu)當前程序設計課程的實驗教學項目,將項目教學法系統(tǒng)地應用于實驗教學過程,將有利于培養(yǎng)大學生的學習能力和應用實踐能力。

2 程序設計課程實驗教學的現(xiàn)狀

長期以來,國內(nèi)高校的程序設計課程實驗教學環(huán)節(jié)存在嚴重不足,主要表現(xiàn)在:①現(xiàn)有的封閉型實驗教學體系存在結(jié)構(gòu)上的缺陷,學生的學習主動性無法充分發(fā)揮;②實驗教學成為理論教學的附屬,實驗內(nèi)容陳舊,與工程應用與實踐相脫離;③實驗方法落后,大多數(shù)實驗只是驗證理論知識,學生缺乏開展創(chuàng)新性和創(chuàng)造性實驗活動的平臺:④實驗管理水平落后;⑤實驗教學人員的專業(yè)素質(zhì)參差不齊。

以上不足制約了學生的思維能力、分析能力、實踐能力及創(chuàng)新能力的發(fā)展,使應用型本科院校人才‘培養(yǎng)目標的實現(xiàn)變得困難,從而亟需對程序設計課程的實驗教學進行改革。

3 程序設計課程的實驗教學改革

當前,以Internet為代表的網(wǎng)絡技術(shù)和以Web2.0為代表的軟件應用技術(shù)的迅速發(fā)展,使程序設計課程的“在線實驗”和“自主學習”成為可能,通過應用先進的教學設計思想改革現(xiàn)有的實驗教學模式、教學內(nèi)容和教學方法,將有利于應用型本科院校程序設計課程實驗教學的改革措施付諸實踐并不斷完善。

3.1 應用“雙主”思想重構(gòu)實驗教學模式

目前,國內(nèi)應用型本科院校開設了多門程序設計課程,以我校為例,主要包括高級語言程序設計(c)、面向?qū)ο蟪绦蛟O計(C++)、可視化程序設計(C#)和Web程序設計()等。針對當前實驗教學的不足,我校基于“雙主”教學設計思想,重新制定一套適用于程序設計課程的開放式實驗教學模式,如圖1所示。該模式利用網(wǎng)絡實驗教學形式,面向Web2.0環(huán)境構(gòu)建了一套支持個性化實驗教學、有利于培養(yǎng)學生自學能力與實踐創(chuàng)新能力的綜合實驗教學平臺;形成實驗教學的“閉環(huán)反饋”,貫穿學生的實驗前預習、實驗中協(xié)作和交流、實驗后總結(jié)這三個過程,調(diào)動實驗教學過程中學生作為“雙主體”之一的積極性,并充分發(fā)揮教師作為實驗活動組織者和參與者(非領(lǐng)導者)的作用。從而,適用應用型本科教育“培養(yǎng)實踐能力強,富有創(chuàng)新精神的高層次應用型人才”的需求。

3.2 融合項目教學法完善實驗教學方法和內(nèi)容

我校結(jié)合應用型本科教育的自身特點,以及IT企業(yè)發(fā)展的實際需求,在綜合實驗教學平臺中構(gòu)建了產(chǎn)學合作的教學環(huán)境,應用項目教學法完善程序設計課程的現(xiàn)有實驗教學方法和內(nèi)容。從情境、任務、組織、過程、資源和評價等方面研究實驗教學方法的設計要素;從情境設置、操作示范、獨立探索、確定項目、協(xié)作學習和學習評價等方面,給出實驗教學的一般教學步驟的指導性意見。通過校企合作,跟蹤IT企業(yè)的最新發(fā)展,按照IT職業(yè)活動的特點及要求設計 教學內(nèi)容;根據(jù)實際的工作任務,設計圍繞工作需求的新型實驗教學項目。

以Web程序設計課程的“網(wǎng)上商城開發(fā)”實驗項目為例,其教學設計如表1所示。

3.3 構(gòu)建面向Web2.0的綜合實驗教學平臺

根據(jù)“雙主”實驗教學模式和項目驅(qū)動的實驗教學特點,實現(xiàn)了一個Web2.0環(huán)境下,支持“在線實驗”和“自主學習”的程序設計課程實驗教學平臺,該平臺以著名的開源課程管理系統(tǒng)Moodlele為基礎(chǔ)平臺,通過集成在線評判系統(tǒng)和虛擬實驗室模塊,可為學生提供個性化實驗環(huán)境,支持開展創(chuàng)新型實驗教學活動,并可實現(xiàn)應用實踐案例的仿真運行。學生通過Internet可遠程訪問該平臺,實現(xiàn)“實驗前在線預習、實驗中協(xié)作和交流、實驗后提交總結(jié)報告”。教師可動態(tài)更新與管理實驗項目,從而滿足基于產(chǎn)學合作的實驗教學環(huán)境中實驗項目變化頻繁的需求。系統(tǒng)運行界面如圖2所示。

以Web程序設計課程為例,在教學過程中,Moodel系統(tǒng)的許多功能模塊(如Blog、Wiki、投票、聊天室、論壇、作業(yè)、測試等),均可以直接成為Web程序設計課程的實驗教學案例。通過精心設計實驗教學內(nèi)容,從而,使學生實現(xiàn)了“用中學”和“學中用”。以“網(wǎng)上商城開發(fā)”實驗為例,系統(tǒng)運行界面如圖3所示。

通過利用Moodle的“資源”和“活動”,教師可完成實驗教學設計:①設置“聊天”活動:允許學生在實驗過程中進行實時交流和溝通;②設置“投票”活動:允許學生評選“網(wǎng)上商城”動態(tài)分頁技術(shù)的最優(yōu)實現(xiàn)方案;③設置“Wiki”活動:以項目小組模式實現(xiàn)Serum中的“電子白板”支持:④設置“文本頁”資源:設計“實驗目標”項目;⑤設置“鏈接到文件或站點”資源:設計“實驗說明”、“實驗指導書”、“案例展示”、“歷屆優(yōu)秀作品展示”項目,這些項目均支持以Flash形式播放特定文件;⑥設置“作業(yè)”活動:以“離線活動項目”形式實現(xiàn)“實驗作業(yè)”的提交,以“高級文件上傳”形式實現(xiàn)“實驗報告”的提交。

第11篇

關(guān)鍵詞:獨立學院;C++程序設計;教學;任務驅(qū)動

中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)25-1484-02

Teaching Researches on the C++ Programming Course to Students Major CS in Independent Colleges

LUO Ai-jun

(Computer Science College of Yangtze University, Jingzhou 434023, China)

Abstract: Programming is a very important basic course to students major computer science, and the point is much more important in those independent colleges which pay more attention to training the students' practice ability. The paper aims at lots of problems exposed during the C++ Programming teaching in independent college, analyzes these problems and brings up some corresponding proposals.

Key words: Independent College; C++ Programming; Teaching; Task_driven

1 引言

隨著社會的飛速發(fā)展,在高等教育日漸大眾化的今天,用人單位對人才的要求也越來越高。各大專院校也因此紛紛即時根據(jù)社會的需求調(diào)整其人才培養(yǎng)目標,其中的獨立學院把其辦學思想定位于培養(yǎng)大批社會急需的應用型人才,非常強調(diào)學生動手實踐能力的培養(yǎng)。

程序設計長期以來一直是大學工科各專業(yè)的一門必修課程。尤其對于計算機相關(guān)專業(yè)而言,程序設計學習情況的好壞,對計算機相關(guān)專業(yè)后續(xù)課程的學習將會產(chǎn)生較大的影響。目前,無論是搞開發(fā)還是搞研究,對使用的程序設計語言有同樣高的要求:要求能有較好的可靠性,高效率,可以在不同平臺上移植,有盡可能多的標準化語言內(nèi)容,支持數(shù)據(jù)一致性,支持程序描述的簡潔與清晰,風格自然[1]。這些都是C++的外在特點,高校計算機相關(guān)專業(yè)大多采用C++作為程序設計教學語言,全國計算機等級考試也把C++作為考試的主要語種,因此做好這門課程的教學工作具有較大的現(xiàn)實意義。但目前教學工作中普遍存在教師覺得不好教,學生覺得不好學的問題,本文針對教學中出現(xiàn)的問題進行思考分析,并提出了相應的解決方案。

2 存在的問題

目前在教學過程當中主要存在以下幾個方面的問題:

(1)教學目的與學生的需求存在偏差,學生學習興趣較大,但信心不足。

C++程序設計教學的目的是向?qū)W生介紹計算機程序設計的基本知識。讓學生掌握C++基本語法及面向?qū)ο蟪绦蛟O計的基本方法與編程技巧;讓學生了解常用的算法和數(shù)據(jù)結(jié)構(gòu)知識,能根據(jù)給定的算法,選擇合適的數(shù)據(jù)結(jié)構(gòu)并編制出相應的程序。同時也為本專業(yè)后續(xù)其他課程的學習打下堅實的基礎(chǔ)。

對此學生們的需求又是什么呢?博客上的調(diào)查結(jié)果反映:約75%同學希望通過學習本課程能開發(fā)出一款實用小軟件。而我們課堂程序設計教學中甚至沒有涉及到WINDOWS編程,學生學完了以后還是不能動手寫程序。學生的需求與上述教學目的存在一定的偏差。

大部分同學對本課程興趣大,學習積極性高。但在學習一段時間后,隨著內(nèi)容的深入,難度的增大,便有同學出現(xiàn)了畏難情緒,甚至認為C比C++簡單,明顯地缺失信心。

(2)教師教學內(nèi)容和方法單一,師生互動不明顯。

教師教學停留在傳統(tǒng)的傳授課堂知識,對“師者,傳道、授業(yè)、解惑者也”的理解和認識尚未進一步更新。師生在課下的溝通互動不明顯,導致學生在學習過程中遇到的問題不能夠及時地得到解決,這在很大程度上,也影響到學生學習的主動性。隨著科技創(chuàng)新和知識更新速度的加快,我們的教學內(nèi)容和教學方法也不能停留在課堂教學45分鐘“老師講學生聽”這一舊的模式和舊的層次上。同時,我們面對的每一個學生基礎(chǔ)不盡一樣,學習理解知識的能力也不同,如果采用單一的教學方法,很顯然是違背“因材施教”的原則的。

(3)沒有充分發(fā)揮實驗教學的優(yōu)勢。

現(xiàn)在各高校大部分機房都已連入INTERNET,而互聯(lián)網(wǎng)絡對學生是一柄雙刃劍。如果上課合理利用網(wǎng)絡檢索所需資源,則有利于學習和掌握知識;反之,如果上課時間利用網(wǎng)絡看電影、聽MP3、玩小游戲,或者甚至相互拷貝作業(yè),則不僅沒有任何優(yōu)勢可言,反而是極有害于教學的。同時“互聯(lián)網(wǎng)”和“程序設計”二者誰對學生們的吸引力更大,這一點是不言而喻的,每次上機人數(shù)眾多,實驗指導教師監(jiān)控管理措施不易實施。

教師在實驗課上把精力放在指導學生調(diào)試程序上。作為初學者,學生們在程序調(diào)試中的問題層出不窮,只能被動地等待老師幫忙解決。有時教師還不得不重復解決相同的問題,課堂效率低下。傳統(tǒng)的“一問一答”的方式,已經(jīng)不再適合目前的實驗教學。

因此,在網(wǎng)絡技術(shù)越來越發(fā)達的今天,如何重新讓機房、讓實驗課發(fā)揮其應有的作用是擺在每一位計算機教育者面前殛待解決的問題。

3 解決的對策

3.1 選擇一本合適學生閱讀的經(jīng)典教材

要選擇一本好的教材,這看起來是一件很簡單的事情,似乎也不那么重要,因為現(xiàn)行各作者各出版社的教材上的內(nèi)容大多相差不大。的確,這是事實。然而,不光授課教師需要認真咀嚼教材,學生們也要認真閱讀教材。教師在講臺上講授,同時還要求學生能夠課下自己閱讀教材上的相關(guān)內(nèi)容。國內(nèi)引進的許多多影印版教材,在每一章節(jié)的課后都列出若干的參考文獻,引導有余力有興趣的學生去閱讀[5],既加深了學生對教材的理解,也拓展了學生的視野。一本好的教材,不一定是通俗讀物,需要有一定的難度。過高的難度可能讓學生望而生畏,但適當難度則可能激發(fā)學生更大的探索的興趣。

3.2 加大學生的興趣,增強學習的信心

興趣是最好的老師!如何培養(yǎng)學生對程序設計的興趣?當他們親自感受到計算機程序設計的對當今社會的巨大影響力,便可能對之產(chǎn)生濃厚的興趣。此外,還要讓他們認識到學習程序設計目的在于培養(yǎng)學生用計算機解決生產(chǎn)生活中的一些問題,當然首要就是本專業(yè)后續(xù)其他課程學習過程中的實際問題的能力。

不是說興趣高就意味著會編程了。眼高手低是學習過程中常出現(xiàn)的問題:他們對老師演示的內(nèi)容都認為很簡單,但讓自己做卻無從下手。有意識地鍛煉學生動手編程能力,并引導他們?nèi)〉贸晒Γ瑥某晒χ蝎@取更大的成就感和自信心,這將是他們在程序設計道路上繼續(xù)前進的巨大動力。例如,引導學生利用已學過的知識,編程實現(xiàn)簡單的數(shù)字圖像處理過程。雖然開始時會讓大家覺得有困難,比如其中大量陌生的庫函數(shù)讓人望而生畏,有時可能自己還要寫一些自定義函數(shù)。但只要做好指導工作并給予適當?shù)毓膭睿瑒t不僅能激發(fā)學生的興趣,還能鞏固所學的知識,而且可以在實踐中讓他們的思維能力得到提高、編程能力得到鍛煉、創(chuàng)新能力得到增強。

教師要付出足夠的耐心,想方設法提高學生的興趣和學習熱情,培養(yǎng)和提高他們的創(chuàng)新能力,增強學生們對學好本課程的信心。

3.3 把握教學重點,靈活采用教學方法,加大師生互動

算法設計是程序設計的核心。我們要將教學重點從C++基本語法轉(zhuǎn)移到算法設計上。有針對性地設計能綜合運用已學和將學相關(guān)知識點的實例,課程上多采用案例教學。即使是同一本教材,同一個算法案例,只要我們善于挖掘,也可以推陳出新,找出更易于學生理解和接受的講授方法。

針對不同的教學內(nèi)容,更要靈活采用教學方法。常用的教學方法有:類比教學法、啟發(fā)教學法、分步教學法、任務驅(qū)動法[4]等。而其中任務驅(qū)動法在C語言程序設計教學中運用較多、效果較好的一種。

除了傳統(tǒng)的師生互動方式外,我們還可以采用其他更靈活有效的方式。考慮到學生們課外在網(wǎng)絡上花費的時間較多,我們就可以充分利用學校的精品課程網(wǎng)站的網(wǎng)上答疑論壇子系統(tǒng),還可以利用各大門戶網(wǎng)站提供的免費博客系統(tǒng),二者都可以較好地解決課堂45分鐘以外的師生互動問題。在實際教學中,我們利用TOM BLOG進行師生溝通,也取得了很明顯的效果。

3.4 加強上機實驗指導,制訂上機任務,保證上機效果

(1) 程序設計課程本身實踐性較強,必須安排足夠的上機學時。同時還要精心設計每一次實驗內(nèi)容,讓學生每一次實驗都有明確的上機目的。

(2) 學生明確任務以后,應首先仔細思考,形成思路,再將思路描述成為C++代碼寫到實驗報告紙上,待形成完整的程序以后再輸入計算機中進行編譯。而不是一邊想,一邊輸入代碼。這樣既提高了效率,同時也提高學生思考問題的能力。

(3) 針對學生在編譯,鏈接過程中出現(xiàn)的錯誤或警告,教會學生使用調(diào)試工具。學生在調(diào)試中遇到的疑點和難點,及時給予必要的適當指導,主要是教給學生科學有效的調(diào)試方法,例如等價類劃分法、邊界值分析法、安插測試語句等。

(4) 實驗課結(jié)束時,每名學生必須上交比較規(guī)范的紙質(zhì)實驗報告(其中除包括程序的源代碼,輸入數(shù)據(jù),程序輸出結(jié)果外,還應重點包含程序調(diào)試過程,以及本次實驗體會),通過以上舉措來保證學生完成實驗任務。課程結(jié)業(yè)考試也必須包括學生上機編程能力考核。

(5) 課程結(jié)束以后,分組安排2周的課程設計。題目要具有一定的綜合性和較強的實用性,如學生信息管理系統(tǒng)等。要求學生經(jīng)過需求分析,軟件設計,編碼,測試等軟件開發(fā)的各階段,最后提交一個軟件原型及相關(guān)文檔。通過課程設計實踐,提高學生的軟件開發(fā)水平和合作能力,同時,還可使學生在以后的學習過程中,自覺將計算機技術(shù)應用到生產(chǎn)和研究過程中,真正做到學有所用。

在上機實驗環(huán)節(jié),教師要認真做好指導和督促,減少互聯(lián)網(wǎng)絡等對學生注意力的不良干擾,讓學生在規(guī)定時間內(nèi)完成指定任務,從而保證實驗教學效果。

4 結(jié)束語

本文提出了近幾年在獨立學院計算機專業(yè)《C++程序設計》教學過程中出現(xiàn)的問題,進行了思考和探索。對提出的方案在獨立2006,2007級計科、網(wǎng)絡專業(yè)本科學生中實施,較好地激發(fā)了學生的興趣,調(diào)動了學生的學習積極性,增強了學生的自信心,日常教學和計算機等級考試都取得了很好的效果。以上事實證明,只要教師教學目的明確,教材理解深入,教學方法靈活得當,師生加大互動,學生是可以輕松學好C++程序設計的。

參考文獻:

[1] 錢能. C++程序設計[M]. 北京:清華大學出版社,2005.

[2] 劉曉鋒, 吳亞娟. 計算機專業(yè)《C語言程序設計》教學與教學改革[J]. 四川師范學院學報, 2003(24):34-36.

[3] 孔垂柳,田地. 基于程序設計思想的C語言教學方案[J]. 吉林大學學報(信息科學版) , 2005,(S2):2.

第12篇

筆者下面以VB課程設計為例,淺談課程設計的一般過程。

(一)精心選題

精心選題,力求既要結(jié)合書本的知識,又要結(jié)合學生將來可能遇到的實際工作需要。

課程設計題目不宜過大,不切實際,使學生無從下手。題目要使學生在自己通過搜集資料及在指導教師的指導下能夠完成,使他們有成就感,增強他們學習的自信心。實踐證明題目多、可操作性強、趣味性強、實用性強,對開闊學生的視野、豐富學生的知識、提高學生的實踐能力有極大的好處。

我考慮到VB課程設計的特點以及每個學生不同的興趣愛好精選了十幾個題目,讓學生分組設計。

如文字編輯系統(tǒng),學生都學過Word等文字處理軟件,對它有較深的體會,那么文字處理軟件是怎么實現(xiàn)的呢?通過這個題目可使學生把以往所學專業(yè)知識和VB有機結(jié)合起來。又如古詩欣賞系統(tǒng),是專門為一些對文學感興趣的學生而設置的,這樣的題目設計能夠調(diào)動他們的積極性。除了以上題目外,還備以下題目:睡眠測試系統(tǒng)、設計計算器、設計電子賀年卡、窗體背景圖案系統(tǒng)、設計一個收款計算程序、密碼檢測、數(shù)據(jù)流動等。

(二)合理布置題目

在布置題目時,要根據(jù)具體情況進行處理。可采用分組的形式進行,避免多人同時做一個題目,導致重復勞動或抄襲現(xiàn)象的發(fā)生。

布置題目時采取先在黑板上以文字形式布置題目,讓學生先獨立思考,然后再在機器上布置題目即在機器上運行程序,讓學生直接看到運行后的效果。另外,教師一定要將每個題目都自己先完成,給出具體結(jié)果,使學生具有感性認識,增強他們的自信心。

在軟件開發(fā)中,實際上用戶要定制一個軟件時給出的往往只是文字或表格要求,即用戶需求,學生要將用戶的需求用計算機程序設計的形式表達出來,這就涉及到軟件開發(fā)的知識。在課程設計過程中我有意識地將軟件開發(fā)工程中的一些方法傳授給學生,使他們了解軟件開發(fā)的一般步驟和過程,這樣可以少走彎路。

在設計過程中,教師要盡量要求學生學會搜集資料,充分利用現(xiàn)代化工具,如上網(wǎng)搜集資料,到電腦公司去咨詢,到相關(guān)部門去了解情況。這樣有利于學生掌握第一手資料。

(三)操作要求

按照軟件開發(fā)技術(shù)的原則和方法進行課程設計,并采用結(jié)構(gòu)化或面向?qū)ο蟪绦蛟O計的原則和方法。對于課程設計可酌情選擇以下過程及文檔中重要的幾個即可:①問題定義。②可行性研究。從技術(shù)可行性、經(jīng)濟可行性、操作可行性來研究系統(tǒng)是否可行。③需求分析。確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。④總體設計。確定系統(tǒng)的具體實現(xiàn)方案,確定軟件的結(jié)構(gòu)。⑤詳細設計。設計出程序的“藍圖”,以后程序員將根據(jù)這個藍圖寫出實際的程序代碼。⑥編寫代碼(程序)。用某種程序設計語言書寫的程序。⑦軟件測試、調(diào)試運行。將所編寫好的程序和有關(guān)原始數(shù)據(jù)輸入到計算機中,不斷地對其進行調(diào)試運行(修改程序中存在的語法錯誤和邏輯錯誤),直到所設計程序達到設計要求。這部分工作量往往占軟件開發(fā)總工作量的40%。⑧軟件維護。此階段是軟件生命周期的最后一個階段,它處于系統(tǒng)投入生產(chǎn)性運行以后的時期中,因此不屬于系統(tǒng)開發(fā)過程(此步驟可省略)。軟件開發(fā)結(jié)束時,要對軟件評價。可從產(chǎn)品修改、產(chǎn)品轉(zhuǎn)移、產(chǎn)品運行三方面評價。⑨編寫文檔。一般情況下,軟件系統(tǒng)有如下文檔:可行性研究報告、項目開發(fā)計劃、需求規(guī)格說明書、概要設計說明書、詳細設計說明書、用戶操作手冊、測試計劃、測試分析報告、開發(fā)進度月報、項目開發(fā)總結(jié)報告、程序維護手冊、軟件問題報告、軟件修改報告、數(shù)據(jù)庫設計說明書。

主站蜘蛛池模板: 上林县| 卓尼县| 南陵县| 唐河县| 沿河| 南城县| 巩留县| 穆棱市| 本溪| 贵港市| 北京市| 云霄县| 凯里市| 福州市| 长岛县| 黄石市| 沙坪坝区| 信阳市| 宜宾县| 阜新| 绵竹市| 桃江县| 普格县| 英德市| 罗定市| 晋城| 社会| 静宁县| 兴业县| 宝清县| 永春县| 五常市| 江门市| 赣榆县| 基隆市| 安塞县| 郧西县| 洛南县| 梨树县| 仁布县| 唐河县|