趙力衡 李麗華
摘要:專業(yè)課程知識的實用性一直都是教育教學(xué)中關(guān)注的重點(diǎn),許多專業(yè)課程以項目指導(dǎo)等方式來強(qiáng)化課程知識的實用性,但數(shù)據(jù)結(jié)構(gòu)作為一門較為前期的專業(yè)課程,學(xué)生此時還缺乏足夠的專業(yè)技能,項目導(dǎo)向等方式不容易取得較為滿意的結(jié)果。本文提出了一種面試式教學(xué)模式,將面試中關(guān)注的重點(diǎn)引入教學(xué)過程,并作為檢驗學(xué)習(xí)成果的更高標(biāo)準(zhǔn),以此提高數(shù)據(jù)結(jié)構(gòu)的實用性。方法在實際教學(xué)中已應(yīng)用3年,實踐證明,該教學(xué)模式能有效提高學(xué)生實踐能力、提升學(xué)生學(xué)習(xí)興趣,顯著提高了教學(xué)效果。
關(guān)鍵詞: 數(shù)據(jù)結(jié)構(gòu);教學(xué)模式;面試;教改
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)14-0152-02
Abstract:The practicability of professional curriculum knowledge has always been the focus of education and teaching. Many professional courses strengthen the practicability by different methods such as project-oriented teaching, but data structure course is a relatively early professional course. Students still lack sufficient professional skills at this time, project-oriented and other ways are not easy to achieve enough satisfactory results. An interview teaching model is proposed in this paper which introduces the key points in the interview into the teaching process and serves as the higher standard to test the learning results, so as to improve the practicability of the data structure. The method has been used in practical teaching for 3 years. The results show that the proposed method can effectively improve students' practical ability, enhance students' interest in learning, and improve the teaching effect significantly.
Key words:data structure; teaching model; interview; teaching reform
1 引言
專業(yè)課程講述的本專業(yè)相關(guān)的專業(yè)知識和專業(yè)技能經(jīng)常會在工作中被頻繁使用到,因此這些知識和技能也被認(rèn)為對一個人在該專業(yè)方向的職業(yè)發(fā)展至關(guān)重要。一直以來如何讓課堂上講述的專業(yè)知識能很好地與實踐工作結(jié)合起來,幫助學(xué)生提升能力[1]并在求職技能面試中受到認(rèn)可,以及在專業(yè)技能上盡快適應(yīng)職場就成了教育教學(xué)中關(guān)注的一個重點(diǎn)。
數(shù)據(jù)結(jié)構(gòu)是應(yīng)屆生在應(yīng)聘軟件類職業(yè)時筆試題中經(jīng)常會遇到的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)題目應(yīng)答結(jié)果常常會影響到應(yīng)屆生是否能進(jìn)入面試的下一個環(huán)節(jié),同時軟件開發(fā)中也離不開數(shù)據(jù)結(jié)構(gòu)的應(yīng)用。本文結(jié)合數(shù)據(jù)結(jié)構(gòu)這門課程的特點(diǎn)提出了面試式教學(xué)模式,將技能面試中常常被關(guān)注的知識點(diǎn)帶入課堂,并作為進(jìn)一步的課程考核標(biāo)準(zhǔn),使學(xué)生在學(xué)習(xí)和實踐過程中注意到職場中相關(guān)算法和知識應(yīng)用的一些方式,使學(xué)生養(yǎng)成良好的編程習(xí)慣,有效提升了學(xué)生面試成功率和縮短了職場適應(yīng)期。
2 教學(xué)模式描述
2.1 數(shù)據(jù)結(jié)構(gòu)課程特點(diǎn)
如何將課堂知識帶入職場,不同的專業(yè)課程方法不盡相同[2-5]。很多專業(yè)課程對此的一個常見方式是項目引導(dǎo)式教學(xué)模式,課程開始時設(shè)定一個或多個項目,使用課堂上講述的知識來實現(xiàn)項目中相應(yīng)的模塊,逐漸完成項目。這種方式不僅讓學(xué)生在學(xué)習(xí)知識的過程中了解了知識的應(yīng)用方式,還讓學(xué)生增加了項目開發(fā)經(jīng)驗,是一種有效的學(xué)以致用的教學(xué)方式,但這種教學(xué)模式需要學(xué)生掌握大量項目相關(guān)的專業(yè)知識才能進(jìn)行。
數(shù)據(jù)結(jié)構(gòu)在教學(xué)中通常是安排在專業(yè)課程的前期,這個時間段內(nèi)學(xué)生通常并不具備足夠的項目相關(guān)知識。比如要使用Java語言實現(xiàn)一個常見的信息管理系統(tǒng),那么這個系統(tǒng)通常包括了用于人機(jī)交互的前端界面,處理業(yè)務(wù)的邏輯業(yè)務(wù)層,以及用于存儲數(shù)據(jù)的持久層。其中前端界面可能需要使用JSP或Html等語言進(jìn)行開發(fā),持久層則可能需要熟悉SQL等數(shù)據(jù)庫的開發(fā)。如果項目使用常見的BS架構(gòu)進(jìn)行開發(fā),那可能還需要開發(fā)者熟悉至少一種類似于Spring這樣的框架。而這些專業(yè)知識和技能的排課時間通常比數(shù)據(jù)結(jié)構(gòu)課程靠后,或者學(xué)校不一定會講授,這就意味著類似于項目引導(dǎo)教學(xué)模式難以在像數(shù)據(jù)結(jié)構(gòu)這樣前期的專業(yè)課程中展開。文獻(xiàn)[6]提出了“課前-課上-課后”相結(jié)合的數(shù)據(jù)結(jié)構(gòu)教學(xué)模式,該方式有效地將數(shù)據(jù)結(jié)構(gòu)課堂下與課堂上的教學(xué)整合起來形成一個較為完善的整體,但沒有進(jìn)一步探討如何將課堂知識與職業(yè)要求聯(lián)系起來。本文基于數(shù)據(jù)結(jié)構(gòu)課程教學(xué)時常常缺少其他專業(yè)課程支撐的特點(diǎn),提出了將關(guān)注于將課堂知識與職業(yè)需求聯(lián)系起來的面試式教學(xué)模式。
2.2 面試式教學(xué)模式
面試式教學(xué)模式的特點(diǎn)是需要教師在教學(xué)時扮演求職面試中面試官的角色,在授課時將技能面試時面試官常常關(guān)注的問題作為知識點(diǎn)進(jìn)行講述,在作業(yè)檢查時也將這些問題作為學(xué)生在完成算法的功能之后更進(jìn)一層的評分標(biāo)準(zhǔn),從而將課堂知識與職業(yè)要求統(tǒng)一起來。
實際上,大多數(shù)情況下學(xué)生在開始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程時,才剛開始比較系統(tǒng)的接觸軟件算法。學(xué)生幾乎沒有在課程上學(xué)過比較完整的項目相關(guān)知識,甚至編寫的程序也多以完成單個的功能函數(shù)為主。這就意味著雖然在數(shù)據(jù)結(jié)構(gòu)課程中會明確講述評價一個算法優(yōu)劣的主要標(biāo)準(zhǔn),如算法的正確性、可讀性、健壯性等,但很多學(xué)生在實現(xiàn)一個算法時并沒有清晰地意識到這些標(biāo)準(zhǔn)怎么在算法中體現(xiàn)出來,導(dǎo)致寫出的算法僅停留在功能的實現(xiàn)上,難以滿足企業(yè)對代碼質(zhì)量的要求。
企業(yè)項目中評估代碼質(zhì)量的一個常見標(biāo)準(zhǔn)是千行代碼BUG率,其含義是指每千行代碼中BUG的數(shù)量,如式(1)所示:
如果代碼的BUG率與質(zhì)量目標(biāo)或過程能力基線相比偏高,說明代碼質(zhì)量較差,軟件產(chǎn)品在運(yùn)行時可能出現(xiàn)較為頻繁的異常,這通常意味著代碼需要大量的返工,而這正是企業(yè)所竭力避免的。因此,企業(yè)在技能面試時面試官常常會關(guān)注應(yīng)聘者的算法中是否存在健壯性弱、邏輯不完整等容易引起B(yǎng)UG的代碼,以判斷應(yīng)聘者是否有能力寫出高質(zhì)量的代碼,而這恰好是應(yīng)屆生所缺乏的。如果在教學(xué)過程中能從面試官的角度講解算法實現(xiàn)和評估代碼,那么就能讓學(xué)生在一開始學(xué)習(xí)的時候就培養(yǎng)出實現(xiàn)較高質(zhì)量代碼的思維,從而在技能面試或工作中獲得優(yōu)勢,而這正是面試式教學(xué)模式關(guān)注的。
以使用Java語言創(chuàng)建一個包含3個字符串元素的順序表為例,一些學(xué)生的實現(xiàn)代碼類似于如下代碼:
public String[] create() {
//獲取數(shù)組長度
System.out.println("請輸入數(shù)組長度:");
Scanner scanner = new Scanner(System.in);
int arrayLength = scanner.nextInt();
//生成數(shù)組
System.out.println("請輸入數(shù)組元素,以換行符分隔:");
String[] arr = new String[arrayLength];
//將輸入數(shù)據(jù)依次寫入數(shù)組
for(int i=0;i
arr[i] = scanner.next();
}
return arr;
}
從功能上看,該方法正確地實現(xiàn)了創(chuàng)建順序表的功能,但若從代碼質(zhì)量的角度看,這段代碼就顯得不盡人意了。代碼出現(xiàn)的問題主要表現(xiàn)如下:
1)未檢查輸入數(shù)據(jù)。若在程序中輸入數(shù)組長度時輸入非正整數(shù)類型的數(shù)值,比如-1或字符串等,那么該程序?qū)驘o法正常創(chuàng)建數(shù)組或輸入異常等原因崩潰。若該函數(shù)在一個項目里被調(diào)用,那么這個異??赡芤鸶蠓秶拇a故障,甚至整個軟件系統(tǒng)崩潰,因此這段代碼的質(zhì)量就顯得很差;
2)數(shù)據(jù)輸入方式不合理。算法的輸入數(shù)據(jù)從控制臺輸入,這常常是初學(xué)者偏愛的一種數(shù)據(jù)寫入方式。但實際上,在商業(yè)項目里數(shù)據(jù)通常來自文件、消息、參數(shù)傳入或用戶界面等,鮮有讓用戶操作控制臺的機(jī)會,而且控制臺輸入難以模擬出NULL這樣的特殊情況,對代碼測試也不利,因此應(yīng)盡量避免。
那么在面試式教學(xué)中,教師在講述和檢查算法時就不僅需要關(guān)注算法的正確性,還需要從面試官的角度來關(guān)注代碼的健壯性等因素,使算法中盡量不要出現(xiàn)上述類似的問題。
3 教學(xué)實踐結(jié)果
面試式教學(xué)模式已在數(shù)據(jù)結(jié)構(gòu)教學(xué)中應(yīng)用了3年,從結(jié)果看,相當(dāng)比例的學(xué)生對此感到很有實用性和挑戰(zhàn)性,在學(xué)習(xí)課程前后的算法邏輯也更加完善,代碼中減少了很多初學(xué)者常見的問題,并且在一定程度上減少了面試時給面試官以缺乏編程經(jīng)驗的印象,提升了面試通過機(jī)會并對縮短工作適應(yīng)期有所幫助,達(dá)到了最初的目的。
4 結(jié)束語
實驗結(jié)果表明,所提方法能有效地提高學(xué)生的代碼水平和邏輯能力,使完成的算法更加健壯,更符合企業(yè)要求,并能在接下來的工作中更加容易適應(yīng)企業(yè)對員工軟件開發(fā)的要求,有效幫助學(xué)生將課堂知識應(yīng)用到了實踐中。但該方法也存在不足,那就是需要實施的教師具有豐富的企業(yè)項目經(jīng)驗以及面試經(jīng)驗,這樣才能把握住面試環(huán)節(jié)中面試人員的關(guān)注點(diǎn)。
參考文獻(xiàn):
[1] 吳寶鎖,張慧,屈廖健.新教改背景下的師生共同體構(gòu)建與大學(xué)生能力發(fā)展研究[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2020,45(12):154-161.
[2] 李建鋒,劉曉爽,康紅俊.基于行動導(dǎo)向教學(xué)法的《數(shù)字移動通信》教學(xué)研究[J].電腦知識與技術(shù),2020,16(33):12-13,25.
[3] 蔣超,王大衛(wèi).以職業(yè)需求為導(dǎo)向的網(wǎng)絡(luò)技術(shù)課程教學(xué)模式研究[J].電腦知識與技術(shù),2020,16(33):132-133,152.
[4] 周克榮.高職計算機(jī)教學(xué)中如何培養(yǎng)學(xué)生的創(chuàng)新創(chuàng)業(yè)能力[J].電腦知識與技術(shù),2020,16(33):113-114.
[5] 侯玉雙.新教改模式下高等數(shù)學(xué)教學(xué)方法研究[J].科技資訊,2020,18(36):130-132.
[6] 王曉明.“課前-課上-課后”結(jié)合的數(shù)據(jù)結(jié)構(gòu)教學(xué)模式探索與實踐[J].高教學(xué)刊,2020(8):91-94.
【通聯(lián)編輯:王力】