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

0
首頁 精品范文 程序設計

程序設計

時間:2023-06-01 09:45:54

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

第1篇

1、Agent程序簡介

Agent是指駐留在環境中的自主執行動作,同時,與其他Agent進行交互合作從而達到設計需求的行為實體,其基本特征是駐留性以及自主性和社會性[1]。MAS即多Agent系統是由一組相互交互的Agent共同組成的綜合性Agent系統,且此系統因Agent本身的駐留性和自主性,對不同的網絡環境具有良好的適應能力。

2、MAS程序設計層次

2.1個體Agent層

軟件Agent是AOP中目標軟件系統的最基本的運行單元,由于Agent的自主性是其與其他程序設計實體相區別的最為主要特征,故如何實現并充分發揮Agent的自主性是面向Agent程序設計(AOP)的關鍵內容,包括Agent自助行為本質、Agent自主性變成的實現以及Agent的激勵和模型等方面。

2.2Agent交互層

對MAS進行分析可知,其內部的每個單元Agent并不是單獨存在和孤立封閉的,對不同的Agent單元來說,其所擁有的信息、資源以及知識等具有較強的局限性,因此,不同的Agent需要彼此進行交互方可實現MAS的軟件設計目標。此外,由于Agent具有較強的自主性,而傳統的OOP,即面向對象編程中,消息傳遞的機制難以對Agent單元的交互予以良好支持,所以,在交互層,AOP需要研究和解決的主要問題則是對Agent軟件的交互及其相關工作,通過建立支持Agent的社會交互機制,從而建立起MAS系統的社會互、協作的理論體系。

2.3環境層

無論是單一的Agent單元,還是由眾多Agent單元集成的MAS,其均會駐留在特定的環境當中,并通過同環境之間進行交互,實現對網絡環境產生影響的功能。首先,環境為Agent提供了在MAS中的生存條件與上下文;其次,環境又可充當一階的獨立構造對MAS系統的內部結構搭建予以支持,最終實現網絡環境內全部關注點的分離。

2.4多Agent組織層

由于Agent具有行為自主性,故為了保證MAS能夠協調運行,且保持運行目標的一致性,AOP需要向其提供相應機制,并對自主Agent的行為進行有序組織和管理。AOP在組織層需要對MAS中的Agent單元行為進行約束,并在多個Agent組織層當中,設計出對單元個體的行為進行約束的語言結構和框架,確保MAS整體目標的實現[2]。

3、MAS抽象及模型

3.1個體Agent層

AOP程序在個體Agent層設計和模型研究中的主要目的是幫助Agent實現自主決策行為而提供決策描述軟件,而Agent中構成的高層概念與抽象的核心是對Agent內部的決策部件進行描述,同時,建立起個體Agent的軟件模型,本節主要對個體Agent軟件模型中的認知型模型和知識型模型進行分析。認知型模型將Agent看作一個具體的認知系統,從目標、期望、規劃和意圖等認知科學與大眾心理學等學科角度出發,對Agent軟件的內部構成進行描述,通過姜恩柱BDI指數查詢和KARO邏輯框架,為Agent軟件個體行為的自主決策予以理論支持。知識型模型將Agent視為一個整體的知識系統,從信念、知識等AI領域中的抽象和概念出發,對Agent的內部構成進行描述,并通過借助邏輯工具以及知識推理與信念修改等相關辦法對個體Agent軟件的自主行為決策予以支持,幫助Agent實現決策的自主性。

3.2Agent交互層

AOP程序在Agent交互層的設計抽象與研究目的在于幫助個體Agent解決交互和協調的相關問題。核心是對Agent的交互進行正確的理解,并合理引用抽象與概念對不同Agent單元之間的交互予以支持。以基于事件和消息的Agent交互方式為例,對其交互過程進行說明。基于事件和消息的交互是指,Agent單元通過對相關事件和信息進行發送和接收進行的彼此交互,為實現此種交互,AOP語言特別提供了相應的語言結構來定義MAS中的事件和消息[3]。例如,ConcurrentMetate對Agent的顯示定義個體進行說明,允許其接收和發送顯示消息或時間,同時,借助廣播的方式幫助不同的Agent實現消息與事件的通信。

3.3環境層

AOP在環境層的程序設計抽象和模型研究目的在于對Agent環境進行討論,并分析構造Agent的環境和描述Agent與環境的交互關系。在MAS環境的抽象、模擬以及相關程序設計領域,可引入MAS規約語言和2APL等為Agent的環境構造和Agent與環境關系的交互予以支持。MAS規約語言,即Slabs以顯示的方式對Agent環境進行定義,內容如下:MAS中同某一Agent相關的一組Agent的集合統稱為Agent環境。而2APL則通過提出一種現實語言結構對MAS環境的描述予以支持,即對象狀態是環境狀態的具體描述,對象方法則描述了MAS中Agent能夠實際對環境進行作用的相關操作。

3.4多Agent組織層

AOP在多Agent組織層中程序設計與抽象模型研究的目的在于,為MAS中Agent行為的協調組織與調整提供有效的概念,進而從整體上確保MAS協調的一致性。以MAS中的團隊組織為例,對多Agent組織層的抽象設計展開分析。團隊組織將彼此之間互相協作,共同完成一項復雜任務。多個軟件Agent個體視為一個團隊,團隊模型通過將傳統軟件Agent的BDI模型進行擴展,在結合團隊規劃要素的基礎上,對MAS的團隊Agent模型進行建立與描述,以達到對Agent決策進行指導、約束的目的,從整體上實現不同Agent的合作。

4、結語

第2篇

作者:王海舜 蔣巍巍 劉師少 單位:浙江中醫藥大學信息技術學院

1依據課程內在聯系

構建軟件設計系列課程群構成學生程序設計能力的計算思維、算法設計、程序設計與實現和系統分析能力四個基本要素,關鍵是提高計算思維、抽象思維、邏輯思維的能力,一兩門孤立的語言或算法課程無法完成,這需要從系統工程的角度進行整體設計,組合相關的系列課程構成相應的教學和實踐系統,并有一個循序漸進的深入過程,這一過程一般需要經過知識的積累、程序設計課程學習、軟件開發實踐等不同的環節,也就是要經歷啟蒙入門,發展提高和開發應用三個階段[2]。通過貫穿大學四年的程序設計類課程的學習,學生在程序設計啟蒙入門、發展提高和開發應用的不同階段都能夠很好地達到各個階段的教學要求,形成良好的學習習慣,循序漸進、潛移默化地養成程序設計能力。因此,依據程序設計能力不同培養階段的教學規律,我們應選擇對學生程序設計能力培養有著關鍵作用的課程組成軟件設計類課程群,課程群的主要課程可由以下課程組成。1)啟蒙入門階段:計算機導論、程序設計基礎、面向對象程序設計等。2)發展提高階段:數據結構、面向對象程序設計、計算方法、數據庫基礎、軟件工程、Java程序設計等。3)開發應用階段:網絡程序設計、數據庫開發實踐、醫學信息學、信息系統設計、醫學圖象處理等。建設課程群的目的是把原本相對獨立的課程在教學過程中有機融合,前后課程互相呼應,逐步深化,把學生引入門。在課程群內涵建設中,按“點—線—面—體”的思路構建課程群框架,即以每門課程的主要知識點為基礎,把程序設計類主干課程串成前后有機銜接的教學“線”,在課程群的“面”上構建課內外相關的任務驅動學習激勵機制,最終形成軟件設計課程群的體系結構和系統化的程序設計類課程教學框架[4]。在具體實踐中,從分析課程群每門課程的知識點入手,從知識點內涵、教學要求、教學策略以及與前驅知識點和后續知識點關系等多個維度建立課程群中課程的知識架構的點、線關系,進而形成相關課程知識點前驅、后續知識點互相融合匯聚的知識面和課程體系。在此基礎上通過完善相關課程教學大綱,達到目標明確、層次分明、定位正確、強化基礎、拓寬專業知識面的應用型人才培養的要求。

2建立基于混合式學習的程序設計課程群教學模式

混合式學習(BlendingLearning)將傳統的課堂學習方式和數字化學習方式有機整合,根據程序設計能力培養的啟蒙入門、發展提高和開發應用不同階段教學特點,圍繞程序設計能力的“算法設計與分析能力、程序設計與實現能力和系統分析、開發能力”的遞進培養目標,從混合式學習課程導入機制、多元化的程序設計課程活動組織策略、課內外學習支持以及教學評價等四個教學環節,從啟蒙入門、發展提高、開發應用不同階段組織開展混合式學習[5-7]。2.1啟蒙入門階段從程序設計能力入門訓練入手,其重點在算法設計與分析能力的培養。針對大一、大二學生程序設計啟蒙課程主要有計算機導論、程序設計基礎等;教學圍繞基本知識點訓練編程思路、算法設計與分析方法,引導學生入門;教學活動組織中側重于以班集體為單位的理論和實驗教學,同時結合程序設計競賽、課程設計、大作業等開展課外編程學習;建立BB平臺、開發上線ZCMUOJ(ZhejiangChineseMedicalUniversityOnlinejudge:浙江中醫藥大學在線編譯)系統,使之成為程序設計階段課外學習平臺,把師生面對面及借助網絡和BB平臺的輔導相結合,通過檢查平時程序設計作業完成情況和程序代碼數量和質量,以及期末的現場程序設計實驗考試,進行學習成績綜合評價。2.2發展提高階段發展提高階段重點在程序設計與實現能力培養,從軟件工程的角度,研究從程序設計到軟件設計能力培養。本階段主要是針對大二、大三學生,主要課程有數據結構、面向對象程序設計、計算方法、數據庫基礎、軟件工程等;該階段的教學側重在程序設計的綜合性、整體性素養培養,綜合相關課程設計任務,以設計性、綜合性實驗為主,重點圍繞軟件開發的完整流程開展實踐,強調團隊分工與協作;以小組協作方式為主,根據各課程知識間的依賴特性從課程群的角度組織開展課程設計與假期實踐;同時,強化軟件集成開發環境(如VisualStudioTeamSystem、Eclipse等),版本控制工具(如CVS等)等協同開發環境的應用;教師的角色也隨之從“教”師變為“導”師,提供實踐思路與方法的指導,引導小組成員協作學習、角色扮演、討論交流;教學評價側重于程序開發、文檔撰寫、軟件評測、團隊協作等多個角度,通過小組自評、組間互評與教師評價等方式綜合考量。2.3開發應用階段開發應用階段重點在系統分析、開發能力培養,軟件團隊合作開發訓練,基于常用團隊協作軟件開發平臺的軟件開發訓練。針對大三、大四學生結合計算機應用領域,特別是我校醫學領域信息開發的優勢,從醫學信息學的角度,開展跨學科的醫療衛生信息化項目開發實踐。該階段課程群主要課程有醫學信息學、信息系統設計、Java程序設計、網絡程序設計、數據庫開發實踐、醫學數字圖象處理等;該階段以項目實訓、企業實踐為主,重點圍繞醫學信息工程軟件開發、網絡管理軟件、數據庫管理軟件開發等以及軟件測試等多種角色開展教學;以團隊分工協作的方式開展課程設計、項目實訓和科研項目開發,并與相關衛生信息化企業合作開展企業實踐,組織學生參與醫院信息化項目研發;由相關教師組成導師組,以客戶經理、項目經理等角色給予項目團隊方向、思路、策略的指導,教師參與并鼓勵學生借助網絡等相關資源共同研究解決完善相關問題;通過項目答辯的形式檢查實訓成果。

