999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

培養(yǎng)學生程序設(shè)計、算法設(shè)計與分析能力的研究與探索

2016-03-21 13:03:10張永梅馬禮孫海燕付昊天周奇
計算機時代 2016年3期

張永梅 馬禮 孫海燕 付昊天 周奇

摘 要: 針對計算機專業(yè)學生在編程和算法設(shè)計與分析中存在的問題,在課程設(shè)置與教學目標、實驗性課程教學、多模態(tài)教學,和學習態(tài)度的指引等方面,給出了具體的改革措施,有效提升了學生的編程能力、算法設(shè)計與分析能力,以及分析和解決實際問題的能力。

關(guān)鍵詞: 編程能力; 算法設(shè)計; 計算機專業(yè); 改革措施

中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2016)03-60-04

Research and exploration of cultivating students' ability of programming,

algorithm design and analysis

Zhang Yongmei, Ma Li, Sun Haiyan, Fu Haotian, Zhou Qi

(School of Computer Science, North China University of Technology, Beijing 100144, China)

Abstract: Aiming at the problems existing in programming and algorithm design and analysis of computer specialty students, the concrete reform measures are given on the aspects of the curriculum and teaching objectives, experimental course teaching, multi-mode teaching and the guiding of learning attitude, which effectively improve students' ability of programming and algorithm design and analysis, as well as the ability to analyze and solve practical problems.

Key words: programming ability; algorithm design; computer specialty; reform measures

0 引言

計算機科學與技術(shù)本科生的基本學科能力可以歸納為計算思維能力、算法設(shè)計與分析能力、程序設(shè)計與實現(xiàn)能力、系統(tǒng)能力[1]。其中計算思維能力是指模型化、抽象思維能力、邏輯思維能力。系統(tǒng)能力是指計算機系統(tǒng)的認知、分析、開發(fā)與應(yīng)用能力,也就是要站在系統(tǒng)的觀點上去分析和解決問題,追求問題的系統(tǒng)求解,而不是被局部的實現(xiàn)所困擾。算法設(shè)計與分析能力、程序設(shè)計能力是計算機類專業(yè)學生應(yīng)該具備的基本能力之一,是從抽象思維到具體應(yīng)用方法的轉(zhuǎn)換,涉及到閱讀判斷、思考分析、抽象綜合、表達創(chuàng)造等多項能力,對計算機專業(yè)高素質(zhì)人才的培養(yǎng)不可或缺。

從目前社會對計算機專業(yè)人才的需求來看,高校在培養(yǎng)學生的程序設(shè)計、算法設(shè)計與分析能力上所作出的努力還遠遠不夠。本文探討了計算機專業(yè)學生在程序設(shè)計、算法設(shè)計與分析方面存在的主要問題,給出了在課程與實踐中提高學生的程序設(shè)計、算法設(shè)計與分析能力的具體措施。

1 現(xiàn)狀與問題分析

近年來,企事業(yè)用人單位較普遍的反映是計算機類畢業(yè)生的實際應(yīng)用知識、動手能力和程序設(shè)計開發(fā)經(jīng)驗嚴重不足,尤其是程序設(shè)計能力、算法設(shè)計與分析能力無法達到用人單位的要求。這不僅影響學生就業(yè),更阻礙了其進一步發(fā)展與自我提升。

我們歸納了問題的主要原因。一是學生對于有關(guān)程序設(shè)計及算法的知識僅僅停留在了解的程度上,未能融匯貫通,進而應(yīng)用這些知識解決實際問題。二是教師在講解程序設(shè)計、算法設(shè)計與分析的相關(guān)知識時,并沒有將理論與實際有機的結(jié)合。三是實際教學過程中并未對學生進行真正的軟件項目開發(fā)訓練。四是對第一門程序設(shè)計課程的教學不夠重視。五是學生的數(shù)學基礎(chǔ)差、邏輯思維能力弱,阻礙了學生進一步設(shè)計算法和分析算法。

2 程序設(shè)計、算法設(shè)計與分析能力培養(yǎng)的具體措施

