周益民
(電子科技大學(xué),四川成都 611731)
信息科技發(fā)展突飛猛進,大學(xué)生畢業(yè)后不管是就業(yè)還是深造都離不開本科教育奠定的計算機專業(yè)基礎(chǔ)知識。因此,大學(xué)生的計算機通識教育具有高度實踐的需求屬性[1]。計算機基礎(chǔ)教育作為普適的素質(zhì)教育課程,實用性價值不斷得到彰顯,體現(xiàn)在每個當代大學(xué)生的學(xué)習、工作和生活中。
《數(shù)據(jù)結(jié)構(gòu)與算法》課程作為最重要的專業(yè)基礎(chǔ)課,是計算機學(xué)科一半以上的專業(yè)課程的直接或間接前驅(qū),其重要性不必贅述。國內(nèi)外高校的很多計算機專業(yè)教師對《數(shù)據(jù)結(jié)構(gòu)與算法》課程的講授都有其特有的方式方法。包括建設(shè)小班課程、研討課程、實驗課程等?,F(xiàn)如今,利用信息化工具打造線上精品課程教學(xué)也顯得尤為重要。
《數(shù)據(jù)結(jié)構(gòu)與算法》課程主體分為數(shù)據(jù)結(jié)構(gòu)和基本的算法設(shè)計與分析,課程內(nèi)容豐富、結(jié)構(gòu)抽象,初學(xué)者一般很難快速理解掌握并融會貫通。學(xué)生經(jīng)歷高考后,應(yīng)試教育的思維模式已經(jīng)根深蒂固。該文將根據(jù)《數(shù)據(jù)結(jié)構(gòu)與算法》 課程的教學(xué)需要和課程特點,緊跟創(chuàng)新創(chuàng)業(yè)和實踐工作的需求,提出區(qū)別于傳統(tǒng)實踐教學(xué)的教學(xué)內(nèi)容與工程實踐相結(jié)合的教學(xué)方法,與此同時,提出與之相對應(yīng)的課程設(shè)計方法。教師以學(xué)生創(chuàng)新能力培養(yǎng)和實踐能力培養(yǎng)為教學(xué)活動契合點,改善《數(shù)據(jù)結(jié)構(gòu)與算法》課程的教學(xué)將有望為計算機專業(yè)教育整體質(zhì)量貢獻積極意義。
《數(shù)據(jù)結(jié)構(gòu)與算法》課程描述了計算機中數(shù)據(jù)存儲、組織方式和算法設(shè)計與分析,是計算機類專業(yè)第一門基礎(chǔ)課,一般開設(shè)在大二年級的第一個學(xué)期。它甚至作為其他電子類工科專業(yè)的專業(yè)課程開設(shè)在高年級。其重要性和影響力不容小覷[2]?!稊?shù)據(jù)結(jié)構(gòu)與算法》 為后續(xù)專業(yè)課程的教學(xué)提供基本認知和思維過程。因此,它的教學(xué)效果的好壞直接關(guān)系到學(xué)生對后續(xù)課程知識的學(xué)習接受程度?!稊?shù)據(jù)結(jié)構(gòu)與算法》主要內(nèi)容源于現(xiàn)實生活中各種實例的抽象,比如,順序結(jié)構(gòu)中的隊列操作,來源于火車進站和出站的情況;棧操作則來源于洗盤子的過程等。課程的主要特點有三。
《數(shù)據(jù)結(jié)構(gòu)與算法》 課程包含的知識深刻且困難。具體而言,它既包含數(shù)據(jù)組織管理的物理結(jié)構(gòu)和邏輯結(jié)構(gòu),同時也包含在不同結(jié)構(gòu)下的算法設(shè)計和實施的有限序列。結(jié)構(gòu)部分的教學(xué)是具體的物理結(jié)構(gòu)(兩種)和抽象邏輯結(jié)構(gòu)(三種)之間的辨析和理解。算法設(shè)計和實施部分要求學(xué)生既要具備工程設(shè)計能力,同時也要具備代碼實施能力。
通常來講,該課程內(nèi)容對于只有程序設(shè)計基礎(chǔ)的大二學(xué)生,這必然是個挑戰(zhàn)。此外,相關(guān)的查找和排序經(jīng)典算法實施例子不下10 個,都需要學(xué)生理解、掌握后并舉一反三。以該校開設(shè)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程為例,總的授課時間是64 個學(xué)時,其中實驗和實踐課時為16 學(xué)時。
課程知識點繁多,在教學(xué)工作中可以按照定義和操作兩個抓手將基礎(chǔ)原理知識進行快速梳理分類。尋找現(xiàn)實生活中的具體實例與對應(yīng)的概念抽象形式去描述,將關(guān)聯(lián)的思想貫穿于整個課程的講授中,將會激發(fā)學(xué)生對繁雜知識點的學(xué)習興趣。
關(guān)聯(lián)思想的介入,其最好的體現(xiàn)方式是與具體工程實驗的需求相結(jié)合,這樣學(xué)生在理解基礎(chǔ)理論知識后,可以通過與知識相關(guān)的實驗內(nèi)容加深對知識的理解,進一步提升自己對知識領(lǐng)悟能力[3]。在工程試驗過程中,一方面,夯實理論基礎(chǔ),鍛煉了學(xué)生創(chuàng)新思考的能力,另一方面,在實踐中和企業(yè)界科研界相結(jié)合,使實踐與現(xiàn)實問題不脫軌。
《數(shù)據(jù)結(jié)構(gòu)與算法》 課程的知識點不僅零散繁雜,而且章節(jié)之間的關(guān)聯(lián)性不是很大。比如,第一部分的線性表與其特殊操作的棧和隊列,第二部分的樹和森林,第三部分的圖和廣義表,上述3 個部分在邏輯結(jié)構(gòu)上各異,在物理結(jié)構(gòu)上沒有關(guān)系,不過是數(shù)據(jù)的邏輯結(jié)構(gòu)不斷地泛型表達。此外貪心算法和動態(tài)規(guī)劃是兩種不同的算法,思維差異很大。
雖然它們之間的關(guān)聯(lián)性較弱,但是教師可以通過提綱挈領(lǐng),發(fā)現(xiàn)并表述其中理論聯(lián)系。比如,線性表描述的是一對一的關(guān)系,樹描述的是一對多的關(guān)系,而圖描述的是多對多的關(guān)系。鏈式存儲和順序存儲在三者上的具體實施,就是將邏輯關(guān)系物理化表示的過程。貪心算法和動態(tài)規(guī)劃都可以用于解決具有最優(yōu)子結(jié)構(gòu)性質(zhì)的問題。
此外,雖然知識點是零散的,但是可以設(shè)置綜合性的工程問題。比如,一個問題用多個查找算法如何解決,問題解決后比較各自差異性能。又比如,不同的問題采用不同的數(shù)據(jù)結(jié)構(gòu)與算法進行工程問題實踐,有什么優(yōu)劣勢。讓學(xué)生在動手實踐中,把握理論學(xué)習的精髓,并用解決實踐問題的過程加深課程之間的關(guān)聯(lián)性。
知識來源于現(xiàn)實生活實例的歸納與抽象。《數(shù)據(jù)結(jié)構(gòu)與算法》課程中的基礎(chǔ)概念的定義和描述常常不容易理解。比如,棧和隊列的描述是通過其操作的不同加以區(qū)別描述。
為此,需要教師對基本原理知識理解透徹,將現(xiàn)實生活中比較常見的例子與課程內(nèi)容結(jié)合,比如,棧的操作類似于洗盤子的過程,線性表與二叉樹的區(qū)別類似于獨生政策和二胎政策等。合理且常見的實例可以加深學(xué)生對知識點的理解和增強課堂教學(xué)的趣味性。
此外,將抽象的概念用PPT 進行動畫演示可以幫助學(xué)生理解抽象的概念。當學(xué)生理解了概念,在面臨工程實踐問題時,腦海里會調(diào)用出具象化的抽象概念進行問題解決。
IT 類行業(yè)對計算機人才的需求是多方位的。有的需要在校生對某一方面比較熟悉即可,有的需要全面的人才。共通之處在于,IT 行業(yè)需要學(xué)生具備一定的動手能力。幾乎每家IT 公司的面試都要求面試者在一定時間內(nèi)采用熟悉的編程語言實現(xiàn)對特定問題的求解。這既包含理論知識的儲備和靈活運用,同時也包含平常儲備的工程實踐素養(yǎng)。為此,對學(xué)生的動手能力的培養(yǎng)是必須的,但不是最終的目的。動手能力的積累是一個有限的過程,而基礎(chǔ)理論的學(xué)習是需要長期的沉淀,所以兩者既涇渭分明,又相輔相成。
科技創(chuàng)新產(chǎn)業(yè)的不斷發(fā)展伴隨“互聯(lián)網(wǎng)+”時代和人工智能時代的推進,對于IT 類人才需求不再僅僅局限在技術(shù)層次的單純要求,還需要科技人才準確把握科技發(fā)展方向和靈敏的商機嗅覺?,F(xiàn)如今,高素質(zhì)創(chuàng)新型人才和卓越人才培養(yǎng)是國家對雙一流高校建設(shè)的期望,也是我國高等教育面臨的挑戰(zhàn)。
大學(xué)一般作為學(xué)生面向深造或社會工作的重要脫產(chǎn)求學(xué)平臺,除了加強學(xué)生思想道德方面培養(yǎng)以外,專業(yè)的基礎(chǔ)能力的培養(yǎng)必將是重中之重。計算機專業(yè)基礎(chǔ)課程《數(shù)據(jù)結(jié)構(gòu)與算法》是計算機專業(yè)必須了解和理解的內(nèi)容,而且最為很多公司應(yīng)聘的必考內(nèi)容。作為教育者,有義務(wù)積極調(diào)整方法和策略,以適合社會需求,開啟培養(yǎng)模式教學(xué)改革。
在大眾創(chuàng)新、萬眾創(chuàng)業(yè)的背景下,《數(shù)據(jù)結(jié)構(gòu)與算法》課程也為計算機類學(xué)生創(chuàng)新創(chuàng)業(yè)競賽、科學(xué)研究和工業(yè)界難題提供了理論和實踐基礎(chǔ)。千里之行,始于足下,學(xué)生在這門課程的學(xué)習方法和思維可以潛移默化到更深層次的教學(xué)實踐,在不斷積累中,面對科學(xué)高峰才能做到仰之彌高、鉆之彌堅。
工程實踐教學(xué)在《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)活動中是必要的組成部分,不可或缺。只有在實驗教學(xué)中利用好了《數(shù)據(jù)結(jié)構(gòu)與算法》中的實施例子,才能幫助學(xué)生建立深刻的課程理論素養(yǎng)、工程實踐能力。
實驗訓(xùn)練方面,教師需要選擇比較貼近現(xiàn)實的工程項目作為例子,以提高學(xué)生的編程動手能力,同時也增強了學(xué)生對《數(shù)據(jù)結(jié)構(gòu)與算法》知識內(nèi)容的理解。計算機課程的學(xué)習的目的是各行各業(yè)的應(yīng)用,所以對其課程內(nèi)容進行的工程實踐是必須的。
實驗教學(xué)可以不再局限于實驗課堂,可以給學(xué)生分配以項目合作的形式。提供與網(wǎng)絡(luò)安全、人工智能、數(shù)字媒體技術(shù)、大數(shù)據(jù)等專業(yè)背景相關(guān)的實踐項目供學(xué)生選擇。做到實踐環(huán)節(jié)與學(xué)生興趣和專業(yè)背景相結(jié)合,學(xué)習效益可以最大化。
高等工程教育面臨新的機遇,同時也伴隨新的挑戰(zhàn)。2016年我國工程教育加入“華盛頓協(xié)議”標志著我國高等工程教育改革發(fā)展已經(jīng)站在新的歷史起點。
2017年,教育部牽頭研究提出了“新工科建設(shè)”,明確了新經(jīng)濟快速發(fā)展迫切需要新型工科人才的支撐。高校面向未來進行人才培養(yǎng)布局,探索更加多樣化和個性化的人才培養(yǎng)模式,將有利于培養(yǎng)具有創(chuàng)業(yè)能力、跨界整合能力的新型工程科技人才。
當今時代發(fā)展迅速,大學(xué)教育不單只為專業(yè)知識教學(xué),還需要為學(xué)生開啟開闊視野,培養(yǎng)學(xué)生隨時隨地學(xué)習的習慣,不斷探索未知的新方向新領(lǐng)域。
實驗課的設(shè)計是學(xué)生實踐能力的直接體現(xiàn)。有意義的實驗項目不僅可以激發(fā)學(xué)生的學(xué)習興趣,而且可以讓其很快地掌握知識內(nèi)容。
《數(shù)據(jù)結(jié)構(gòu)與算法》 課程中的知識點比較抽象,所以其教學(xué)過程往往比較枯燥。為了使學(xué)生能夠集中注意力,緊跟教師的授課思維,教師需要對知識理解透徹。備課過程中應(yīng)該緊貼現(xiàn)實,找尋與知識點相關(guān)的生活實例、工程實例、專利實例等。做到理論知識與具體實際相結(jié)合,使學(xué)生在學(xué)習理論知識的同時建立出思維的工程實踐映像。
工程實踐案例的新穎性設(shè)計不是像脫韁的野馬一樣無拘無束,而是要在理論基礎(chǔ)上提供曲折性的實踐案例。例如,可以面向?qū)^(qū)塊鏈技術(shù)感興趣的學(xué)生設(shè)計一個區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)與算法操作的小實驗。即結(jié)合了當下熱點知識和技術(shù),夯實了理論基礎(chǔ),又拓展了學(xué)生思維。具備新穎性又不逃脫數(shù)據(jù)結(jié)構(gòu)與算法的理論基礎(chǔ)。所謂學(xué)會了舉一反三,才知道萬變不離其宗。
一般而言,學(xué)生在應(yīng)試教育中形成重分數(shù)輕實踐的觀念,直接導(dǎo)致學(xué)生的課外工程實踐經(jīng)驗較少。為此,教師需要向?qū)W生貫徹工程項目的全局思想,讓其了解項目的需求和目標。結(jié)合與之相關(guān)的知識點的詳細講解,加深學(xué)生對知識點的理解。這一過程,促使學(xué)生在掌握《數(shù)據(jù)結(jié)構(gòu)與算法》的基礎(chǔ)知識后,主動參與到工程實踐當中,達到學(xué)有所用。
學(xué)生通過動手實現(xiàn)工程實踐中的小項目,回味課堂上學(xué)習的理論知識,可以反饋和加深對知識的理解。學(xué)生將工程實踐和理論知識緊密結(jié)合,同時也提高了解決實際問題的動手能力。
現(xiàn)階段我國的填鴨式教學(xué)和灌輸式學(xué)習忽略了學(xué)生理解并應(yīng)用的過程。激發(fā)學(xué)生創(chuàng)作的思維是破解唯分數(shù)論的一個有效途徑。工程實踐中的小項目就是理論和創(chuàng)作思維的橋梁。設(shè)計優(yōu)秀的項目使得學(xué)生思維活躍,創(chuàng)造能力提升。達到學(xué)以致用的目的才是經(jīng)驗教學(xué)的最終目標。
如果學(xué)生對知識有比較好的掌握程度,則能夠利用知識進行變通和創(chuàng)新,進一步豐富理論體系。對知識掌握越深刻,對創(chuàng)新思維的培養(yǎng)越有益。以工程實踐為導(dǎo)向的課程教學(xué)是鞏固理論知識比較好的手段。鞏固基礎(chǔ)知識既加深了學(xué)生對知識的印象,從而完備《數(shù)據(jù)結(jié)構(gòu)與算法》課程的教學(xué),也破解學(xué)生輕實踐的現(xiàn)狀,提升了學(xué)生的實踐能力。
理論聯(lián)系實際的教學(xué)原則是從抽象到具體,具體到抽象的環(huán)路教學(xué)方法,目的是以學(xué)習基礎(chǔ)知識為主導(dǎo),從理論與實際上去理解知識,注意運用知識去分析問題和解決問題,達到學(xué)懂會用,學(xué)以致用。增強學(xué)生對學(xué)習知識的興趣,充分發(fā)揮學(xué)生學(xué)習知識的主觀能動性,這樣學(xué)生獲得的知識更加牢固。
《數(shù)據(jù)結(jié)構(gòu)與算法》課程相對于硬件學(xué)習是抽象的,所以更要重視理論聯(lián)系實際。每一門課程學(xué)習的目的是解決的問題而存在。每一個工程實踐就是一個大的問題。鍛煉學(xué)生利用抽象的思維進行問題分解,將問題分解為子問題進行逐一解決,將提升學(xué)生學(xué)習的綜合思維能力和創(chuàng)造性解決問題的能力。
《數(shù)據(jù)結(jié)構(gòu)與算法》作為計算機專業(yè)的比較重要專業(yè)基礎(chǔ)課,由于其知識點抽象,學(xué)生不易理解。面臨學(xué)生重分數(shù)輕實踐的問題,該文根據(jù)理論聯(lián)系實際的教學(xué)原則,結(jié)合當今的計算機行業(yè)的就業(yè)環(huán)境和趨勢,提出將《數(shù)據(jù)結(jié)構(gòu)與算法》課程的講授過程與具有意義的實訓(xùn)項目相結(jié)合的興趣教學(xué)課程設(shè)計理念,以其加深學(xué)生對知識點的理解、應(yīng)用和創(chuàng)新能力。以工程實踐為導(dǎo)向的《數(shù)據(jù)機構(gòu)與算法》進行教學(xué)的探索將為計算機專業(yè)課程綜合能力的培養(yǎng)提供最基礎(chǔ)的建設(shè)。