3以任務驅動的課內外程序設計推進機制

程序設計能力的培養,僅靠課內的教學是遠遠不夠的,需要建立完善的課外程序設計學習機制,激發學生學習積極性和學習潛力,為此,我們主要采取程序設計類課程布置的課外大作業、課程設計任務以及參與教師實際科研項目開發等多種途徑來驅動學生的課外參與程序設計能力訓練,同時建立多種形式的驗收講評和評價激勵機制,任務驅動與激勵機制的結合是引導學生課外開展程序設計一種有效措施[8]。3.1啟蒙入門階段以程序設計競賽為抓手在低年級學生的程序設計能力啟蒙入門階段,以實施課外程序設計競賽為抓手,從程序設計能力培養與訓練入手,根據程序設計能力的教學規律,建立不同難度、不同層次的課外程序設計訓練和競賽為主的學習激勵機制;設計開發適合我校學生特點的ZCMUOJ系統,使之成為學生參與程序設計的主要學習支持平臺。為了吸引同學參與課外程序設計,我們建立了周賽、月賽、學期比賽以及單挑賽等多種形式的程序設計競賽機制,刺激學生的參與興趣。平均每周組織一次程序設計周賽,每月組織一次個人單挑賽和團體月賽,每學年分別組織學院比賽和學校比賽,參與人員覆蓋了計算機專業一二年級70%學生。以程序設計競賽為主要抓手的程序設計能力培養使學生程序設計能力明顯提高,低年級學生完成課程設計的編程難度和代碼數量明顯提高,學習程序設計的興趣明顯上升,特別是在ACM比賽中,我校2011年浙江省ACM程序設計競賽中獲銅獎三項;2011年4月,我校在ACM-ICPC亞洲賽區晉級賽福州站比賽中獲銅獎1項,學校排名25位;在2011年9月第36屆ACM-ICPC國際大學生程序設計競賽亞洲區預賽大連站比賽中獲銅獎1項。3.2發展提高階段以課程設計為抓手大二和大三學生已初步掌握程序設計基礎,需要提高發展程序設計能力,突出軟件工程角度的軟件工程化開發能力的培養。軟件團隊合作開發訓練采用企業通用的集成開發環境和軟件版本控制工具進行軟件開發訓練。此階段主要采取相關課程的課程設計和二年級小學期的集中課程設計等多種形式實現程序設計。例如在“數據庫開發”課程中,采用案例教學,啟發學生開展課程設計,通過剖析數據庫開發案例,詳細展開需求分析、模型設計、程序設計、程序測試以及系統等各個環節的實現方法,引導學生從單一程序設計到較為復雜的軟件系統開發的過渡,培養學生軟件工程素養和軟件開發能力。3.3開發應用階段以項目開發為抓手大三和大四學生已經掌握了軟件開發的基礎,但需要更多的實際項目開發實踐,以便迅速提高軟件開發能力。對此,我們采取課程教學中的模擬項目開發和實際軟件項目開發相結合的激勵機制。針對全體學生,在后續的醫學信息學、信息系統設計等課程中開展模擬軟件工程開發全過程的程序設計。例如在醫學信息學課程教學中,把完成一個醫院信息系統子模塊設計開發作為貫穿于整個教學過程的任務,要求人人都參與項目開發,并且要用軟件工程的方法來實現項目開發。以班級為單位,開發醫院信息系統的一個子系統,模擬實際項目開發,分層管理,班級設立項目經理和技術總監,負責項目實施管理和技術管理,3至4人為一組,設立項目組長,負責項目模塊的開發,要求每組完成需求、概要設計、詳細設計和軟件測試四個文檔,并且結合醫院信息系統參觀調研,完善需求分析和設計。通過課程設計,嘗試對軟件設計全過程,特別是軟件開發團隊的合作,這對提高同學們軟件設計能力有很大的幫助。同時,在課程設計成果考核評價中,我們讓項目團隊中每個人上臺宣講自己所做的工作、演示系統,學生代表評分與教師評分相結合。自2005年級至2008年級,共五屆490名計算機專業的學生參加醫學信息學課程設計,共完成22個門診或住院子系統,100個子模塊。同時,通過公開招募考試等形式,召集一些軟件開發能力較強或學習能力較好的學生參加寒暑假教師的實際科研項目開發,并使之形成班級軟件開發的骨干力量,進一步帶動整個班級的軟件開發氛圍。

4結語

在實踐中,我們認識到程序設計能力培養是一個從啟蒙入門、發展提高到形成綜合軟件開發能力的循序漸進過程,在程序設計能力培養實踐中,我們根據程序設計能力培養的教學規律,依據課程內在聯系構建軟件設計類課程群架構,針對各個不同階段,制定培養對策,采取網絡混合式學習、任務驅動、競賽激勵等多種形式的教學策略,特別是注重營造學習程序設計的氛圍,激發學生主動學習的激情,在教學實踐中取得了較好的效果。

第3篇

【關鍵詞】程序設計 娛樂 興趣 好奇 生活

程序設計是職高計算機專業學生的必修內容,亦是學習計算機必須掌握的知識,通過學習程序設計課程培養學生發現問題、解決問題的能力,培養學生發展思維、學會學習、自主探究和合作交流的能力。同時,要學好計算機的相關課程,必須熟練掌握一門程序設計課程。然而,由于學生的個體差異,他們對于學習的態度、熱情程度、學習的方法、自主學習的策略的不同,直接影響學生學習程序設計的效果,特別是在實際教學中如果處理不當,就更加導致學生興趣喪失,挫折感增強,進而影響程序設計課程及其他相關課程的學習。那么,怎樣才能使學生不畏懼程序設計?怎樣使他們一直懷有濃厚的興趣?對這些問題,我嘗試寓娛樂于程序設計教學,讓學生在學習中體驗快樂、收獲成就感,下面就以我在教授數據庫程序設計VFP6.0過程中的幾個有趣的例題為例進行講解。

一、制作QQ動畫圖片――病毒效果圖片

初見這個時,可能會被嚇一大跳,以為自己真的中病毒了在安裝木馬病毒。其實,這并不是木馬病毒,不會傷害他人的電腦和數據。這是一款最新很熱門的QQ動畫圖片,把圖片發送給對方的時候,上面的字會一排排的依次顯示,效果很逼真,接收的人會以為真的同意執行下載接受木馬病毒的指令,進而很緊張,達到娛樂他人的目的。在數據庫程序設計VFP6.0中,在第四章講解分支語句之前要學習幾個標準的輸入輸出語句(又稱非格式化輸入輸出語句),其中一個是WAIT語句,WAIT語句的功能是接受單個字符和顯示信息,它的基本格式是:

WAIT[][T0][WINDOW][TIMEOUT]

如果按照傳統的方法講解,從語法功能到子句的運用,則同學們肯定覺得很枯燥必然聽得昏昏欲睡,因此我設計在這堂課一開始什么也不說就給同學們演示這副QO圖片的效果,必然會一石激起千層浪,同學們首先是一震撼進而激發他們強烈的好奇心,然后告訴他們通過一個命令就能夠完成這一效果,同學們學習的熱情必然空前高漲,借機展示例句:

WAIT“小慶要發送給您文件‘木馬病毒.exe(119IKB)’;

您是要接收(Y),另存為(A),還是謝絕(N)該文件”TIMEOUT 3

WAIT“您同意了接收文件‘木馬病毒.exe.重命名’,正:

在建立連接,如果要中止接收文件,清按取消”TJMEOUT 3

WAIT“文件‘木馬病毒.exe’已經發送完畢”TIMEOUT 3

WAIT“正在安裝‘木馬病毒exe’請稍候…” TIMEOUT 3

WAIT“安裝成功,重新啟動計算機后生效!”TIMEOUT 3

這樣先觀看效果對同學們感官造成巨大的視覺沖擊,再講解語法功能然后讓其自行編寫,這樣同學們有了濃厚興趣和親身的實踐體會必然對此知識接受的很快,并且印象深刻不易遺忘。

二、肯得基吃午餐

針對同學們喜歡吃快餐的特點,演示通過手持不同的金錢可以購買不同的肯得基食物,由于和實際生活緊緊相聯系,金錢的數日也和實際生活中獲取的食物一致,更加能夠激發同學們強烈的實踐心理、求知欲以及實物轉換成程序之后的巨大成就感,借著他們這股強烈的學習欲望引出程序,進而講解多分支選擇結構的語法結構和語法功能,這樣必然達到事半而功倍的效果。

三、超女選拔程序

這個年齡階段的學生都很喜歡追星,大多有自己喜歡的偶像,雖然我們不公開頌揚他們追星,但如果能善假于物,充分利用這些已有的資源為教學所用,也不失為“化腐朽為神奇”之舉。每年一度的超女快男比賽最受中學生們的熱捧,比賽期間,同學們茶余飯后談論的最多的就是選手的晉級問題,針對他們本身就感興趣這一特點,如果提出讓他們設計程序來抉擇超女們的命運,他們的參與性和熱情度必然空前高漲,就此引出循環結構并且引出結合表的程序設計的學習,同學們經過反復的實踐和修改就得出了以下程序。

第4篇

一、對教材中的“歌手大獎賽評分”程序進行拓展引伸,設計出比較智能多用途的程序

1.程序界面設計。新建一個標準exe工程,添加如表1所示的控件,并設置控件相應的屬性。(見附圖1)

表1 “時鐘的時針和分針重合的問題”程序用到的控件及其屬性說明

2.算法分析。① 請輸入這次大獎賽的滿分分數(如10分或100分等等)以及評委的人數,賦值給系統的公共變量public_min和public_i,這里要求事先定義好這兩個系統的公共變量。

系統公共變量的定義方法:單擊“工程”菜單,選擇“添加模塊”命令,在“Module1”框中輸入Public public_min As Single, public_i As Single即可。