教育教學工作應(yīng)該以學生為主體,同時充分發(fā)揮教師的引領(lǐng)、指導作用,二者有機結(jié)合,才能充分調(diào)動學生的學習積極性和主動性,從而達到最佳的教學效果。因此本文以“學生為主體,教師為主導”這一思想為指導,結(jié)合本校的實際情況,以及教師在教育教學工作過程中遇到的問題和廣大學生的反饋,從以下四個方面探討教育教學改革的措施。

2.1 調(diào)整課程設(shè)置和教學目標

用計算機求解一個實際問題,首先要從這個實際問題中抽象出一個數(shù)學模型,然后設(shè)計一個解此數(shù)學模型的算法,最后根據(jù)算法編寫程序,以便調(diào)試、編譯、連接和運行,從而形成該問題的解。從實際問題中抽象出一個數(shù)學模型的實質(zhì),其實就是要用數(shù)學方法抽取其主要的、本質(zhì)的內(nèi)容,最終實現(xiàn)對該問題的正確認識。設(shè)計出解決問題的算法后,要清楚地知道算法的優(yōu)劣處,如果是好的算法則不必對其懷疑而再浪費時間進行研究;如果不是好算法則應(yīng)再進行改進。而如何知道算法的優(yōu)劣,則需要學會分析算法。算法分析是對一個算法需要多少計算時間和存儲空間作定量的分析。編程就是設(shè)計程序,用計算機來解決問題。

與數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計相關(guān)的課程較多,其中三分之二以上的專業(yè)課都需要學習編程,主要是提高學生編程能力和算法分析能力。對于本科生來說,這些課程的重要性是不言而喻的。如果掌握不好則會阻礙他們對編程能力乃至對計算機系統(tǒng)的認識和理解。因此,應(yīng)該從課程的意義出發(fā),以提高學生的編程能力和算法設(shè)計與分析能力為目標,結(jié)合計算機專業(yè)的特點與教學實際情況,將“C語言程序設(shè)計”、“面向?qū)ο蟪绦蛟O(shè)計”、“離散數(shù)學”、“數(shù)據(jù)結(jié)構(gòu)”、“算法設(shè)計與分析”、“網(wǎng)絡(luò)編程”、“Windows編程技術(shù)”、“操作系統(tǒng)”、“計算機網(wǎng)絡(luò)”、“編譯原理”和“數(shù)據(jù)庫技術(shù)”等幾門課程有機地結(jié)合起來,并充分利用它們內(nèi)在的聯(lián)系優(yōu)化授課的順序與內(nèi)容,為學生提供一套以編程能力和算法設(shè)計與分析能力為中心的教學體系,為學好相應(yīng)的課程打下堅實基礎(chǔ)[2]。

“C語言程序設(shè)計”和“離散數(shù)學”作為計算機專業(yè)學生較早接觸的兩門課程,應(yīng)該為后續(xù)專業(yè)課的學習打好基礎(chǔ)。C語言是學生在大學接觸的第一門編程語言,教學中應(yīng)該重點介紹程序設(shè)計思想,并培養(yǎng)學生的邏輯思維能力、抽象能力、編程習慣,而不是一味地強調(diào)C語言的語法特性。同時,“C語言程序設(shè)計”這門課也為后續(xù)的數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析課程做好實踐上的鋪墊?!半x散數(shù)學”的概念、理論及方法應(yīng)用于計算機科學與技術(shù)的諸多領(lǐng)域,并大量出現(xiàn)在“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)庫系統(tǒng)”、“編譯原理”、“算法設(shè)計與分析”、“計算機網(wǎng)絡(luò)”等專業(yè)課程中。此外,離散數(shù)學所提供的訓練十分有益于學生的邏輯推理、抽象概括及歸納構(gòu)造能力的提高,十分有益于培養(yǎng)學生嚴謹、完善、規(guī)范的科學態(tài)度。

