无码任你躁久久久久久久-激情亚洲一区国产精品-超碰97久久国产精品牛牛-久久se精品一区精品二区国产

首頁 > 文章中心 > c語言程序設(shè)計論文

c語言程序設(shè)計論文

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇c語言程序設(shè)計論文范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

c語言程序設(shè)計論文

c語言程序設(shè)計論文范文第1篇

關(guān)鍵詞:C語言;學(xué)生成績管理系統(tǒng);程序設(shè)計

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)04-0059-04

1 背景

如今各大高校均需要一個完整的系統(tǒng)來管理和保存學(xué)生的各門課成績信息,以便后期使用,論文以河海大學(xué)文天學(xué)院的工科專業(yè)學(xué)生成績?yōu)槔\(yùn)用C語言程序設(shè)計和程序運(yùn)行的環(huán)境,設(shè)計了一個簡單的學(xué)生成績管理系統(tǒng),下面就來介紹該系統(tǒng)是如何構(gòu)建的。

2 系統(tǒng)需求分析

2.1 系統(tǒng)功能劃分

該系統(tǒng)主要功能如下:

1)學(xué)生基本信息和成績的錄入;

2)學(xué)生成績的管理,如計算總分、排序、統(tǒng)計等功能。

2.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計

這個學(xué)生成績管理系統(tǒng)中包含的學(xué)生信息有:學(xué)生的學(xué)號、姓名、性別、高數(shù)成績、英語成績、計算機(jī)成績、三門功課總分,主要的功能模塊如下:

1)輸出學(xué)生基本信息并算出總分;

2)按照學(xué)號進(jìn)行排序;

3)按照總分進(jìn)行排序;

4)統(tǒng)計各門課程平均分;

5)統(tǒng)計男女學(xué)生人數(shù);

6)按照姓名進(jìn)行排序;

7)統(tǒng)計高數(shù)成績優(yōu)秀(大于等于80分)的人數(shù),并輸出符合條件的記錄;

8)統(tǒng)計每門功課成績都在80分以上,或總分在240分以上的人數(shù),并輸出符合條件的記錄。

C語言中系統(tǒng)的每個功能由一個函數(shù)來實(shí)現(xiàn),其系統(tǒng)功能模塊層次結(jié)構(gòu)圖如下:

圖1 學(xué)生成績管理系統(tǒng)功能模塊層次結(jié)構(gòu)圖

因?yàn)楹瘮?shù)就是功能,所以對于圖1的功能模塊層次結(jié)構(gòu)圖,每個模塊就對應(yīng)C語言中的一個函數(shù),該系統(tǒng)中所涉及的函導(dǎo)捌涔δ莧縵攏

1)int Menu();

主控菜單函數(shù),有返回值,無參數(shù)。用菜單形式顯示該系統(tǒng)能實(shí)現(xiàn)的所有功能,以供用戶查看和使用。函數(shù)中的返回值為用戶輸入的序號code,為局部整型變量。

2)void Read(struct student stud[],int *n);

讀入數(shù)據(jù)函數(shù),無返回值,有參數(shù)。形式參數(shù)stud為結(jié)構(gòu)體數(shù)組,由于調(diào)用此函數(shù)時實(shí)際參數(shù)為數(shù)組名,因此此處用數(shù)組接收;形式參數(shù)n為指針變量,由于實(shí)際參數(shù)為存放學(xué)生人數(shù)的整型變量的地址,因此n指向存放學(xué)生人數(shù)的整型變量,這樣可以在讀入學(xué)生信息的同時,還可以統(tǒng)計出學(xué)生的人數(shù)。

3)void Print(struct student *pstud,int n);

輸出數(shù)據(jù)函數(shù),無返回值,有參數(shù)。形式參數(shù)pstud為指針變量,指向存放學(xué)生信息的結(jié)構(gòu)體數(shù)組,這樣可以將相關(guān)變動信息返回給主調(diào)函數(shù);形式參數(shù)n為整型變量,存放學(xué)生的人數(shù)。

4)void total_order(struct student *pstud,int n);

按總分排序函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。

5)void num_order(struct student *pstud,int n);

按學(xué)號排序函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。

6)void ave_count(struct student *pstud, int n);

統(tǒng)計各門課平均分函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。

7)void nn_count(struct student *pstud,int n);

統(tǒng)計男女學(xué)生人數(shù)函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。

8)void name_order(struct student *pstud,int n);

按姓名排序函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。

9)void gxyx(struct student *pstud,int n);

統(tǒng)計高數(shù)成績優(yōu)秀人數(shù)函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。

10)void mm(struct student *pstud,int n);

統(tǒng)計每門課分?jǐn)?shù)不小于80分或總分在240分以上人數(shù)函數(shù) ,無返回值,有參數(shù)。形式參數(shù)同上。

3 C語言程序設(shè)計

一個C語言源程序由若干個函數(shù)構(gòu)成,且有且僅有一個主函數(shù),主函數(shù)的名字只能是main,其他函數(shù)名字由用戶自己定義,只要滿足標(biāo)識符的四大規(guī)則即可。一個程序總是從主函數(shù)開始執(zhí)行,無論主函數(shù)在前還是在后,該系統(tǒng)中除了主函數(shù)外,還有十個函數(shù),下面針對其中幾個重要的函數(shù)進(jìn)行程序設(shè)計。

3.1 主函數(shù)程序設(shè)計

為了方便讀者更好地讀懂該程序,部分地方加了注釋,以上程序中/* */為注釋,計算機(jī)并不執(zhí)行。其中第四行的N為符號常量,表示該系統(tǒng)記錄了10個學(xué)生信息,每個學(xué)生信息用結(jié)構(gòu)體類型的數(shù)組來保存,該結(jié)構(gòu)體類型包含4個子成員,每個成員又是另一種類型的數(shù)據(jù),其中學(xué)號、姓名、性別均由字符數(shù)組存儲,成績由整型數(shù)組存儲,這樣就構(gòu)成了struct student結(jié)構(gòu)體類型,主函數(shù)中的第一條語句就是用這種類型定義了結(jié)構(gòu)體數(shù)組stud,用來存放十個學(xué)生信息。接下來就在主函數(shù)中調(diào)用各個函數(shù),實(shí)現(xiàn)相對應(yīng)的功能。

3.2 用戶自定義函數(shù)程序設(shè)計

3.2.1 主控菜單函數(shù)的設(shè)計

在屏幕中顯示主控菜單,scanf為輸入函數(shù),需要輸入一個整數(shù),通過輸入相對應(yīng)的數(shù)字序號,可以實(shí)現(xiàn)相應(yīng)的功能,例如輸入1,即顯示學(xué)生全部信息。

3.2.2 讀入數(shù)據(jù)函數(shù)的設(shè)計

該系統(tǒng)是從文件中讀取數(shù)據(jù),10名學(xué)生的信息存儲在文本文件studfile.txt中,如果想修改學(xué)生信息,直接在文件中修改即可,不用修改程序,這樣既方便又快速,大大節(jié)省了時間。

3.2.3 按姓名排序函數(shù)的設(shè)計

以上程序使用冒泡的排序方法按姓名從小到大排序,系統(tǒng)直接將排序的結(jié)果輸出到屏幕中,以供用戶查看和使用。

4 系統(tǒng)界面

將以上程序輸入到計算機(jī)C語言開發(fā)環(huán)境Microsoft Visual C++6.0中,經(jīng)過編輯、編譯、連接以后就可以運(yùn)行了,運(yùn)行界面如下:

1)系統(tǒng)菜單界面

當(dāng)按下回車鍵,系統(tǒng)進(jìn)入菜單模式,按照序號選擇需要顯示的信息。

2)@示學(xué)生信息界面

當(dāng)按下序號1,系統(tǒng)進(jìn)入顯示全體學(xué)生信息界面,顯示的同時計算出了3門課總分。

3)按學(xué)號排序界面

按下回車鍵繼續(xù)進(jìn)入菜單進(jìn)行選擇,當(dāng)按下序號3,系統(tǒng)進(jìn)入按學(xué)號從小到大排序的界面。

4)統(tǒng)計高數(shù)優(yōu)秀的學(xué)生人數(shù)和記錄