② 輸入各評委的評分并計算。如果輸入的數值超過事先輸入的滿分的值,系統則提示:“出錯啦,分數超出范圍。”在這里,用到了For …Next循環語句和輸入函數InputBox(提示信息,標題,默認值,位置)和輸出函數MsgBox“”。

③ 輸出:去掉一個最高分和一個最低分后其余分數的平均分。

3.編寫事件過程。在“大獎賽評分系統”程序中,用戶單擊“請先輸入滿分和評委人數”按鈕后,開始讀入滿分分數和評委人數。

二、下面針對教材的第103頁和第107頁的“創新活動”中的問題,給出比較詳細的程序編寫過程

(一)教材第103頁“創新活動”的問題。在12小時制的時間中,在鐘表正常走動的時候,有多少個時針和分針重合的位置?它們分別表示什么時刻(精確到秒即可)?

請編寫一個界面如附圖2所示的“時鐘的時針和分針重合的問題”程序,單擊“開始計算”按鈕,程序計算并顯示出答案,單擊“退出”按鈕,結束程序運行。

1.程序界面設計。新建一個標準exe工程,添加如表2所示的控件,并設置控件相應的屬性。

表2 “時鐘的時針和分針重合的問題”程序用到的控件及其屬性說明

2.編寫事件過程。由于在“時鐘的時針和分針重合的問題”程序中,用戶單擊“開始”按鈕后,就在List框中顯示出時針和分針重合的位置時刻,因此我們在“開始”按鈕處編寫Click事件過程。

對于“結束”按鈕,我們只要在它的Click事件過程中寫下一個語句“end”即可。

對于“哪些時刻時針與分針成平角或直角”等問題,做法類似,這里就不再贅述。

(二)教材第107頁“創新活動”的第一個問題。編寫一個猜數游戲程序,程序界面如附圖3所示。單擊“開始”按鈕后,電腦隨機產生一個1到100之間的整數,然后程序提示你猜一個數,如果你輸入的數太大,則程序會提示你“太大了!”,如果你輸入的數太小,程序會提示你“太小了!”,直到你猜中為止。最后程序還會報告你一共猜了幾次。

1.程序界面設計。新建一個標準exe工程,添加如表3所示的控件,并設置控件相應的屬性。

第5篇

關鍵詞:Java程序設計;Unicode字符集;編碼/解碼

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2007)03-10773-01

1 引言

在基于Java程序設計中,我們經常碰到非英文字符處理及顯示的問題。一大堆看不懂的亂碼肯定不是任何人所希望的結果,怎樣才能夠讓那些基于特定字符集編碼的非英文字符正確顯示呢? 怎樣才能夠恰當地選擇字符集編碼方式并正確地處理?本文從基本的字符集知識出發,通過對Java程序設計中有關編碼轉換的問題進行的分析并結合編程實例,詳細介紹Java的多語言支持(Unicode編碼)特性。

2 關于字符集的知識

正如大家所知,計算機的信息處理建立在二進制之上,可以這么說,計算機只理解0/1,為了便于閱讀和理解,需要將這些0/1的串映射為人可以閱讀的字符,這些映射稱之為字符集;而字符在字符集中的編碼稱為字符編碼[4]。例如“A”在ASCII字符集中的編碼為“0x41”。早期的計算機系統使用了7位二進制的ASCII編碼作為缺省的編碼方式,于是,在計算機中一切處理程序最初都是以單字節編碼為準進行處理。對于英文來說,ASCII碼0-127就足以代碼所有字符,對于其它語言,如中文,日文等,則必須使用兩個字節(byte)來代表一個字符,在習慣上稱為雙字節(即DBCS:Double-Byte Character Set),相對的,英文的字符編碼就稱為單字節SBCS(Single-Byte Character Set)。按照這種使用雙字節來編碼的思路,發展出了簡體中文的GB2312,繁體中文的BIG5和日文的SJIS等針對特定語言的字符集。當不同語言的字符混合在一起的時候,必須經過字符集的轉換,非常麻煩。例如:中英文混合情況。為解決這個問題,國際標準組織提出了容納全世界所有語言文字的Unicode字符集。

Unicode的學名是“Universal Multiple-Octet Coded Character Set”,簡稱為UCS[2]。UCS可以看作是“Unicode Character Set”的縮寫。UCS有兩種格式:UCS-2和UCS-4。顧名思義,UCS-2就是占用雙字節的Unicode編碼,UCS-4就是占用4個字節的Unicode編碼[4]。本文中所有的內容均以UCS-2為準。

在Unicode出現之前,許多的信息系統和數據都是基于特定字符集編碼開發的,例如,大量的中文電子文檔,企業遺留的財務系統,服務部門的計費系統等等。當需要對舊的信息系統和數據進行升級時,系統對多語言支持往往是很重要的部分,在信息國際化的大環境中非常必要的。但很多開發人員沒有認識到Unicode編碼是多語言支持的核心,或者不熟悉Java語言中正確的編碼轉換方法,經常寫出這樣的代碼:

new String(source.getBytes("GB2312"), "ISO8859-1")

new String(source.getBytes("ISO8859-1"), "GB2312")

這樣的代碼存在如下的問題:(1)可讀性差,不便于維護;(2)將系統和 GB2312 字符集緊緊綁在一起,多語言支持難以實現;(3)每次都要進行 new 操作,頻繁的產生不必要的對象,消耗系統資源。

事實上,Java語言在設計之初,就考慮到對多語言的支持,默認在Java程序內部使用Unicode字符集,在本文接下來的部分就Java語言的這一特性進行詳細的介紹。

3 Java程序設計中的編碼轉換

在Java程序內部,所有的字符都是按照Unicode字符集來編碼,所以在Java程序運行時,就存在由一個本地字符集(與特定語言相關的操作系統)編碼向Java內部Unicode字符集編碼的轉換過程,稱為解碼(Decoder);同樣的,由Java程序內部輸出信息,是從Unicode字符集編碼向本地字符集轉換的過程就是編碼(Encoder)[1]。

Java程序中保證非英文字符能夠被正確顯示的條件只有一個:解碼過程和編碼過程使用相同或者兼容的字符集編碼。

從JDK1.4起,Java提供了java.nio.charset包,其中有三個類用于解碼和編碼:Charset、CharsetEncoder和CharsetDecoder來幫助我們完成編碼轉換[3],下面我們就用這三個類來演示Java程序設計中的編碼轉換。

在Java程序設計中默認支持下列字符集編碼[3]:

US-ASCII:7 位 ASCII;

ISO-8859-1:ISO 拉丁字母;

UTF-8:8 位 UCS 轉換格式;

UTF-16BE:16 位 UCS 轉換格式,大尾數法字節順序;

UTF-16LE:16 位 UCS 轉換格式,小尾數法字節順序;

UTF-16:16 位 UCS 轉換格式,用標記(marker)識別的字節順序。

然后,不同的平臺可能支持特定于該平臺的額外字符集(例如,在 Windows 平臺上,您會發現它支持 Windows-1252 字符集)。如果您需要支持其他的字符集,您可以創建自己的字符集。請參閱 java.nio.charset.spi 包中的 CharsetProvider API[1]。

在得到一個解碼器或編碼器之前,需要獲得用于特定字符集的Charset 。例如,GB2312 是用于GB2312字符集的名稱。您只需象下面這樣把該名稱傳遞到 Charset 的 forName() 方法中即可:

Charset charset= Charset.forName("GB2312");

一旦有了 Charset,只需按如下所示請求 CharsetDecoder 和 CharsetEncoder:

CharsetDecoder decoder = charset.newDecoder();

CharsetEncoder encoder = charset.newEncoder();

有了解碼器和編碼器后,您就可以在特定字符集編碼和Unicode字符集合之間進行轉換了,如下所示:

ByteBuffer bytes = …;

CharBuffer chars = decoder.decode(bytes);

bytes = encoder.encode(chars);

以字符“中”為例,可通過以下方式得到其在GB2312字符集中編碼為“D6D0”。這是一個編碼過程。

String str = "中";

String CHARSET = "GB2312";

char nativeChars[] = str.toCharArray();

Charset nativeCharset = Charset.forName(CHARSET);

CharBuffer nativeCharBuffer = CharBuffer.wrap(nativeChars);

CharsetEncoder encoder = nativeCharset.newEncoder();

ByteBuffer nativeBytebuffer = encoder.encode(nativeCharBuffer);

byte[] nativeBytes = nativeBytebuffer.array();

System.out.println("\n#----- " + CHARSET + "encoding output -----#");

for (int i = 0; i < nativeBytes.length; i++)

{System.out.print(Integer.toHexString('\u00FF' & nativeBytes[i]).toUpperCase());}

GB2312字符集編碼的輸出結果:

#----- GB2312 encoding output -----#

D6D0

而后,我們將字符“中”的GB2312字符集編碼轉換為Unicode字符集編碼,這是一個編碼過程。

CharsetDecoder unicodeDecoder = nativeCharset.newDecoder();

CharBuffer unicodeCharbuffer = unicodeDecoder.decode(nativeBytebuffer);

char unicodeChars[] = unicodeCharbuffer.array();

System.out.println("\n#----- Unicode encoding output -----#");

for (int i = 0; i < unicodeChars.length; i++)

{System.out.print(Integer.toHexString(unicodeChars[i]).toUpperCase());}

System.out.println("\n" + String.valueOf(unicodeChars));

Unicode字符集編碼的輸出結果:

#------ Unicode encoding output ------#

4E2D

字符“中”的Unicode字符集編碼為“4E2D”,并可以被正確的顯示。

類似的,我們可以獲得字符“中”在日文字符集SHIFT-JIS中的編碼為“9286”,從SHIFT-JIS字符集向Unicode字符集編碼轉換的結果仍為“4E2D”。

String str = "中";

String CHARSET = "SHIFT-JIS";

char nativeChars[] = str.toCharArray();

… …

輸出結果:

#------ SHIFT-JIS encoding output ------#

9286

#------ Unicode encoding output ------#

4E2D

通過以上的程序實例,可以得出結論:無論字符原來用何種本地字符集表示,在Unicode字符集中都被表示成相同的編碼。或者說,Unicode字符集和語言的種類無關。

可以推斷出,無論輸入的數據最初由何種字符集編碼表示,只要在進入Java程序后,進行Unicode字符集編碼轉換,并按照Unicode字符集編碼輸出,都可以被正確的顯示。Unicode字符集為不同語言中的所有字符都提供了唯一的編碼。

那么,我們現在就可以回答本文開篇提出的兩個問題。

第一,借助于java.nio.charset包中的Charset、CharsetEncoder和CharsetDecoder將特定字符集編碼的字符轉換為Unicode字符集編碼;

第二,選擇Unicode字符集編碼將字符輸出。