通過“數(shù)據(jù)結(jié)構(gòu)”課程,使學生了解數(shù)據(jù)對象的特性,學會數(shù)據(jù)組織的方法,以及各種類型數(shù)據(jù)的處理方法,同時培養(yǎng)學生良好的程序設(shè)計技能?!八惴ㄔO(shè)計與分析”課程重點講授分治法、貪心法、動態(tài)規(guī)劃、回溯法、分支限界法,培養(yǎng)學生分析問題和解決問題的能力,使學生掌握算法設(shè)計的基本方法,熟悉算法分析的基本技術(shù),并能熟練運用一些常用算法?!安僮飨到y(tǒng)”、“計算機網(wǎng)絡(luò)”、“編譯原理”和“數(shù)據(jù)庫技術(shù)”都是對前面學習到的一些基本的數(shù)據(jù)結(jié)構(gòu)和算法的具體應(yīng)用,再加上一些相關(guān)領(lǐng)域的專業(yè)知識。

在“操作系統(tǒng)”教學中,讓學生了解操作系統(tǒng)的一些基本概念,如:進程和線程、虛擬內(nèi)存、死鎖等,并按操作系統(tǒng)的五大功能分模塊進行介紹。通過相應(yīng)實驗幫助學生理解重要概念,如通過實現(xiàn)“銀行家算法”讓學生明白進程間的通信過程、模擬LRU算法了解頁面如何置換,通過實驗使學生更加深刻地理解有關(guān)概念[3]。對于“編譯原理”這門課,由于其理論性較強,在教學過程中應(yīng)該盡量多與實驗相結(jié)合,在課堂上比較難理解的內(nèi)容,例如詞法分析中的有限自動機內(nèi)容或語法分析中LL(1)文法的理解等等,都可以通過與實驗結(jié)合來促進對課堂內(nèi)容的理解,可通過完成詞法分析器的實驗了解編譯器如何把輸入的源程序轉(zhuǎn)化為單詞符號串。

2.2 加強實驗性課程教學

計算機專業(yè)相關(guān)的課程總體來說理論性比較強[4-5],開設(shè)實驗性課程有利于學生通過自己的實際操作加深對課堂知識的理解,同時強化編程能力、算法設(shè)計能力和創(chuàng)新能力。許多課程都有上機編程實驗內(nèi)容,如“C語言程序設(shè)計”、“面向?qū)ο蟪绦蛟O(shè)計”、“數(shù)據(jù)結(jié)構(gòu)”、“算法設(shè)計與分析”、“Java程序設(shè)計”、“操作系統(tǒng)”等課程,都要求學生完成一定數(shù)量的設(shè)計性,完成驗證性實驗。我們設(shè)立了工程與學術(shù)實踐、計算機軟件課程設(shè)計、獨立實驗課程以及畢業(yè)設(shè)計等實訓科目,堅持編程實踐四年不間斷。

實驗貫穿于理論、抽象和設(shè)計過程;實驗對軟件的設(shè)計和實現(xiàn)、測試原理和方法起示范作用;實驗不僅是對理論的驗證,也是技術(shù)訓練和能力培養(yǎng),包括動手能力、分析問題解決問題能力、表達能力、寫作能力等。教學活動是教師和學生不斷交流的過程,實驗是實現(xiàn)這個過程的橋梁,可以彌補課堂教學的不足,加深對理論過程的理解,啟發(fā)學生深入思考,敢于創(chuàng)新,理論聯(lián)系實際。

例如“編譯原理”課程是計算機類專業(yè)的一門重要專業(yè)課。設(shè)置該課程是讓學生學習編譯系統(tǒng)的結(jié)構(gòu)、工作流程及編譯程序各組成部分的設(shè)計原理和實現(xiàn)技術(shù),使學生通過學習既掌握編譯理論和方法基本知識,也具有設(shè)計、實現(xiàn)、分析和維護編譯程序等方面的初步能力。編譯原理是一門理論性和實踐性都比較強的課程。實驗的目的是加深學生對課堂知識的理解,掌握幾個主要編譯階段的處理方法,增強實踐能力,能完成初步設(shè)計、編制和調(diào)試編譯系統(tǒng)。