按下回車鍵繼續(xù)進(jìn)入菜單進(jìn)行選擇,當(dāng)按下序號7,系統(tǒng)進(jìn)入統(tǒng)計高數(shù)不低于80分的人數(shù)和記錄。

5 結(jié)束語

論文主要介紹了學(xué)生成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)過程,分別從系統(tǒng)需求分析、系統(tǒng)程序設(shè)計和系統(tǒng)界面設(shè)計三個方面展示了系統(tǒng)的設(shè)計與實(shí)現(xiàn),其中系統(tǒng)需求分析包括大體功能劃分和具體功能結(jié)構(gòu)設(shè)計,并設(shè)計了功能結(jié)構(gòu)圖,描述了各項(xiàng)功能,系統(tǒng)程序設(shè)計包括主函數(shù)和其他自定義函數(shù)的設(shè)計。該系統(tǒng)總共實(shí)現(xiàn)了八項(xiàng)功能,學(xué)生信息來源于文本文件,這樣大大方便了學(xué)生信息的增刪改查等功能。系統(tǒng)中所有功能使用到的方法,還可以實(shí)現(xiàn)更多的功能,拓展性能良好,便于各高校各專業(yè)使用。

參考文獻(xiàn):

[1] 胡楓. 《C語言程序設(shè)計》的案例式教學(xué)的設(shè)計[J]. 青海師范大學(xué)學(xué)報, 2010(4).

[2] 譚浩強(qiáng). C程序設(shè)計[M]. 4版.北京: 清華大學(xué)出版社, 2010.

[3] 宮業(yè)芹. C語言程序設(shè)計網(wǎng)上教學(xué)系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D]. 濟(jì)南: 山東大學(xué), 2012.

c語言程序設(shè)計論文范文第2篇

關(guān)鍵詞:應(yīng)用型本科;培養(yǎng)軟件工程師;Java課程群;教學(xué)研究

中圖分類號:TP3 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)19-4518-03

Java Programs Applied Undergraduate Teaching and Research Group for the Training of Software Engineers

YU Xiao

(Wuhan Technology And Business University Department of Information Engineering, Wuhan 430065, China)

Abstract: In this paper, application-oriented university training Java software engineers in the process of teaching a number of issues, analyzes how demand-oriented enterprise Java software engineers conduct group teaching curriculum design, including accurate positioning training applied talents teaching objectives, optimize Curriculum reconstruction and the accumulation of experience teaching curriculum system, integration and research.

Key words: Application-Oriented; Training of Software Engineers; Java Curriculum Group; Teaching and Research

1 應(yīng)用型本科Java課程群的教學(xué)現(xiàn)狀

隨著計算機(jī)行業(yè)的發(fā)展進(jìn)入到互聯(lián)網(wǎng)時代,由于 Java語言在計算機(jī)軟件開發(fā)尤其是支持網(wǎng)絡(luò)編程方面的優(yōu)勢,大多數(shù)高校計算機(jī)科學(xué)與技術(shù)專業(yè)在培養(yǎng)計劃中都設(shè)置了Java系列課程的培養(yǎng)方案。應(yīng)用型本科大學(xué)作為第三類大學(xué)在進(jìn)行Java系列課程教學(xué)改革中確定Java課程群體系的培養(yǎng)目標(biāo)是非常重要的。因?yàn)閼?yīng)用型本科培養(yǎng)的軟件類畢業(yè)生在就業(yè)中將會與研究性大學(xué)本科專科畢業(yè)生、職業(yè)技術(shù)專科學(xué)院和職業(yè)培訓(xùn)機(jī)構(gòu)的學(xué)生進(jìn)行競爭。為了適應(yīng)軟件行業(yè)對Java開發(fā)人才的需要,高校簡單的開設(shè)一門Java語言程序設(shè)計是遠(yuǎn)遠(yuǎn)不夠的[1]。現(xiàn)階段,應(yīng)用型本科大學(xué)的Java課程體系是參考研究性大學(xué)本科課程體系的標(biāo)準(zhǔn)而制定的,并沒有突出應(yīng)用性的特點(diǎn),而學(xué)生在編程方面的能力培養(yǎng)遠(yuǎn)不及職業(yè)技術(shù)學(xué)院、職業(yè)培訓(xùn)機(jī)構(gòu)的學(xué)生在實(shí)踐編程能力的培養(yǎng)。

2 面向培養(yǎng)Java軟件工程師課程教學(xué)的重要性

現(xiàn)階段計算機(jī)應(yīng)用軟件的開發(fā)主要采用.Net平臺和Java兩大平臺,這兩個平臺各有千秋[2]。在計算機(jī)類職業(yè)培訓(xùn)機(jī)構(gòu)的課程體系中Java系列課程也是熱門的課程。Java軟件工程師的職位在目前就業(yè)市場中屬于緊缺職位。面向培養(yǎng)IT企業(yè)需要的軟件工程師,為企業(yè)輸送急需對口人才是各大高校在進(jìn)行Java課程群的教學(xué)建設(shè)中需要考慮的問題。但是,很多Java課程體系的教學(xué)與市場需求存在脫節(jié)的情況。另外,Java教學(xué)的知識落后于企業(yè)正在使用的技術(shù)。計算機(jī)行業(yè)是發(fā)展和更新知識非常快的行業(yè),由于高校教師缺乏與企業(yè)交流而導(dǎo)致在Java教學(xué)過程中不能及時更新到最新的技術(shù),使得學(xué)生在畢業(yè)時所學(xué)的知識過時。

3 面向培養(yǎng)軟件工程師的Java課程群教學(xué)思路

3.1應(yīng)用型本科大學(xué)在Java課程群教學(xué)改革中的優(yōu)勢

應(yīng)用型本科大學(xué)比科研型本科大學(xué)在課程設(shè)置上允許更為靈活,所以在Java課程群教學(xué)中可采用多種培養(yǎng)方式相結(jié)合。例如,在實(shí)踐教學(xué)環(huán)節(jié)可以加強(qiáng)校企合作。Java的實(shí)踐課程可以由企業(yè)的講師或軟件培訓(xùn)機(jī)構(gòu)的人員參與教學(xué)過程,在教學(xué)內(nèi)容上,可以比研究性大學(xué)更偏重應(yīng)用。也可以在高年級的實(shí)踐教學(xué)中的有限課時內(nèi)讓學(xué)生直接在企業(yè)中實(shí)習(xí)。為實(shí)施素質(zhì)教育,提高學(xué)生的專業(yè)技能,培養(yǎng)技術(shù)應(yīng)用型人才,需要不斷探索以變更落后的教學(xué)方法,改革傳統(tǒng)的教學(xué)模式[3]。

應(yīng)用型本科大學(xué)在教學(xué)過程中比職業(yè)培訓(xùn)機(jī)構(gòu)更注重綜合能力的培養(yǎng)。比如,應(yīng)用型本科教學(xué)不僅教授的是Java語言,除此之外教學(xué)課程體系中還會設(shè)置有《數(shù)據(jù)庫原理》、《計算機(jī)網(wǎng)絡(luò)工程》、《操作系統(tǒng)原理》和《軟件工程》等重要的理論性指導(dǎo)課程,使學(xué)生在計算機(jī)應(yīng)用能力上更具全面性,為學(xué)生更好的在職業(yè)發(fā)展中成為軟件工程師打好理論基礎(chǔ),而不僅僅只能成為程序員。

3.2 面向培養(yǎng)軟件工程師的教學(xué)目標(biāo)

應(yīng)用型本科Java課程體系教學(xué)應(yīng)將與Java技術(shù)緊密相關(guān)的多門課程整合起來形成課程群,以強(qiáng)化課程間的關(guān)系,理清課程間的銜接,避免課程內(nèi)容的重復(fù)性。設(shè)計課程群中實(shí)踐課程的遞進(jìn)關(guān)系。課程群的建設(shè)應(yīng)緊密結(jié)合企業(yè)的需求,設(shè)計面向培養(yǎng)軟件工程師所需的能力項(xiàng)目的定向案例或課題。進(jìn)行Java課程群教學(xué)培養(yǎng)的目標(biāo)應(yīng)是面向企業(yè)需求的以應(yīng)用型為主的強(qiáng)化實(shí)踐編程能力的軟件工程師。

3.3 Java課程群體系

