黃 艷,鄭 倩
(鄭州輕工業(yè)學(xué)院 軟件學(xué)院, 河南 鄭州 450002)
?
C#程序設(shè)計(jì)教學(xué)模式探索與實(shí)踐
黃艷,鄭倩
(鄭州輕工業(yè)學(xué)院 軟件學(xué)院, 河南 鄭州 450002)
針對(duì)C#程序設(shè)計(jì)課程概念復(fù)雜,規(guī)則繁多,運(yùn)用靈活等教學(xué)特點(diǎn),提出以任務(wù)為中心組織課程內(nèi)容,多種教學(xué)模式相結(jié)合的教學(xué)方法.對(duì)新概念和新方法采用啟發(fā)式教學(xué)法使學(xué)生形成穩(wěn)定清晰的表象,對(duì)相似或相異概念采用比對(duì)式教學(xué)法展現(xiàn)其特點(diǎn)和規(guī)律,對(duì)前后連貫的知識(shí)點(diǎn)采用任務(wù)驅(qū)動(dòng)的漸進(jìn)式教學(xué)法使學(xué)生逐步掌握解決問題的具體方法.實(shí)踐證明,該教學(xué)方法不僅激發(fā)了學(xué)生的求知欲和學(xué)習(xí)興趣,而且有利于培養(yǎng)學(xué)生的創(chuàng)造思維能力和實(shí)踐精神.
C#;任務(wù)驅(qū)動(dòng);教學(xué)方法;啟發(fā)式教學(xué);漸進(jìn)式教學(xué)
C#程序設(shè)計(jì)語言是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言,也是微軟.NET公共語言運(yùn)行環(huán)境中內(nèi)置的核心程序設(shè)計(jì)語言.使用C#語言可以開發(fā)在.NET平臺(tái)上運(yùn)行的多種應(yīng)用程序,包括Windows窗體應(yīng)用程序、Web應(yīng)用程序以及Web服務(wù)等.C#程序設(shè)計(jì)語言集中了目前幾乎所有關(guān)于軟件開發(fā)和軟件工程研究的最新成果,包括類型安全、面向?qū)ο?、組件技術(shù)、內(nèi)存自動(dòng)管理、版本控制、代碼安全管理等,為在.NET環(huán)境下的計(jì)算機(jī)應(yīng)用提供了功能強(qiáng)大、全新、易用的程序設(shè)計(jì)工具.
C#程序設(shè)計(jì)是高校計(jì)算機(jī)相關(guān)專業(yè)必修的一門專業(yè)基礎(chǔ)課,也是各高校許多專業(yè)的計(jì)算機(jī)高級(jí)語言,它是目前具有穩(wěn)固陣地的計(jì)算機(jī)編程語言之一,功能強(qiáng)大,語句簡潔,用它不僅可進(jìn)行一般的程序設(shè)計(jì),而且可進(jìn)行大型的軟件開發(fā);不僅可用于編寫科學(xué)計(jì)算程序、開發(fā)管理軟件,而且可用于開發(fā)控制軟件,它在計(jì)算機(jī)的實(shí)際應(yīng)用中起著十分重要的作用[1-2].
C#程序設(shè)計(jì)是一門面向?qū)ο蟮母呒?jí)編程語言課程,主要講解高級(jí)編程語言的語法規(guī)則和程序設(shè)計(jì)、軟件開發(fā)的方法,培養(yǎng)學(xué)生進(jìn)行程序設(shè)計(jì)的思維方式,理解和掌握利用計(jì)算機(jī)進(jìn)行程序設(shè)計(jì)和軟件開發(fā)的技術(shù),奠定在今后的學(xué)習(xí)和工作中應(yīng)用計(jì)算機(jī)解決實(shí)際問題的能力[3].C#程序設(shè)計(jì)課程教學(xué)中,涉及的概念復(fù)雜,規(guī)則繁多,運(yùn)用方法靈活,教師教學(xué)和學(xué)生學(xué)習(xí)都感到困難.然而,多數(shù)高校將C#程序設(shè)計(jì)作為計(jì)算機(jī)專業(yè)學(xué)生的一門專業(yè)基礎(chǔ)課,C#程序設(shè)計(jì)課程學(xué)習(xí)效果的好壞直接影響到學(xué)生的專業(yè)水平.因此,該課程對(duì)于培養(yǎng)新世紀(jì)需要的面向現(xiàn)代化、面向未來、面向世界的人才具有重要的意義.
C#程序設(shè)計(jì)課程應(yīng)立足于實(shí)際能力培養(yǎng),打破以知識(shí)傳授為主要特征的傳統(tǒng)學(xué)科課程模式,轉(zhuǎn)變?yōu)橐皂?xiàng)目任務(wù)為中心組織課程內(nèi)容和課程教學(xué),讓學(xué)生在完成具體任務(wù)的過程中來構(gòu)建相關(guān)理論知識(shí),并發(fā)展職業(yè)能力.
2.1啟發(fā)式教學(xué)方法
C#是一門面向?qū)ο蟮默F(xiàn)代語言,涉及面向?qū)ο蟮暮芏嘈赂拍?、新方?如果只是按照教材上的定義在課堂上給學(xué)生講解這些新概念、新方法,學(xué)生理解起來將會(huì)非常困難.啟發(fā)式教學(xué)法結(jié)合熟悉事物學(xué)習(xí)抽象概念和規(guī)律,使學(xué)生形成穩(wěn)定清晰的表象,促進(jìn)了學(xué)生對(duì)重點(diǎn)、難點(diǎn)知識(shí)的理解.
例如,針對(duì)“學(xué)生如何建立面向?qū)ο蟪绦蛟O(shè)計(jì)思想”的課程難點(diǎn),把類和建筑物的設(shè)計(jì)圖對(duì)應(yīng),把對(duì)象和建筑物的實(shí)體對(duì)應(yīng),如圖1所示,啟發(fā)學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)思想的理解.在C#程序設(shè)計(jì)課堂教學(xué)中靈活運(yùn)用啟發(fā)式教學(xué),可激發(fā)學(xué)生思維,增強(qiáng)學(xué)生學(xué)習(xí)的主動(dòng)性、積極性和創(chuàng)造性.
2.2對(duì)比式教學(xué)方法
教育家烏申藏斯基說過:“比較是一切理解和思維的基礎(chǔ).”對(duì)比式教學(xué)法就是通過比較相似或相異事物的一種學(xué)習(xí)方法.通過對(duì)C#語言的語法規(guī)則中相似或相異概念和方法進(jìn)行比較,能更清楚地發(fā)現(xiàn)其特點(diǎn)和規(guī)律,并更深刻地理解和應(yīng)用它們.
圖1 啟發(fā)式教學(xué)示例
圖2 對(duì)比式教學(xué)示例
例如,“構(gòu)造函數(shù)”和“方法重載”都是C#面向?qū)ο笳Z言中的重要概念,應(yīng)用場景也很多.通過對(duì)概念“構(gòu)造函數(shù)”的初步學(xué)習(xí),同學(xué)們了解C#語言中類的“構(gòu)造函數(shù)”指與類同名的方法,用于創(chuàng)建類的對(duì)象.通過對(duì)概念“方法重載”的初步學(xué)習(xí),同學(xué)們了解C#語言中的“方法重載”指具有相同名稱不同參數(shù)列表的方法,旨在讓類和對(duì)象以統(tǒng)一的方式處理不同形式數(shù)據(jù).這兩個(gè)看似毫不相關(guān)的概念實(shí)際上有著密切的聯(lián)系和本質(zhì)的區(qū)別.采用圖2的對(duì)比式教學(xué),通過在一個(gè)類定義中同時(shí)加入多個(gè)“構(gòu)造函數(shù)” (加下劃線部分)和多個(gè)重名方法(加粗部分),可以很清楚地看到“構(gòu)造函數(shù)”就是一種特殊的方法,“構(gòu)造函數(shù)”也可以重載.通過這個(gè)例子,老師可以清楚地講解“構(gòu)造函數(shù)”和“方法重載”之間的聯(lián)系和區(qū)別,讓學(xué)生深刻理解和區(qū)分這兩個(gè)概念.
2.3任務(wù)驅(qū)動(dòng)的漸進(jìn)式教學(xué)方法
C#程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的專業(yè)課程,實(shí)踐和實(shí)驗(yàn)教學(xué)是課堂教學(xué)中非常重要的一個(gè)環(huán)節(jié).現(xiàn)有的C#程序設(shè)計(jì)教程中各個(gè)章節(jié)的案例都是依據(jù)各個(gè)章節(jié)的知識(shí)點(diǎn)編寫的,各個(gè)章節(jié)的案例之間沒有聯(lián)系,學(xué)生在學(xué)習(xí)時(shí)無法連貫前后知識(shí)點(diǎn),總是學(xué)習(xí)完新的知識(shí)點(diǎn)忘記了舊的知識(shí)點(diǎn).而且書本上的案例多數(shù)是實(shí)驗(yàn)性質(zhì)的案例,規(guī)模小,真實(shí)性不強(qiáng),和企業(yè)要求脫節(jié).
任務(wù)驅(qū)動(dòng)教學(xué)法來源于建構(gòu)主義學(xué)習(xí)理論,與其相適應(yīng)的任務(wù)驅(qū)動(dòng)教學(xué)模式是以學(xué)生為中心、教師為主導(dǎo),利用項(xiàng)目任務(wù)創(chuàng)建的情境、協(xié)作、會(huì)話、操作等學(xué)習(xí)環(huán)境要素,充分發(fā)揮學(xué)生的主動(dòng)性、積極性和創(chuàng)新精神,使學(xué)生有效地建構(gòu)所學(xué)知識(shí),增強(qiáng)實(shí)踐能力[4].任務(wù)驅(qū)動(dòng)教學(xué)法在教學(xué)過程中以任務(wù)為主線展開,把相關(guān)知識(shí)點(diǎn)融入任務(wù)的各個(gè)環(huán)節(jié)中去,層層推進(jìn)項(xiàng)目.通過對(duì)問題的深化或功能擴(kuò)充,來拓寬知識(shí)的廣度和深度,直至得到一個(gè)完整的項(xiàng)目解決方案,從而達(dá)到學(xué)習(xí)知識(shí)、培養(yǎng)能力的目的.在這種模式中,教師根據(jù)學(xué)生已有的經(jīng)驗(yàn)、知識(shí)、水平和興趣來選取適合的教學(xué)任務(wù),使學(xué)生置身于探索知識(shí)的情境之中,綜合運(yùn)用知識(shí)和技能解決實(shí)際問題,并在真實(shí)的項(xiàng)目流程中體驗(yàn)項(xiàng)目管理的思想和團(tuán)隊(duì)協(xié)作精神,提升創(chuàng)新和實(shí)踐能力.
例如,在學(xué)習(xí)C#面向?qū)ο笳Z言中”類”這個(gè)重要概念時(shí)[5],同學(xué)們了解到類是對(duì)同一種對(duì)象的抽象描述,類的成員有字段、方法、構(gòu)造函數(shù)和屬性等.為了加強(qiáng)同學(xué)們對(duì)類成員的理解和認(rèn)識(shí),我們采用如圖3、圖4、圖5所示任務(wù)驅(qū)動(dòng)的漸進(jìn)式教學(xué)方法示例,以任務(wù)“定義一個(gè)船臺(tái)類”為目標(biāo),由易到難,由淺入深,先完成類成員字段和方法的定義,接著,在類中加入類成員構(gòu)造函數(shù)的定義,最后,在類中加入成員屬性的定義,每次新加入的類成員都突出顯示.通過這種漸進(jìn)式教學(xué)方法,同學(xué)們不僅對(duì)類的各個(gè)成員有更深刻的認(rèn)識(shí),而且能很快掌握定義一個(gè)類的具體方法和步驟.如果在C#程序設(shè)計(jì)課堂教學(xué)中貫穿這種任務(wù)驅(qū)動(dòng)的漸進(jìn)式教學(xué)方法,同學(xué)們會(huì)很容易掌握完成一個(gè)實(shí)際項(xiàng)目的具體方法和步驟.
圖3 類的字段與方法
圖4 類的構(gòu)造函數(shù)
圖5 類的屬性
C#程序設(shè)計(jì)課程知識(shí)點(diǎn)繁多,概念抽象,以前的教學(xué)模式在為每個(gè)知識(shí)點(diǎn)設(shè)計(jì)教學(xué)案例時(shí),沒有連續(xù)性,各案例相互獨(dú)立沒有關(guān)聯(lián),不利于學(xué)生對(duì)知識(shí)點(diǎn)的系統(tǒng)化掌握.通過以實(shí)際任務(wù)為驅(qū)動(dòng),把任務(wù)分解到各個(gè)知識(shí)點(diǎn)案例中,由淺入深,由點(diǎn)到面,學(xué)生逐步掌握解決任務(wù)問題的同時(shí)系統(tǒng)化地掌握C#程序設(shè)計(jì)課程知識(shí)點(diǎn).對(duì)于相似的知識(shí)點(diǎn),通過對(duì)比案例進(jìn)一步剖析它們之間的區(qū)別和聯(lián)系,教學(xué)效果顯著.
1)采用“任務(wù)驅(qū)動(dòng)”的漸進(jìn)式教學(xué)模式,通過“提出問題→分析問題→解決問題→邊學(xué)邊做→總結(jié)”的過程,激發(fā)了學(xué)生的求知欲和學(xué)習(xí)興趣,學(xué)生在獲得良好心理體驗(yàn)的過程中產(chǎn)生“心向往之”的情感,實(shí)現(xiàn)學(xué)生的積極主動(dòng)學(xué)習(xí)[6].
2)啟發(fā)式教學(xué)法激發(fā)思維,增強(qiáng)學(xué)生學(xué)習(xí)的主動(dòng)性、積極性和創(chuàng)造性.針對(duì)課程難點(diǎn)創(chuàng)設(shè)情境,突出了事物的本質(zhì)特征,促進(jìn)了學(xué)生形成穩(wěn)定清晰的表象,給學(xué)生學(xué)習(xí)概念、規(guī)律創(chuàng)造了條件,促進(jìn)了學(xué)生對(duì)重點(diǎn)、難點(diǎn)知識(shí)的理解.
3)對(duì)比式教學(xué)法對(duì)同一個(gè)案例,采用不同的實(shí)現(xiàn)方法,達(dá)到讓學(xué)生在具體案例中對(duì)相似技術(shù)的深刻理解,使學(xué)生較之傳統(tǒng)的知識(shí)形成過程產(chǎn)生耳目一新的感覺,極大地拓寬了學(xué)生的視野,培養(yǎng)了學(xué)生的創(chuàng)造思維能力和實(shí)踐精神,使學(xué)生的綜合素質(zhì)得到進(jìn)一步提高.
在C#程序設(shè)計(jì)課堂教學(xué)中,以項(xiàng)目任務(wù)為驅(qū)動(dòng),在講授任務(wù)項(xiàng)目開發(fā)的過程中,把C#程序設(shè)計(jì)思想和方法融入其中.通過把任務(wù)分解到各個(gè)知識(shí)點(diǎn)案例中,并針對(duì)不同的課程知識(shí)點(diǎn),因地制宜地采用不同的教學(xué)方法,由淺入深,由點(diǎn)到面,使學(xué)生在系統(tǒng)化地掌握C#程序設(shè)計(jì)技術(shù)的同時(shí)積累項(xiàng)目開發(fā)的經(jīng)驗(yàn),取得良好的教學(xué)效果.
[1]周本海.淺析程序設(shè)計(jì)課程中編程技能的培養(yǎng)[J]. 考試周刊, 2015(13): 128-129.
[2]蘇秀云.程序設(shè)計(jì)課程教學(xué)中開展項(xiàng)目教學(xué)法的研究[J]. 職業(yè),2010(15): 16.
[3]蔣穎.提升計(jì)算機(jī)專業(yè)學(xué)生編程技能的改進(jìn)與實(shí)踐[J]. 計(jì)算機(jī)光盤軟件與應(yīng)用,2014(6): 241-241.
[4]何連連,宋歡.C#程序設(shè)計(jì)課程教學(xué)的心得與體會(huì)[J].科技創(chuàng)新,2014(3): 325-325.
[5]黃艷,鄭倩,孫海燕,等. C#程序設(shè)計(jì)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2015:73-80.
[6]常曉鵬,周雪燕.問題驅(qū)動(dòng)模式在VB循環(huán)結(jié)構(gòu)教學(xué)中的應(yīng)用研究[J].河南教育學(xué)院學(xué)報(bào)(自然科學(xué)版), 2014,23(3):69-71.
Exploration and Practice of the Teaching Modes for C# Programming
HUANG Yan, ZHENG Qian
(College of Software, Zhengzhou University of Light Industry, Zhengzhou 450002, China)
The course “C# program design” involves a wide range of complex concepts, rules and flexible methods. A task-focused teaching method which combines various teaching modes is proposed. The heuristic teaching mode is complied in new concepts and methods to make students form a stable and clear image, the comparative teaching mode is complied in similarity or dissimilarity concepts to distinguish their characteristics and rules, the task driven progressive teaching mode is complied in coherent knowledge to make students gradually master the specific methods of solving problems. Practice has proved that this teaching method not only stimulates students’ curiosity and interest in learning, but also is conducive to the cultivation of students’ creative thinking ability and practical spirit.
C#; task driven; teaching method; heuristic teaching; progressive teaching
2016-03-22
鄭州市科技攻關(guān)計(jì)劃項(xiàng)目(20130725);鄭州輕工業(yè)學(xué)院博士基金項(xiàng)目(2013BSJJ050)
黃艷(1976—),女,河南信陽人,鄭州輕工業(yè)學(xué)院軟件學(xué)院副教授,主要研究方向:程序設(shè)計(jì)課程教學(xué).
10.3969/j.issn.1007-0834.2016.03.018
G642.0;TP312
A
1007-0834(2016)03-0065-04
河南教育學(xué)院學(xué)報(bào)(自然科學(xué)版)2016年3期