做到了以上兩點,處理任何語言的字符都不會遇到類似于亂碼的顯示問題。

4 結束語

本文從Unicode字符集編碼角度分析了Java的多語言支持特性,并對由字符集引起的顯示問題進行了分析和解答,相信大家能夠更好的理解和運用這一技術,從長遠角度出發,設計,實現符合國際化規范的應用系統。

參考文獻:

[1](美)Bruce Eckel. Java編程思想[M]. 機械工業出版社,2002.9.P170-174.

[2](美)The Unicode Consortium. The Unicode Standard, Version 4.0[M]. Addison-Wesley出版社,1996.

[3]Unicode官方網站. /.

第6篇

關鍵詞:小額訴訟;程序設計;獨立性

在2013年修改并頒布的《中華人民共和國民事訴訟法》(以下簡稱《民事訴訟法》)中新增加了一條關于小額訴訟案件的審理規定,即第一百六十二條。這一條文規定:基層人民法院和它派出的法庭審理符合本法第一百五十七條第一款規定的簡單的民事案件,標的額為各省、自治區、直轄市上年度就業人員年平均工資百分之三十以下的,實行一審終審。第一百五十七條第一款規定的是簡易程序的適用范圍,即基層人民法院和它派出的法庭審理事實清楚、權利義務關系明確、爭議不大的簡單民事案件,適用簡易程序。從這條規定來看,小額訴訟案件的認定有兩個條件,一是符合適用簡易程序的要求,二是標的額的限制。小額訴訟程序可以看作是簡易程序制度的一種特殊情況,唯一的程序上的區別在于其實行的是一審終審制。 就小額訴訟在民事訴訟法中的體系來看,其作為簡易程序的特殊情況來對待是值得商榷的。

一、將小額訴訟程序從簡易程序中獨立出來的必要性

首先,從訴訟法的法理層面上看,小額訴訟程序的獨立性與特殊性,不僅表現為小額訴訟的程序規則特殊,而且還表現為小額訴訟的程序法理特殊。通常訴訟程序的程序法理不完全適合于小額訴訟程序。而簡易程序恰恰適用的是訴訟法理,訴訟法理最基本的要求就是賦予當事人以程序保障,其中重要的是審級利益保護,強調給予當事人以更多的辯論機會來發現案件真實,以期求得正確的裁判。小額訴訟程序雖然解決的也是訴訟事件,其也本應適用訴訟法理,然而小額訴訟程序如果完全適用這一訴訟法理,就無法實現"訴訟效益"這一目標。因為訴訟法理追求的是"慎重而正確的裁判之程序保障",這無疑會花費更多的勞力、時間、費用;而"小額訴訟請求程序所追求的理想是不需要法律技巧的簡易和效率",強調的是"簡速裁判之程序保障"。因此,在立法上確認小額訴訟程序的獨立性,契合了"民事紛爭的程序設置應與案件類型相適應的程序法理"要求。

再從新民訴條文來看,小額訴訟程序沒有其獨立性,只有相對于簡易程序的特殊性。這樣的一種制度設計并沒有真正適應小額訴訟案件的需要。我國立法將小額訴訟規定在簡易程序當中,不僅繼承了其程序上的設定,還延續了簡易程序的缺陷。首先,簡易程序立法規定十分簡單,只有5個條文,可操作性較差。雖然最高人民法院在司法實踐過程中先后了最高人民法院《關于經濟糾紛案件適用簡易程序開庭審理的若干規定》、最高人民法院《關于適用簡易程序審理民事案件的若干規定》,對有關內容作出了一定補充,但是由于其在性質上屬于司法解釋,所以在效力上遠遠不能統一司法實踐。其次,簡易程序的適用范圍模糊不清,導致了普通程序與簡易程序界限的并不十分明朗。我國現行《民事訴訟法》將簡易程序的適用范圍界定為"事實清楚、權利義務關系明確、爭議不大的簡單民事案件",過于籠統和抽象。從立法目的和程序理想上看,簡易程序無法替代小額訴訟程序。鑒于此我認為將小額訴訟程序從簡易程序中獨立出來十分必要。

二、具體制度設計的思考

1、小額訴訟程序的適用范圍的具體界定

在新民訴中小額訴訟程序的適用范圍界定為標的額為各省、自治區、直轄市上年度就業人員年平均工資百分之三十以下。這一界定確定了兩個方面的要求,一個是案件是關于錢債糾紛,另一個是標的額的限定。其實這大大限制了其能適用的案件的范圍。很多相鄰關系、勞動爭議、婚姻家庭等適宜基層法院處理的案件都無法適用小額訴訟程序,這樣不僅耗費大量的訴訟資源,也增加了當事人行使訴權的成本。在程序的總體設計上可以考慮在尊重當事人程序選擇權的基礎上,適用小額訴訟程序。

2、在訴訟管轄方面的思考

小額訴訟程序作為效益優先的民事訴訟程序,本身具有自己的特點,其標的額通常都極小,當事人大多為一般消費者和社會普通大眾,而在很多小額案件中,其相對方卻可能為實力相當雄厚的公司或商家。如果我們對小額程序繼續采用原告就被告的管轄原則,讓普通消費者為小額利益到公司或商家所在地去,將使訴訟收益與所得發生嚴重的失衡,從而很可能在一開始就讓消費者望"訴"止步,不僅不利于保護社會弱勢群體的利益,而且也不利于有效制止民事違法行為,從而使小額訴訟程序的價值大打折扣。因此,為保障訴訟公平,維護以誠實信用為基礎的交易行為,充分發揮小額訴訟程序對于普通消費者權利的救濟功能,應當在被告一方為法人或其他組織時,賦予原告住所地法院的管轄權。

3、具體程序的簡化

在和答辯方面,為方便廣大民眾尤其是農村民眾訴訟,和答辯可以采取口頭形式,或者采用格式化的訴狀或答辯狀。以口頭形式的,法院應將內容記入筆錄,由當事人簽名或蓋章。法院可以根據各類小額案件的性質和特點預先制作格式化的訴狀,供當事人選擇和使用。隨著網絡的普及和發展,將來也可以考慮在網上和答辯,以最大限度的發揮小額訴訟程序簡便、快捷的特點。在法庭調查和法庭辯論的簡化方面,小額訴訟原則上以一次開庭審理即告終結,因此,在法庭調查和法庭辯論環節,應盡可能靈活進行,而不應機械地適用普通程序的程序規則。具體而言,在小額訴訟的法庭調查和法庭辯論環節,應當注意以下問題:(1)在證人作證問題上,為了節約當事人的訴訟成本,在法官認為必要時,在開庭階段證人不必親自出庭作證,可以采用電話、多向視聽傳輸設備等先進的通訊方式作證。法官可依據自由裁量權決定詢問證人的順序等;(2)在法庭調查中,對當事人認可或無爭議的事實與證據,可不必經過調查、質證,而將事實記錄在案卷中,即作為定案的根據;(4)如果當事人對案情沒有爭議,只是對法律適用有疑問,可以不經法庭調查直接進入辯論環節;(5)小額訴訟中的法庭調查和法庭辯論不必機械的分開,法官可以依據案件審理的具體情形,依職權決定二者的適用或者二者交叉進行,邊舉證邊辯論。

4、關于小額訴訟程序的救濟

如何對小額訴訟程序進行救濟在民事訴訟法中規定的并不明確。小額訴訟程序實行的是一審終審制,對于爭議的解決強調的是效率,因此其適合提出再審的救濟方式。申請再審的提出意味著小額訴訟裁判一經作出立即發生效力,當事人可以據此申請執行從而迅速實現權利。由于小額訴訟案件大多為法律關系簡單、爭議標的額較小的案件,通過申請再審的方式進行救濟在總體上是能夠保證審查的公正性和質量。這樣的一種救濟方式有利于實現小額訴訟程序的效率性,也有利于保障當事人的訴訟權利。

三、結語

小額訴訟程序設計需要在整合民事訴訟法和民法基本原則的基礎上進行架構,此中難度可想而知,但我們應該為小額訴訟程序的設計確定一個總體的思路。我認為這個總體思路的核心在于對司法效率和司法公正的總體利益的最大化。小額訴訟程序在一定程度上限制了公民對其訴訟權利的實現,但從其實現過程來看,公民能夠通過這一程序更接近司法權利的實現。這種努力是一般國民能夠得到具體有程序保障的司法服務。在整體的司法資源的分配上也能夠更加實現司法效率和司法公正。總的來說,關于小額訴訟程序的設計,我國民事訴訟法仍存在很多需要完善的地方。

參考文獻:

[1]許尚豪.小額訴訟--細節正義的主旨與要求[N].人民法院報,2006-12-18.

[2]范愉.小額訴訟程序研究[J].中國社會科學,2000,(4).

[3][日]小島武司.訴訟制度改革的法理與實證[M].陳剛,郭美松,等,譯.法律出版社,2001.

[4][日]新堂幸司.新民事訴訟法[M].林劍鋒,譯.法律出版社,2008.

第7篇

計算機程序設計類課程具有實用性強,和應用廣泛的特點。C語言作為現代非常流行編程的語言,更是具有通用性強和面向對象等眾多特點,作為大學計算機基礎編程類課程被廣泛學習。C語言存在一定的復雜性并且授課時限制,授課方式限制等等問題。將計算思維融入到C語言的教學中,合理調整針對各專業授課內容,將計算思維融入課程,并與MOOC教學模式對接。筆者結合十年的教學實踐經驗,總結出授課效果不佳的原因,提出若干改革措施。

關鍵詞:

計算思維;C語言程序設計;MOOC;

黑龍江省教學改革項目《高等院校計算機基礎程序設計類課程綜合研究性教學改革與實踐》項目編號:JG2014010854

1教學內容與模式存在問題

1)先理論后實驗

C語言程序設計課程在傳統的教學中,理論部分采用課堂講授的模式,邊講知識點邊進行編程,實驗課則是在理論課城講完之后,單獨進行實驗教學,單人單組,這種教學模式容易出現理論與實踐脫軌,接連不上,理解不透徹等問題。

2)創新性實驗不足

一般教學模式下,設計性實驗和創新性實驗占的比例在20%以下,創新性項目不足。這種模式下,學生在課堂上的學習積極性大部分依靠于教師的授課技巧或個人魅力來吸引學生,教師把知識點講授得清楚明白,但是學生自己動腦思考相應問題的時間短,并且大部分學生課前預習基本沒有,不能真正發揮學生主觀能動性和自主學習能力。

3)直接灌輸

大多數學生對與課前預習做的并不出色,可能大部分學生是完全沒有課前預習的。學生在頭腦中并沒有帶著問題聽課,而是老師直接灌輸C語言定的設計結構、數組、指針等復雜內容。學生沒有預習,沒有思考,只有類似直接灌輸式的教學模式。