根據(jù)現(xiàn)有Java技術(shù)相關(guān)的教學(xué)課程選擇五門課程組成Java課程群,分別是Java語言程序設(shè)計、Java語言程序設(shè)計課程設(shè)計、Java Web程序設(shè)計、Java Web程序設(shè)計課程設(shè)計、Java技術(shù)畢業(yè)設(shè)計。課程群中前一門課程是后一門課程的基礎(chǔ),課程的難度是遞進(jìn)的由淺入深的介紹Java技術(shù)的應(yīng)用。每門課程都有不同的教學(xué)培養(yǎng)的側(cè)重點(diǎn),如下表所示。

表1 Java課程群的培養(yǎng)與考核

[課程名\&能力培養(yǎng)側(cè)重點(diǎn)說明\&考核方式\&Java語言程序設(shè)計\&Java語言基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計、圖形用戶界面編程、文件編程\&理論筆試與實(shí)踐課程綜合評分\&Java語言程序設(shè)計課程設(shè)計\&三個方向的綜合應(yīng)用程序開發(fā):圖形用戶界面與文件流結(jié)合編程;圖形用戶界面與網(wǎng)絡(luò)通信結(jié)合編程;圖形用戶界面與數(shù)據(jù)庫結(jié)合編程\&答辯與課程設(shè)計論文綜合評分\&Java Web程序設(shè)計\&JSP技術(shù)基礎(chǔ)、JDBC、JSP進(jìn)行動態(tài)網(wǎng)站開發(fā)\&理論筆試與實(shí)踐課程綜合評分\&Java Web程序設(shè)計課程設(shè)計\&使用JDBC數(shù)據(jù)庫連接技術(shù)進(jìn)行JSP動態(tài)網(wǎng)站開發(fā)的綜合應(yīng)用\&答辯與課程設(shè)計論文綜合評分\&Java技術(shù)畢業(yè)設(shè)計\&使用EJB應(yīng)用開發(fā)、Java API的使用及服務(wù)的應(yīng)用進(jìn)行小型實(shí)際應(yīng)用項(xiàng)目的開發(fā)\&畢業(yè)設(shè)計答辯與畢業(yè)設(shè)計論文綜合評分\&]

課程群的每門課程都分為理論教學(xué)環(huán)節(jié)、實(shí)踐教學(xué)環(huán)節(jié)和考核環(huán)節(jié)組成。每門課程的評分標(biāo)準(zhǔn)根據(jù)課程的特點(diǎn)而定。程序設(shè)計課程以理論考試與實(shí)踐課程的程序完成情況進(jìn)行綜合評分,課程設(shè)計課程以系統(tǒng)運(yùn)行演示與答辯結(jié)合課程設(shè)計論文的綜合評分,畢業(yè)設(shè)計環(huán)節(jié)需要通過本科畢業(yè)設(shè)計答辯和本科畢業(yè)論文的考核綜合評分。

4 面向培養(yǎng)軟件工程師Java課程群的教學(xué)研究

4.1 面向培養(yǎng)軟件工程師Java課程群教學(xué)方法的研究

在應(yīng)用型本科大學(xué)教學(xué)多年Java課程群的課程以后,根據(jù)教學(xué)實(shí)際情況在教學(xué)方法方面進(jìn)行了歸納總結(jié)。在Java課程群教學(xué)中應(yīng)以學(xué)生在學(xué)習(xí)該課程的實(shí)際情況為出發(fā)點(diǎn),一方面強(qiáng)化面向?qū)ο缶幊趟枷耄驗(yàn)槊嫦驅(qū)ο笫擒浖こ痰幕A(chǔ),為后續(xù)用Java工具進(jìn)行軟件工程與產(chǎn)品設(shè)計打基礎(chǔ);另外一方面應(yīng)突出Java與C++的不同點(diǎn)和各種工具包,主要以圖形用戶界面與事件作為重難點(diǎn)。具體來說,課堂教學(xué)方法上盡量深入淺出而突出重難點(diǎn),因?yàn)橐话銇碚f,開設(shè)《Java程序設(shè)計》課程是在大學(xué)本科已經(jīng)開設(shè)了至少兩門語言課程《C語言程序設(shè)計》、《C++語言程序設(shè)計》之后的高年級專業(yè)課,一部分內(nèi)容希望學(xué)生在老師的引導(dǎo)下培養(yǎng)自學(xué)能力或在后續(xù)課程《軟件工程》與《Java Web程序設(shè)計》課程中逐步強(qiáng)化細(xì)節(jié)。

4.2面向培養(yǎng)軟件工程師Java課程群教學(xué)方式的研究

教師在本校應(yīng)用型本科大學(xué)教學(xué)過程中與學(xué)生進(jìn)行了多次交流,得到了學(xué)生寶貴的反饋,結(jié)合教師在不斷教學(xué)探索與實(shí)驗(yàn)教學(xué)過程中的體會與思考,對進(jìn)行培養(yǎng)面向軟件工程師的Java課程群教學(xué)方式改革進(jìn)行了總結(jié),得到以下五個方面的改進(jìn)措施。

1) 實(shí)踐教學(xué)與課堂教學(xué)整合

學(xué)生反映理論教學(xué)在教室學(xué)習(xí)效率不高,建議安排在實(shí)驗(yàn)機(jī)房進(jìn)行教學(xué),理論教學(xué)后及時進(jìn)行上機(jī)操作能更好的鞏固知識,實(shí)現(xiàn)理論與實(shí)踐的同步教學(xué)。課堂教學(xué)中的每個知識點(diǎn)在理論教學(xué)后布置上機(jī)的小實(shí)例作業(yè),學(xué)生通過完成小實(shí)例作業(yè)就能很好的檢測該知識點(diǎn)的掌握情況,將實(shí)踐教學(xué)與課堂理論教學(xué)整合。整個教學(xué)全程安排在實(shí)驗(yàn)機(jī)房完成。

2) 分步式案例教學(xué)

Java課程群中的課程的每門課程開始列出該門課程的重要知識點(diǎn)。在教學(xué)過程中以一個綜合應(yīng)用案例為線索,涵蓋該門課程大部分最重要的知識點(diǎn)應(yīng)用。將這個綜合案例分解成若干部分,整個教學(xué)過程中在不同的重要章節(jié)中逐步分別講解案例的某個部分。最后,將分步驟講解的案例部分組合在一起,完成整個案例的拼接運(yùn)行與演示。這種分步式案例教學(xué)讓學(xué)生對該門課程有一個完整的知識體系。分步式案例教學(xué)在培養(yǎng)學(xué)生綜合應(yīng)用能力方面取得了很好的效果,使學(xué)生從應(yīng)用角度對該門課程每章的內(nèi)在聯(lián)系有了一個總體的了解。

3) 學(xué)生演講與教師指導(dǎo)相結(jié)合

一般來說,學(xué)生在學(xué)習(xí)Java課程群的課程時已經(jīng)具有了一定程序設(shè)計語言的基礎(chǔ),學(xué)生在現(xiàn)有的C語言或C++語言學(xué)習(xí)的基礎(chǔ)上進(jìn)行多種編程語言的對比,能更好更快的掌握J(rèn)ava課程群的新知識。關(guān)于Java語言基礎(chǔ)和JSP語言基礎(chǔ)部分,例如變量與常量、表達(dá)式與運(yùn)算符等知識點(diǎn),可以讓學(xué)生進(jìn)行課下自學(xué),并在上課過程中由學(xué)生進(jìn)行演講,對比現(xiàn)已學(xué)過的語言,分析Java語言或JSP語言的不同點(diǎn)和相同點(diǎn)。教師在學(xué)生講課中及時進(jìn)行補(bǔ)充或更正學(xué)生知識點(diǎn)的講解。學(xué)生演講與教師指導(dǎo)相結(jié)合的方式適用于Java課程群中程序設(shè)計語言基礎(chǔ)部分。這種教學(xué)方式在一方面鍛煉了學(xué)生的表達(dá)能力,在另一方面讓學(xué)生鞏固了以往的知識點(diǎn)并學(xué)習(xí)了新的知識點(diǎn)。在一定程度上調(diào)動了學(xué)生的學(xué)習(xí)積極性和促使學(xué)生更加參與課程教學(xué),增加教與學(xué)的互動。

4) 分組答辯式教學(xué)