實驗一詞法分析器構(gòu)造,通過對給定源語言詞法分析程序的設(shè)計,加深對詞法分析原理的理解,掌握源語言的接受、存貯、預處理和掃描分析,生成正確的單詞符號串二元式序列。實驗二語法分析器構(gòu)造,借助于詞法分析程序提供的分析結(jié)果,編寫一個算符優(yōu)先語法分析程序,程序能進行語法結(jié)構(gòu)分析和錯誤檢查并產(chǎn)生相應(yīng)的歸約信息。同時給出出錯信息和錯誤類型,從而加深對語法分析的理解。進一步設(shè)計實現(xiàn)球類描述語言詞法分析、語法分析實驗(擴展實驗),根據(jù)球類比賽技戰(zhàn)術(shù)分析的需求,設(shè)計的解釋器由詞法器、語法器和語義分析模塊三部分組成,詞法分析器負責詞法分析的預處理和輸入單詞的解釋;語法分析負責輸入碼的語法結(jié)構(gòu)檢查和解釋;在詞法和語法分析器基礎(chǔ)上,語義分析模塊負責比賽技戰(zhàn)術(shù)的分類與統(tǒng)計工作。

本校開設(shè)了“程序設(shè)計專題訓練”、“計算機網(wǎng)絡(luò)專題訓練”、“操作系統(tǒng)專題訓練”、“數(shù)據(jù)庫專題訓練”、“軟件測試技術(shù)”、“嵌入式技術(shù)”等實踐課程。如“程序設(shè)計專題訓練”課程是C程序設(shè)計課程后續(xù)的訓練課程,針對程序設(shè)計中常見問題,以專題形式進行訓練。通過該課程的學習,使學生能深入理解C語言特性,掌握基本程序設(shè)計方法,學會常見問題的處理技巧,提高程序設(shè)計能力,為后續(xù)專業(yè)課程的學習打下良好基礎(chǔ)。又如“操作系統(tǒng)專題訓練”課程重點提高學生對操作系統(tǒng)的實際操作能力,使學生了解和掌握在Windows、Linux操作系統(tǒng)上運行的應(yīng)用服務(wù),對操作系統(tǒng)與外部接口(shell)有更深入的了解和認識。

為了能切實提高學生的編程水平和算法設(shè)計與分析能力,我們開設(shè)了“項目管理實踐”、“軟件課程設(shè)計”、“企業(yè)實訓”、“學術(shù)與工程實踐”等實踐課程,如“項目管理實踐”課程培養(yǎng)學生參與大型軟件項目開發(fā)的基本能力,使學生能夠熟練掌握軟件開發(fā)環(huán)境使用和軟件開發(fā)的基本方法,為畢業(yè)設(shè)計和就業(yè)提供了必要的技能訓練。按照5-8人的規(guī)模成立軟件開發(fā)項目組,以開發(fā)一個軟件項目作為實訓的主線;項目經(jīng)理由學生擔任,項目成員的角色由項目經(jīng)理根據(jù)各成員的技能來確定;由實訓方提供項目的用戶需求,并且確定要開展的軟件工程活動和管理活動及項目里程碑;根據(jù)開展的軟件工程和管理活動,提取出一些關(guān)鍵知識點,以案例的方式進行項目培訓,并將其用于項目開發(fā)的實踐中,其中案例來自實際開發(fā)的軟件和系統(tǒng)集成項目。

2.3 緊跟時代變化,實現(xiàn)多模態(tài)教學

首先重視教學內(nèi)容的時效性,教師在教學過程中,不僅僅著眼于所選用的教材,還應(yīng)融入前沿思想、技術(shù)和一些交叉學科的內(nèi)容。例如在“編譯原理”課程的教學中,不局限于一種語言,而應(yīng)該選擇多種不同體系結(jié)構(gòu)的編程語言進行介紹;又例如可以選擇C語言、Ruby、Python,甚至是蘋果最新推出的Swift語言,通過比較這些語言的不同特征,給出其在編譯過程中的各自特點,從而使學生對編譯程序所做的工作有更加清晰透徹的了解。在“數(shù)據(jù)結(jié)構(gòu)”、“面向?qū)ο蟪绦蛟O(shè)計”這類課程的教學中,可以多介紹一些國內(nèi)外的文獻、最新應(yīng)用等,從多種不同角度引導學生程序閱讀及編程的興趣。這就要求教師關(guān)注計算機及電子信息產(chǎn)業(yè)發(fā)展研究的最新內(nèi)容,并及時將這些新內(nèi)容融入到教學工作中。