2從教學模式改良教學內容

1)將計算思維能力培養融入課程中

程序設計類課程的教學方法要注重將“不可見”變為“可見”,變“無關”為“相關”,把大問題碎片化,把復雜問題進行分離與分層處理。例如,將C語言中的語法有融合到程序設計中,在程序中講語法,又在學語法的同時練習訓練了編程,這樣就避免了枯燥乏味的講述語法,將語法融合入程序設計中。

2)在C語言程序課程中擴展計算機思維的改革模式

①改進教學方法。不將C語言程序設計課程的教學內容做大量調整,而是通過改進教學方法來啟發引導學生認知知識點背后蘊含的聯系與規律,比如設置問題導引,問題討論,追溯反思,新建構架等等方式來潛移默化的滲透計算思維,使計算思維模式逐步走進學生的思維方式中。②重新構架體系結構。并不對課程教學的知識點做大量更改與替換,而是以計算思維模式為主干重新構建知識體系,只是課程內容授課順序和結構有較大復讀調整。例如容易基本的數學問題,生活常識問題,即由C語言外而進入C語言內的知識體系的調整。③更新大量陳舊項目。以往的教學內容包含一些生硬死板的程序項目,其目的只是為了說教語法和結構。取而代之的融入計算思維的程序項目則更加新穎,更加聯系實際,更加突出對計算思維的訓練,例如,愛因斯坦天國的階梯;生肖屬相輪回等項目,不僅生動、引人入勝,更能訓練思維。

3)依據計算思維融合傳統科目內容

我們可以將一部分學生選出來進行試驗性教學,打破傳統的幾門課程包括C語言、數據結構、算法分析、VC程序設計,等系列課程的教學方式,采用根據不同專業設定的包含基礎數學、程序設計技巧、算法分析的一體化教學內容,打破傳統的教學內容,該體系能夠更充分利用學生的自主能動性,課下的工作量比課上的工作量要大得多,學生在課前要進行大量的準備工作。

4)加大課前預習量

打破傳統的理論教學與實驗教學分開的模式,在理論教學中同樣需要學生進行大量的課前準備,然后在課堂上進行分組討論老師提出的問題,根據每組學生的討論內容,討論結果設置而在實驗教學方面,可運用本校的網絡教學平臺,提前發放討論內容及作業題,在實驗課中以項目提交的方式來完成實驗教學。

3對接MOOC網絡教學

1)MOOC興起

網絡技術的不斷發展,人們更愿意使用電子產品依托網絡進行學習。MOOC大規模網絡公開課程(MassiveOpenOnlineCourse,MOOC)[1]是2012年在美國興起,它作為一種大型的開放式網絡課程,為學生提供免費的學習平臺。隨后全球的各大知名大學逐步開設MOOC課程,紛紛涌入到MOOC的浪潮中。在中國的很多知名高校也加入其中,紛紛開設MOOC網絡課程,當前的coursera、udacity和edx的火熱應用,實施了翻轉課堂進行教學。

2)登陸MOOC

C語言程序設計的授課,為了適應新時期的教學發展趨勢和教學需求,要將傳統教學與在線教學平臺融合,更好地使二者相互補充和促進。MOOC也將教育推上了全球化的舞臺,這種變化帶來的好處顯而易見,最明顯的一個特征是打破了教育壁壘,令教育資源平等化[2]。

3)重組設計課程內容

C語言課程登陸到MOOC,并不能簡單的將課堂的內容簡單,直接的傳送到MOOC平臺上,而是應該結合C語言程序設計課程的特點,和MOOC平臺的優點,進行課程內容的整體策劃,重新設計設計整門課程的體系結構。

4總結

我們要通過分析教學中存在的問題,教學模式和教學內容進行多管齊下的相關改革。改革并不能與從前的單一模式相同,要針對課程的特性,改革教學內容與計算思維相對接,改革教學模式與MOOC相對接,實現多管齊下,真正達到教育教學目的,讓學習者能真正學以致用,轉換思維模式,無論在哪一方面都收獲良好的教育教學效果。

作者:逯柳 陳剛 孫毅 耿姝 王樹芬 單位:哈爾濱石油學院信息工程與計算機技術系

參考文獻:

第8篇

【關鍵詞】網絡系統設計;程序設計;復雜性

網絡系統設計中的程序設計并發復雜性問題是由于現今網絡系統的性能和設計理念等多種因素所共同導致的,因此只有在做好前期分析工作的前提下,才能夠促進網絡系統設計中的程序設計并發復雜性得到有效的遏制。

1網絡程序并發性與復雜性簡析

網絡程序并發性與復雜性是由多方面引起的,以下從環境差距過于明顯、設計理念的限制、驅動模式有待優化等方面出發,對于網絡程序并發性與復雜性進行了分析。

1.1環境差距過于明顯

網絡程序并發性與復雜性主要是因為單機環境和網絡環境差距過于明顯所導致的。大家都知道隨著近年來高質量網絡程序的不斷開發,之前傳統程序設計過程中存在的許多問題都被暴露出來。在這一過程中可以發現網絡環境與單機環境之間的巨大差異性成為影響程序開發設計的關鍵。其次,并發性問題的存在實際上成為了網絡程序設計發展的重要限制瓶頸,因此,如何能夠對于并發性問題進行有效的解決,成為了擺在程序設計人員面前的要點。與此同時,環境差距過于明顯還意味著混合性并發模型發展時間短和實際應用少的缺陷也會暴露出來,因此其對于并發性問題的解決效果還需要進一步的觀察。

1.2設計理念的限制

網絡程序并發性與復雜性的存在也跟之前的設計理念被軟硬件功能限制有著密切的聯系。通常來說網絡程序的并發性問題的表現形式通常會以分布性、異構性、異步性和訪問延誤等形式表現出來。因此工作人員在將問題整合成一個整體后就會發現,并發性問題變得極其難以解決。其次,設計理念上的限制還會使得網絡程序設計的整體效率受到非常大的影響。

1.3驅動模式有待優化

網絡程序并發性與復雜性和驅動模式有著千絲萬縷的聯系。由于網絡并發任務處理方法實際上可以根據語義將其分為反應式和前攝式兩種。在反應式模型中應用程序必須通過接收到相應的事件通知,然后才能夠在此基礎上能夠更加具有針對性的發出具體的操作指令,在這一過程中如果操作的結果是錯誤的,則工作人員可以從函數的返回值中即時獲知。其次,驅動模式有待優化還指的是操作的錯誤情況通常會作為完成事件的參數,傳遞給應用程序如果需要同時發出多個相似的并發操作,則需要在發出操作指令時,增加一個標識參數,從而能夠在此基礎上對于并發操作進行更加細致的區分。

2網絡程序并發性與復雜性問題應對

網絡程序并發性與復雜性問題的應對應當從許多方面出發,以下從優化多線程模型、協調程序運作順序、開發新型并發模型等方面出發,對于網絡程序并發性與復雜性問題的應對進行了分析。

2.1優化多線程模型

網絡程序并發性與復雜性問題應對的第一步是合理優化多線程模型。工作人員在優化多線程模型的過程中首先應當根據多線程并發模型多線程并發模型的線程調度來對其進行分別的分析。其次,工作人員在優化多線程模型的過程中應當確保線程的運行狀況與應用層的控制無關,在這一過程中CPU是由調度器來進行控制的,并且調度器對于線程的調度是強制性的。與此同時,工作人員在優化多線程模型的過程中應當合理的實現CPU控制權的強制轉移,從而能夠在此基礎上有效的規避因為上一個線程沒有處理好當前線程所需要的各種數據,引發數據競爭,嚴重的甚因此,在對線程協作復雜或者并發性高的任務進行處理,最終可以減少系統出現崩潰的概率。

2.2協調程序運作順序

網絡程序并發性與復雜性問題應對的關鍵是協調程序運作順序。工作人員在協調程序運作順利的過程中首先應當理解到與搶占式調度相比CPU的控制權具有更強的優先度,因此這意味著只有在當前線程放棄數據處理后實際上才會將CPU的控制權轉移到其他線程。其次,作人員在協調程序運作順利的過程中還應當確保應用程序的線程操作必須經過系統調用,在這一過程中由于線程代碼的移植具有很高的難度,因此實際上非常嚴重的影響了其普遍適應性,所以只有通過合理的協調才能夠確保其運作順序的合理優化。

2.3開發新型并發模型

網絡程序并發性與復雜性問題應對離不開新型并發模型的開發與利用。工作人員在開發新型并發模型的過程中應當優先對于混合性并發模型進行應用。其次,工作人員在開發新型并發模型的過程中首先應當理解到無論是事件驅動模型還是多線程并發模型實際上都具有各自的優點和不足,因此這導致了其在實際應用中始終存在一定的局限性。對因此設計人員在開發新型并發模型的過程中應當勇于打破常規合理的將這兩種模型融合在一起,最終能夠期待形成全新的并發模型,最終能夠促進程序設計合理性的有效提升。

3結束語

在網絡程序的設計過程中并發性問題實際上是一個難以進行規避的復雜問題。因此工作人員在認清當前的技術條件下應當通過有效的提升網絡程序的并發處理能力,并且在此基礎上并發模型的性能進行完善,才能夠促進網絡程序設計效率的有效提升。

參考文獻

[1]李慧霸,田甜,彭宇行,等.網絡程序設計中的并發復雜性[J].軟件學報,2011(1):132-148.

[2]高偉,張學紅.關于網絡程序設計中的并發復雜性研究[J].網絡安全技術與應用,2014(12):49-51.

[3]潘珂,田勇.網絡程序設計中的并發復雜性研析[J].科技致富向導,2014(27):84-85.

第9篇

摘要:圍繞教育信息化應用背景,在分析目前計算機程序設計類課程教學滿意度現狀的基礎上,探究計算機程序設計類課程游戲化教學的影響因素。經調查分析得出,大部分學生都有學計算機程序設計類課程的經歷和玩電腦游戲的經歷,計算機程序設計類課程的教學模式乏味是學生最關心的問題,認為游戲化教學可以提高計算機程序設計類課程的趣味性,而排名、虛擬物品獎勵、積分等游戲激勵元素可以提升學習積極性,研究結果為計算機程序設計類課程的教學模式改革提供些許參考。

關鍵詞:游戲化教學;計算機程序設計類課程;游戲激勵元素