學(xué)生的課程設(shè)計或教學(xué)演講都可以采用分組的方式,例如一個班級30人,一般將該班級分為6個組,每組5人。因?yàn)槠髽I(yè)大型項(xiàng)目開發(fā)都是以團(tuán)隊的方式進(jìn)行的。在應(yīng)用型本科Java課程群的課程設(shè)計類課程中以團(tuán)隊方式進(jìn)行答辯,每組團(tuán)隊得到相同的分?jǐn)?shù)等級。使學(xué)生更具有團(tuán)隊合作意識,增進(jìn)團(tuán)隊合作能力進(jìn)行編程,使學(xué)生在企業(yè)中作為軟件工程師能更快適應(yīng)軟件開發(fā)團(tuán)隊。

5) 案例式擴(kuò)展教學(xué)在實(shí)踐教學(xué)過程中的應(yīng)用

Java課程群中實(shí)踐課程教學(xué)可以采用一個應(yīng)用實(shí)例貫穿到每個實(shí)踐環(huán)節(jié)。從課內(nèi)小案例的添加功能就可以完成該門課程的大案例,再在這個大案例的基礎(chǔ)上進(jìn)行優(yōu)化完善可以完成綜合課程設(shè)計,然后添加高級應(yīng)用功能可以達(dá)到畢業(yè)設(shè)計的要求。使實(shí)踐課程體系中的所有課程共同使用一個應(yīng)用實(shí)例使這些多門實(shí)踐課程具有內(nèi)在的連續(xù)性,又可以很好的擴(kuò)展性,使一個應(yīng)用實(shí)例不斷進(jìn)行加強(qiáng)與優(yōu)化。

參考文獻(xiàn):

[1] 彭碧濤,羅海蛟,姜靈敏. Java課程群的規(guī)劃與建設(shè)[J].福建電腦,2014(2):51.

c語言程序設(shè)計論文范文第3篇

【關(guān)鍵詞】C語言;程序設(shè)計;教學(xué)改革

一、C語言程序設(shè)計教學(xué)工作的重要性

C語言是一門長盛不衰的程序設(shè)計語言,深受廣大軟件愛好者的喜愛。它功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,而且有著比較豐富的數(shù)據(jù)類型、運(yùn)算符以及函數(shù)供以選用,又直接與內(nèi)存打交道,使修改、編輯其他程序與文檔變得輕松、簡單,因此而廣受業(yè)內(nèi)人士的青睞。在中等職業(yè)學(xué)校,C語言程序設(shè)計作為一門高級語言程序設(shè)計課程,是各理工科專業(yè)的公共基礎(chǔ)必修課。所以,開展好C語言程序設(shè)計的教學(xué)工作具有非常重要的理論意義和現(xiàn)實(shí)意義。

作為中職學(xué)校的C語言程序設(shè)計教師,我認(rèn)為要想讓學(xué)生學(xué)好這門課程,不僅要通過認(rèn)真講解課本知識讓他們掌握教材內(nèi)容,更重要的是通過上機(jī)實(shí)踐增強(qiáng)和鞏固他們的知識,達(dá)到活學(xué)活用的教學(xué)目標(biāo)。要讓學(xué)生在理論學(xué)習(xí)和基礎(chǔ)實(shí)驗(yàn)的基礎(chǔ)上,提高他們的實(shí)際操作能力,培養(yǎng)他們綜合運(yùn)用理論知識來分析和解決實(shí)際問題的能力、嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的程序設(shè)計習(xí)慣,最終實(shí)現(xiàn)由知識向智能的初步轉(zhuǎn)化。在課堂教學(xué)中,要把注重教師的教轉(zhuǎn)向注重學(xué)生的學(xué),要讓學(xué)生充分參與、充分體驗(yàn)、充分感受C語言程序設(shè)計,通過自主合作探究和動手動腦實(shí)踐操作熟練掌握編程技巧,將課本上的理論知識與動手實(shí)踐有機(jī)地結(jié)合起來,既鍛煉他們分析解決實(shí)際問題的能力,又提高他們適應(yīng)實(shí)際、實(shí)踐編程的能力。這是在傳統(tǒng)教學(xué)中難以實(shí)現(xiàn)的,因此突破傳統(tǒng)教學(xué)的禁錮和束縛,全面深化課堂教學(xué)改革,發(fā)揮現(xiàn)代課堂的生機(jī)與活力,激發(fā)學(xué)生的學(xué)習(xí)熱情和求知欲望已經(jīng)成為當(dāng)代教師義不容辭而且迫在眉睫的重任。

二、推進(jìn)C語言程序設(shè)計課堂教學(xué)改革的緊迫性

本人任教的重慶工商學(xué)校創(chuàng)建于1987年7月,1996年被認(rèn)定為首批國家級重點(diǎn)中等職業(yè)學(xué)校,2002年被確定為中國――澳大利亞職教合作項(xiàng)目五所項(xiàng)目學(xué)校之一,先后獲得全國職業(yè)教育先進(jìn)單位、全國成人教育先進(jìn)單位、全國中等職業(yè)學(xué)校德育工作先進(jìn)集體等榮譽(yù)稱號。經(jīng)過27年的辦學(xué)實(shí)踐探索,我校已成為目前中國西部地區(qū)規(guī)模最大、綜合辦學(xué)實(shí)力最強(qiáng)的中等職業(yè)學(xué)校之一。但是,我校的C語言程序設(shè)計教學(xué)工作還存在一些亟待解決的問題,迫切需要我們一線教師更新觀念、大膽創(chuàng)新,積極推進(jìn)這門課程的課堂教學(xué)改革,點(diǎn)燃學(xué)生的學(xué)習(xí)熱情,提升課堂教學(xué)實(shí)效。

從教師的角度來說,由于C語言程序設(shè)計是各理工科專業(yè)的公共基礎(chǔ)必修課。因此涉及這門學(xué)科的專業(yè)較多,由于不同的專業(yè)根據(jù)實(shí)際情況制定了不同的人才培養(yǎng)方案,導(dǎo)致各專業(yè)在C語言程序設(shè)計課程上設(shè)置的學(xué)時數(shù)、考試性質(zhì)等不盡相同,教學(xué)大綱也會根據(jù)人才培養(yǎng)方案中對該課程的不同安排再進(jìn)行修訂,這就為我們一線教師增加了教學(xué)工作需要不斷變換的難度。為此,我們教師應(yīng)該堅持學(xué)習(xí),努力提高自身的教育教學(xué)理論水平,把不同專業(yè)的不同學(xué)時合理地分配到順序、選擇、循環(huán)三大基本結(jié)構(gòu)和數(shù)組、指針、函數(shù)等教學(xué)內(nèi)容當(dāng)中去,并通過大膽嘗試和積極摸索,全面推進(jìn)課堂教學(xué)改革,培養(yǎng)學(xué)生對C語言程序設(shè)計的興趣,激發(fā)他們的學(xué)習(xí)實(shí)踐熱情,提升課堂教學(xué)實(shí)效,讓學(xué)生通過這門課程的學(xué)習(xí)切實(shí)掌握技能,全面增強(qiáng)能力。

從學(xué)生的角度來說,C語言程序設(shè)計課程既不算是文科,也不算是理科,因?yàn)槲目凭退阋粋€論文再長,寫100張紙也總有寫完的時候;理科的數(shù)學(xué)題再難,只要套上了公式就能得出答案,1就是1,變成2就錯了。但是計算機(jī)語言并不是這樣,如果要寫一個程序,你可能2天就做出來了,也有可能兩個月都做不成。再加上這門課程概念繁雜、知識點(diǎn)多、內(nèi)容枯燥、難度較大且實(shí)用性不強(qiáng),很容易讓學(xué)生產(chǎn)生畏難情緒和厭學(xué)情緒。而且由于教材對知識的介紹是分散的、循序漸進(jìn)的,學(xué)生在學(xué)習(xí)過程中接觸到的例題也大都比較簡單,僅為說明某種特定算法而已。與之相反,我們在實(shí)際工作中將面臨的問題會復(fù)雜得多。另外,C語言提供了大量實(shí)用函數(shù)和擴(kuò)展功能,這些往往是學(xué)習(xí)過程中無法涵蓋的。因此經(jīng)常會出現(xiàn)這種情況:學(xué)生把課本上的知識掌握得滾瓜爛熟,但拿到一個設(shè)計卻無從下手,這也會嚴(yán)重削弱學(xué)生的積極性。針對這種情況,唯有教師改革課堂教學(xué)手段,把理論與實(shí)踐結(jié)合,把知識與能力并重,才能真正提升課堂教學(xué)實(shí)效,達(dá)成這門課程的教學(xué)目標(biāo)。