其次,重視教學方式的時效性,培養(yǎng)學生程序閱讀能力、編程能力,其手段要緊跟時代步伐。充分利用互聯(lián)網(wǎng)時代的MOOC,如北京大學的MOOC、浙江大學的MOOC、本校的MOOC等,將原先只能在電腦上或書本中的程序放在手機上,使學生可以隨時隨地從手機端進行學習。學生課外可以利用北京航空航天大學實驗類MOOC的計算機網(wǎng)絡(luò)實驗課程、移動計算兩門課程,通過計算機網(wǎng)絡(luò)實驗課程,了解網(wǎng)絡(luò)基本原理,遠程配路由器、交換機,組一個小的網(wǎng)絡(luò),掌握基本的網(wǎng)絡(luò)故障排查方法。通過移動計算即Android編程,MOOC已經(jīng)搭好大的框架,教學生編寫小的app程序,并將編寫好的代碼嵌入到框架中。

通過促進在計算機系本科教學工作中多模態(tài)教學模式的實現(xiàn),可以將原先計算機專業(yè)教學以課堂教學為主、課下上機實驗為輔,其余全靠學生自覺學習的格局,轉(zhuǎn)化為課堂教學為主導,智能端隨時學習為輔,課下上機實驗為監(jiān)督檢測的新格局。這樣的格局摒棄了過去教學只能在課堂進行的成見,給予學生更多的學習自由,可以有效提高學生的程序設(shè)計、算法設(shè)計與分析能力,同時節(jié)約課堂時間,教師在課堂中能夠有更多時間講解一些更加實用的難以從書本中直接獲得的知識。

2.4 注重對學生學習態(tài)度的引導

在對計算機系學生的調(diào)查中發(fā)現(xiàn),后進生大多有“畏難”情緒。他們往往還未開始編程,就對自己的能力進行主觀否定,這種特征在調(diào)劑生身上表現(xiàn)得較為突出。對于這種情況,教師在課堂上如果只單方面強調(diào)知識的重要性,甚至直接點出考試及格的重要性并不會對這類學生思維模式的轉(zhuǎn)變有好處。教師在教學過程中,常常會不自覺地將自己體驗過的應(yīng)試競爭態(tài)度帶入教學工作中,具體表現(xiàn)為:過于強調(diào)考試分數(shù),為了提起學生的聽課興趣甚至以考試題型作為誘餌,經(jīng)常強調(diào)獎學金和保研問題,整個教學工作圍繞著考試等。這其實都是不正當?shù)母偁幹敢绞剑粫鰪妼W生的厭學心理。

因此,計算機專業(yè)講師在教學過程中,應(yīng)格外注重對學生學習態(tài)度的指引,特別是在代碼類課程的教學過程中,教師不應(yīng)根據(jù)自己多年的代碼編寫經(jīng)驗來對代碼進行講解,而是應(yīng)該想象自己是這種代碼的一名新學生,對這類代碼一無所知的情況下,可能會從哪里入手進行理解。與其說“這門課掛科了,你畢業(yè)就有危險”,不如說“學會寫代碼,你就可以自由駕馭整臺計算機”;與其說“這種數(shù)據(jù)類型期末考試一定會考”,不如說“你玩的泡泡龍中,屏幕上的泡泡就可以用這種數(shù)據(jù)類型來寫”。在教學中注重引導學生的學習興趣,激發(fā)學生的學習熱情和探索精神,真正做到以學生為本,從學生的角度理解教學,才能在教學工作中正確指引學生的學習態(tài)度,達到最佳教學效果。