隨著“云計算”、“互聯網+”等新技術的不斷出現,教育信息化也變得越來越引起廣大教育工作者的重視。根據《教育信息化十年發展規劃(2011年-2020年)》的文件精神,信息技術已被應用到各類教學活動中以豐富現有的教學手段并促進教學改革,推動教學模式朝著更有利于學生學習的方向發展。電腦游戲化教學作為信息技術在教育信息化中的典型應用,已經被推廣應用到教育領域中,電腦游戲創造了一種娛樂學習環境,對學習者具有潛在的動機誘導功能[1],對學習者的學習效果和學習質量具有正向的促進作用[2]。本研究的目的是探究計算機程序設計類課程游戲化教學模式及其影響因素,以改進計算機程序設計類課程教學乏味的現狀,指導計算機程序設計類課程利用教育信息化開展創新性教學,提升教學效果,培養學生創新意識和解決實踐問題的能力。

1國內外研究現狀

本研究針對計算機程序設計類課程的教學現狀探究游戲化教學模式的構建問題,所以下面將對計算機程序設計類課程以及游戲化教學的研究現狀進行闡述。(1)計算機程序設計類課程教學現狀計算機程序設計類課程在大學里開設一般作為專業基礎課,課程面向不同專業且計算機基礎水平不同的學生,其抽象思維以及邏輯分析能力也各不相同[3]。雖然近年來計算機程序類課程教學一般采取多媒體教學,但課堂表現方式大多單一[4],教師通過教學平臺軟件控制學生機,演示教學內容,這種采用傳統課程講授與實驗上機輔導相結合的方式,由于教師的工作重心主要在教學的組織和實驗的輔導,教師和學生的溝通互動不足,難以建立良好的激勵措施。學生在學習過程中因為競爭標準單一、敲代碼乏味枯燥、代碼調試困難等原因而顯得學習動力不足。由于受到場地、身份、教師的精力等多方面原因,老師對學生的單向交流是主要形式,難以建立相互協作的團隊,學生對程序設計語言的基本語法和程序流程等基礎知識一般能掌握,但是對有一定難度的抽象算法存在理解上的困難[5]。(2)游戲化教學現狀游戲化的概念從2002年提出后經過約十年的發展逐步流行[6]。游戲化的實質是通過游戲元素和游戲激勵機制的使用,讓過程變得有趣以激發人們的參與動機[7]。隨著教育信息化的發展,游戲化也開始應用到計算機程序設計類課程教學中,將程序設計的知識點融進游戲過程[8],激勵學生的興趣和創新意識[9]。在游戲化教學中,通過游戲元素和課程知識的結合,讓學習者參加一些包含游戲元素的活動,如金幣、闖關、勛章、積分榜等[10-11],和老師評分相比,游戲中的同伴互評方式提高了學生參與互動的積極性[13]。整合在線學習平臺,游戲化教學已經逐步用于MOOC平臺等教學中[12-14],在激發學習者參與度的同時也提升了平臺人氣[15]。隨著游戲化教學的推進,有效的游戲化元素引起了學者們的重視[16],比如游戲角色、游戲道具、游戲任務和激勵評價的設計也得到了關注[9]。綜上,現有計算機程序設計類課程教學在調動學生積極性方面還存在提升空間,而游戲化模式可以利用良好的互動和激勵機制提升這種積極性,從而促進預期教學目標的達成。所以,為了探索游戲化教學在計算機程序設計類課程中的高效應用,本研究從計算機程序設計類課程的教學現狀出發,探究計算機程序設計類課程游戲化教學影響因素,以期為計算機程序設計類課程游戲化教學模式設計提供些許參考。

2計算機程序設計類課程游戲化教學影響因素分析

本文采取問卷調查的方式以探究計算機程序設計類課程游戲化教學的影響因素,下面闡述研究的具體開展過程。2.1問卷設計。本研究在已有研究的基礎上開發計算機程序設計類課程游戲化教學的調查問卷。除關于填表人的性別、學過的計算機語言和玩電腦游戲的頻率等個人基本信息外,其它問題項都采用選擇題的形式。問卷分為三部分,第一部分為個人基本信息,第二部分為核心部分,即計算機程序設計類課程游戲化教學的影響因素調查,第三部分為開放式回答的建議部分。2.2描述性統計。數據收集采取線上線下結合的方式,線下收集問卷162份,線上收集問卷105份,一共收集問卷267份,排除回答問題數據缺失的問卷,最終納入數據分析的問卷249份。數據的描述性統計見表1。從表1中可知,大部分學生學過計算機程序設計語言,且大部分學生有玩電腦游戲的經歷。2.3影響因素調查分析。(1)計算機程序設計類課程的教學滿意度分析了解學生對目前計算機程序設計類課程的教學滿意度是開展游戲化教學模式設計的基礎,調查分析結果如圖1所示。目前計算機程序設計類課程學生的學習積極性現狀調查如圖a圖所示,相當一部分學生認為所學過的計算機程序設計類課程的教學模式乏味且難以調動學習積極性。由圖b可知,學生認為目前計算機程序設計類課程教學缺乏趣味性占的比例最大。由圖c可知,授課方式有趣被認為是計算機程序設計類課程教學能提高學習積極性的主要因素,這也正是本文探究計算機程序設計類課程游戲化教學模式創建的要旨。(2)電腦游戲的吸引力分析為了更好地將電腦游戲思想用在計算機程序設計類課程教學中,本研究設計了見表2的兩個問題來了解哪類電腦游戲更具吸引力。從游戲類型來看,團隊競技類游戲最具有吸引力,較具吸引力的是闖關類游戲和角色扮演類游戲,答題類游戲具有較小的吸引力。從游戲激勵元素吸引力調查的情況來看,排名最有吸引力,其次是虛擬物品獎勵和等級具有較大的吸引力。(3)對計算機程序設計類課程游戲化教學的現狀及態度調查分析本研究設計了兩個方面的問題來調查了解計算機程序設計類課程游戲化教學的應用情況及態度。由圖2的對比分析可知,偶爾聽過游戲化教學的學生人數占的比較最多,完全不了解游戲化教學的學生也占了較大的比例,總的來說學生對游戲化教學的了解較少。由圖3的對比分析可知,大部分學生所學的計算機程序設計類課程中從沒用過游戲化教學方法,總的來說目前在計算機程序設計類課程中很少使用游戲化教學方法。為了掌握學生對計算機程序設計類課程游戲化教學的態度,本研究設計了兩個方面的問題來進行分析。由圖4可知,大部分學生贊同將游戲化教學思想融進計算機程序設計類課程的教學中。從圖5可知,大部分學生也認為將游戲化思想運用到計算機程序設計類課程教學中可以提高學習興趣。(4)對計算機程序設計類課程游戲化教學方法的建議分析本研究設置了開放性的回答來了解學生對計算機程序設計類課程游戲化教學方法的建議,這些建議經整理過后的詞云分析如圖6所示,其中游戲設計要與課程的教學內容緊密結合、游戲要注重對學習興趣的激發、游戲設計的簡單性等是學生關注較多的要點。本研究也設置了開放性的回答來了解學生對計算機程序設計類課程游戲化教學激勵制度的建議,經整理過后的詞云分析如圖7所示,其中,設置獎勵制度還是學生比較關心的話題,學生還希望設置創新性的獎勵,比如積分兌換、適當的物資獎勵、學分獎勵等等得到了較多的關注。

3結束語

本研究聚焦計算機程序設計類課程游戲化教學模式影響因素分析,為計算機程序設計類課程教學模式改革提供理論上的參考和方法上的幫助。研究的具體意義如下:(1)推動教師進行計算機程序設計類課程的教學模式改革針對計算機程序設計類課程的教學現狀,本研究以計算機程序設計類課程游戲化教學模式設計為例,在對目前計算機程序設計類課程教學滿意度分析、電腦游戲吸引力分析的基礎上,對計算機程序設計類課程游戲化教學的態度、對計算機程序設計類課程游戲化教學方法的建議分析等進行詳細調查分析研究。從中可以推動該類課程教學模式改革和創新,游戲化教學模式的設計使計算機程序設計類課程知識點成為游戲任務環節,在學習過程中融入與具體課程內容相關的游戲化元素設計,將抽象的程序設計知識點通過游戲的可玩性和黏度形象地展示出來。研究不但有利于計算機程序設計類課程與游戲化教學的整合,而且對推動教師進行計算機程序設計類課程的教學改革、探討游戲化教學模式構建、課程設計、激勵元素有重要的指導意義。(2)為學生搭建趣味互動的計算機程序設計類課程學習平臺從前文對計算機程序設計類課程的教學滿意度分析、電腦游戲吸引力分析可以看出,趣味性是學生關注較多的話題,也是目前計算機程序設計類課程課堂教學的不足之處。游戲化教學思想為計算機程序設計類課程教學潛在地搭建了一種趣味互動的學習平臺,教學過程游戲化組織學生在游戲規則、游戲目的、游戲反饋、競爭性任務等游戲元素中完成學習任務,通過游戲化這種潛在的動機誘導能力為學生搭建趣味性的學習平臺,以學生為中心,以學生認為較具吸引力的排名、虛擬物品獎勵、積分等游戲元素激勵學生積極主動獲取知識,以進一步提升學習效果和學習質量。未來,本研究還將結合具體的課程教學進一步完善計算機程序設計類課程游戲化教學模式創建及實踐運用。

作者:王志英 單位:江蘇科技大學經濟管理學院

第10篇

關鍵詞: 程序設計 課程群 建設內容

引言

目前,為了調動學生在程序設計類專業課方面的主動性、積極性和創造性,越來越多的高校在教學模式上進行了改革。程序設計類課程作為計算機專業的核心課程,學生的程序設計能力是其必備的基本功之一,也是教學成果的重要考量標準之一[1]。因此,程序設計類課程群的提出與建設對目前計算機專業程序設計類課程教學中存在的一系列問題起到了很好的改良作用。

課程群[2]是指在同一學科專業下若干課程的集合。此集合要求課程之間內容緊密,聯系性強,承前啟后,形成一個具有較強邏輯性、內在聯系性和相互促進的專業課程體系。程序設計類課程群是指與程序設計相關的課程緊密耦合構成的一系列課程。在教學實踐別針對程序設計相關的一系列課程進行緊密的組合編排與重新架構,緊緊圍繞專業培養目標通過此課程群的建設使程序設計相關課程一體化,突出整體優勢。

1.目前程序設計類課程建設中存在的問題

1.1課程體系過于松散。

在目前各大高校中,教學內容往往注重單一課程本身的內在聯系,卻忽視了課程與課程之間的聯系[3]。對于老師來說雖然完成了教學大綱安排的教學內容,但是學生在學習之后仍然沒有形成完整的知識體系,使學生對于知識的應用仍處于混沌狀態。

1.2教學內容重復,連貫性差。