三、C語言程序設(shè)計課堂教學(xué)改革的具體舉措

1、改變“滿堂灌”的教學(xué)方式,把注重教師的教轉(zhuǎn)向注重學(xué)生的學(xué)

課堂上,我們要一改往日“滿堂灌”的授課方式,通過提出問題,引導(dǎo)學(xué)生分析問題,讓他們自己去找尋解決問題的方法;然后再給出源代碼,分析源代碼,引出新知識點(diǎn),對知識點(diǎn)進(jìn)行講解;最終留給學(xué)生一個設(shè)計任務(wù),讓他們自主合作探究,通過小組討論、齊心協(xié)力共同完成任務(wù),達(dá)到鞏固知識點(diǎn)的目的。這樣的授課方式與“滿堂灌”相比,更為形象直觀,而且學(xué)生可以主動參與到問題的分析與討論中來,把注重教師的教轉(zhuǎn)向了注重學(xué)生的學(xué),更有利于集中學(xué)生的注意力,更有利于發(fā)揮學(xué)生的主觀能動性,課堂效率也就自然而然提高了。

2、把理論與實(shí)踐結(jié)合,把知識與能力并重

這門課程具有較強(qiáng)的實(shí)踐性,我們要給予學(xué)生足夠的實(shí)踐時間和活動空間,讓他們通過上機(jī)實(shí)踐鞏固理論知識。我們要通過實(shí)驗(yàn)指導(dǎo)書的設(shè)計,讓學(xué)生由讀程序、分析程序、程序改錯逐漸達(dá)到能夠獨(dú)立編寫程序的水平。由于這門課程的實(shí)驗(yàn)內(nèi)容繁多,加之課時安排有限,要想在課堂時間來分析和完成所有實(shí)驗(yàn)是不可能的。因此,我們要讓學(xué)生明白理論與實(shí)踐結(jié)合的重要性,讓他們在實(shí)驗(yàn)之前主動對下節(jié)課的實(shí)驗(yàn)內(nèi)容進(jìn)行預(yù)習(xí),提前完成分析程序運(yùn)行結(jié)果、完成程序填空、找出程序中的錯誤、編寫程序解決實(shí)際問題等。課堂上就只需將程序輸入VC++6.0中進(jìn)行運(yùn)行,調(diào)試程序中的錯誤,找出錯誤原因即可。這樣既可以提高課堂效率,也可以鍛煉學(xué)生分析問題、解決問題的能力,實(shí)現(xiàn)知識與能力并重的育人目標(biāo)。

c語言程序設(shè)計論文范文第4篇

論文摘要:“C程序設(shè)計”課程是電子類專業(yè)基礎(chǔ)必修課,主要是為單片機(jī)編程服務(wù),該課程的教學(xué)效果直接影響到后續(xù)單片機(jī)課程的學(xué)習(xí)。本文結(jié)合單片機(jī)系統(tǒng)開發(fā)的特點(diǎn),探討了C程序設(shè)計教學(xué)方法,為后續(xù)單片機(jī)課程的學(xué)習(xí)打下基礎(chǔ)。

隨著微電子技術(shù)的發(fā)展和廣泛應(yīng)用,基于單片機(jī)上的系統(tǒng)開發(fā),C語言作為一種高級的編程語言,越來越受到人們的關(guān)注。現(xiàn)在,無論是嵌入式系統(tǒng)開發(fā)企業(yè)還是電子設(shè)計競賽、畢業(yè)設(shè)計等,一般都以C語言為主要開發(fā)工具。結(jié)合單片機(jī)的系統(tǒng)資源,用C語言開發(fā)符合實(shí)際工程需要的單片機(jī)系統(tǒng),對于編程者來說就有重要的意義。

1.C在單片機(jī)教學(xué)中的地位

C語言作為一種結(jié)構(gòu)化的程序設(shè)計語言,它是程序開發(fā)工具中使用最廣泛一門編程語言。C語言具有很強(qiáng)的功能性、結(jié)構(gòu)性、可移植性。用C語言編寫程序比匯編更符合人們的思考習(xí)慣,程序開發(fā)者可以擺脫與硬件不必要的接觸,更專心地考慮程序的功能和算法而不是考慮一些細(xì)節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時間。由于它具有良好的程序結(jié)構(gòu),適用于模塊化程序設(shè)計,因此采用C語言設(shè)計單片機(jī)應(yīng)用系統(tǒng)程序時,采用結(jié)構(gòu)化的、自頂向下、逐步求精的程序設(shè)計方法,將功能模塊化,由不同的模塊完成不同的功能。這樣可使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。

2.單片機(jī)教學(xué)現(xiàn)狀

單片機(jī)技術(shù)是現(xiàn)代電子工程領(lǐng)域一門飛速發(fā)展的技術(shù),是現(xiàn)代電子技術(shù)中的一項(xiàng)不可缺少的重要技術(shù)。隨著技術(shù)的不斷進(jìn)步和日益普及,單片機(jī)技術(shù)已滲透到各個領(lǐng)域,影響著我們的日常生活和工作。因此電子技術(shù)及相關(guān)專業(yè)的學(xué)生學(xué)習(xí)單片機(jī)技術(shù)越來越成為社會發(fā)展的需求。當(dāng)前,各大高校的電子、計算機(jī)類專業(yè)均開設(shè)單片機(jī)課程。

《單片機(jī)》是我院電子系一門實(shí)踐性極強(qiáng)的專業(yè)主干課程,是我校電子系重點(diǎn)建設(shè)課程之一,是本專業(yè)學(xué)生的必修課程。為了提高我系單片機(jī)教學(xué)效果,我們對單片機(jī)教學(xué)進(jìn)行了大膽改革,使用C語言開發(fā)單片機(jī),且課程的設(shè)計打破了學(xué)科體系的框架,將單片機(jī)和C語言的相關(guān)知識和技能按“項(xiàng)目”進(jìn)行整合,并將《C程序設(shè)計》課程列為電子類專業(yè)核心基礎(chǔ)課程之一。因此,《C程序設(shè)計》課程教學(xué)效果的好壞,將直接影響學(xué)生后續(xù)專業(yè)課程的學(xué)習(xí)。

從近幾年我系《C程序設(shè)計》課程的教學(xué)效果來看,學(xué)生普遍反映該課程的學(xué)習(xí)比較困難,課程的語法知識較多,理解和記憶都不太容易,即使記住了語法知識也不能靈活應(yīng)用;不知道學(xué)習(xí)C語言究竟有何用處,學(xué)完C后不能很好地利用C進(jìn)行單片機(jī)小型系統(tǒng)的開發(fā),缺乏知識的靈活應(yīng)用能力。因此,根據(jù)以往單片機(jī)教學(xué)所得經(jīng)驗(yàn),我覺得教師有必要在《C程序設(shè)計》課程的教學(xué)過程中在以下幾個方面引起足夠的重視,并在教學(xué)中加以改進(jìn),為后續(xù)單片機(jī)課程的學(xué)習(xí)打下堅實(shí)的基礎(chǔ)。

3.《C程序設(shè)計》課程教學(xué)方法探索

3.1上好每堂課,激發(fā)學(xué)生的學(xué)習(xí)興趣

語言程序設(shè)計教學(xué)被認(rèn)為是一種需要師生雙方改進(jìn)的一門課程,因?yàn)榇蠖鄶?shù)語言教材中通常先給出一般的語法格式,然后逐步講解語法要點(diǎn),再給出實(shí)例。這種順序灌輸會使學(xué)生失去學(xué)習(xí)的興趣,所以我認(rèn)為在課堂教學(xué)環(huán)節(jié)應(yīng)采取以學(xué)生為主體、以教師為主導(dǎo)的教學(xué)模式,要求學(xué)生自己先看有關(guān)知識點(diǎn),并識記。教師采取精講實(shí)例,在這過程中引出相關(guān)知識點(diǎn),然后再舉一類似實(shí)例讓學(xué)生自己分析,鞏固知識點(diǎn)。教師應(yīng)把主要精力放在算法的分析和各語句語法的具體應(yīng)用上,同時培養(yǎng)學(xué)生自學(xué)能力,采取互動機(jī)制,迫使學(xué)生主動學(xué)習(xí)。

