前言:想要寫(xiě)出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇c語(yǔ)言程序設(shè)計(jì)論文范文,相信會(huì)為您的寫(xiě)作帶來(lái)幫助,發(fā)現(xiàn)更多的寫(xiě)作思路和靈感。
關(guān)鍵詞:C語(yǔ)言;學(xué)生成績(jī)管理系統(tǒng);程序設(shè)計(jì)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)04-0059-04
1 背景
如今各大高校均需要一個(gè)完整的系統(tǒng)來(lái)管理和保存學(xué)生的各門(mén)課成績(jī)信息,以便后期使用,論文以河海大學(xué)文天學(xué)院的工科專(zhuān)業(yè)學(xué)生成績(jī)?yōu)槔?,運(yùn)用C語(yǔ)言程序設(shè)計(jì)和程序運(yùn)行的環(huán)境,設(shè)計(jì)了一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng),下面就來(lái)介紹該系統(tǒng)是如何構(gòu)建的。
2 系統(tǒng)需求分析
2.1 系統(tǒng)功能劃分
該系統(tǒng)主要功能如下:
1)學(xué)生基本信息和成績(jī)的錄入;
2)學(xué)生成績(jī)的管理,如計(jì)算總分、排序、統(tǒng)計(jì)等功能。
2.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)
這個(gè)學(xué)生成績(jī)管理系統(tǒng)中包含的學(xué)生信息有:學(xué)生的學(xué)號(hào)、姓名、性別、高數(shù)成績(jī)、英語(yǔ)成績(jī)、計(jì)算機(jī)成績(jī)、三門(mén)功課總分,主要的功能模塊如下:
1)輸出學(xué)生基本信息并算出總分;
2)按照學(xué)號(hào)進(jìn)行排序;
3)按照總分進(jìn)行排序;
4)統(tǒng)計(jì)各門(mén)課程平均分;
5)統(tǒng)計(jì)男女學(xué)生人數(shù);
6)按照姓名進(jìn)行排序;
7)統(tǒng)計(jì)高數(shù)成績(jī)優(yōu)秀(大于等于80分)的人數(shù),并輸出符合條件的記錄;
8)統(tǒng)計(jì)每門(mén)功課成績(jī)都在80分以上,或總分在240分以上的人數(shù),并輸出符合條件的記錄。
C語(yǔ)言中系統(tǒng)的每個(gè)功能由一個(gè)函數(shù)來(lái)實(shí)現(xiàn),其系統(tǒng)功能模塊層次結(jié)構(gòu)圖如下:
圖1 學(xué)生成績(jī)管理系統(tǒng)功能模塊層次結(jié)構(gòu)圖
因?yàn)楹瘮?shù)就是功能,所以對(duì)于圖1的功能模塊層次結(jié)構(gòu)圖,每個(gè)模塊就對(duì)應(yīng)C語(yǔ)言中的一個(gè)函數(shù),該系統(tǒng)中所涉及的函導(dǎo)捌涔δ莧縵攏
1)int Menu();
主控菜單函數(shù),有返回值,無(wú)參數(shù)。用菜單形式顯示該系統(tǒng)能實(shí)現(xiàn)的所有功能,以供用戶查看和使用。函數(shù)中的返回值為用戶輸入的序號(hào)code,為局部整型變量。
2)void Read(struct student stud[],int *n);
讀入數(shù)據(jù)函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)stud為結(jié)構(gòu)體數(shù)組,由于調(diào)用此函數(shù)時(shí)實(shí)際參數(shù)為數(shù)組名,因此此處用數(shù)組接收;形式參數(shù)n為指針變量,由于實(shí)際參數(shù)為存放學(xué)生人數(shù)的整型變量的地址,因此n指向存放學(xué)生人數(shù)的整型變量,這樣可以在讀入學(xué)生信息的同時(shí),還可以統(tǒng)計(jì)出學(xué)生的人數(shù)。
3)void Print(struct student *pstud,int n);
輸出數(shù)據(jù)函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)pstud為指針變量,指向存放學(xué)生信息的結(jié)構(gòu)體數(shù)組,這樣可以將相關(guān)變動(dòng)信息返回給主調(diào)函數(shù);形式參數(shù)n為整型變量,存放學(xué)生的人數(shù)。
4)void total_order(struct student *pstud,int n);
按總分排序函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)同上。
5)void num_order(struct student *pstud,int n);
按學(xué)號(hào)排序函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)同上。
6)void ave_count(struct student *pstud, int n);
統(tǒng)計(jì)各門(mén)課平均分函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)同上。
7)void nn_count(struct student *pstud,int n);
統(tǒng)計(jì)男女學(xué)生人數(shù)函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)同上。
8)void name_order(struct student *pstud,int n);
按姓名排序函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)同上。
9)void gxyx(struct student *pstud,int n);
統(tǒng)計(jì)高數(shù)成績(jī)優(yōu)秀人數(shù)函數(shù),無(wú)返回值,有參數(shù)。形式參數(shù)同上。
10)void mm(struct student *pstud,int n);
統(tǒng)計(jì)每門(mén)課分?jǐn)?shù)不小于80分或總分在240分以上人數(shù)函數(shù) ,無(wú)返回值,有參數(shù)。形式參數(shù)同上。
3 C語(yǔ)言程序設(shè)計(jì)
一個(gè)C語(yǔ)言源程序由若干個(gè)函數(shù)構(gòu)成,且有且僅有一個(gè)主函數(shù),主函數(shù)的名字只能是main,其他函數(shù)名字由用戶自己定義,只要滿足標(biāo)識(shí)符的四大規(guī)則即可。一個(gè)程序總是從主函數(shù)開(kāi)始執(zhí)行,無(wú)論主函數(shù)在前還是在后,該系統(tǒng)中除了主函數(shù)外,還有十個(gè)函數(shù),下面針對(duì)其中幾個(gè)重要的函數(shù)進(jìn)行程序設(shè)計(jì)。
3.1 主函數(shù)程序設(shè)計(jì)
為了方便讀者更好地讀懂該程序,部分地方加了注釋?zhuān)陨铣绦蛑?* */為注釋?zhuān)?jì)算機(jī)并不執(zhí)行。其中第四行的N為符號(hào)常量,表示該系統(tǒng)記錄了10個(gè)學(xué)生信息,每個(gè)學(xué)生信息用結(jié)構(gòu)體類(lèi)型的數(shù)組來(lái)保存,該結(jié)構(gòu)體類(lèi)型包含4個(gè)子成員,每個(gè)成員又是另一種類(lèi)型的數(shù)據(jù),其中學(xué)號(hào)、姓名、性別均由字符數(shù)組存儲(chǔ),成績(jī)由整型數(shù)組存儲(chǔ),這樣就構(gòu)成了struct student結(jié)構(gòu)體類(lèi)型,主函數(shù)中的第一條語(yǔ)句就是用這種類(lèi)型定義了結(jié)構(gòu)體數(shù)組stud,用來(lái)存放十個(gè)學(xué)生信息。接下來(lái)就在主函數(shù)中調(diào)用各個(gè)函數(shù),實(shí)現(xiàn)相對(duì)應(yīng)的功能。
3.2 用戶自定義函數(shù)程序設(shè)計(jì)
3.2.1 主控菜單函數(shù)的設(shè)計(jì)
在屏幕中顯示主控菜單,scanf為輸入函數(shù),需要輸入一個(gè)整數(shù),通過(guò)輸入相對(duì)應(yīng)的數(shù)字序號(hào),可以實(shí)現(xiàn)相應(yīng)的功能,例如輸入1,即顯示學(xué)生全部信息。
3.2.2 讀入數(shù)據(jù)函數(shù)的設(shè)計(jì)
該系統(tǒng)是從文件中讀取數(shù)據(jù),10名學(xué)生的信息存儲(chǔ)在文本文件studfile.txt中,如果想修改學(xué)生信息,直接在文件中修改即可,不用修改程序,這樣既方便又快速,大大節(jié)省了時(shí)間。
3.2.3 按姓名排序函數(shù)的設(shè)計(jì)
以上程序使用冒泡的排序方法按姓名從小到大排序,系統(tǒng)直接將排序的結(jié)果輸出到屏幕中,以供用戶查看和使用。
4 系統(tǒng)界面
將以上程序輸入到計(jì)算機(jī)C語(yǔ)言開(kāi)發(fā)環(huán)境Microsoft Visual C++6.0中,經(jīng)過(guò)編輯、編譯、連接以后就可以運(yùn)行了,運(yùn)行界面如下:
1)系統(tǒng)菜單界面
當(dāng)按下回車(chē)鍵,系統(tǒng)進(jìn)入菜單模式,按照序號(hào)選擇需要顯示的信息。
2)@示學(xué)生信息界面
當(dāng)按下序號(hào)1,系統(tǒng)進(jìn)入顯示全體學(xué)生信息界面,顯示的同時(shí)計(jì)算出了3門(mén)課總分。
3)按學(xué)號(hào)排序界面
按下回車(chē)鍵繼續(xù)進(jìn)入菜單進(jìn)行選擇,當(dāng)按下序號(hào)3,系統(tǒng)進(jìn)入按學(xué)號(hào)從小到大排序的界面。
4)統(tǒng)計(jì)高數(shù)優(yōu)秀的學(xué)生人數(shù)和記錄
按下回車(chē)鍵繼續(xù)進(jìn)入菜單進(jìn)行選擇,當(dāng)按下序號(hào)7,系統(tǒng)進(jìn)入統(tǒng)計(jì)高數(shù)不低于80分的人數(shù)和記錄。
5 結(jié)束語(yǔ)
論文主要介紹了學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,分別從系統(tǒng)需求分析、系統(tǒng)程序設(shè)計(jì)和系統(tǒng)界面設(shè)計(jì)三個(gè)方面展示了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),其中系統(tǒng)需求分析包括大體功能劃分和具體功能結(jié)構(gòu)設(shè)計(jì),并設(shè)計(jì)了功能結(jié)構(gòu)圖,描述了各項(xiàng)功能,系統(tǒng)程序設(shè)計(jì)包括主函數(shù)和其他自定義函數(shù)的設(shè)計(jì)。該系統(tǒng)總共實(shí)現(xiàn)了八項(xiàng)功能,學(xué)生信息來(lái)源于文本文件,這樣大大方便了學(xué)生信息的增刪改查等功能。系統(tǒng)中所有功能使用到的方法,還可以實(shí)現(xiàn)更多的功能,拓展性能良好,便于各高校各專(zhuān)業(yè)使用。
參考文獻(xiàn):
[1] 胡楓. 《C語(yǔ)言程序設(shè)計(jì)》的案例式教學(xué)的設(shè)計(jì)[J]. 青海師范大學(xué)學(xué)報(bào), 2010(4).
[2] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 4版.北京: 清華大學(xué)出版社, 2010.
[3] 宮業(yè)芹. C語(yǔ)言程序設(shè)計(jì)網(wǎng)上教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 濟(jì)南: 山東大學(xué), 2012.
關(guān)鍵詞:應(yīng)用型本科;培養(yǎng)軟件工程師;Java課程群;教學(xué)研究
中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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ì)算機(jī)行業(yè)的發(fā)展進(jìn)入到互聯(lián)網(wǎng)時(shí)代,由于 Java語(yǔ)言在計(jì)算機(jī)軟件開(kāi)發(fā)尤其是支持網(wǎng)絡(luò)編程方面的優(yōu)勢(shì),大多數(shù)高校計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)在培養(yǎng)計(jì)劃中都設(shè)置了Java系列課程的培養(yǎng)方案。應(yīng)用型本科大學(xué)作為第三類(lèi)大學(xué)在進(jìn)行Java系列課程教學(xué)改革中確定Java課程群體系的培養(yǎng)目標(biāo)是非常重要的。因?yàn)閼?yīng)用型本科培養(yǎng)的軟件類(lèi)畢業(yè)生在就業(yè)中將會(huì)與研究性大學(xué)本科專(zhuān)科畢業(yè)生、職業(yè)技術(shù)專(zhuān)科學(xué)院和職業(yè)培訓(xùn)機(jī)構(gòu)的學(xué)生進(jìn)行競(jìng)爭(zhēng)。為了適應(yīng)軟件行業(yè)對(duì)Java開(kāi)發(fā)人才的需要,高校簡(jiǎn)單的開(kāi)設(shè)一門(mén)Java語(yǔ)言程序設(shè)計(jì)是遠(yuǎn)遠(yuǎn)不夠的[1]?,F(xiàn)階段,應(yīng)用型本科大學(xué)的Java課程體系是參考研究性大學(xué)本科課程體系的標(biāo)準(zhǔn)而制定的,并沒(méi)有突出應(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ì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)主要采用.Net平臺(tái)和Java兩大平臺(tái),這兩個(gè)平臺(tái)各有千秋[2]。在計(jì)算機(jī)類(lèi)職業(yè)培訓(xùn)機(jī)構(gòu)的課程體系中Java系列課程也是熱門(mén)的課程。Java軟件工程師的職位在目前就業(yè)市場(chǎng)中屬于緊缺職位。面向培養(yǎng)IT企業(yè)需要的軟件工程師,為企業(yè)輸送急需對(duì)口人才是各大高校在進(jìn)行Java課程群的教學(xué)建設(shè)中需要考慮的問(wèn)題。但是,很多Java課程體系的教學(xué)與市場(chǎng)需求存在脫節(jié)的情況。另外,Java教學(xué)的知識(shí)落后于企業(yè)正在使用的技術(shù)。計(jì)算機(jī)行業(yè)是發(fā)展和更新知識(shí)非常快的行業(yè),由于高校教師缺乏與企業(yè)交流而導(dǎo)致在Java教學(xué)過(guò)程中不能及時(shí)更新到最新的技術(shù),使得學(xué)生在畢業(yè)時(shí)所學(xué)的知識(shí)過(guò)時(shí)。
3 面向培養(yǎng)軟件工程師的Java課程群教學(xué)思路
3.1應(yīng)用型本科大學(xué)在Java課程群教學(xué)改革中的優(yōu)勢(shì)
應(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é)過(guò)程,在教學(xué)內(nèi)容上,可以比研究性大學(xué)更偏重應(yīng)用。也可以在高年級(jí)的實(shí)踐教學(xué)中的有限課時(shí)內(nèi)讓學(xué)生直接在企業(yè)中實(shí)習(xí)。為實(shí)施素質(zhì)教育,提高學(xué)生的專(zhuān)業(yè)技能,培養(yǎng)技術(shù)應(yīng)用型人才,需要不斷探索以變更落后的教學(xué)方法,改革傳統(tǒng)的教學(xué)模式[3]。
應(yīng)用型本科大學(xué)在教學(xué)過(guò)程中比職業(yè)培訓(xùn)機(jī)構(gòu)更注重綜合能力的培養(yǎng)。比如,應(yīng)用型本科教學(xué)不僅教授的是Java語(yǔ)言,除此之外教學(xué)課程體系中還會(huì)設(shè)置有《數(shù)據(jù)庫(kù)原理》、《計(jì)算機(jī)網(wǎng)絡(luò)工程》、《操作系統(tǒng)原理》和《軟件工程》等重要的理論性指導(dǎo)課程,使學(xué)生在計(jì)算機(jī)應(yīng)用能力上更具全面性,為學(xué)生更好的在職業(yè)發(fā)展中成為軟件工程師打好理論基礎(chǔ),而不僅僅只能成為程序員。
3.2 面向培養(yǎng)軟件工程師的教學(xué)目標(biāo)
應(yīng)用型本科Java課程體系教學(xué)應(yīng)將與Java技術(shù)緊密相關(guān)的多門(mén)課程整合起來(lái)形成課程群,以強(qiáng)化課程間的關(guān)系,理清課程間的銜接,避免課程內(nèi)容的重復(fù)性。設(shè)計(jì)課程群中實(shí)踐課程的遞進(jìn)關(guān)系。課程群的建設(shè)應(yīng)緊密結(jié)合企業(yè)的需求,設(shè)計(jì)面向培養(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é)課程選擇五門(mén)課程組成Java課程群,分別是Java語(yǔ)言程序設(shè)計(jì)、Java語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)、Java Web程序設(shè)計(jì)、Java Web程序設(shè)計(jì)課程設(shè)計(jì)、Java技術(shù)畢業(yè)設(shè)計(jì)。課程群中前一門(mén)課程是后一門(mén)課程的基礎(chǔ),課程的難度是遞進(jìn)的由淺入深的介紹Java技術(shù)的應(yīng)用。每門(mén)課程都有不同的教學(xué)培養(yǎng)的側(cè)重點(diǎn),如下表所示。
表1 Java課程群的培養(yǎng)與考核
[課程名\&能力培養(yǎng)側(cè)重點(diǎn)說(shuō)明\&考核方式\&Java語(yǔ)言程序設(shè)計(jì)\&Java語(yǔ)言基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計(jì)、圖形用戶界面編程、文件編程\&理論筆試與實(shí)踐課程綜合評(píng)分\&Java語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)\&三個(gè)方向的綜合應(yīng)用程序開(kāi)發(fā):圖形用戶界面與文件流結(jié)合編程;圖形用戶界面與網(wǎng)絡(luò)通信結(jié)合編程;圖形用戶界面與數(shù)據(jù)庫(kù)結(jié)合編程\&答辯與課程設(shè)計(jì)論文綜合評(píng)分\&Java Web程序設(shè)計(jì)\&JSP技術(shù)基礎(chǔ)、JDBC、JSP進(jìn)行動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)\&理論筆試與實(shí)踐課程綜合評(píng)分\&Java Web程序設(shè)計(jì)課程設(shè)計(jì)\&使用JDBC數(shù)據(jù)庫(kù)連接技術(shù)進(jìn)行JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)的綜合應(yīng)用\&答辯與課程設(shè)計(jì)論文綜合評(píng)分\&Java技術(shù)畢業(yè)設(shè)計(jì)\&使用EJB應(yīng)用開(kāi)發(fā)、Java API的使用及服務(wù)的應(yīng)用進(jìn)行小型實(shí)際應(yīng)用項(xiàng)目的開(kāi)發(fā)\&畢業(yè)設(shè)計(jì)答辯與畢業(yè)設(shè)計(jì)論文綜合評(píng)分\&]
課程群的每門(mén)課程都分為理論教學(xué)環(huán)節(jié)、實(shí)踐教學(xué)環(huán)節(jié)和考核環(huán)節(jié)組成。每門(mén)課程的評(píng)分標(biāo)準(zhǔn)根據(jù)課程的特點(diǎn)而定。程序設(shè)計(jì)課程以理論考試與實(shí)踐課程的程序完成情況進(jìn)行綜合評(píng)分,課程設(shè)計(jì)課程以系統(tǒng)運(yùn)行演示與答辯結(jié)合課程設(shè)計(jì)論文的綜合評(píng)分,畢業(yè)設(shè)計(jì)環(huán)節(jié)需要通過(guò)本科畢業(yè)設(shè)計(jì)答辯和本科畢業(yè)論文的考核綜合評(píng)分。
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è)計(jì)打基礎(chǔ);另外一方面應(yīng)突出Java與C++的不同點(diǎn)和各種工具包,主要以圖形用戶界面與事件作為重難點(diǎn)。具體來(lái)說(shuō),課堂教學(xué)方法上盡量深入淺出而突出重難點(diǎn),因?yàn)橐话銇?lái)說(shuō),開(kāi)設(shè)《Java程序設(shè)計(jì)》課程是在大學(xué)本科已經(jīng)開(kāi)設(shè)了至少兩門(mén)語(yǔ)言課程《C語(yǔ)言程序設(shè)計(jì)》、《C++語(yǔ)言程序設(shè)計(jì)》之后的高年級(jí)專(zhuān)業(yè)課,一部分內(nèi)容希望學(xué)生在老師的引導(dǎo)下培養(yǎng)自學(xué)能力或在后續(xù)課程《軟件工程》與《Java Web程序設(shè)計(jì)》課程中逐步強(qiáng)化細(xì)節(jié)。
4.2面向培養(yǎng)軟件工程師Java課程群教學(xué)方式的研究
教師在本校應(yīng)用型本科大學(xué)教學(xué)過(guò)程中與學(xué)生進(jìn)行了多次交流,得到了學(xué)生寶貴的反饋,結(jié)合教師在不斷教學(xué)探索與實(shí)驗(yàn)教學(xué)過(guò)程中的體會(huì)與思考,對(duì)進(jìn)行培養(yǎng)面向軟件工程師的Java課程群教學(xué)方式改革進(jìn)行了總結(jié),得到以下五個(gè)方面的改進(jìn)措施。
1) 實(shí)踐教學(xué)與課堂教學(xué)整合
學(xué)生反映理論教學(xué)在教室學(xué)習(xí)效率不高,建議安排在實(shí)驗(yàn)機(jī)房進(jìn)行教學(xué),理論教學(xué)后及時(shí)進(jìn)行上機(jī)操作能更好的鞏固知識(shí),實(shí)現(xiàn)理論與實(shí)踐的同步教學(xué)。課堂教學(xué)中的每個(gè)知識(shí)點(diǎn)在理論教學(xué)后布置上機(jī)的小實(shí)例作業(yè),學(xué)生通過(guò)完成小實(shí)例作業(yè)就能很好的檢測(cè)該知識(shí)點(diǎn)的掌握情況,將實(shí)踐教學(xué)與課堂理論教學(xué)整合。整個(gè)教學(xué)全程安排在實(shí)驗(yàn)機(jī)房完成。
2) 分步式案例教學(xué)
Java課程群中的課程的每門(mén)課程開(kāi)始列出該門(mén)課程的重要知識(shí)點(diǎn)。在教學(xué)過(guò)程中以一個(gè)綜合應(yīng)用案例為線索,涵蓋該門(mén)課程大部分最重要的知識(shí)點(diǎn)應(yīng)用。將這個(gè)綜合案例分解成若干部分,整個(gè)教學(xué)過(guò)程中在不同的重要章節(jié)中逐步分別講解案例的某個(gè)部分。最后,將分步驟講解的案例部分組合在一起,完成整個(gè)案例的拼接運(yùn)行與演示。這種分步式案例教學(xué)讓學(xué)生對(duì)該門(mén)課程有一個(gè)完整的知識(shí)體系。分步式案例教學(xué)在培養(yǎng)學(xué)生綜合應(yīng)用能力方面取得了很好的效果,使學(xué)生從應(yīng)用角度對(duì)該門(mén)課程每章的內(nèi)在聯(lián)系有了一個(gè)總體的了解。
3) 學(xué)生演講與教師指導(dǎo)相結(jié)合
一般來(lái)說(shuō),學(xué)生在學(xué)習(xí)Java課程群的課程時(shí)已經(jīng)具有了一定程序設(shè)計(jì)語(yǔ)言的基礎(chǔ),學(xué)生在現(xiàn)有的C語(yǔ)言或C++語(yǔ)言學(xué)習(xí)的基礎(chǔ)上進(jìn)行多種編程語(yǔ)言的對(duì)比,能更好更快的掌握J(rèn)ava課程群的新知識(shí)。關(guān)于Java語(yǔ)言基礎(chǔ)和JSP語(yǔ)言基礎(chǔ)部分,例如變量與常量、表達(dá)式與運(yùn)算符等知識(shí)點(diǎn),可以讓學(xué)生進(jìn)行課下自學(xué),并在上課過(guò)程中由學(xué)生進(jìn)行演講,對(duì)比現(xiàn)已學(xué)過(guò)的語(yǔ)言,分析Java語(yǔ)言或JSP語(yǔ)言的不同點(diǎn)和相同點(diǎn)。教師在學(xué)生講課中及時(shí)進(jìn)行補(bǔ)充或更正學(xué)生知識(shí)點(diǎn)的講解。學(xué)生演講與教師指導(dǎo)相結(jié)合的方式適用于Java課程群中程序設(shè)計(jì)語(yǔ)言基礎(chǔ)部分。這種教學(xué)方式在一方面鍛煉了學(xué)生的表達(dá)能力,在另一方面讓學(xué)生鞏固了以往的知識(shí)點(diǎn)并學(xué)習(xí)了新的知識(shí)點(diǎn)。在一定程度上調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性和促使學(xué)生更加參與課程教學(xué),增加教與學(xué)的互動(dòng)。
4) 分組答辯式教學(xué)
學(xué)生的課程設(shè)計(jì)或教學(xué)演講都可以采用分組的方式,例如一個(gè)班級(jí)30人,一般將該班級(jí)分為6個(gè)組,每組5人。因?yàn)槠髽I(yè)大型項(xiàng)目開(kāi)發(fā)都是以團(tuán)隊(duì)的方式進(jìn)行的。在應(yīng)用型本科Java課程群的課程設(shè)計(jì)類(lèi)課程中以團(tuán)隊(duì)方式進(jìn)行答辯,每組團(tuán)隊(duì)得到相同的分?jǐn)?shù)等級(jí)。使學(xué)生更具有團(tuán)隊(duì)合作意識(shí),增進(jìn)團(tuán)隊(duì)合作能力進(jìn)行編程,使學(xué)生在企業(yè)中作為軟件工程師能更快適應(yīng)軟件開(kāi)發(fā)團(tuán)隊(duì)。
5) 案例式擴(kuò)展教學(xué)在實(shí)踐教學(xué)過(guò)程中的應(yīng)用
Java課程群中實(shí)踐課程教學(xué)可以采用一個(gè)應(yīng)用實(shí)例貫穿到每個(gè)實(shí)踐環(huán)節(jié)。從課內(nèi)小案例的添加功能就可以完成該門(mén)課程的大案例,再在這個(gè)大案例的基礎(chǔ)上進(jìn)行優(yōu)化完善可以完成綜合課程設(shè)計(jì),然后添加高級(jí)應(yīng)用功能可以達(dá)到畢業(yè)設(shè)計(jì)的要求。使實(shí)踐課程體系中的所有課程共同使用一個(gè)應(yīng)用實(shí)例使這些多門(mén)實(shí)踐課程具有內(nèi)在的連續(xù)性,又可以很好的擴(kuò)展性,使一個(gè)應(yīng)用實(shí)例不斷進(jìn)行加強(qiáng)與優(yōu)化。
參考文獻(xiàn):
[1] 彭碧濤,羅海蛟,姜靈敏. Java課程群的規(guī)劃與建設(shè)[J].福建電腦,2014(2):51.
【關(guān)鍵詞】C語(yǔ)言;程序設(shè)計(jì);教學(xué)改革
一、C語(yǔ)言程序設(shè)計(jì)教學(xué)工作的重要性
C語(yǔ)言是一門(mén)長(zhǎng)盛不衰的程序設(shè)計(jì)語(yǔ)言,深受廣大軟件愛(ài)好者的喜愛(ài)。它功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,而且有著比較豐富的數(shù)據(jù)類(lèi)型、運(yùn)算符以及函數(shù)供以選用,又直接與內(nèi)存打交道,使修改、編輯其他程序與文檔變得輕松、簡(jiǎn)單,因此而廣受業(yè)內(nèi)人士的青睞。在中等職業(yè)學(xué)校,C語(yǔ)言程序設(shè)計(jì)作為一門(mén)高級(jí)語(yǔ)言程序設(shè)計(jì)課程,是各理工科專(zhuān)業(yè)的公共基礎(chǔ)必修課。所以,開(kāi)展好C語(yǔ)言程序設(shè)計(jì)的教學(xué)工作具有非常重要的理論意義和現(xiàn)實(shí)意義。
作為中職學(xué)校的C語(yǔ)言程序設(shè)計(jì)教師,我認(rèn)為要想讓學(xué)生學(xué)好這門(mén)課程,不僅要通過(guò)認(rèn)真講解課本知識(shí)讓他們掌握教材內(nèi)容,更重要的是通過(guò)上機(jī)實(shí)踐增強(qiáng)和鞏固他們的知識(shí),達(dá)到活學(xué)活用的教學(xué)目標(biāo)。要讓學(xué)生在理論學(xué)習(xí)和基礎(chǔ)實(shí)驗(yàn)的基礎(chǔ)上,提高他們的實(shí)際操作能力,培養(yǎng)他們綜合運(yùn)用理論知識(shí)來(lái)分析和解決實(shí)際問(wèn)題的能力、嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的程序設(shè)計(jì)習(xí)慣,最終實(shí)現(xiàn)由知識(shí)向智能的初步轉(zhuǎn)化。在課堂教學(xué)中,要把注重教師的教轉(zhuǎn)向注重學(xué)生的學(xué),要讓學(xué)生充分參與、充分體驗(yàn)、充分感受C語(yǔ)言程序設(shè)計(jì),通過(guò)自主合作探究和動(dòng)手動(dòng)腦實(shí)踐操作熟練掌握編程技巧,將課本上的理論知識(shí)與動(dòng)手實(shí)踐有機(jī)地結(jié)合起來(lái),既鍛煉他們分析解決實(shí)際問(wèn)題的能力,又提高他們適應(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語(yǔ)言程序設(shè)計(jì)課堂教學(xué)改革的緊迫性
本人任教的重慶工商學(xué)校創(chuàng)建于1987年7月,1996年被認(rèn)定為首批國(guó)家級(jí)重點(diǎn)中等職業(yè)學(xué)校,2002年被確定為中國(guó)――澳大利亞職教合作項(xiàng)目五所項(xiàng)目學(xué)校之一,先后獲得全國(guó)職業(yè)教育先進(jìn)單位、全國(guó)成人教育先進(jìn)單位、全國(guó)中等職業(yè)學(xué)校德育工作先進(jìn)集體等榮譽(yù)稱號(hào)。經(jīng)過(guò)27年的辦學(xué)實(shí)踐探索,我校已成為目前中國(guó)西部地區(qū)規(guī)模最大、綜合辦學(xué)實(shí)力最強(qiáng)的中等職業(yè)學(xué)校之一。但是,我校的C語(yǔ)言程序設(shè)計(jì)教學(xué)工作還存在一些亟待解決的問(wèn)題,迫切需要我們一線教師更新觀念、大膽創(chuàng)新,積極推進(jìn)這門(mén)課程的課堂教學(xué)改革,點(diǎn)燃學(xué)生的學(xué)習(xí)熱情,提升課堂教學(xué)實(shí)效。
從教師的角度來(lái)說(shuō),由于C語(yǔ)言程序設(shè)計(jì)是各理工科專(zhuān)業(yè)的公共基礎(chǔ)必修課。因此涉及這門(mén)學(xué)科的專(zhuān)業(yè)較多,由于不同的專(zhuān)業(yè)根據(jù)實(shí)際情況制定了不同的人才培養(yǎng)方案,導(dǎo)致各專(zhuān)業(yè)在C語(yǔ)言程序設(shè)計(jì)課程上設(shè)置的學(xué)時(shí)數(shù)、考試性質(zhì)等不盡相同,教學(xué)大綱也會(huì)根據(jù)人才培養(yǎng)方案中對(duì)該課程的不同安排再進(jìn)行修訂,這就為我們一線教師增加了教學(xué)工作需要不斷變換的難度。為此,我們教師應(yīng)該堅(jiān)持學(xué)習(xí),努力提高自身的教育教學(xué)理論水平,把不同專(zhuān)業(yè)的不同學(xué)時(shí)合理地分配到順序、選擇、循環(huán)三大基本結(jié)構(gòu)和數(shù)組、指針、函數(shù)等教學(xué)內(nèi)容當(dāng)中去,并通過(guò)大膽嘗試和積極摸索,全面推進(jìn)課堂教學(xué)改革,培養(yǎng)學(xué)生對(duì)C語(yǔ)言程序設(shè)計(jì)的興趣,激發(fā)他們的學(xué)習(xí)實(shí)踐熱情,提升課堂教學(xué)實(shí)效,讓學(xué)生通過(guò)這門(mén)課程的學(xué)習(xí)切實(shí)掌握技能,全面增強(qiáng)能力。
從學(xué)生的角度來(lái)說(shuō),C語(yǔ)言程序設(shè)計(jì)課程既不算是文科,也不算是理科,因?yàn)槲目凭退阋粋€(gè)論文再長(zhǎng),寫(xiě)100張紙也總有寫(xiě)完的時(shí)候;理科的數(shù)學(xué)題再難,只要套上了公式就能得出答案,1就是1,變成2就錯(cuò)了。但是計(jì)算機(jī)語(yǔ)言并不是這樣,如果要寫(xiě)一個(gè)程序,你可能2天就做出來(lái)了,也有可能兩個(gè)月都做不成。再加上這門(mén)課程概念繁雜、知識(shí)點(diǎn)多、內(nèi)容枯燥、難度較大且實(shí)用性不強(qiáng),很容易讓學(xué)生產(chǎn)生畏難情緒和厭學(xué)情緒。而且由于教材對(duì)知識(shí)的介紹是分散的、循序漸進(jìn)的,學(xué)生在學(xué)習(xí)過(guò)程中接觸到的例題也大都比較簡(jiǎn)單,僅為說(shuō)明某種特定算法而已。與之相反,我們?cè)趯?shí)際工作中將面臨的問(wèn)題會(huì)復(fù)雜得多。另外,C語(yǔ)言提供了大量實(shí)用函數(shù)和擴(kuò)展功能,這些往往是學(xué)習(xí)過(guò)程中無(wú)法涵蓋的。因此經(jīng)常會(huì)出現(xiàn)這種情況:學(xué)生把課本上的知識(shí)掌握得滾瓜爛熟,但拿到一個(gè)設(shè)計(jì)卻無(wú)從下手,這也會(huì)嚴(yán)重削弱學(xué)生的積極性。針對(duì)這種情況,唯有教師改革課堂教學(xué)手段,把理論與實(shí)踐結(jié)合,把知識(shí)與能力并重,才能真正提升課堂教學(xué)實(shí)效,達(dá)成這門(mén)課程的教學(xué)目標(biāo)。
三、C語(yǔ)言程序設(shè)計(jì)課堂教學(xué)改革的具體舉措
1、改變“滿堂灌”的教學(xué)方式,把注重教師的教轉(zhuǎn)向注重學(xué)生的學(xué)
課堂上,我們要一改往日“滿堂灌”的授課方式,通過(guò)提出問(wèn)題,引導(dǎo)學(xué)生分析問(wèn)題,讓他們自己去找尋解決問(wèn)題的方法;然后再給出源代碼,分析源代碼,引出新知識(shí)點(diǎn),對(duì)知識(shí)點(diǎn)進(jìn)行講解;最終留給學(xué)生一個(gè)設(shè)計(jì)任務(wù),讓他們自主合作探究,通過(guò)小組討論、齊心協(xié)力共同完成任務(wù),達(dá)到鞏固知識(shí)點(diǎn)的目的。這樣的授課方式與“滿堂灌”相比,更為形象直觀,而且學(xué)生可以主動(dòng)參與到問(wèn)題的分析與討論中來(lái),把注重教師的教轉(zhuǎn)向了注重學(xué)生的學(xué),更有利于集中學(xué)生的注意力,更有利于發(fā)揮學(xué)生的主觀能動(dòng)性,課堂效率也就自然而然提高了。
2、把理論與實(shí)踐結(jié)合,把知識(shí)與能力并重
這門(mén)課程具有較強(qiáng)的實(shí)踐性,我們要給予學(xué)生足夠的實(shí)踐時(shí)間和活動(dòng)空間,讓他們通過(guò)上機(jī)實(shí)踐鞏固理論知識(shí)。我們要通過(guò)實(shí)驗(yàn)指導(dǎo)書(shū)的設(shè)計(jì),讓學(xué)生由讀程序、分析程序、程序改錯(cuò)逐漸達(dá)到能夠獨(dú)立編寫(xiě)程序的水平。由于這門(mén)課程的實(shí)驗(yàn)內(nèi)容繁多,加之課時(shí)安排有限,要想在課堂時(shí)間來(lái)分析和完成所有實(shí)驗(yàn)是不可能的。因此,我們要讓學(xué)生明白理論與實(shí)踐結(jié)合的重要性,讓他們?cè)趯?shí)驗(yàn)之前主動(dòng)對(duì)下節(jié)課的實(shí)驗(yàn)內(nèi)容進(jìn)行預(yù)習(xí),提前完成分析程序運(yùn)行結(jié)果、完成程序填空、找出程序中的錯(cuò)誤、編寫(xiě)程序解決實(shí)際問(wèn)題等。課堂上就只需將程序輸入VC++6.0中進(jìn)行運(yùn)行,調(diào)試程序中的錯(cuò)誤,找出錯(cuò)誤原因即可。這樣既可以提高課堂效率,也可以鍛煉學(xué)生分析問(wèn)題、解決問(wèn)題的能力,實(shí)現(xiàn)知識(shí)與能力并重的育人目標(biāo)。
論文摘要:“C程序設(shè)計(jì)”課程是電子類(lèi)專(zhuān)業(yè)基礎(chǔ)必修課,主要是為單片機(jī)編程服務(wù),該課程的教學(xué)效果直接影響到后續(xù)單片機(jī)課程的學(xué)習(xí)。本文結(jié)合單片機(jī)系統(tǒng)開(kāi)發(fā)的特點(diǎn),探討了C程序設(shè)計(jì)教學(xué)方法,為后續(xù)單片機(jī)課程的學(xué)習(xí)打下基礎(chǔ)。
隨著微電子技術(shù)的發(fā)展和廣泛應(yīng)用,基于單片機(jī)上的系統(tǒng)開(kāi)發(fā),C語(yǔ)言作為一種高級(jí)的編程語(yǔ)言,越來(lái)越受到人們的關(guān)注?,F(xiàn)在,無(wú)論是嵌入式系統(tǒng)開(kāi)發(fā)企業(yè)還是電子設(shè)計(jì)競(jìng)賽、畢業(yè)設(shè)計(jì)等,一般都以C語(yǔ)言為主要開(kāi)發(fā)工具。結(jié)合單片機(jī)的系統(tǒng)資源,用C語(yǔ)言開(kāi)發(fā)符合實(shí)際工程需要的單片機(jī)系統(tǒng),對(duì)于編程者來(lái)說(shuō)就有重要的意義。
1.C在單片機(jī)教學(xué)中的地位
C語(yǔ)言作為一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,它是程序開(kāi)發(fā)工具中使用最廣泛一門(mén)編程語(yǔ)言。C語(yǔ)言具有很強(qiáng)的功能性、結(jié)構(gòu)性、可移植性。用C語(yǔ)言編寫(xiě)程序比匯編更符合人們的思考習(xí)慣,程序開(kāi)發(fā)者可以擺脫與硬件不必要的接觸,更專(zhuān)心地考慮程序的功能和算法而不是考慮一些細(xì)節(jié)問(wèn)題,這樣就減少了開(kāi)發(fā)和調(diào)試的時(shí)間。由于它具有良好的程序結(jié)構(gòu),適用于模塊化程序設(shè)計(jì),因此采用C語(yǔ)言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時(shí),采用結(jié)構(gòu)化的、自頂向下、逐步求精的程序設(shè)計(jì)方法,將功能模塊化,由不同的模塊完成不同的功能。這樣可使整個(gè)應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。
2.單片機(jī)教學(xué)現(xiàn)狀
單片機(jī)技術(shù)是現(xiàn)代電子工程領(lǐng)域一門(mén)飛速發(fā)展的技術(shù),是現(xiàn)代電子技術(shù)中的一項(xiàng)不可缺少的重要技術(shù)。隨著技術(shù)的不斷進(jìn)步和日益普及,單片機(jī)技術(shù)已滲透到各個(gè)領(lǐng)域,影響著我們的日常生活和工作。因此電子技術(shù)及相關(guān)專(zhuān)業(yè)的學(xué)生學(xué)習(xí)單片機(jī)技術(shù)越來(lái)越成為社會(huì)發(fā)展的需求。當(dāng)前,各大高校的電子、計(jì)算機(jī)類(lèi)專(zhuān)業(yè)均開(kāi)設(shè)單片機(jī)課程。
《單片機(jī)》是我院電子系一門(mén)實(shí)踐性極強(qiáng)的專(zhuān)業(yè)主干課程,是我校電子系重點(diǎn)建設(shè)課程之一,是本專(zhuān)業(yè)學(xué)生的必修課程。為了提高我系單片機(jī)教學(xué)效果,我們對(duì)單片機(jī)教學(xué)進(jìn)行了大膽改革,使用C語(yǔ)言開(kāi)發(fā)單片機(jī),且課程的設(shè)計(jì)打破了學(xué)科體系的框架,將單片機(jī)和C語(yǔ)言的相關(guān)知識(shí)和技能按“項(xiàng)目”進(jìn)行整合,并將《C程序設(shè)計(jì)》課程列為電子類(lèi)專(zhuān)業(yè)核心基礎(chǔ)課程之一。因此,《C程序設(shè)計(jì)》課程教學(xué)效果的好壞,將直接影響學(xué)生后續(xù)專(zhuān)業(yè)課程的學(xué)習(xí)。
從近幾年我系《C程序設(shè)計(jì)》課程的教學(xué)效果來(lái)看,學(xué)生普遍反映該課程的學(xué)習(xí)比較困難,課程的語(yǔ)法知識(shí)較多,理解和記憶都不太容易,即使記住了語(yǔ)法知識(shí)也不能靈活應(yīng)用;不知道學(xué)習(xí)C語(yǔ)言究竟有何用處,學(xué)完C后不能很好地利用C進(jìn)行單片機(jī)小型系統(tǒng)的開(kāi)發(fā),缺乏知識(shí)的靈活應(yīng)用能力。因此,根據(jù)以往單片機(jī)教學(xué)所得經(jīng)驗(yàn),我覺(jué)得教師有必要在《C程序設(shè)計(jì)》課程的教學(xué)過(guò)程中在以下幾個(gè)方面引起足夠的重視,并在教學(xué)中加以改進(jìn),為后續(xù)單片機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
3.《C程序設(shè)計(jì)》課程教學(xué)方法探索
3.1上好每堂課,激發(fā)學(xué)生的學(xué)習(xí)興趣
語(yǔ)言程序設(shè)計(jì)教學(xué)被認(rèn)為是一種需要師生雙方改進(jìn)的一門(mén)課程,因?yàn)榇蠖鄶?shù)語(yǔ)言教材中通常先給出一般的語(yǔ)法格式,然后逐步講解語(yǔ)法要點(diǎn),再給出實(shí)例。這種順序灌輸會(huì)使學(xué)生失去學(xué)習(xí)的興趣,所以我認(rèn)為在課堂教學(xué)環(huán)節(jié)應(yīng)采取以學(xué)生為主體、以教師為主導(dǎo)的教學(xué)模式,要求學(xué)生自己先看有關(guān)知識(shí)點(diǎn),并識(shí)記。教師采取精講實(shí)例,在這過(guò)程中引出相關(guān)知識(shí)點(diǎn),然后再舉一類(lèi)似實(shí)例讓學(xué)生自己分析,鞏固知識(shí)點(diǎn)。教師應(yīng)把主要精力放在算法的分析和各語(yǔ)句語(yǔ)法的具體應(yīng)用上,同時(shí)培養(yǎng)學(xué)生自學(xué)能力,采取互動(dòng)機(jī)制,迫使學(xué)生主動(dòng)學(xué)習(xí)。
3.2注重演示,強(qiáng)化實(shí)驗(yàn),提高實(shí)踐操作能力
因?yàn)槭谡n對(duì)象是一年級(jí)新生,所以教師多用通俗易懂的語(yǔ)言進(jìn)行講解,多舉實(shí)例,使學(xué)生容易理解和消化。在教學(xué)過(guò)程中,盡量采用講解、演示方法,如在講解經(jīng)典算法后,按照理論方法所述,用DEV C++軟件進(jìn)行編程演示,從而加深學(xué)生對(duì)教學(xué)內(nèi)容的理解。
在教學(xué)過(guò)程中,教師應(yīng)將理論知識(shí)與實(shí)驗(yàn)內(nèi)容進(jìn)行整合,根據(jù)教學(xué)內(nèi)容并結(jié)合實(shí)際應(yīng)用設(shè)置實(shí)驗(yàn)題目,讓每個(gè)學(xué)生獨(dú)立完成。遇到學(xué)生不能解決的問(wèn)題,教師應(yīng)利用多媒體進(jìn)行演示解決問(wèn)題的過(guò)程,從而加深學(xué)生對(duì)教學(xué)內(nèi)容的理解并提高實(shí)踐操作能力。 3.3培養(yǎng)良好的編程風(fēng)格
3.3.1優(yōu)化程序
由于在許多工業(yè)測(cè)控領(lǐng)域中的嵌入式系統(tǒng)都采用單片機(jī)開(kāi)發(fā),它們所需要的計(jì)算和控制工作日趨復(fù)雜,其中軟件的設(shè)計(jì)是最復(fù)雜和困難的,工作量大,特別是對(duì)于控制系統(tǒng),設(shè)計(jì)人員需要考慮單片機(jī)的軟硬件資源分配,但是單片機(jī)系統(tǒng)是一種資源十分有限的系統(tǒng)。這主要表現(xiàn)在CPU和片內(nèi)結(jié)構(gòu)簡(jiǎn)單、程序存儲(chǔ)器資源的不足。因此在用C語(yǔ)言進(jìn)行單片機(jī)開(kāi)發(fā)時(shí),如何使用好這些有限的資源就顯得十分重要。雖然C語(yǔ)言具有許多的優(yōu)點(diǎn),但是生成的代碼相對(duì)要長(zhǎng),基本多占用存儲(chǔ)空間20%—50%。因而,在“C程序設(shè)計(jì)”課程教學(xué)中,教師不僅要教會(huì)學(xué)生如何編寫(xiě)程序,而且應(yīng)在教學(xué)過(guò)程中向?qū)W生灌輸優(yōu)化代碼的思想,讓學(xué)生從大一開(kāi)始就有開(kāi)發(fā)項(xiàng)目的一些經(jīng)驗(yàn)。
3.3.2合理選用數(shù)據(jù)類(lèi)型
C語(yǔ)言在程序開(kāi)發(fā)中提供了的豐富的數(shù)據(jù)類(lèi)型,尤其是關(guān)于用戶界面開(kāi)發(fā)和一些動(dòng)畫(huà)與圖像技術(shù)的實(shí)現(xiàn)。但是在開(kāi)發(fā)單片機(jī)系統(tǒng)時(shí),我們要按照實(shí)際需要,合理地選用數(shù)據(jù)類(lèi)型。C語(yǔ)言中有Char等少數(shù)的數(shù)據(jù)類(lèi)型是機(jī)器語(yǔ)言直接支持的數(shù)據(jù)類(lèi)型,用此類(lèi)數(shù)據(jù)類(lèi)型的語(yǔ)句所生成的代碼較短,而其它的數(shù)據(jù)類(lèi)型如整型、浮點(diǎn)型等數(shù)據(jù)要有一定的內(nèi)部程序或內(nèi)部函數(shù)的支持,相對(duì)來(lái)說(shuō)較復(fù)雜的數(shù)據(jù)類(lèi)型的語(yǔ)句生成的代碼也復(fù)雜,不利于轉(zhuǎn)化成單片機(jī)的代碼。因此,在“C程序設(shè)計(jì)“教學(xué)過(guò)程中,要向?qū)W生適當(dāng)說(shuō)明選擇合適數(shù)據(jù)類(lèi)型的好處,并盡可能地減少程序中使用的數(shù)據(jù)類(lèi)型的種類(lèi),為以后學(xué)生的單片機(jī)學(xué)習(xí)打好基礎(chǔ)。
3.3.3灌輸模塊化程序設(shè)計(jì)思想
在普通微型計(jì)算機(jī)上進(jìn)行C語(yǔ)言程序開(kāi)發(fā)設(shè)計(jì)時(shí),只需考慮程序功能實(shí)現(xiàn),而不必考慮程序代碼的長(zhǎng)短。但是在單片機(jī)上進(jìn)行C語(yǔ)言程序設(shè)計(jì)就必須考慮系統(tǒng)的硬件資源,要求設(shè)計(jì)的軟件程序結(jié)構(gòu)是合理、緊湊和高效的。同一任務(wù),有時(shí)用主程序完成是合理的,但有時(shí)需子程序效率最高,占用資源最少;有時(shí)并不是程序的算法越簡(jiǎn)單、長(zhǎng)度越短越好,由于有一些算法要調(diào)用一些內(nèi)部的子程序和函數(shù),生成的機(jī)器代碼質(zhì)量反而較低。不同的算法對(duì)程序代碼效率影響很大。因此,在進(jìn)行“C程序設(shè)計(jì)”教學(xué)時(shí),教師應(yīng)適當(dāng)向?qū)W生灌輸模塊化程序設(shè)計(jì)的思想,在不影響程序功能實(shí)現(xiàn)的情況下可以采用一些優(yōu)化算法,并且把程序分成若干個(gè)功能獨(dú)立的模塊,為學(xué)生今后的單片機(jī)項(xiàng)目開(kāi)發(fā)做好鋪墊。
4.結(jié)語(yǔ)
單片機(jī)系統(tǒng)采用C語(yǔ)言開(kāi)發(fā)與設(shè)計(jì),極大地促進(jìn)了單片機(jī)在生產(chǎn)、生活各個(gè)領(lǐng)域的應(yīng)用,提高了程序開(kāi)發(fā)效率。因而,C語(yǔ)言學(xué)習(xí)效果的好壞,對(duì)今后單片機(jī)課程的學(xué)習(xí)具有深遠(yuǎn)的影響。除了講解C語(yǔ)言的基本語(yǔ)法外,更重要的是改善教學(xué)方法,利用各種方法培養(yǎng)學(xué)生的學(xué)習(xí)興趣,并向?qū)W生灌輸良好的編程風(fēng)格與編程方法,為今后的單片機(jī)課程的學(xué)習(xí)打下良好的基礎(chǔ)。
參考文獻(xiàn)
[1]向艷.“C程序設(shè)計(jì)”課程教學(xué)體系和模式探討[J].計(jì)算機(jī)教育,2010,(3):112-114.
[2]董蘊(yùn)寶,潘旭君.淺談C語(yǔ)言在單片機(jī)中的程序設(shè)計(jì)[J].科技信息,2009,(13):59-67.
[3]張洪靜.電類(lèi)專(zhuān)業(yè)C語(yǔ)言教學(xué)探討[J].電腦知識(shí)與技術(shù),2010,(29):8280-8281.
[4]林益平,趙福建.單片機(jī)C語(yǔ)言課程教學(xué)的探索與實(shí)踐[J].電氣電子教學(xué)學(xué)報(bào),2007,(2):104-106.
關(guān)鍵詞:比較教學(xué)法;問(wèn)題求解能力;關(guān)鍵筆記;程序設(shè)計(jì)課程
中圖分類(lèi)號(hào):G434文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):1672-7800(2013)012-0171-03
作者簡(jiǎn)介:沈涵飛(1978-),男,碩士,蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院講師,研究方向?yàn)檐浖y(cè)試、云計(jì)算。
0引言
C語(yǔ)言和JAVA語(yǔ)言在TIOBE編程語(yǔ)言排行榜上長(zhǎng)期占據(jù)前兩名的位置,在計(jì)算機(jī)行業(yè)內(nèi)有著廣泛的應(yīng)用。這兩門(mén)課程也是教學(xué)難度較大的課程,是學(xué)生深入接觸計(jì)算機(jī)學(xué)科領(lǐng)域知識(shí)的基礎(chǔ)課程。搜索萬(wàn)方數(shù)據(jù)和中國(guó)知網(wǎng)10年來(lái)的論文,并沒(méi)有發(fā)現(xiàn)探討這兩門(mén)程序設(shè)計(jì)課程之間內(nèi)在聯(lián)系的論文;目前主流的程序設(shè)計(jì)教材也極少對(duì)這兩門(mén)語(yǔ)言進(jìn)行比較。學(xué)生在學(xué)習(xí)這兩門(mén)課程時(shí),往往覺(jué)得內(nèi)容繁雜,難于掌握。充分挖掘這兩門(mén)課程的共同特性,比較這兩門(mén)語(yǔ)言的語(yǔ)法和特性的不同之處,突出課程的重點(diǎn),能夠幫助學(xué)生更好地掌握課程內(nèi)容。
JAVA程序設(shè)計(jì)大體可以分為面向過(guò)程的程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)。面向過(guò)程的JAVA程序設(shè)計(jì)和C語(yǔ)言程序設(shè)計(jì)并沒(méi)有本質(zhì)區(qū)別,基本思想都是采用“自頂向下、逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。
在這兩門(mén)課程的多年教學(xué)實(shí)踐中,通過(guò)討論、分析和總結(jié),確定了以程序設(shè)計(jì)為主線、重點(diǎn)是培養(yǎng)學(xué)生的程序設(shè)計(jì)能力和計(jì)算思維,也就是放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上。在程序?qū)崿F(xiàn)這個(gè)環(huán)節(jié),通過(guò)運(yùn)用比較教學(xué)法進(jìn)行C語(yǔ)言和JAVA語(yǔ)言的語(yǔ)法和特性的教學(xué),既有助于學(xué)生更好更快地掌握高級(jí)語(yǔ)言的語(yǔ)法和特性,也有助于學(xué)生體會(huì)語(yǔ)言只是表達(dá)工具,問(wèn)題求解和計(jì)算思維的能力才是核心。
1程序設(shè)計(jì)教學(xué)中存在的問(wèn)題
程序設(shè)計(jì)課程是計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)的基礎(chǔ)課程,教學(xué)難度較大。學(xué)生往往難以理解程序設(shè)計(jì)的思維方式,對(duì)教學(xué)內(nèi)容似懂非懂,而掌握良好的程序設(shè)計(jì)方法則更加困難。如果以語(yǔ)言知識(shí)為主線組織教學(xué)內(nèi)容,由于C語(yǔ)言和JAVA語(yǔ)言涉及的知識(shí)點(diǎn)非常多,很多學(xué)生在學(xué)完一門(mén)課程后,普遍認(rèn)為程序設(shè)計(jì)難學(xué),教學(xué)內(nèi)容枯燥,缺乏主動(dòng)探索問(wèn)題的興趣。
傳統(tǒng)的課程教學(xué)較少提及這兩門(mén)語(yǔ)言的共性,不能在已有的基礎(chǔ)上去完成新知識(shí)的建構(gòu),大大增加了學(xué)生的學(xué)習(xí)負(fù)擔(dān),導(dǎo)致常用C語(yǔ)言編程的同學(xué)對(duì)JAVA語(yǔ)言產(chǎn)生生疏感,而常用JAVA語(yǔ)言的同學(xué)也不樂(lè)意使用C語(yǔ)言,不少同學(xué)對(duì)于學(xué)習(xí)兩門(mén)語(yǔ)言顯得有些無(wú)所適從,產(chǎn)生了畏難情緒,放棄了進(jìn)一步學(xué)習(xí)程序設(shè)計(jì)的機(jī)會(huì)。
2比較教學(xué)法在程序設(shè)計(jì)課程中的應(yīng)用
2.1程序設(shè)計(jì)課程能力培養(yǎng)目標(biāo)
卡內(nèi)基梅隆大學(xué)的周以真教授指出,“計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題、設(shè)計(jì)系統(tǒng)和理解人類(lèi)的行為”[1]。2010年首屆“九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)課程研討會(huì)”上,明確提出計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算思維能力的培養(yǎng)[2]。清華大學(xué)吳文虎教授提出,“以強(qiáng)調(diào)動(dòng)手上機(jī)實(shí)踐編程為切入點(diǎn),以任務(wù)驅(qū)動(dòng)的方式,通過(guò)實(shí)例講授程序設(shè)計(jì)的基本概念和基本方法”[3]。
2.2比較教學(xué)法
比較教學(xué)法是教師在教學(xué)實(shí)踐中,著重體現(xiàn)辨析并確定教學(xué)內(nèi)容間異同關(guān)系的思維過(guò)程和方法。其本質(zhì)特征在于“比較”、“對(duì)照”、“對(duì)比”、“參照”。即把彼此之間具有某種聯(lián)系的教學(xué)內(nèi)容放在一起,加以對(duì)比分析,以確定其異同關(guān)系,認(rèn)識(shí)其本質(zhì)差異。
從思維訓(xùn)練的角度看,比較數(shù)學(xué)法可分為兩種類(lèi)型:①求同比較——將相同的知識(shí),或性質(zhì)相似的材料放在一塊加以比較,使學(xué)生利用新舊知識(shí)之間的聯(lián)系,加深理解,增強(qiáng)記憶;②求異比較——事物之間存在差異,教師的責(zé)任就在于引導(dǎo)學(xué)生將這種差異揭示出來(lái)。
2.3比較教學(xué)法應(yīng)用
程序設(shè)計(jì)課程的重點(diǎn)是培養(yǎng)問(wèn)題求解能力,促成學(xué)生計(jì)算思維的形成,語(yǔ)句只是表達(dá)工具,編程思路才是重點(diǎn)和難點(diǎn)。JAVA語(yǔ)言在編程風(fēng)格上非常接近于C/C++語(yǔ)言,這是比較教學(xué)法能用于C和JAVA程序設(shè)計(jì)教學(xué)的重要因素;在線評(píng)測(cè)系統(tǒng)能夠同時(shí)支持這兩種語(yǔ)言,為比較教學(xué)法的應(yīng)用提供了實(shí)踐平臺(tái)。
3C語(yǔ)言和JAVA教學(xué)內(nèi)容分析
C語(yǔ)言本質(zhì)上是面向過(guò)程的設(shè)計(jì)語(yǔ)言,提倡結(jié)構(gòu)化程序設(shè)計(jì);JAVA語(yǔ)言本質(zhì)上是面向?qū)ο蟮木幊陶Z(yǔ)言,但也支持面向過(guò)程的程序設(shè)計(jì)。C語(yǔ)言和JAVA語(yǔ)言在結(jié)構(gòu)化程序設(shè)計(jì)方面存在大量的相同之處,如在基本數(shù)據(jù)類(lèi)型、運(yùn)算符、表達(dá)式、三種基本結(jié)構(gòu)、數(shù)組、函數(shù)等方面,C語(yǔ)言和JAVA語(yǔ)言高度相似,采用比較教學(xué)法可以突出計(jì)算思維的本質(zhì),培養(yǎng)學(xué)生掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,提升學(xué)生學(xué)習(xí)的效率,克服學(xué)生對(duì)于程序設(shè)計(jì)課程的畏難情緒。
在教學(xué)中,把原有的C語(yǔ)言和JAVA語(yǔ)言的教學(xué)內(nèi)容進(jìn)行了重新組織,包含3部分:C和JAVA共同的結(jié)構(gòu)化程序設(shè)計(jì)(基本數(shù)據(jù)類(lèi)型、運(yùn)算符、表達(dá)式、三種基本結(jié)構(gòu)、數(shù)組、函數(shù)等);C語(yǔ)言特有部分(字符串、指針、結(jié)構(gòu)體等);JAVA特有部分(面向?qū)ο蟪绦蛟O(shè)計(jì)、圖形界面程序設(shè)計(jì)、異常處理、多線程等)。
通過(guò)內(nèi)容的重新組織,強(qiáng)調(diào)了結(jié)構(gòu)化程序設(shè)計(jì)的概念,讓學(xué)生真正體會(huì)到語(yǔ)句只是表達(dá)工具,問(wèn)題求解能力的培養(yǎng)才是重點(diǎn)。
4C語(yǔ)言和JAVA比較教學(xué)要點(diǎn)
在C語(yǔ)言和JAVA的教學(xué)過(guò)程中,要有效地實(shí)施以問(wèn)題求解能力培養(yǎng)為目標(biāo)的比較教學(xué),建議把握以下要點(diǎn)。
4.1以問(wèn)題求解為中心
程序設(shè)計(jì)類(lèi)課程的主要目標(biāo)就是培養(yǎng)學(xué)生應(yīng)用計(jì)算機(jī)(體現(xiàn)為編寫(xiě)程序)解決問(wèn)題的能力。問(wèn)題求解能力是在不斷解決問(wèn)題的過(guò)程中逐步得到提高和強(qiáng)化的,這就需要有一個(gè)平臺(tái)能夠支撐學(xué)生完成足夠的練習(xí)。
在實(shí)踐過(guò)程中,我們采用的是HUST Online Judge。這是由華中科技大學(xué)畢業(yè)生王良晶等開(kāi)發(fā)并在2008年底以GPL協(xié)議進(jìn)行開(kāi)源的在線評(píng)測(cè)系統(tǒng),該系統(tǒng)基于LAMP平臺(tái),提供了使用Ubuntu的LiveCD系統(tǒng),用戶無(wú)需安裝即可使用其完整功能,并可以圖形化方式完成系統(tǒng)安裝,降低了使用門(mén)檻?;诖讼到y(tǒng),我們創(chuàng)建了C/C++/JAVA程序自動(dòng)評(píng)測(cè)系統(tǒng),網(wǎng)址為http:///JudgeOnline。
我們精選了能夠充分體現(xiàn)計(jì)算思維特點(diǎn)的大量題目放置在評(píng)測(cè)系統(tǒng)中,圍繞這些問(wèn)題展開(kāi)教學(xué),語(yǔ)言語(yǔ)法圍繞問(wèn)題逐步引入,強(qiáng)調(diào)語(yǔ)句只是表達(dá)工具,重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上,讓學(xué)生在做中學(xué)、學(xué)中做,通過(guò)實(shí)踐感受和領(lǐng)悟計(jì)算機(jī)問(wèn)題求解的基本方法和思維模式。
4.2以C語(yǔ)言為主,兼顧JAVA語(yǔ)言
對(duì)于同一個(gè)問(wèn)題求解,既可以使用C語(yǔ)言也可以使用JAVA來(lái)解決。在教學(xué)過(guò)程中,還是需要有個(gè)主次,建議采用以C語(yǔ)言為主,兼顧JAVA語(yǔ)言。這樣做主要有以下原因:①同樣的程序,往往C語(yǔ)言的代碼要簡(jiǎn)潔一些,更適合初學(xué)者上手;②C語(yǔ)言的開(kāi)發(fā)工具(我們采用的是C-Free)更為小巧易用、界面簡(jiǎn)潔,適合初學(xué)者使用;而JAVA的常用開(kāi)發(fā)工具Eclipse和Netbeans都較為龐大,盡管功能全面但在編寫(xiě)小規(guī)模程序方面并沒(méi)有太多優(yōu)勢(shì);③在結(jié)構(gòu)化程序設(shè)計(jì)的資源上,無(wú)論是教材還是互聯(lián)網(wǎng)資源,C語(yǔ)言要遠(yuǎn)遠(yuǎn)多于JAVA。
在學(xué)生能夠較好地掌握C語(yǔ)言的前提下,鼓勵(lì)學(xué)生將已有的C語(yǔ)言程序改寫(xiě)成JAVA語(yǔ)言來(lái)完成同樣的任務(wù),能更好地讓學(xué)生體會(huì)到這兩種語(yǔ)言的異同。
4.3精選語(yǔ)言語(yǔ)法和規(guī)則
結(jié)構(gòu)化程序設(shè)計(jì)的教學(xué)要以程序設(shè)計(jì)為主線,結(jié)合實(shí)際案例來(lái)展開(kāi),將程序開(kāi)發(fā)過(guò)程的相關(guān)內(nèi)容貫穿和滲透到每個(gè)知識(shí)點(diǎn)的講授中去,訓(xùn)練學(xué)生分析問(wèn)題和解決問(wèn)題的能力,讓學(xué)生更多地上機(jī)編程,鼓勵(lì)和引導(dǎo)探索式學(xué)習(xí)。
在以問(wèn)題求解為中心的授課過(guò)程中,講授的語(yǔ)法和規(guī)則要盡可能簡(jiǎn)單,不求面面俱到,夠用就行, 細(xì)枝末節(jié)的東西可以不講,要學(xué)生“抱西瓜”而不是“揀芝麻”。例如,在課程前期,int、double和char這3種基本數(shù)據(jù)類(lèi)型就完全夠用,不必將所有數(shù)據(jù)類(lèi)型及其細(xì)節(jié)都呈現(xiàn)給學(xué)生,這樣會(huì)使不少初學(xué)者無(wú)所適從。
4.4結(jié)構(gòu)化程序劃分
結(jié)構(gòu)化程序設(shè)計(jì)采用了“單入口單出口”的模式:數(shù)據(jù)輸入數(shù)據(jù)處理數(shù)據(jù)輸出,根據(jù)該模式編寫(xiě)的程序也有利于提交到在線評(píng)測(cè)系統(tǒng)進(jìn)行自動(dòng)化檢測(cè)。該類(lèi)程序可以劃分成4個(gè)部分:聲明、輸入、運(yùn)算和輸出。除了在數(shù)據(jù)的輸入處理上存在差異外,在聲明、運(yùn)算和輸出上,C語(yǔ)言和JAVA語(yǔ)言的差異非常小。
對(duì)于簡(jiǎn)單的數(shù)據(jù)輸入,兩種語(yǔ)言的輸入處理都有固定的模式,在教學(xué)中提供了關(guān)鍵筆記,讓學(xué)生在模板的基礎(chǔ)上進(jìn)行改動(dòng),這樣就讓兩種語(yǔ)言在輸入處理方面的差異實(shí)現(xiàn)了最小化。
對(duì)于數(shù)據(jù)的輸出,JAVA語(yǔ)言教材中更多采用的是 System.out.println,使用這種表達(dá)方式會(huì)導(dǎo)致C語(yǔ)言和JAVA語(yǔ)言的輸出部分代碼存在較大的差異。建議在教學(xué)中采用C語(yǔ)言風(fēng)格的printf,不但實(shí)現(xiàn)了在兩種語(yǔ)言下代碼的一致性,而且代碼的可讀性更好,更容易實(shí)現(xiàn)浮點(diǎn)數(shù)指定格式的輸出。
求異比較可以更好地了解C語(yǔ)言和JAVA語(yǔ)言的差異。例如對(duì)于雙精度浮點(diǎn)數(shù)輸出采用 printf(“%.3f”, x) 而不是 printf(“%.3lf”, x),盡管C語(yǔ)言中兩種方式都是正確的,但后者在JAVA語(yǔ)言環(huán)境下會(huì)產(chǎn)生異常。
C語(yǔ)言和JAVA語(yǔ)言非本質(zhì)的差異可以通過(guò)一定的方法來(lái)弱化,從而突出共同點(diǎn)。例如從形式上看,C語(yǔ)言和JAVA語(yǔ)言的程序入口main函數(shù)差異較大,可以將程序框架設(shè)計(jì)成模板,讓學(xué)生直接拿過(guò)來(lái)使用,學(xué)生只需填寫(xiě)程序的核心部分,這樣更能突出C和JAVA的共同點(diǎn)。
5應(yīng)用關(guān)鍵筆記(Key Note)提升學(xué)習(xí)效率
為配合在線評(píng)測(cè)系統(tǒng)在教學(xué)中的使用,提高學(xué)生解決問(wèn)題的效率,克服學(xué)生的畏難情緒,突出教學(xué)重點(diǎn),我們精心設(shè)計(jì)了關(guān)鍵筆記(Key Note)。從形式上看,關(guān)鍵筆記僅是一張正反面打印的A4紙,內(nèi)容精簡(jiǎn),在使用過(guò)程中可以根據(jù)學(xué)生的反饋進(jìn)行快速調(diào)整后再次分發(fā)。
關(guān)鍵筆記的內(nèi)容凝聚了C語(yǔ)言和JAVA(面向過(guò)程部分)的所有核心知識(shí)點(diǎn)、最常用代碼和典型算法(如計(jì)數(shù)、統(tǒng)計(jì)、排序、數(shù)字分離、進(jìn)制轉(zhuǎn)換等)及在線評(píng)測(cè)系統(tǒng)的注意事項(xiàng),次要內(nèi)容只提供線索,在需要的時(shí)候,學(xué)生可以依據(jù)線索在互聯(lián)網(wǎng)上查找,這也有助于培養(yǎng)學(xué)生的網(wǎng)絡(luò)學(xué)習(xí)能力。
學(xué)生可以借助關(guān)鍵筆記,分別運(yùn)用C語(yǔ)言和JAVA語(yǔ)言來(lái)完成在線評(píng)測(cè)系統(tǒng)中的所有練習(xí)。這種方式突出了語(yǔ)言知識(shí)的重點(diǎn),強(qiáng)調(diào)了運(yùn)用知識(shí)的能力,有助于培養(yǎng)學(xué)生的計(jì)算思維能力。教材在教學(xué)過(guò)程中更多地是起到參考書(shū)的作用,幫助學(xué)生完善對(duì)于語(yǔ)言的認(rèn)識(shí)。
Scanner cin = new Scanner(System.in); // cin means console input
說(shuō)明:C語(yǔ)言中的gets函數(shù)具有安全隱患,可以在課程后期提醒學(xué)生謹(jǐn)慎使用。
6對(duì)比教學(xué)法的教學(xué)效果
從2010年開(kāi)始的3年時(shí)間里,程序設(shè)計(jì)課程的教學(xué)逐步從以語(yǔ)言知識(shí)為主線轉(zhuǎn)向了以程序設(shè)計(jì)為主線,并在C語(yǔ)言和JAVA語(yǔ)言程序設(shè)計(jì)課程中采用了比較教學(xué)法。在采用新的教學(xué)方法后,學(xué)生的學(xué)習(xí)目標(biāo)清晰,學(xué)習(xí)興趣增強(qiáng),學(xué)期期末的課程評(píng)價(jià)顯示,學(xué)生對(duì)于程序設(shè)計(jì)課程的評(píng)價(jià)從原來(lái)的較為靠后的排名轉(zhuǎn)變?yōu)檐S居前列。
學(xué)生參加程序設(shè)計(jì)競(jìng)賽的人數(shù)和成績(jī)也穩(wěn)步提升。以藍(lán)橋杯全國(guó)軟件設(shè)計(jì)與開(kāi)發(fā)大賽個(gè)人賽為例,參加人數(shù)從2011年的13人、2012年的32人提高到2013年的38人;參賽成績(jī)也有很大的提升,近3年獲得江蘇省一等獎(jiǎng)的人數(shù)分別為0、4、10人,2013年獲得省一等獎(jiǎng)的10人中有3人來(lái)自C/C++組,有7人來(lái)自JAVA組,JAVA組的成績(jī)?cè)谌「呗氃盒V信琶谝?,這個(gè)成績(jī)說(shuō)明了在采用比較教學(xué)法后,JAVA程序設(shè)計(jì)的教學(xué)質(zhì)量獲得了顯著提高。
7結(jié)語(yǔ)
在C語(yǔ)言和JAVA語(yǔ)言程序設(shè)計(jì)課程中以程序設(shè)計(jì)為主線展開(kāi)教學(xué),采用了比較教學(xué)法,并給學(xué)生提供了包含核心知識(shí)點(diǎn)、最常用代碼的關(guān)鍵筆記用于在線評(píng)測(cè)系統(tǒng)中的問(wèn)題求解,突出了課程的重點(diǎn),培養(yǎng)了學(xué)生的計(jì)算思維,激發(fā)了學(xué)生的興趣,提升了學(xué)生對(duì)于課程的滿意度。實(shí)踐表明,比較教學(xué)法的運(yùn)用顯著提升了程序設(shè)計(jì)課程尤其是JAVA的教學(xué)質(zhì)量。
參考文獻(xiàn)參考文獻(xiàn):
[1]JEANNETTE M putational Thinking[J].Communications of ACM,2006,49(3):33-35.