周樹森 鄒海林
摘 要 軟件開發(fā)類課程是實踐要求較高的課程,針對目前C#程序設計教學中存在的過于偏重理論、忽視學生的動手能力培養(yǎng)的問題,結(jié)合信息化條件下教學方法多樣化、學生獲取信息的途徑多樣化的現(xiàn)狀,基于應用型人才培養(yǎng)的社會需求,提出了C#程序設計課程“以培養(yǎng)學生的軟件開發(fā)能力為目標,以實用型軟件開發(fā)為驅(qū)動,讓學生在實際開發(fā)過程中學習軟件開發(fā)所需的各種知識”的觀點。
關鍵詞 計算機 程序設計 信息化 教學改革
中圖分類號:G424文獻標識碼:A ??DOI:10.16400/j.cnki.kjdks.2015.04.058
Reform of the Teaching Method on Software Development
Courses under Information Condition
ZHOU Shusen, ZOU Hailin
(School of Information and Electrical Engineering, Ludong University, Yantai, Shandong 264028)
Abstract Software development courses are high practical requirement. Now, there are two problems in C# program design teaching. One is focusing on theory analysis, the other is ignoring the training of students' practice ability. To solve these problems, based on the social requirement of application-oriented talents cultivation, we are bringing forward a viewpoint that aim at training the software development ability, driven by practical software development, let the students learn all the required knowledge about software development in the actual development process.
Key words computer; programming design; information; reform of the teaching method
中國高等教育改革確定:600多所地方本科院校將逐步轉(zhuǎn)型,進行現(xiàn)代職業(yè)教育,重點培養(yǎng)工程師、高級技工、高素質(zhì)勞動者等。針對社會對于應用型人才的巨大需求和高校培養(yǎng)的人才過于偏重理論之間的矛盾,國家已經(jīng)從政策層面開始引導高校轉(zhuǎn)型,培養(yǎng)高素質(zhì)應用型勞動者。在信息化條件下,借助多媒體設備,教師的教學方式多樣化;借助筆記本電腦、智能手機和互聯(lián)網(wǎng),學生獲取信息的途徑也多樣化。本文結(jié)合“C#程序設計”課程的教學實踐,探討如何調(diào)整教學方式,來適應信息化條件下學生的學習需求,適應社會對應用型人才培養(yǎng)的需求。
1 問題分析
程序設計課程包括三個重要的知識模塊:①一是語言知識,二是程序設計方法,三是算法。計算機語言處于程序設計的最底層,是掌握編程技術的關鍵;程序設計方法處于程序設計的中間層,是縮短軟件開發(fā)周期,開發(fā)出實用型軟件的關鍵;算法處于程序設計的頂層,是解決問題的規(guī)則。語言具有不穩(wěn)定和變化更新快的特征,現(xiàn)在有很多程序設計語言可供選擇。程序設計對于語言的變化而言相對穩(wěn)定。算法則比較穩(wěn)定,它與描述算法的語言無關。語言只要多使用,就能熟練掌握;程序設計方法只能在應用中領悟和熟悉;算法必須經(jīng)過嚴格的科學的訓練才能掌握。
在信息化條件下學生可以通過學習課本知識、從網(wǎng)上搜集相關教程、觀看網(wǎng)絡上的教學視頻等方式學習最基礎的語言知識。而傳統(tǒng)的程序設計課程教學,在很大程度上并沒有擺脫學科系統(tǒng)化課程的模式,過于偏重語言知識的講解,忽視了程序設計方法和算法設計的培養(yǎng)。這種教學方法導致大多數(shù)學生在學習過程中感覺自己所學的知識枯燥無味,沒有什么實際的用途,學習態(tài)度比較消極。另一方面,比較優(yōu)秀的學生感覺老師講的知識課本和網(wǎng)絡上都有,完全可以通過自學成才,沒有必要聽課。學生即使學習并掌握了基礎的知識,也并不具備工作所需的技能,即學得好但做得差,實際工作中靈活性和貫通性較差,沒有實際軟件開發(fā)的經(jīng)驗。很多學生眼高手低,程序聽起來清楚、看起來模糊、編起來糊涂。
針對教師的教學目標和社會對學生的實用技能要求之間的巨大差距,如何有效引導學生轉(zhuǎn)變學習方法,提升學生的軟件開發(fā)能力,是教師在教學過程中必須要解決的問題。本文提出了“以培養(yǎng)學生的軟件開發(fā)能力為目標,以實用型軟件開發(fā)為驅(qū)動,讓學生在實際開發(fā)過程中學習軟件開發(fā)所需的各種知識”的觀點,并將其應用到“C#程序設計”日常教學實踐中。
2 教學實踐
“C#程序設計”作為計算機科學與技術專業(yè)的實用型軟件開發(fā)課程,是學生未來走上工作崗位從事軟件開發(fā)相關工作的基石。但是,在教學過程中發(fā)現(xiàn),比較優(yōu)秀的學生認為,老師講基礎的編程語言知識沒有必要,自己看教材、上網(wǎng)看教學視頻也能學會。大多數(shù)同學認為,現(xiàn)在學的這些編程基礎知識沒有什么用,沒有認識到現(xiàn)在學的知識能用來做出什么實用的產(chǎn)品,從心態(tài)上不重視基礎語言知識的學習。結(jié)合信息化條件下教師講授知識和學生學習知識方式的多樣化,基于應用型人才培養(yǎng)的社會需求,在教學過程中,應該從四個方面進行教學實踐,激發(fā)學生的求知欲望、調(diào)整教師的教學內(nèi)容、增加教師的教學方式、在實踐中鍛煉學生的軟件開發(fā)綜合素質(zhì)。最后,還需要調(diào)整課程的考核方式,引導學生平時多鍛煉自己的軟件開發(fā)實戰(zhàn)能力。
2.1 激發(fā)學生的求知欲望
要激發(fā)學生的求知欲望,關鍵是要培養(yǎng)學生的學習興趣。興趣是學生的學習動力,也是教師引導學生的最佳方法。否則,學生上課消極怠工,教師教學沒有激情。
現(xiàn)在的大學生都比較務實,大多數(shù)學生只會對他們認為的有用的課程,投入精力去學習。要想激發(fā)學生的求知欲,必須做到以下幾點:(1)在開課的時候?qū)W生講明白這門課程有什么用,以后從事什么樣的工作能用得著。(2)在講授具體知識點的時候,不斷穿插描述每個知識點有什么實用價值,在學習掌握的過程中應該注意什么問題,應該如何去強化鞏固、靈活運用。(3)在講課的過程中,要想方設法創(chuàng)設好的環(huán)境氛圍,讓學生在輕松快樂的氛圍中學習,思維不受束縛,環(huán)境不受影響,可以經(jīng)常使用一些小插曲將學生的注意力拉回到課堂中。(4)經(jīng)常與學生交流溝通,知道學生的關注點是什么,重視學習興趣的激發(fā),提高教學效果。
興趣是學習動力的源泉,只有有了興趣,才能激發(fā)學生的求知欲望,讓學生把更多的課余時間投入到學習中。
2.2 調(diào)整教師的教學內(nèi)容
信息化條件下,各種視頻、文檔和教材等學習資源都比較容易獲取,對于比較基礎的語言知識部分,學生都能夠自學掌握。所以,“C#程序設計”教學的重點應該放在程序設計方法和算法層面。讓學生在實踐中鍛煉自己的編程能力,能夠認識到哪些知識模塊是自己欠缺的,做到有的放矢、自覺充電。
根據(jù)大多數(shù)學生數(shù)學基礎一般、形象思維強于邏輯思維的特點,應擺脫傳統(tǒng)的科學型人才培養(yǎng)模式的影響,將“C#程序設計”的理論教學從邏輯推導轉(zhuǎn)向?qū)嵗菔?,突出以教學主線來強化工程實踐能力的教學模式,推行案例化教學。通過具體工程項目開發(fā)過程的講解,可以激發(fā)學生的學習興趣,鍛煉學生實踐動手能力,達到比較好的學習效果。
基于項目驅(qū)動,實行項目開發(fā)需要什么知識就講什么內(nèi)容的理念,在“C#程序設計”的教學過程中,可以教學生開發(fā)基于.NET窗體程序和數(shù)據(jù)庫的管理系統(tǒng),具體教學內(nèi)容如下所示:(1)C#的初步知識;(2)NET基礎;(3)C#基礎;(4)程序調(diào)試;(5)數(shù)據(jù)庫訪問技術;(6)管理系統(tǒng)開發(fā)。
從以上的教學內(nèi)容可以看出,涉及到C#語言知識的只有兩章內(nèi)容。更多的授課時間被用來培訓學生的.NET開發(fā)知識、C#訪問數(shù)據(jù)庫和綜合管理系統(tǒng)開發(fā)實戰(zhàn)。這樣既鍛煉了學生的綜合系統(tǒng)開發(fā)能力,又能讓學生在實戰(zhàn)開發(fā)的過程中認識到自己有哪些基礎知識欠缺,能夠自覺地借助信息化條件下的各種互聯(lián)網(wǎng)上的資源進行充電,真正做到在學中做、在做中學。
2.3 增加教師的教學方式
信息化條件下的教學,多媒體和網(wǎng)絡技術在教學過程中發(fā)揮了巨大的作用。②多媒體和網(wǎng)絡所提供的刺激信息的多樣性也有利于知識的獲得和保持, 同時也為學生培養(yǎng)信息的獲取、分析和加工整合能力提供了機會。在新的多媒體和網(wǎng)絡條件下,我們的教學模式應當擺脫過去那種以教師為中心的灌輸式的教育,代之以學生為主體,教師為引導的方式。
在信息化條件下,“C#程序設計”課程中可以采用的教學方式包括:(1)引入MOOC翻轉(zhuǎn)課堂教學模式,教師把講課的內(nèi)容錄成視頻,上傳到視頻網(wǎng)站中。學生在上課之前提前觀看這些視頻,在上課時教師可以集中答疑或組織大家共同做練習。(2)教師整理國內(nèi)外著名大學相關課程MOOC翻轉(zhuǎn)課堂的教學視頻,每次指定學生在課下需要觀看學習的內(nèi)容。在上課時教師首先簡要介紹視頻中的重點、難點、要注意的問題,然后預留部分時間與學生進行交互答疑。(3)教師用錄屏軟件將軟件開發(fā)所需要的實踐操作細節(jié)錄制成視頻,在錄制過程中配以語言講解。將這些視頻讓學生在課下觀看,并在觀看的過程中跟隨視頻動手操作。在上課時教師集中幫助學生解決實踐操作中遇到的各種軟件操作問題、程序的編譯錯誤和邏輯運行錯誤等等。
通過以上三種方式相結(jié)合,可以讓學生以輕松自由的心態(tài)學習程序設計的基礎語言知識,及相關實踐開發(fā)操作。學生可以根據(jù)自己的理解和掌握情況用“暫停”、“重放”等按鍵自己掌控學習進度,可以讓不同層次的學生實現(xiàn)個性化學習。課后復習和練習也可以按難易程度選擇進行,以多媒體視頻方式展示學習內(nèi)容的最大好處是可以讓學生隨時反復觀看。
“課堂與在線混合式”的教學方式可以實現(xiàn)更加深度和個性化的學習,提高教與學的質(zhì)量和效率。通過多種教學方式的結(jié)合,可以激發(fā)學生的學習興趣,拓寬學生的知識面,讓學生更好地適應社會的需求。
2.4 在實踐中鍛煉學生的軟件開發(fā)綜合素質(zhì)
軟件開發(fā)類課程都配有上機課,鍛煉學生的上機實踐操作能力。傳統(tǒng)的上機課以驗證試驗為主,學生只要按照老師的要求敲上相關的代碼,運行一下,能得出相應的結(jié)果就可以了。但是,以這種模式培養(yǎng)出來的學生,不能靈活運用自己掌握的基礎知識實現(xiàn)各種功能,畢業(yè)后還是不會開發(fā)軟件,軟件公司還要進行一段時間的培訓才能上崗。為了解決社會對大量實用型軟件開發(fā)人才的需求,教師在設計上機課的題目時,應該盡量增加設計型實驗、避免驗證型實驗。讓學生在實驗過程中能夠自由發(fā)揮,靈活運用所學的知識。另一方面,還要把每次課所做的實驗串起來,組成一個實用的綜合系統(tǒng),讓學生在實驗過程中更有成就感。
以“C#程序設計”課程為例,上機課的題目可以進行如下設計:(1)學生信息管理系統(tǒng)登錄界面設計;(2)學生信息管理系統(tǒng)注冊界面設計;(3)學生成績排序;(4)簡易學生信息管理系統(tǒng);(5)使用類實現(xiàn)學生信息管理;(6)將學生信息存儲到數(shù)據(jù)庫;(7)學生信息管理系統(tǒng)綜合開發(fā)。
從以上題目可以看出,每次上機課做的內(nèi)容有很強的關聯(lián)性。學生從第一次上機課開始,已經(jīng)在動手開發(fā)一個綜合管理系統(tǒng)最基礎的界面。對于后面的每一次上機課,都是對前面開發(fā)的程序不斷完善的過程。到了最后一次上機課,已經(jīng)可以形成一個綜合的管理系統(tǒng),然后稍加整理優(yōu)化、打包發(fā)布,即是一個實用的軟件。
通過以上模式的培養(yǎng),學生對實驗操作更有興趣,更愿意在課余時間去完善系統(tǒng)。因為前面的功能實現(xiàn)不了,后面的實驗沒法進行,徹底避免了學生當一天和尚撞一天鐘的想法。另外,最后做出的軟件,可以在學生找工作的時候給招聘方演示,提高自己的錄用率。這就更加增強了學生(下轉(zhuǎn)第133頁)(上接第119頁)想把軟件做好、做完美的想法,讓學生動學習變主動學習,在實踐中鍛煉自己的軟件開發(fā)綜合素質(zhì)。
2.5 調(diào)整考核方式,引導學生提升軟件開發(fā)能力
考試是否能通過,是學生最關心的問題。傳統(tǒng)的考核方式,讓學生養(yǎng)成了考前突擊學習幾天,以卷面分考試及格為目標的學習習慣,不利于應用型人才的培養(yǎng)。
在實踐教學過程中,可以把最終期末考試的比重降低到50%。增加上機考試,比重為30%,從而有利于調(diào)動學生鍛煉自己動手能力的積極性。將課堂表現(xiàn)和平時作業(yè)成績的比重設為20%,從而讓學生重視平時每堂課的學習,不會只在期末考試之前臨時突擊學習。
另外,對于軟件開發(fā)類課程,可以將期末考試的卷面考試形式變?yōu)橄到y(tǒng)開發(fā)大作業(yè)。讓學生自由發(fā)揮,開發(fā)一個綜合管理系統(tǒng),提交系統(tǒng)開發(fā)報告,并且模擬畢業(yè)答辯的場景,進行現(xiàn)場答辯、軟件演示。通過考核方式向應用能力測試方向的轉(zhuǎn)變,可以讓學生在思想上重視自己平時動手能力的培養(yǎng),將教師的教學目標和學生的學習目標達成一致。另外,當考核結(jié)束后,學生可以真正掌握利用C#開發(fā)實用軟件的方法。從而可以縮小高校培養(yǎng)目標和社會需求之間的鴻溝,為公司培養(yǎng)合格的軟件開發(fā)類人才。
3 結(jié)語
“C#程序設計”教學應該以培養(yǎng)學生的應用能力為目標,提高學生學習這門課的興趣,幫助學生建立學好這門課的自信心,增強學生開發(fā)實用管理類軟件的能力,最終可以提高學生的綜合素質(zhì)。這種培養(yǎng)模式對于培養(yǎng)合格的計算機相關專業(yè)人才有重要意義。2012級計算機科學與技術專業(yè)的學生反饋顯示,在以培養(yǎng)學生的軟件開發(fā)能力為目標的“C#程序設計”教學模式下,大多數(shù)學生在自己積極向上的人生目標驅(qū)動下,提高了學習程序設計課程的興趣,積極利用課程中學習到的方法進行上機練習,開發(fā)實用類軟件,解決現(xiàn)實應用中的問題,提升自己的綜合素質(zhì)。
注釋
① 潘旭華.程序設計課程教學方法與手段改革探討.太原理工大學學報,2006(24).
② 易朝暉,李宏斌,李明霞.信息化條件下教學方法改革的思考.電腦知識與技術,2007(13).