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