張永梅++馬禮++孫晶++何麗
摘要:如何提高學生的程序設(shè)計與實踐能力以及系統(tǒng)分析開發(fā)應(yīng)用能力,滿足社會對計算機專業(yè)學生的需求是高校需要重點解決的一個問題。該文通過改革《C程序設(shè)計》教學,培養(yǎng)學生利用C語言編寫各種應(yīng)用程序的能力,在《數(shù)據(jù)結(jié)構(gòu)》、《算法設(shè)計與分析》、《編譯原理》等專業(yè)課教學中,重視培養(yǎng)學生的算法設(shè)計與分析能力,加強關(guān)鍵環(huán)節(jié)程序設(shè)計能力、實踐與創(chuàng)新能力的培養(yǎng),完善各類項目、競賽、實驗實踐教學,培養(yǎng)大學生的實踐與創(chuàng)新能力,將理論與實踐緊密結(jié)合,有效提升了學生的編程能力,以及分析和解決實際問題的能力。
關(guān)鍵詞:程序設(shè)計能力;算法設(shè)計能力;軟件工程師;實驗實踐教學;因材施教
中圖分類號:G642.0 文獻標識碼:A 文章編號:1009-3044(2016)01-0178-03
Exploration of Training Students' Programming, Practice and Innovation Ability
ZHANG Yong-mei, MA Li, SUN Jing, HE Li
(School of Computer Science, North China University of Technology, Beijing 100144, China)
Abstract:How to improve the students' programming, practical ability,and the ability of the system analysis and development to meet the social demand for computer science students is one of the key problems to solve. Reform the teaching of "C Programming", train students to develop a variety of applications using C language, pay attention to students' algorithm design and analysis ability in the professional courses such as "Data Structure", "Design and Analysis of Algorithm" and "Compiler Principle", strengthen the key session programming, practice and innovation ability,improve various projects, competitions, experimental and practical teaching,promote the students' practice and innovation ability. The measures closely combine theory and practice,effectively promote the ability of programming, analysis and solution practical problems.
Key words:programming ability; algorithm design ability; software engineers; experimental and practice teaching; teach students in accordance with their aptitude
1 引言
從十三五規(guī)劃來看,未來五年哪些職業(yè)最有“錢途”?《中共中央關(guān)于制定國民經(jīng)濟和社會發(fā)展第十三個五年規(guī)劃的建議》明確指出,未來五年,軟件工程師愈發(fā)“走俏”。一直以來,學生的程序設(shè)計能力、實踐與創(chuàng)新能力是評判一個學生是否是一名合格的計算機專業(yè)學生的重要指標。
2 存在的主要問題
專家預言,未來10年中國的IT界每年需要100萬人,其中計算機類人才需求超過40萬人,這是一個保守的說法。最近幾年來,有不少企事業(yè)單位反映計算機類畢業(yè)生實際應(yīng)用知識、動手能力與應(yīng)用能力不夠、程序設(shè)計開發(fā)經(jīng)驗嚴重不足,尤其是程序設(shè)計能力、算法設(shè)計與分析能力無法達到用人單位的要求。這不僅對學生就業(yè)是一個嚴重的考驗,更阻礙了其進一步發(fā)展與提升。
造成以上情況的主要原因如下:一是學生在學完與程序設(shè)計、算法有關(guān)的課程后,對于這些知識僅僅只是停留在了解的基礎(chǔ)上,并未達到理解、融會貫通的境界,更沒有利用這些知識解決實際遇到的問題。二是教師在講解程序設(shè)計、算法設(shè)計與分析的相關(guān)知識時,并沒有將理論與實際有機結(jié)合。三是在實際教學過程中并未對學生進行真正的軟件項目開發(fā)訓練。雖然目前各本科院校的程序設(shè)計類課程都有課程設(shè)計這一環(huán)節(jié),但是大多數(shù)都是止于形式,并未予以真實的軟件項目支撐,因而收效甚微。四是對第一門程序設(shè)計課程的教學不夠重視。盡管計算機類專業(yè)所開設(shè)的課程中很多都含有與編程相關(guān)的內(nèi)容,但作為入門級的程序設(shè)計語言課程,其重要性不亞于任何一門專業(yè)課。由于當前對第一門程序設(shè)計語言課程重視程度不夠和教學時數(shù)不足,導致了相當一部分學生在學完第一門程序設(shè)計課程后,仍然無法獨立完成一個簡單的程序開發(fā)。一個計算機專業(yè)大學生出來找工作,連一個程序都寫不好,可以說我們的高等教育出了很大的問題,編程能力是計算機類專業(yè)學生最基本的能力。
為適應(yīng)十三五規(guī)劃對計算機專業(yè)學生的新要求,我們應(yīng)該改革《C程序設(shè)計》教學,培養(yǎng)學生利用C語言編寫各種應(yīng)用程序的能力,在《數(shù)據(jù)結(jié)構(gòu)》、《算法設(shè)計與分析》、《編譯原理》等專業(yè)課教學中,重視培養(yǎng)學生的算法設(shè)計與分析能力,加強關(guān)鍵環(huán)節(jié)程序設(shè)計能力、實踐與創(chuàng)新能力的培養(yǎng),完善各類項目、競賽、實驗實踐教學,培養(yǎng)大學生的實踐與創(chuàng)新能力。提高學生的綜合素質(zhì),提高人才培養(yǎng)質(zhì)量,努力培養(yǎng)服務(wù)國家和首都社會與經(jīng)濟發(fā)展的社會主義優(yōu)秀人才。
3 培養(yǎng)學生程序設(shè)計能力、實踐與創(chuàng)新能力的具體措施
教育教學工作應(yīng)該以學生為主體,同時充分發(fā)揮教師的引領(lǐng)、指導作用,二者有機結(jié)合,相互配合,這樣才能充分調(diào)動學生的學習積極性和主動性,從而達到最佳的教學效果。因此本文以“學生為主體,教師為主導”這一思想為指導,建立一套具有我校特色的教學模式,以及培養(yǎng)學生程序設(shè)計能力、實踐與創(chuàng)新能力的關(guān)鍵環(huán)節(jié)實踐教學體系,有效提升學生分析和解決實際問題的能力。
3.1改革《C程序設(shè)計》課程的教學方法,培養(yǎng)學生的程序設(shè)計能力
《C程序設(shè)計》是我校計算機專業(yè)的第一門程序設(shè)計課程,為保證課堂質(zhì)量,改變以前大班授課方式,采用小班上課;在教師安排上,充分考慮教師的教學經(jīng)驗、工作責任感,以及實際項目的開發(fā)經(jīng)歷;改革《C程序設(shè)計》課程的教學方法,將教學內(nèi)容分解為必須掌握的內(nèi)容和提高內(nèi)容,采用小班上機實驗,按照學生的不同層次,給出不同的實驗內(nèi)容,對于層次高的學生,給學生另外布置一些趣味程序設(shè)計題目、競賽題目,以及目前計算機一些前沿問題;該課程的考核成績由期末機考成績和平時成績兩部分組成,各占50%。在平時成績中,階段考試占30%,提交實驗程序占45%,實驗報告占5%,作業(yè)成績占15%,考勤占5%,進一步完善考試環(huán)境和考試方法,加強學生編程上機的能力訓練。
3.2在專業(yè)課教學中,重視培養(yǎng)學生的算法設(shè)計與分析能力
采用不同的編程語言實現(xiàn)同樣一個問題,效率是完全不一樣的。對算法的研究被公認為是計算機科學的基石。在專業(yè)課教學中,如《數(shù)據(jù)結(jié)構(gòu)》、《算法設(shè)計與分析》、《操作系統(tǒng)》、《編譯原理》等專業(yè)課教學中,使學生掌握算法設(shè)計的常用方法,以便能夠運用這些方法獨立地設(shè)計解決計算機應(yīng)用中的實際問題的有效算法,并能夠利用已有算法解決實際問題。此外還要使學生學會分析算法,估計算法的時空復雜性,從而對算法進行評價,評定算法優(yōu)劣的標準要看它的時間復雜性、空間復雜性和人工復雜性,其中時間復雜性最為重要,通常是用時間復雜性來衡量某個算法的“好”或“壞”。
3.3 加強關(guān)鍵環(huán)節(jié)程序設(shè)計能力、實踐與創(chuàng)新能力的培養(yǎng)
許多課程都有上機編程實驗內(nèi)容,如《C程序設(shè)計》、《面向?qū)ο蟪绦蛟O(shè)計》、《數(shù)據(jù)結(jié)構(gòu)》、《算法設(shè)計與分析》、《Java程序設(shè)計》、《操作系統(tǒng)》、《匯編語言程序設(shè)計》、《數(shù)據(jù)庫原理》、《編譯原理》、《軟件工程》、《計算機網(wǎng)絡(luò)》、《軟件測試技術(shù)》等課程,都要求學生完成一定數(shù)量的設(shè)計性、驗證性實驗。還設(shè)立了工程與學術(shù)實踐、計算機硬件課程設(shè)計、軟件課程設(shè)計、獨立實驗課程以及畢業(yè)設(shè)計等實訓科目,堅持編程實踐四年不間斷。培養(yǎng)方案中提供了軟件工程、計算機網(wǎng)絡(luò)、嵌入式技術(shù)三個方向的選修課程模塊,學生可根據(jù)自己的興趣和學習情況有目標地選擇學習,達到了因材施教的目的。
例如軟件課程設(shè)計“實驗室設(shè)備管理系統(tǒng)”首先要求學生進行基本的分析,例如:這個系統(tǒng)要具有什么功能、可以抽象為哪幾類對象、要應(yīng)用哪些算法、采用哪種數(shù)據(jù)結(jié)構(gòu)等。之后,學生根據(jù)分析好的內(nèi)容進行編程,編程中要考慮到諸如:代碼邏輯、異常處理、可擴展性等問題。完成一定代碼后要進行單元測試,通過單元測試后,要對整個軟件進行測試,例如,功能測試、回歸測試等,保證軟件的正確運行。最后,教師進行軟件驗收,驗收達標后要完成相應(yīng)的課程設(shè)計實驗報告等。這一系列的開發(fā)流程使學生掌握了一個軟件的真正開發(fā)過程,提高了學生的綜合編程能力,如:需求分析能力、算法設(shè)計與分析能力、數(shù)據(jù)抽象能力、編程實現(xiàn)能力、軟件測試能力,有效提高了學生的程序設(shè)計能力,以及實踐與創(chuàng)新能力。一些學生在畢業(yè)設(shè)計中利用沒有學過的計算機語言和開發(fā)工具進行軟件開發(fā),充分體現(xiàn)了學生具備了自主學習其他語言和開發(fā)工具的能力。
3.4完善各類項目、競賽、實驗實踐教學,培養(yǎng)大學生的實踐與創(chuàng)新能力
鼓勵高年級學生參與由教師指導的ACM國際大學生程序設(shè)計大賽的華北地區(qū)選拔賽、北京市大學生科學研究與創(chuàng)業(yè)行動計劃、北方工業(yè)大學“科園杯”大學生科技活動項目或教師負責的國家基金、科技支撐計劃、橫向科研等課題,在教師的指導下完成需求分析、算法設(shè)計、算法分析、實驗結(jié)果及分析等環(huán)節(jié),最后提交打印版書面報告或論文,提高大學生的動手能力、解決實際問題的能力。積極組織學生參加“挑戰(zhàn)杯”全國大學生課外科技活動、“全國大學生電子設(shè)計競賽”等各類競賽,鍛煉學生團隊協(xié)作能力、實踐與創(chuàng)新能力。將專利、論文、科技競賽活動等以學分納入考核,對取得突出成績或有特殊成就的學生,在推免研究生、獎學金評定等方面予以優(yōu)先考慮,激發(fā)創(chuàng)新動機,提升創(chuàng)新意識和創(chuàng)新能力。完善實驗實踐教學,實驗人員做好實驗課程輔導,穩(wěn)定豐富課內(nèi)實驗環(huán)節(jié)。積極拓展有工程背景的企業(yè)導師參與實踐環(huán)節(jié),與Oracle、文思海輝等知名企業(yè)建立校企合作關(guān)系,試點推出校企合作實踐環(huán)節(jié)課程,如與Oracle合作《項目管理實踐》課程,與文思海輝合作《企業(yè)實訓》課程。
4 結(jié)論
在“十三五”規(guī)劃課題研究中,“信息經(jīng)濟”首次被列入,這也意味著信息產(chǎn)業(yè)有望成為“十三五”規(guī)劃中的新增亮點。本文分析了高等學校培養(yǎng)計算機專業(yè)人才程序設(shè)計能力、實踐與創(chuàng)新能力存在的主要問題,給出了改革和建設(shè)措施,有助于提高學生的編程能力、實踐能力和創(chuàng)新能力,有利于培養(yǎng)經(jīng)濟社會發(fā)展急需的信息產(chǎn)業(yè)人才。
參考文獻:
[1] 葛亮,朱慶生,王茜. 計算機程序設(shè)計課程自動化教學評價平臺研究[J]. 計算機教育,2013,18:91-94.
[2] 唐志軍,吳笑峰,席在芳. 面向?qū)嵺`創(chuàng)新能力的工科研究生培養(yǎng)模式探討[J].山西科技,2015,30(5):91-93.
[3] 馬丹,喬興,姜明明.大學生綜合素質(zhì)的評價方法與應(yīng)用[J]. 數(shù)學的實踐與認識, 2014,44(9):295-300.
[4] 田立勇,于寧,張?zhí)m芬. 大學生科技創(chuàng)新實踐能力綜合評價[J]. 遼寧工程技術(shù)大學學報(社會科學版),2010,12(6):650-652.
[5] 馬禮,張永梅,宋麗華. 培養(yǎng)計算機類專業(yè)學生硬件方向創(chuàng)新能力的研究與實踐[J]. 計算機教育,2010(2):1-4.
[6]王銳. 改革計算機實驗課,提高計算機教學水平[J].科技與教育,2008(5):197-198.
[7]曹曉蘭,彭佳紅,彭劍. 計算機本科生編程能力與軟件能力的培養(yǎng)研究[J]. 計算機教育,2014(4):72-75.
[8] 耿國華. 程序設(shè)計能力培養(yǎng)模式的探索與實踐[J].中國大學,2009(3):30-32.