摘要:面向?qū)ο蟪绦蛟O(shè)計課程對提高學(xué)員的編程能力具有較大幫助。為提高教學(xué)效果,文章在分析目前教學(xué)存在問題的基礎(chǔ)上,提出該課程的類比教學(xué)法,闡述該教學(xué)法的應(yīng)用依據(jù)并指出在實施過程中要注意的問題。
關(guān)鍵詞:面向?qū)ο蟪绦蛟O(shè)計;類比教學(xué)法;教學(xué)方法改革
引言
面向?qū)ο蟪绦蛟O(shè)計課程是電子工程學(xué)院計算機及相關(guān)專業(yè)的一門基礎(chǔ)課程,這門課程對于培養(yǎng)學(xué)員的編程能力,提高利用計算機解決現(xiàn)實問題的能力具有很大幫助。同時,這門課程是后續(xù)很多重要的專業(yè)課程如數(shù)據(jù)庫、操作系統(tǒng)等的基礎(chǔ),是學(xué)員畢業(yè)后順利走上技術(shù)性工作崗位的重要基礎(chǔ),因此,學(xué)好這門課程對于計算機及相關(guān)專業(yè)的學(xué)員具有重要意義,教員必須精心設(shè)計教學(xué)方案,力爭取得較好的教學(xué)效果。
1 課程教學(xué)面臨的主要問題
(1)面向?qū)ο蟪绦蛟O(shè)計課程一般安排本科學(xué)員在大一開課。該階段學(xué)員所學(xué)專業(yè)課較少,主要是高等數(shù)學(xué)、英語、物理等課程,學(xué)員較少有使用計算機語言描述現(xiàn)實問題的概念和經(jīng)歷,例如在數(shù)學(xué)和物理的學(xué)習(xí)過程中,解方程的時候根本無需關(guān)心變量要用幾個字節(jié)表示。這就導(dǎo)致教員在給學(xué)員講授各種數(shù)據(jù)結(jié)構(gòu)和類型時,學(xué)員由于初次接觸,且與以前學(xué)習(xí)到的物理和數(shù)學(xué)知識不一致,感到難以理解。
(2)學(xué)員的計算機基礎(chǔ)水平高低不一。學(xué)員來自各個不同的中學(xué),有些中學(xué)在信息技術(shù)課程投入較大精力,學(xué)員對計算機及網(wǎng)絡(luò)技術(shù)已經(jīng)比較熟練;有些中學(xué)則以高考為指揮棒,全力應(yīng)付高考,對高考之外的課程重視不夠,使學(xué)員對計算機的了解相對較少。此外,即使是同一所學(xué)校的學(xué)員,由于家庭經(jīng)濟能力、個人喜好等方面因素的影響,學(xué)員的計算機水平也存在較大差異。
(3)該階段學(xué)員剛剛結(jié)束高中學(xué)習(xí),還受一定的高中應(yīng)試學(xué)習(xí)模式影響,想通過大量做題來提高自身的解題熟練程度,但是這種學(xué)習(xí)思路對于面向?qū)ο蟪绦蛟O(shè)計課程的學(xué)習(xí)來說并不是非常適用。本課程的主要教學(xué)目的是培養(yǎng)學(xué)員利用計算機語言對現(xiàn)實世界建模的能力。通過大量練習(xí)的確能夠提高學(xué)員運用某一知識點的熟練程度,但是本課程更注重學(xué)員靈活運用知識的能力,即創(chuàng)新思維。此外,本課程的知識點非常多,難以一一練習(xí)。
面對這些問題,可以在具體的教學(xué)實施中引人類比教學(xué)法,注重從現(xiàn)有知識出發(fā),從學(xué)員熟悉的事物出發(fā),推移到要學(xué)習(xí)的新知識嘲,降低學(xué)員理解難度,提高學(xué)習(xí)效果。
2 類比教學(xué)法的實施
在教學(xué)過程中,依據(jù)類比的角度不同,可分為依據(jù)生物學(xué)知識、依據(jù)已學(xué)知識、依據(jù)生活常識、依據(jù)社會關(guān)系等類比方法。
2.1 依據(jù)生物學(xué)知識進行類比
生物課是學(xué)員在初中和高中均需學(xué)習(xí)的一門課程,而且學(xué)員通過日常生活觀察,已經(jīng)掌握了不少生物知識。依據(jù)生物學(xué)知識進行類比,不僅有利于學(xué)員理解,而且使課程講述生動形象。
在講授類的繼承與派生的時候,我們指出該概念類似于生物學(xué)的遺傳和變異。由父代生出子代,父代可以將自身的一些生物學(xué)特點遺傳給子代,所以兒女長得像自己的父母,對應(yīng)在面向?qū)ο蟪绦蛟O(shè)計中指的就是子類擁有父類的數(shù)據(jù)成員和函數(shù)成員,這就是繼承。同時,子代在遺傳的過程中,為了適應(yīng)新環(huán)境,往往會有一些新特性即產(chǎn)生變異,對應(yīng)在面向?qū)ο蟪绦蛟O(shè)計中指的是子類往往會產(chǎn)生一些新的數(shù)據(jù)和函數(shù)成員。如果沒有變異,那么新生命就無法不斷地適應(yīng)環(huán)境,不能夠進化,同樣的,不增加新成員,那么子類(派生類)就與父類(基類)一樣,無法解決新問題。
在講授單繼承與多繼承時,指出該概念類似于單性繁殖和雙性繁殖。每個人都有父母,孩子一般會同時具備父母的某些特性,多繼承也是如此。
在介紹派生類構(gòu)造函數(shù)的調(diào)用順序時,我們指出該過程類似于一個嬰兒的誕生。首先必須有父母,即在派生類的生成過程中首先調(diào)用基類的構(gòu)造函數(shù);然后嬰兒的器官逐個形成,即調(diào)用派生類內(nèi)嵌對象成員的構(gòu)造函數(shù);最后嬰兒形成并誕生,即調(diào)用派生類的構(gòu)造函數(shù),形成一個具體的對象。依據(jù)生物學(xué)知識進行類比,我們通過課堂提問、上機練習(xí)等環(huán)節(jié)觀察到學(xué)員們普遍容易理解并掌握相關(guān)知識。
2.2 依據(jù)已學(xué)知識進行類比
該類比方法指的是在講授新知識的過程中,將新知識與學(xué)員已經(jīng)學(xué)過的知識聯(lián)系起來,使學(xué)員在一個較高的起點上學(xué)習(xí)新知識。學(xué)員在課程前期的學(xué)習(xí)中已經(jīng)學(xué)習(xí)到“類是對具有相同屬性和行為的一組對象的抽象”,即對多個個體進行抽象,以便統(tǒng)一對其描述。因此,在介紹類模板的概念時,我們指出該概念與之前學(xué)習(xí)過的類的概念類似,類模板的目的也是為了對一組具有相同屬性和行為的對象進行抽象,只不過此時的抽象對象是類。利用類能夠聲明多個個體,在面向?qū)ο蟪绦蛟O(shè)計中將其稱為對象,利用類模板同樣能夠聲明多個個體,此時的個體稱為模板類。在聲明的過程中,給類傳遞參數(shù)的接口是構(gòu)造函數(shù),給類模板傳遞參數(shù)的接口是模板形參表。依據(jù)已學(xué)知識進行類比,不僅易于學(xué)員理解新知識,而且能夠及時復(fù)習(xí)已學(xué)知識,具有雙重效果。
2.3 依據(jù)生活常識進行類比
該類比方法指的是將面向?qū)ο蟪绦蛟O(shè)計知識與學(xué)員的日常生活知識聯(lián)系起來。在講授數(shù)據(jù)類型的時候,我們指出數(shù)據(jù)類型類似于日常生活中的衣柜。衣柜的用途在于裝衣服,數(shù)據(jù)類型的用途在于存儲數(shù)據(jù)。對應(yīng)于不同的房間大小和衣物量,應(yīng)該選用不同的衣柜,太小,衣物裝不下;太大,房間的空間又不允許。同樣,在面向?qū)ο蟪绦蛟O(shè)計過程中,選擇何種數(shù)據(jù)類型取決于待存儲數(shù)據(jù)的范圍和內(nèi)存的大小,應(yīng)該盡量選用恰好能夠表示待存儲數(shù)據(jù)范圍的類型,避免存儲空間的浪費。在講授靜態(tài)聯(lián)編與動態(tài)聯(lián)編時,我們指出靜態(tài)聯(lián)編只能調(diào)用到指針?biāo)鶎?yīng)類型的函數(shù),而無法調(diào)用到指針?biāo)赶蚓唧w對象類型的函數(shù),這在很多情況下會產(chǎn)生不便。就像舉辦主題演講比賽時,雖然每位選手都是圍繞同一個主題(調(diào)用同一個函數(shù)名),但是觀眾希望選手能夠根據(jù)自身單位特點來演講,不同單位的選手講不同的故事(實現(xiàn)動態(tài)聯(lián)編),而不希望所有的選手講同一個故事。
2.4 依據(jù)社會關(guān)系進行類比
該類比方法指的是采用社會關(guān)系類比講述面向?qū)ο蟪绦蛟O(shè)計中的數(shù)據(jù)關(guān)系。在講述派生類對基類的訪問權(quán)限控制時,我們指出這類似于父母(基類)對孩子(派生類)的訪問控制。父母對孩子總是大公無私的,因此不管是使用公有繼承、私有繼承還是保護繼承,孩子總是能自由訪問父母可以公開的事情(公有成員),但是父母總有一些個人隱私(私有成員),這些隱私無論采取何種繼承方式,都無法被孩子訪問。在講授類的友元函數(shù)時,我們指出這類似于人的好朋友。人總是有很多隱私和不便公開的事情(私有成員和保護成員),這些事情人們不希望其他人知道,對應(yīng)地,私有成員和保護成員不能夠在類外訪問;但是人們也會有好朋友,會對他們知無不言,告訴他們自己的秘密,并且有時候告訴朋友秘密能夠帶來很多便利。友元函數(shù)就是類的好朋友,利用它能夠自由地訪問類的私有成員和保護成員,帶來操作上的便利。
3 類比教學(xué)法需要注意的問題
3.1 類比對象與程序世界的差異
引入類比方法能使課程講授變得生動易懂,但是也要注意類比指的是相似,而不是相同。雖然面向?qū)ο蟪绦蛟O(shè)計課程中有很多概念與現(xiàn)實事物存在相似性,但是仍在某些方面存在較大差別,教員在使用類比法時需要指出這些差異,以免學(xué)員照搬類比對象,從而產(chǎn)生誤解。例如,派生類對象的構(gòu)造就好比嬰兒的形成,構(gòu)造函數(shù)的調(diào)用順序與嬰兒的形成順序一致,首先是父母,然后是器官,最后是自身。派生類對象的析構(gòu)就好比生命的消亡,但是派生類對象析構(gòu)函數(shù)的調(diào)用順序則與生物界不同。在生物界中,生命的消亡一般從父輩開始,然后是子輩;但是對于派生類對象的析構(gòu)而言,析構(gòu)的首先是自身,然后是內(nèi)嵌對象成員,最后才調(diào)用基類的析構(gòu)函數(shù),與生物界正好相反。STL中的vector類似于現(xiàn)實生活中的容器,能夠用來存儲物品即數(shù)據(jù),但是現(xiàn)實生活中的容器容量是固定的,而vector的容量則可調(diào)整,因此在講授這些概念時,教員必須及時指出它們與類比對象的相似和差異。
3.2 與其他教學(xué)手段的配合
類比教學(xué)法雖然比較直觀易懂,但是也要與其他教學(xué)手段配合才能取得較好的效果。一要特別注意與多媒體技術(shù)的配合。在使用類比方法時,可以通過圖片、視頻等多媒體技術(shù)形象展示兩類事物的共同點,例如使用圖像展示子輩與父輩的相似性,使用視頻展示細胞到嬰兒的整個變化過程。應(yīng)用多媒體技術(shù)不僅能夠使學(xué)員獲得震撼的直觀印象,使教員的類比過程易被學(xué)員接受,而且能夠使課堂變得生動活潑。二要與案例教學(xué)相配合。在課程中期,學(xué)員掌握一定的編程技巧后,教員可以布置一些小項目,讓學(xué)員通過編程解決問題,并對學(xué)員的程序進行點評,指出優(yōu)點和不足。通過實踐提高學(xué)員的動手能力,加深其對知識的理解。三要讓學(xué)員閱讀和分析知名開源項目。目前網(wǎng)絡(luò)上有許多開源的面向?qū)ο蟪绦蝽椖浚@些項目多由資深的程序員編寫,項目文件組織合理,代碼編寫規(guī)范。學(xué)員通過閱讀這些代碼,能夠?qū)W到很多編程知識和技巧,而且有助于培養(yǎng)良好的編程習(xí)慣。
4 結(jié)語
類比教學(xué)法降低了學(xué)習(xí)難度,容易記憶和理解,使學(xué)員能夠在已有知識儲備的基礎(chǔ)上學(xué)習(xí)新知識。通過采用該教學(xué)法與其他教學(xué)手段相結(jié)合,電子工程學(xué)院面向?qū)ο蟪绦蛟O(shè)計課程教學(xué)取得了較好效果。近3年來,學(xué)員計算機二級考試通過率維持在90%以上并逐年提高,參加全國軟件專業(yè)人才設(shè)計與創(chuàng)業(yè)大賽有14人獲得賽區(qū)一、二等獎,參加全國大學(xué)生信息安全競賽多次獲得全國二、三等獎。
類比不是簡單的比喻,它對教員提出了較高的要求,需要教員充分理解面向?qū)ο蟪绦蛘Z言的本質(zhì),并對課程前后知識非常熟悉,因此教員在上課前必須充分備課,努力提高自身素質(zhì),其次要加強類比教學(xué)法的素材庫和示例庫建設(shè),努力使學(xué)員樂于學(xué)、易于懂、會運用,進一步提升教學(xué)效果。