3 總結(jié)

計算機科學是一門具有創(chuàng)造性意識活動的學科,計算機本質(zhì)上是一個程序的機器,只有那些真正懂得程序的人才能懂得計算機。因此程序設(shè)計能力、算法設(shè)計與分析能力是一名合格計算機類專業(yè)的畢業(yè)生必須具備的兩大基礎(chǔ)能力。本文給出的具體措施,有效提高了學生的編程能力、算法設(shè)計與分析能力,以及分析和解決實際問題的能力,有利于培養(yǎng)經(jīng)濟社會發(fā)展急需的信息產(chǎn)業(yè)人才。

參考文獻(References):

[1] 王銳.改革計算機實驗課,提高計算機教學水平[J].科技與教

育,2008.5:197-198

[2] 曹曉蘭,彭佳紅,彭劍.計算機本科生編程能力與軟件能力的

培養(yǎng)研究[J].計算機教育,2014.4:72-75

[3] 張曉孿,王西鋒.計算機專業(yè)大學生程序設(shè)計能力培養(yǎng)模式的

探索[J].信息技術(shù),2011.10(10):43-46

[4] 劉幸.教育改革背景下工科院校學生培養(yǎng)模式探析[J].考試

周刊,2015.56:144-145

[5] 耿國華.程序設(shè)計能力培養(yǎng)模式的探索與實踐[J].中國大學,

2009.3:30-32

主站蜘蛛池模板: 热这里只有精品国产热门精品| 欧美精品二区| 国产99在线观看| 久久6免费视频| 国产成人永久免费视频| 国产二级毛片| 亚洲av无码久久无遮挡| 日本三级欧美三级| 日韩 欧美 小说 综合网 另类| 激情五月婷婷综合网| 日韩黄色大片免费看| 国产精品嫩草影院视频| 9999在线视频| 真实国产精品vr专区| 久久五月视频| 999精品在线视频| 国产97视频在线| AV色爱天堂网| 久久久精品国产亚洲AV日韩| 国产成人精品男人的天堂下载| 免费看一级毛片波多结衣| 色婷婷丁香| 国产成人h在线观看网站站| 99视频全部免费| 精品夜恋影院亚洲欧洲| 激情午夜婷婷| 亚洲美女高潮久久久久久久| 国产午夜看片| 日韩欧美中文在线| 久久综合九色综合97婷婷| 中文精品久久久久国产网址| 中文字幕丝袜一区二区| 色婷婷亚洲综合五月| 国产精品毛片一区视频播| 国产91久久久久久| 三级国产在线观看| 国产无人区一区二区三区 | 91偷拍一区| 一级片免费网站| 精品国产香蕉在线播出| 91麻豆国产视频| 毛片免费在线| 欧美19综合中文字幕| 国产特级毛片aaaaaa| 国产在线视频欧美亚综合| 亚洲经典在线中文字幕| 91区国产福利在线观看午夜| 亚洲系列无码专区偷窥无码| 日本三级欧美三级| 成人伊人色一区二区三区| 国产精品免费福利久久播放 | 亚洲首页在线观看| 试看120秒男女啪啪免费| 国产青青操| 国产99欧美精品久久精品久久| 欧美精品成人| 欧美色综合网站| 久草国产在线观看| 最近最新中文字幕在线第一页| 啦啦啦网站在线观看a毛片| 欧美日本在线一区二区三区| 国产熟睡乱子伦视频网站| 精品视频一区在线观看| 韩日无码在线不卡| 漂亮人妻被中出中文字幕久久| 亚洲Av综合日韩精品久久久| 波多野结衣视频一区二区 | 亚洲天堂网2014| 嫩草在线视频| 精品一区二区无码av| AV在线天堂进入| 午夜视频免费一区二区在线看| 国产精品.com| 青青草国产精品久久久久| 亚洲侵犯无码网址在线观看| 欧美亚洲国产视频| 亚洲天堂日本| 日韩福利在线观看| 91精品国产一区| 无码一区18禁| 高清码无在线看| 91精品国产一区|