3.2注重演示,強(qiáng)化實(shí)驗(yàn),提高實(shí)踐操作能力

因?yàn)槭谡n對象是一年級新生,所以教師多用通俗易懂的語言進(jìn)行講解,多舉實(shí)例,使學(xué)生容易理解和消化。在教學(xué)過程中,盡量采用講解、演示方法,如在講解經(jīng)典算法后,按照理論方法所述,用DEV C++軟件進(jìn)行編程演示,從而加深學(xué)生對教學(xué)內(nèi)容的理解。

在教學(xué)過程中,教師應(yīng)將理論知識與實(shí)驗(yàn)內(nèi)容進(jìn)行整合,根據(jù)教學(xué)內(nèi)容并結(jié)合實(shí)際應(yīng)用設(shè)置實(shí)驗(yàn)題目,讓每個學(xué)生獨(dú)立完成。遇到學(xué)生不能解決的問題,教師應(yīng)利用多媒體進(jìn)行演示解決問題的過程,從而加深學(xué)生對教學(xué)內(nèi)容的理解并提高實(shí)踐操作能力。  3.3培養(yǎng)良好的編程風(fēng)格

3.3.1優(yōu)化程序

由于在許多工業(yè)測控領(lǐng)域中的嵌入式系統(tǒng)都采用單片機(jī)開發(fā),它們所需要的計算和控制工作日趨復(fù)雜,其中軟件的設(shè)計是最復(fù)雜和困難的,工作量大,特別是對于控制系統(tǒng),設(shè)計人員需要考慮單片機(jī)的軟硬件資源分配,但是單片機(jī)系統(tǒng)是一種資源十分有限的系統(tǒng)。這主要表現(xiàn)在CPU和片內(nèi)結(jié)構(gòu)簡單、程序存儲器資源的不足。因此在用C語言進(jìn)行單片機(jī)開發(fā)時,如何使用好這些有限的資源就顯得十分重要。雖然C語言具有許多的優(yōu)點(diǎn),但是生成的代碼相對要長,基本多占用存儲空間20%—50%。因而,在“C程序設(shè)計”課程教學(xué)中,教師不僅要教會學(xué)生如何編寫程序,而且應(yīng)在教學(xué)過程中向?qū)W生灌輸優(yōu)化代碼的思想,讓學(xué)生從大一開始就有開發(fā)項(xiàng)目的一些經(jīng)驗(yàn)。

3.3.2合理選用數(shù)據(jù)類型

C語言在程序開發(fā)中提供了的豐富的數(shù)據(jù)類型,尤其是關(guān)于用戶界面開發(fā)和一些動畫與圖像技術(shù)的實(shí)現(xiàn)。但是在開發(fā)單片機(jī)系統(tǒng)時,我們要按照實(shí)際需要,合理地選用數(shù)據(jù)類型。C語言中有Char等少數(shù)的數(shù)據(jù)類型是機(jī)器語言直接支持的數(shù)據(jù)類型,用此類數(shù)據(jù)類型的語句所生成的代碼較短,而其它的數(shù)據(jù)類型如整型、浮點(diǎn)型等數(shù)據(jù)要有一定的內(nèi)部程序或內(nèi)部函數(shù)的支持,相對來說較復(fù)雜的數(shù)據(jù)類型的語句生成的代碼也復(fù)雜,不利于轉(zhuǎn)化成單片機(jī)的代碼。因此,在“C程序設(shè)計“教學(xué)過程中,要向?qū)W生適當(dāng)說明選擇合適數(shù)據(jù)類型的好處,并盡可能地減少程序中使用的數(shù)據(jù)類型的種類,為以后學(xué)生的單片機(jī)學(xué)習(xí)打好基礎(chǔ)。

3.3.3灌輸模塊化程序設(shè)計思想

在普通微型計算機(jī)上進(jìn)行C語言程序開發(fā)設(shè)計時,只需考慮程序功能實(shí)現(xiàn),而不必考慮程序代碼的長短。但是在單片機(jī)上進(jìn)行C語言程序設(shè)計就必須考慮系統(tǒng)的硬件資源,要求設(shè)計的軟件程序結(jié)構(gòu)是合理、緊湊和高效的。同一任務(wù),有時用主程序完成是合理的,但有時需子程序效率最高,占用資源最少;有時并不是程序的算法越簡單、長度越短越好,由于有一些算法要調(diào)用一些內(nèi)部的子程序和函數(shù),生成的機(jī)器代碼質(zhì)量反而較低。不同的算法對程序代碼效率影響很大。因此,在進(jìn)行“C程序設(shè)計”教學(xué)時,教師應(yīng)適當(dāng)向?qū)W生灌輸模塊化程序設(shè)計的思想,在不影響程序功能實(shí)現(xiàn)的情況下可以采用一些優(yōu)化算法,并且把程序分成若干個功能獨(dú)立的模塊,為學(xué)生今后的單片機(jī)項(xiàng)目開發(fā)做好鋪墊。

4.結(jié)語

單片機(jī)系統(tǒng)采用C語言開發(fā)與設(shè)計,極大地促進(jìn)了單片機(jī)在生產(chǎn)、生活各個領(lǐng)域的應(yīng)用,提高了程序開發(fā)效率。因而,C語言學(xué)習(xí)效果的好壞,對今后單片機(jī)課程的學(xué)習(xí)具有深遠(yuǎn)的影響。除了講解C語言的基本語法外,更重要的是改善教學(xué)方法,利用各種方法培養(yǎng)學(xué)生的學(xué)習(xí)興趣,并向?qū)W生灌輸良好的編程風(fēng)格與編程方法,為今后的單片機(jī)課程的學(xué)習(xí)打下良好的基礎(chǔ)。

參考文獻(xiàn)

[1]向艷.“C程序設(shè)計”課程教學(xué)體系和模式探討[J].計算機(jī)教育,2010,(3):112-114.

[2]董蘊(yùn)寶,潘旭君.淺談C語言在單片機(jī)中的程序設(shè)計[J].科技信息,2009,(13):59-67.

[3]張洪靜.電類專業(yè)C語言教學(xué)探討[J].電腦知識與技術(shù),2010,(29):8280-8281.

[4]林益平,趙福建.單片機(jī)C語言課程教學(xué)的探索與實(shí)踐[J].電氣電子教學(xué)學(xué)報,2007,(2):104-106.

c語言程序設(shè)計論文范文第5篇

關(guān)鍵詞:比較教學(xué)法;問題求解能力;關(guān)鍵筆記;程序設(shè)計課程

中圖分類號:G434文獻(xiàn)標(biāo)識碼:A文章編號文章編號:1672-7800(2013)012-0171-03

作者簡介:沈涵飛(1978-),男,碩士,蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院講師,研究方向?yàn)檐浖y試、云計算。

0引言

C語言和JAVA語言在TIOBE編程語言排行榜上長期占據(jù)前兩名的位置,在計算機(jī)行業(yè)內(nèi)有著廣泛的應(yīng)用。這兩門課程也是教學(xué)難度較大的課程,是學(xué)生深入接觸計算機(jī)學(xué)科領(lǐng)域知識的基礎(chǔ)課程。搜索萬方數(shù)據(jù)和中國知網(wǎng)10年來的論文,并沒有發(fā)現(xiàn)探討這兩門程序設(shè)計課程之間內(nèi)在聯(lián)系的論文;目前主流的程序設(shè)計教材也極少對這兩門語言進(jìn)行比較。學(xué)生在學(xué)習(xí)這兩門課程時,往往覺得內(nèi)容繁雜,難于掌握。充分挖掘這兩門課程的共同特性,比較這兩門語言的語法和特性的不同之處,突出課程的重點(diǎn),能夠幫助學(xué)生更好地掌握課程內(nèi)容。

JAVA程序設(shè)計大體可以分為面向過程的程序設(shè)計和面向?qū)ο蟮某绦蛟O(shè)計。面向過程的JAVA程序設(shè)計和C語言程序設(shè)計并沒有本質(zhì)區(qū)別,基本思想都是采用“自頂向下、逐步求精”的程序設(shè)計方法和“單入口單出口”的控制結(jié)構(gòu)。