雖然現在的專業課程也有考慮將其作為一個體系進行建設,對于教材的選定、教學的內容都進行了一定的聯系,但是多數情況下仍處于靜態聯系的狀態,也就是說還停留在單一化的一維聯系中,沒有形成一個多節點的網絡群溝通。這就使得老師在教學內容中容易重復教學,也使得教學內容前后脫節連貫性差,對于學生掌握的知識架構和對課程之間知識的相關性而言容易產生斷點與理解盲區。

1.3實踐教學簡單獨立。

對于程序設計類課程來講,目前很多高校還停留在以書本語法講解為主,實驗教學為輔的教學模式上。教材中匹配給出的語言語法概念的例子往往過于簡單,對實際程序設計過程刪繁就簡,因此產生對于理論的學習,學生大多能夠理解掌握,但是當真正需要上機實踐的時候卻發現無從下手。

1.4不利于學生課程學習興趣的培養。

就目前計算機專業學生的學習狀態看,厭學、逃課、掛科的現象存在于很大一部分學生當中。因為沒有一個連貫的、緊密的、具有創新性和實踐性的課程體系讓學生發現所學知識的應用價值和課程之間的巧妙結合之處。

1.5不利于師資和設備資源的充分利用。

由于課程建設缺乏課程之間的融合性,師資力量就會出現重復利用的情況。對于高校的教學設備,除去一些不可調因素,也使得資源并沒有充分利用。再加上教師水平參差不齊,學生自身素質具有一定的差距性,一個不多元的課程體系必然造成師資和設備資源的浪費。

2.程序設計類課程的改革思路

以上分析了在現有計算機專業程序設計類課程的教學內容和教學模式中所存在的問題,鑒于這些問題,課程體系的重新架構與改良勢在必行。

(1)針對計算機專業人才培養目標,對所要教授的每門課程進行最清晰準確的定位,制定詳細的課程教學目標。

(2)對教學內容進行整合與重新規劃,建立課程群體系,在對每一門專業課知識點的聯系性、邏輯性、連貫性及相互之間是否存在促進性進行研究之后,重新進行教學計劃或教學大綱的擬定,形成初步的課程群教學體系。

(3)以此課程群為教學依托,以培養實用型人才為目標,改變傳統的教學方法,培養學生建立自己的編程思想和創新能力及編程技巧和思維模式。

(4)在實際教學中老師與老師之間,老師與學生之間多溝通,真正實現多通路、多脈絡、多節點的多維教學課程群體系的不斷建設和完善。

3.程序設計類課程群的建設內容

常用的程序設計教學語言有很多,針對本科教育,不同階段的語言教學應有層次的劃分,比如一般情況下多數高校都會選擇C語言作為程序設計的基礎語言在大一或者大二第一學期進行教授,再加入數據結構,算法分析與設計等課程的教學,起到層層遞進相輔相成的作用,這是目前多數高校都會選擇的一種教學模式。

課程群建設作為計算機專業課程建設的一部分,旨在應用型人才培養上做出精準定位,針對應用型人才的培養目標,程序設計課程群應當“程序設計”為核心,重組實踐與理論的知識鏈,注重學習興趣的培養。

3.1課程群課程科目有機整合。

根據專業需要和各課程之間的內在聯系,課程設置需要根據課程群的緊密性、連貫性、邏輯性等特點前后有序地進行編排以避免教學內容重復、知識鏈脫節,導致學生形成知識斷點與盲區。

例如從面向三實型人才培養方向入手,首先,通過C語言或匯編語言的學習夯實基礎;其次,通過面向對象程序設計或Windows程序設計進行素質培養;再次,通過數據結構、程序設計方法學、算法設計與分析的學習進一步提高能力;再通過Java程序設計、網絡編程等拓展應用層面;最后,通過Web技術、PHP應用開發、Net應用程序開發、智能手機客戶端等軟件項目開發的學習進一步向三實型人才培養方向邁進[4]。

3.2程序設計課程群的實踐體系的完善。

雖然目前多數高校都很清楚程序設計類課程作為計算機專業的核心課程,其核心的真實意義便在于較強的實踐性,但是因為一些客觀因素無法真正做到增強學生的實踐能力,而課程群的建立則增加了實驗的比例,同時也避免了實驗安排的隨意性。

第一,通過理論實驗相互穿插的形式提升理論教學與實驗教學的交互融合度,相較于目前很多高校先集中講解理論后集中上機實驗的教學模式,很大程度上加深了學生對語法等知識的理解。

第二,增加上機實驗的教學課時。目前,相比對語法的理論授課,上機實驗所占的比例還是較少的。雖然語法知識作為上機實驗的理論基礎,但是計算機培養的是將來面向企業的應用型人才,有時理論教學上的避重就輕通過實驗中的設身處地往往更能達到期望的效果。

第三,以課程群建設為依托,學生的期末設計或者期末考核等經過課程群內任課教師的討論做到多課程之間存在銜接與知識聯系,則能最大限度地促使學生更多地查閱課外知識,更能動性地、自主性地、創新性地完成設計。

第四,培養學生作為一個“碼農”的基本修養,包括編碼能力、代碼維護能力、團隊合作能力、內容設計、資料收集、主題選擇的鍛煉及表達能力,包括寫作能力、交流溝通能力。

3.3構建程序設計課程群的實用體系的方法。

高等教育最終是要為社會和企業培養并輸送應用型人才,所以課程群的建立必須與當下企業與社會需求相匹配,邀請校外企業工程師等企業大牛到校內講授目前社會上最前沿最急需的技術,通過內外結合的形式,將外部新型力量引入課程群中。

結語

計算機專業作為一個旨在培養高水平程序設計能力與編碼能力的專業,除了要有好的軟硬件教學條件、強大的師資力量外,更需要有一個實用的課程教學體系。我們在分析了目前程序設計類課程中存在的各種問題后,給出了程序設計類課程教學改革的基本思路,同時通過對課程群課程科目有機整合,程序設計課程群的實踐體系的加強,構建程序設計課程群的實用體系的方法等程序設計類課程群建設的探究,讓大家明白為什么要進行課程群的建設。

參考文獻:

[1]何昭青,彭立,傅紅普.基于程序設計能力培養的計算機專業實踐教學體系的思考[J].湖南第一師范學院學報,2012,12(1):62-65.

[2]安德智,王秋云.數據庫原理課程群建設的實踐與探討[J].中國電力教育,2010(8):41-4.

第11篇

【關鍵詞】 C程序設計教學改革教學實踐

【基金項目】河西學院教學研究項目(HXXYJY-2012-020)資助。

【中圖分類號】TP311.52 【文獻標識碼】A 【文章編號】2095-3089(2014)05-0244-02

《C程序設計》課程是目前各高校計算機專業普遍開設的第一門專業基礎課程,它具有功能強大、效率高、簡潔靈活和可移植性強的特點,使其在軟件開發領域頗受開發人員的青睞[1]。從目前的教學情況來看,學生在學習C程序設計時往往存在著一定的問題,實際掌握的情況并不太理想。筆者在多年的 C程序設計教學的基礎上,總結經驗,逐漸探索出一些行之有效的教學改革措施,并進行了相關的實踐,取得了顯著的成效。

一、C程序設計教學存在的突出問題

第一,難入門,C程序設計前幾章介紹的是運算符和表達式,如果按課本順序來講,這些內容足使學生產生枯燥感,從而慢慢失去對本課程的學習興趣;第二,生源的計算機基礎參差不齊,導致部分學生學習進度緩慢,每次的實踐任務在規定的上機課內難以完成,越積累多,最終可能放棄;第三,教學案例的選擇和教學方法的選取不當,難以提起學生的學習興趣;第四,課時不斷壓縮,教學任務難以完成,教學壓力越來越大,不得不減少教學內容,有些學校甚至把可以稱作C語言精華部分的指針都已經取消;第五,考核方式不合理,造成應試教育效果,難以達到能力培養的效果。

二、C程序設計課程改革與實踐

(一)上好第一節課

上好C程序設計的第一堂課很重要:首先講明C程序設計的重要性;其次結合一些生動的C程序實例,展示C語言強大的功能,使學生對C語言的學習產生興趣并狠下決心;再次 提出該課程的學習要求與學習方法,給出平時作業、上機試驗、考試方式等具體要求[2]。

(二)教學模式改革

C程序設計教學模式改革以程序設計為主線,編程案例為驅動,培養高素質應用型專門人才為目標,注重分析問題、解決問題的能力的培養。該課程要求學生掌握結構化程序設計方的法和步驟,具有閱讀和編寫一定應用程序的能力,具有上機調試、正確運行程序的能力[3]。因此必須以學生為主體、教師為導向,利用現代化教學手段,改革《C程序設計》課程教學模式; 同時以應用型能力培養為導向,制定合理的教學大綱和教學計劃,形成一套科學的課程教學體系。

(三)理論教學方法改革

課堂上采用案例教學和任務驅動教學等教學方法的有機結合,理論聯系實際,有針對性地提出恰當的生活實例,讓學生在一個個有趣的典型實例的驅動下,進行教學活動,引導學生逐步完成一系列任務,從而掌握了清晰的思路、解決方法和知識的脈絡,并且在完成任務的過程中,培養了分析問題、解決問題以及程序設計的能力,同時拓展學生知識面。

(四)實踐環節改革

1.C程序設計是一門實踐性很強的課程,需要大量的上機實踐。由于學校每周安排的上機時間僅僅為2小時左右,所以需要學生在上機前按照上機試驗的要求,確定解決問題的思路并編寫程序。這樣既鍛煉了學生獨立調試程序的能力,又增強了學生編程解決較難問題的信心。

2.教師也要認真對待每節上機課,要細心組織安排每一次試驗內容,讓學生在試驗前都有明確的上機目的和必要的編程準備。在實踐過程中,作為教師對于上機試驗內容應盡量精心設計,與所學的課堂知識結合起來,便于學生對知識的理解和消化,注重內容的實用性。 同時還要在實際操作中采用各種辦法克服困難達到實驗教學的效果。

3.試驗結束時,學生按統一要求,提交實踐程序到FTP,個別試驗按老師要求寫試驗報告,教師把學生提交電子文件作為試驗報告評分的參考依據。

(五)提高教師的效能感

教師效能是一種教師對自己的教學能力和專業知識能影響和幫助學生的信念。這種信念表明了教師對本身教學能力的自信程度。教師效能感通過對教師心理的作用影響教師的教學及其它行為,并以教師對待學生的外部行為為教師傳遞教育效能感的必由方式,并最終體現在對學生學業成就和人格等因素的影響上。教師效能感也會影響學生學習的積極性,影響學生的學習興趣、學習態度和情緒情感活動。本團隊強調教師必須具有效能感,方能更好的提高教學質量。

(六)教材修訂

當前大部分C程序設計教材是傳統的編排模式,即先介紹入門知識,然后是基礎語法知識、數據類型、程序結構、指針、結構體、文件的讀寫。這種方法以知識點為主線,容易陷于語法細節,使學生容易判別錯C程序設計課程的重點。本教學團隊在以趣味性案例為目標的前提下重新編寫了C程序設計教材,該教材以程序設計為主線,在闡述基本理論的基礎上,組織了大量有趣的生活實例,每個實例包含了即將教學的理論知識。這樣通過大量經典實例講解和實訓,使學生帶著興趣積極努力,不斷培養和提高了學生的編程能力和創新精神。

(七)網絡教學平臺的構建

本團隊努力構建了C 程序設計教學網站,該網站充分利用網絡的開放性、共享性和協作性等特點和優勢,對C程序設計教學內容重新進行規劃和組織,為學生創造了一個集知識和趣味于一體的、包括個性化學習環境和協作式學習環境的開放性網絡教學平臺。將該課程的大綱、電子教案、教學進度計劃、課件、經典程序源代碼以及課外學習資料等教學資源上傳到網站,為學生營造了一個自主學習的網絡環境,將教學延伸到課堂外。這樣學生既可以利用教學資源自主學習,還可以使用Email、QQ或 論壇等方式與教師進行交流,完全避免了時空限制,以達到更好的教學效果。

(八)改革單一的考核方式

本學院對C程序設計考核不再采用僅僅筆試的形式,而是筆試和機試相結合。與傳統的筆試相比,上機考試可以考核學生實際上機調試程序的能力,考核分析問題,編程解決問題的綜合能力,督促學生真正掌握程序設計課程的精髓。

三、近六年的期末平均成績分析

筆者將本院計算機專業近六年的C程序設計課程的期末考試成績進行了整理(每年選本屆第一個班整理成績),C程序設計課程期末考試中各項考核的平均成績,按時間順序分析發現盡管每年參加C程序設計考試的學生不同,但總體成績大體呈現穩步上升,尤其是上機考試成績在逐步提高,甚至出現超出筆試成績的情況,這說明本團隊對C程序設計課程的教學改革與實踐取得初步成效,應用能力培養的結果逐漸凸顯,諸多情況完全符合我校應用性本科建設的要求;筆試成績盡管有所提高,但不太顯著,說明學生的理論知識點掌握基本穩定。

本團隊實施以上改革措施后,學生不僅對C程序設計課程有了極大的學習興趣,而且程序設計思想和編程能力有了明顯的提高。總之,教師應精心選擇并鉆研教材,把教材和學生實際相結合,再運用靈活多樣的教學方法和恰當的教學手段,使教學過程最優化。C程序設計教學改革應該重視理論與實踐相結合,在今后的教學過程中將不斷地去完善。

參考文獻:

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

[2] 楊平. C語言教學改革探討與實踐[J] .電腦學習,2011(4). [3] 馮運仿. 《C語言程序設計》課程教學模式的研究與實踐[J] .福建電腦,2012(1) .

作者簡介:

祁昌平,男,(1976-),碩士,副教授,2013年國家青年骨干訪問學者,主要研究方向為模式識別、人工智能、數據庫技術等。

第12篇

關鍵詞:教學內容;教學手段;教學方法;考核方式

C語言是早期最經典、最強大的面向過程的程序設計語言之一。雖然現在面向過程已經全面轉向面向對象,但是C本身的中級語言的設計理念以及對現有VC/C#等語言的深刻影響,使其至今仍是程序設計入門的首選語言,也是工科院校計算機專業學生接觸的第一門程序設計語言。對于計算機類專業學生來說,一旦掌握了C語言,就可以較為輕松地學習其他任何一種程序設計語言,為后續的面向對象程序設計以及Java程序設計等語言的學習打下基礎;對于其他非計算機專業的工科學生來說,比如電子、機電專業來說,該課程為學生用計算機編程解決實際問題提供了方法,是學習單片機技術教學的基礎和重要工具。

一、C語言教學中面臨的問題

C語言程序設計是一門基于dos操作系統下的面向過程的程序設計語言,隨著面向對象語言的開發,C語言在界面交互性上遜色不少,作品上也不如Flash、三維動畫效果吸引眼球,難學、難懂、難以應用的課程,對學生越來越缺乏吸引力。針對這種狀況筆者認為,更新教育觀念、探索新的教學模式才是根本出路。筆者根據多年的教學經驗,對C語言程序設計課程從教學內容、教學手段、教學方法、考核方法方面進行了一系列的創新改革。教學內容主要解決如何調動學生積極性,激發學生創新能力,如何提高學生的創新能力、實踐能力、研究能力、發現問題和解決問題能力等綜合素質;教學方法主要解決如何實現“以人為本”,分層次教育,如何通過引導、啟發等方法,激發學生的發散性思維。同時要利用目前課堂和實驗教學在培養學生創新能力和實踐能力方面的優點,利用大學生實訓基地,為學生的創新和實踐能力的鍛煉和培養提供一個良好的平臺。

二、教學內容的創新

課程內容的選取與組織是課程教學改革的基礎。人才培養方案對C語言程序設計教學內容進行重新整合,把課程學習劃分成培養學生的基本程序設計能力和培養學生的專業程序設計能力兩個階段。

第一階段安排在大一第一學期,主要針對沒有程序設計經驗的大一新生,重點講授C語言的基本知識,包括三種基本結構、數組、函數的概念。在第一階段教學中,筆者采用案例教學方法結合具體的程序實例,創設情境,引導學生自己總結掌握C語言的基本語法和程序設計的基本方法。第一階段的學習結束的時候,學生可以具備基本的程序設計能力,獨立編寫具有初等難度、幾十行的程序,并且能夠較順利地完成程序調試與測試。第二階段教學放在大一第二學期初,針對具備基礎程序設計能力的學生,重點培養學生的專業程序設計能力。在第二階段的教學中,以學生為主體、以教師為引導,采用國家火炬計劃河北省軟件人才工程實訓課程,使學生融會貫通所學知識,完成一個具體的項目,以達到提高學生程序開發能力的目的。迄今為止,學生完成的項目包括“銀行儲蓄管理系統”“彩票信息查詢系統”。教學實踐證明,這種理論和實踐技能并行的教學模式,更加有助于學生的創新能力的提高,使學生在不斷實踐中掌握技能,在技能學習中提高基礎理論。

三、教學手段的創新

在學習過程中除了發揮教師的引導作用,還需要充分調動學生的參與主動性。在授課期間靈活采用多種教學手段,如:自學、演示、對比、課堂提問、學生演練和討論等,通過不同方法,尋找創意思維“契機”,安排創意鋪墊內容,培育學生的創意萌芽,營造創意環境,引發學生爭鳴,為學生提供更多的思維空間,誘發學生的思維靈感。例如,在教學中講解“循環結構的循環嵌套”的時候,提出馬克思手稿中的數學題的案例:偉大的思想家馬克思的手稿中有這樣一道有趣的數學題:有30個人,其中有男人、女人和小孩。他們在一家飯館中吃飯,共花費50先令。如果每個男人吃飯要花3先令,女人要花2先令,每個小孩要花1先令,問男人、女人、小孩各多少人?先提出問題,引導學生分析、討論案例,提問學生運用數學知識完成案例提出的問題需要進行哪些操作,這樣學生就會比較有興趣,課堂氣氛就活躍起來。然后幫助學生從案例分析中理解并掌握什么是多重循環,并且如何使用雙重循環解決問題,最終完成程序的編寫。

在學習的第二階段采用開放式訓練教育方式,利用專題設計和課外指導方式,鼓勵學生課外自主進行訓練。如:完成的項目“彩票信息查詢系統”,教師提出設計方案,學生完成基本功能以后,自己可以對其他功能進行完善。

四、教學方法的創新

課程每個章節內容結構主要由三部分組成:

知識點:介紹本章需要掌握的知識或技術。

應用案例:介紹本章知識應用的案例。

創新訓練:針對具體的問題,應用本章技術來完成知識點的應用。

在整個教學過程中,教師采用框架式教學,像建筑工程師修建筑一樣,先采用精講的方式,讓學生建立整門課程的知識框架;接著通過案例教學、項目式教學等多種教學方式,讓學生逐步去進行細節知識點的填充;最后通過綜合訓練方式,完成整門課程的學習。

例如,在講解C語言程序設計中的函數時,搭建出例如綜合排序等程序的框架,給學生留出函數,讓學生自由開拓思想,獨立完成一些小型實例的編程,經過具體知識點的訓練后,還要重點進行綜合知識的應用訓練,開展一系列的創新應用,以達到知識綜合運用和培養創新能力的目的。

五、考核方式的創新

傳統的C語言程序設計考核模式一般以標準化的筆試題為主,這種考核方式側重語法知識的考核,忽視編程實踐能力的培養。為此,筆者改革傳統的考核方式,將考核分為平時實驗和期末考核兩部分。平時實驗成績考核的是學生每一章知識,實訓作業就是在每一章節結束的時候,布置相關的習題,學生利用業余時間編程,并且在實訓期間進行調試,調試成功后上傳到服務器上。期末考核成績采用的是教研室開發的上機考試系統。上機考試系統模擬C語言二級考試建立了知識面齊全、題量充足、難易度合理的試題庫,采取隨機抽題的形式重點考查學生的程序設計能力和程序調試能力。這種考核方式督促學生在平時學習中加強對編程舉一反三的實踐環節。實踐證明,這樣不僅能有效培養學生的實踐編程能力,還激發了學生動手實踐解決問題的興趣。

總之,經過不斷的摸索與實踐,通過以上的教學方法與教學手段的改革和實踐,不僅提高了學生的學習興趣,讓學生從枯燥無味的語言學習中解放出來,從被動學習走向主動學習,同時也培養了學生分析問題、解決實際問題的能力,充分發掘了學生的創造潛能,鍛煉了創新和協作精神。

參考文獻:

[1]郭芹.對高職高專計算機專業程序設計教學的思考[J].中國科技信息,2008(1).

主站蜘蛛池模板: 新田县| 汝阳县| 平罗县| 汤阴县| 西和县| 双辽市| 胶州市| 长寿区| 武清区| 澜沧| 龙游县| 兴安县| 个旧市| 普洱| 泸西县| 日照市| 巴南区| 安仁县| 内黄县| 苏尼特右旗| 昭觉县| 凭祥市| 郁南县| 从化市| 平阴县| 南通市| 隆化县| 镇宁| 仲巴县| 孝感市| 德兴市| 调兵山市| 海兴县| 常宁市| 绍兴县| 乌拉特中旗| 银川市| 阜宁县| 怀柔区| 治县。| 塔城市|