在這兩門課程的多年教學(xué)實(shí)踐中,通過討論、分析和總結(jié),確定了以程序設(shè)計為主線、重點(diǎn)是培養(yǎng)學(xué)生的程序設(shè)計能力和計算思維,也就是放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上。在程序?qū)崿F(xiàn)這個環(huán)節(jié),通過運(yùn)用比較教學(xué)法進(jìn)行C語言和JAVA語言的語法和特性的教學(xué),既有助于學(xué)生更好更快地掌握高級語言的語法和特性,也有助于學(xué)生體會語言只是表達(dá)工具,問題求解和計算思維的能力才是核心。

1程序設(shè)計教學(xué)中存在的問題

程序設(shè)計課程是計算機(jī)及相關(guān)專業(yè)的基礎(chǔ)課程,教學(xué)難度較大。學(xué)生往往難以理解程序設(shè)計的思維方式,對教學(xué)內(nèi)容似懂非懂,而掌握良好的程序設(shè)計方法則更加困難。如果以語言知識為主線組織教學(xué)內(nèi)容,由于C語言和JAVA語言涉及的知識點(diǎn)非常多,很多學(xué)生在學(xué)完一門課程后,普遍認(rèn)為程序設(shè)計難學(xué),教學(xué)內(nèi)容枯燥,缺乏主動探索問題的興趣。

傳統(tǒng)的課程教學(xué)較少提及這兩門語言的共性,不能在已有的基礎(chǔ)上去完成新知識的建構(gòu),大大增加了學(xué)生的學(xué)習(xí)負(fù)擔(dān),導(dǎo)致常用C語言編程的同學(xué)對JAVA語言產(chǎn)生生疏感,而常用JAVA語言的同學(xué)也不樂意使用C語言,不少同學(xué)對于學(xué)習(xí)兩門語言顯得有些無所適從,產(chǎn)生了畏難情緒,放棄了進(jìn)一步學(xué)習(xí)程序設(shè)計的機(jī)會。

2比較教學(xué)法在程序設(shè)計課程中的應(yīng)用

2.1程序設(shè)計課程能力培養(yǎng)目標(biāo)

卡內(nèi)基梅隆大學(xué)的周以真教授指出,“計算思維是運(yùn)用計算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為”[1]。2010年首屆“九校聯(lián)盟(C9)計算機(jī)基礎(chǔ)教學(xué)課程研討會”上,明確提出計算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計算思維能力的培養(yǎng)[2]。清華大學(xué)吳文虎教授提出,“以強(qiáng)調(diào)動手上機(jī)實(shí)踐編程為切入點(diǎn),以任務(wù)驅(qū)動的方式,通過實(shí)例講授程序設(shè)計的基本概念和基本方法”[3]。

2.2比較教學(xué)法

比較教學(xué)法是教師在教學(xué)實(shí)踐中,著重體現(xiàn)辨析并確定教學(xué)內(nèi)容間異同關(guān)系的思維過程和方法。其本質(zhì)特征在于“比較”、“對照”、“對比”、“參照”。即把彼此之間具有某種聯(lián)系的教學(xué)內(nèi)容放在一起,加以對比分析,以確定其異同關(guān)系,認(rèn)識其本質(zhì)差異。

從思維訓(xùn)練的角度看,比較數(shù)學(xué)法可分為兩種類型:①求同比較——將相同的知識,或性質(zhì)相似的材料放在一塊加以比較,使學(xué)生利用新舊知識之間的聯(lián)系,加深理解,增強(qiáng)記憶;②求異比較——事物之間存在差異,教師的責(zé)任就在于引導(dǎo)學(xué)生將這種差異揭示出來。

2.3比較教學(xué)法應(yīng)用

程序設(shè)計課程的重點(diǎn)是培養(yǎng)問題求解能力,促成學(xué)生計算思維的形成,語句只是表達(dá)工具,編程思路才是重點(diǎn)和難點(diǎn)。JAVA語言在編程風(fēng)格上非常接近于C/C++語言,這是比較教學(xué)法能用于C和JAVA程序設(shè)計教學(xué)的重要因素;在線評測系統(tǒng)能夠同時支持這兩種語言,為比較教學(xué)法的應(yīng)用提供了實(shí)踐平臺。

3C語言和JAVA教學(xué)內(nèi)容分析

C語言本質(zhì)上是面向過程的設(shè)計語言,提倡結(jié)構(gòu)化程序設(shè)計;JAVA語言本質(zhì)上是面向?qū)ο蟮木幊陶Z言,但也支持面向過程的程序設(shè)計。C語言和JAVA語言在結(jié)構(gòu)化程序設(shè)計方面存在大量的相同之處,如在基本數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、三種基本結(jié)構(gòu)、數(shù)組、函數(shù)等方面,C語言和JAVA語言高度相似,采用比較教學(xué)法可以突出計算思維的本質(zhì),培養(yǎng)學(xué)生掌握結(jié)構(gòu)化程序設(shè)計的基本方法,提升學(xué)生學(xué)習(xí)的效率,克服學(xué)生對于程序設(shè)計課程的畏難情緒。

在教學(xué)中,把原有的C語言和JAVA語言的教學(xué)內(nèi)容進(jìn)行了重新組織,包含3部分:C和JAVA共同的結(jié)構(gòu)化程序設(shè)計(基本數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、三種基本結(jié)構(gòu)、數(shù)組、函數(shù)等);C語言特有部分(字符串、指針、結(jié)構(gòu)體等);JAVA特有部分(面向?qū)ο蟪绦蛟O(shè)計、圖形界面程序設(shè)計、異常處理、多線程等)。

通過內(nèi)容的重新組織,強(qiáng)調(diào)了結(jié)構(gòu)化程序設(shè)計的概念,讓學(xué)生真正體會到語句只是表達(dá)工具,問題求解能力的培養(yǎng)才是重點(diǎn)。

4C語言和JAVA比較教學(xué)要點(diǎn)

在C語言和JAVA的教學(xué)過程中,要有效地實(shí)施以問題求解能力培養(yǎng)為目標(biāo)的比較教學(xué),建議把握以下要點(diǎn)。

4.1以問題求解為中心

程序設(shè)計類課程的主要目標(biāo)就是培養(yǎng)學(xué)生應(yīng)用計算機(jī)(體現(xiàn)為編寫程序)解決問題的能力。問題求解能力是在不斷解決問題的過程中逐步得到提高和強(qiáng)化的,這就需要有一個平臺能夠支撐學(xué)生完成足夠的練習(xí)。

在實(shí)踐過程中,我們采用的是HUST Online Judge。這是由華中科技大學(xué)畢業(yè)生王良晶等開發(fā)并在2008年底以GPL協(xié)議進(jìn)行開源的在線評測系統(tǒng),該系統(tǒng)基于LAMP平臺,提供了使用Ubuntu的LiveCD系統(tǒng),用戶無需安裝即可使用其完整功能,并可以圖形化方式完成系統(tǒng)安裝,降低了使用門檻。基于此系統(tǒng),我們創(chuàng)建了C/C++/JAVA程序自動評測系統(tǒng),網(wǎng)址為http:///JudgeOnline。

我們精選了能夠充分體現(xiàn)計算思維特點(diǎn)的大量題目放置在評測系統(tǒng)中,圍繞這些問題展開教學(xué),語言語法圍繞問題逐步引入,強(qiáng)調(diào)語句只是表達(dá)工具,重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上,讓學(xué)生在做中學(xué)、學(xué)中做,通過實(shí)踐感受和領(lǐng)悟計算機(jī)問題求解的基本方法和思維模式。

4.2以C語言為主,兼顧JAVA語言

對于同一個問題求解,既可以使用C語言也可以使用JAVA來解決。在教學(xué)過程中,還是需要有個主次,建議采用以C語言為主,兼顧JAVA語言。這樣做主要有以下原因:①同樣的程序,往往C語言的代碼要簡潔一些,更適合初學(xué)者上手;②C語言的開發(fā)工具(我們采用的是C-Free)更為小巧易用、界面簡潔,適合初學(xué)者使用;而JAVA的常用開發(fā)工具Eclipse和Netbeans都較為龐大,盡管功能全面但在編寫小規(guī)模程序方面并沒有太多優(yōu)勢;③在結(jié)構(gòu)化程序設(shè)計的資源上,無論是教材還是互聯(lián)網(wǎng)資源,C語言要遠(yuǎn)遠(yuǎn)多于JAVA。

在學(xué)生能夠較好地掌握C語言的前提下,鼓勵學(xué)生將已有的C語言程序改寫成JAVA語言來完成同樣的任務(wù),能更好地讓學(xué)生體會到這兩種語言的異同。

4.3精選語言語法和規(guī)則

結(jié)構(gòu)化程序設(shè)計的教學(xué)要以程序設(shè)計為主線,結(jié)合實(shí)際案例來展開,將程序開發(fā)過程的相關(guān)內(nèi)容貫穿和滲透到每個知識點(diǎn)的講授中去,訓(xùn)練學(xué)生分析問題和解決問題的能力,讓學(xué)生更多地上機(jī)編程,鼓勵和引導(dǎo)探索式學(xué)習(xí)。

在以問題求解為中心的授課過程中,講授的語法和規(guī)則要盡可能簡單,不求面面俱到,夠用就行, 細(xì)枝末節(jié)的東西可以不講,要學(xué)生“抱西瓜”而不是“揀芝麻”。例如,在課程前期,int、double和char這3種基本數(shù)據(jù)類型就完全夠用,不必將所有數(shù)據(jù)類型及其細(xì)節(jié)都呈現(xiàn)給學(xué)生,這樣會使不少初學(xué)者無所適從。

4.4結(jié)構(gòu)化程序劃分

結(jié)構(gòu)化程序設(shè)計采用了“單入口單出口”的模式:數(shù)據(jù)輸入數(shù)據(jù)處理數(shù)據(jù)輸出,根據(jù)該模式編寫的程序也有利于提交到在線評測系統(tǒng)進(jìn)行自動化檢測。該類程序可以劃分成4個部分:聲明、輸入、運(yùn)算和輸出。除了在數(shù)據(jù)的輸入處理上存在差異外,在聲明、運(yùn)算和輸出上,C語言和JAVA語言的差異非常小。

對于簡單的數(shù)據(jù)輸入,兩種語言的輸入處理都有固定的模式,在教學(xué)中提供了關(guān)鍵筆記,讓學(xué)生在模板的基礎(chǔ)上進(jìn)行改動,這樣就讓兩種語言在輸入處理方面的差異實(shí)現(xiàn)了最小化。

對于數(shù)據(jù)的輸出,JAVA語言教材中更多采用的是 System.out.println,使用這種表達(dá)方式會導(dǎo)致C語言和JAVA語言的輸出部分代碼存在較大的差異。建議在教學(xué)中采用C語言風(fēng)格的printf,不但實(shí)現(xiàn)了在兩種語言下代碼的一致性,而且代碼的可讀性更好,更容易實(shí)現(xiàn)浮點(diǎn)數(shù)指定格式的輸出。

求異比較可以更好地了解C語言和JAVA語言的差異。例如對于雙精度浮點(diǎn)數(shù)輸出采用 printf(“%.3f”, x) 而不是 printf(“%.3lf”, x),盡管C語言中兩種方式都是正確的,但后者在JAVA語言環(huán)境下會產(chǎn)生異常。

C語言和JAVA語言非本質(zhì)的差異可以通過一定的方法來弱化,從而突出共同點(diǎn)。例如從形式上看,C語言和JAVA語言的程序入口main函數(shù)差異較大,可以將程序框架設(shè)計成模板,讓學(xué)生直接拿過來使用,學(xué)生只需填寫程序的核心部分,這樣更能突出C和JAVA的共同點(diǎn)。

5應(yīng)用關(guān)鍵筆記(Key Note)提升學(xué)習(xí)效率

為配合在線評測系統(tǒng)在教學(xué)中的使用,提高學(xué)生解決問題的效率,克服學(xué)生的畏難情緒,突出教學(xué)重點(diǎn),我們精心設(shè)計了關(guān)鍵筆記(Key Note)。從形式上看,關(guān)鍵筆記僅是一張正反面打印的A4紙,內(nèi)容精簡,在使用過程中可以根據(jù)學(xué)生的反饋進(jìn)行快速調(diào)整后再次分發(fā)。

關(guān)鍵筆記的內(nèi)容凝聚了C語言和JAVA(面向過程部分)的所有核心知識點(diǎn)、最常用代碼和典型算法(如計數(shù)、統(tǒng)計、排序、數(shù)字分離、進(jìn)制轉(zhuǎn)換等)及在線評測系統(tǒng)的注意事項(xiàng),次要內(nèi)容只提供線索,在需要的時候,學(xué)生可以依據(jù)線索在互聯(lián)網(wǎng)上查找,這也有助于培養(yǎng)學(xué)生的網(wǎng)絡(luò)學(xué)習(xí)能力。

學(xué)生可以借助關(guān)鍵筆記,分別運(yùn)用C語言和JAVA語言來完成在線評測系統(tǒng)中的所有練習(xí)。這種方式突出了語言知識的重點(diǎn),強(qiáng)調(diào)了運(yùn)用知識的能力,有助于培養(yǎng)學(xué)生的計算思維能力。教材在教學(xué)過程中更多地是起到參考書的作用,幫助學(xué)生完善對于語言的認(rèn)識。

Scanner cin = new Scanner(System.in); // cin means console input

說明:C語言中的gets函數(shù)具有安全隱患,可以在課程后期提醒學(xué)生謹(jǐn)慎使用。

6對比教學(xué)法的教學(xué)效果

從2010年開始的3年時間里,程序設(shè)計課程的教學(xué)逐步從以語言知識為主線轉(zhuǎn)向了以程序設(shè)計為主線,并在C語言和JAVA語言程序設(shè)計課程中采用了比較教學(xué)法。在采用新的教學(xué)方法后,學(xué)生的學(xué)習(xí)目標(biāo)清晰,學(xué)習(xí)興趣增強(qiáng),學(xué)期期末的課程評價顯示,學(xué)生對于程序設(shè)計課程的評價從原來的較為靠后的排名轉(zhuǎn)變?yōu)檐S居前列。

學(xué)生參加程序設(shè)計競賽的人數(shù)和成績也穩(wěn)步提升。以藍(lán)橋杯全國軟件設(shè)計與開發(fā)大賽個人賽為例,參加人數(shù)從2011年的13人、2012年的32人提高到2013年的38人;參賽成績也有很大的提升,近3年獲得江蘇省一等獎的人數(shù)分別為0、4、10人,2013年獲得省一等獎的10人中有3人來自C/C++組,有7人來自JAVA組,JAVA組的成績在全省高職院校中排名第一,這個成績說明了在采用比較教學(xué)法后,JAVA程序設(shè)計的教學(xué)質(zhì)量獲得了顯著提高。

7結(jié)語

在C語言和JAVA語言程序設(shè)計課程中以程序設(shè)計為主線展開教學(xué),采用了比較教學(xué)法,并給學(xué)生提供了包含核心知識點(diǎn)、最常用代碼的關(guān)鍵筆記用于在線評測系統(tǒng)中的問題求解,突出了課程的重點(diǎn),培養(yǎng)了學(xué)生的計算思維,激發(fā)了學(xué)生的興趣,提升了學(xué)生對于課程的滿意度。實(shí)踐表明,比較教學(xué)法的運(yùn)用顯著提升了程序設(shè)計課程尤其是JAVA的教學(xué)質(zhì)量。

參考文獻(xiàn)參考文獻(xiàn):

[1]JEANNETTE M putational Thinking[J].Communications of ACM,2006,49(3):33-35.

主站蜘蛛池模板: 望谟县| 株洲市| 肇源县| 浮山县| 淄博市| 沂水县| 灌云县| 博湖县| 垫江县| 安仁县| 汾西县| 开封县| 遂川县| 泊头市| 高阳县| 河源市| 盘锦市| 恩施市| 赤峰市| 老河口市| 松阳县| 镇安县| 颍上县| 白河县| 平罗县| 乐平市| 织金县| 万荣县| 芦溪县| 南昌市| 蒙阴县| 日照市| 楚雄市| 东丽区| 建湖县| 无锡市| 舞阳县| 泾阳县| 黄骅市| 银川市| 东方市|