摘要:本文深入研究了軟件工程專業(yè)軟件類核心課程知識點之間的前趨與后繼之間的關(guān)系,給出了關(guān)聯(lián)式教學(xué)模型,并將此模型體現(xiàn)到教學(xué)大綱及教學(xué)實踐環(huán)節(jié)中,形成鏈條式教學(xué),使前趨課程的內(nèi)容不斷在后繼課程中得到復(fù)習(xí)、鞏固與應(yīng)用提升,使后繼課程的學(xué)習(xí)目標(biāo)更加明確,同時有利于學(xué)生對軟件類課程系統(tǒng)化知識體系的貫通與全面掌握。
關(guān)鍵詞:軟件工程專業(yè);核心課程;關(guān)聯(lián)式;教學(xué)模型
中圖分類號:G642 文獻標(biāo)識碼:B
1引言
本科軟件工程專業(yè)軟件類核心課程一般情況下有C++、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、操作系統(tǒng)、編譯原理、數(shù)據(jù)庫原理、軟件工程。并在授課時間的安排上體現(xiàn)出了前趨后繼關(guān)系,但通常每門課程的教學(xué)大綱彼此之間是獨立的,不同課程的任課老師也各自按照課程大綱獨立授課,不利于學(xué)生對該專業(yè)知識的整體性、協(xié)調(diào)性、一致性和系統(tǒng)化地理解與掌握。學(xué)生每學(xué)完一門課程,考試通過就算完成了這門課程的學(xué)習(xí)任務(wù),不太關(guān)心何時再去重溫、復(fù)習(xí)、鞏固與應(yīng)用提升已學(xué)過課程,教師也完成了自己的授課任務(wù)。實際上這是一種離散型而非系統(tǒng)化的教學(xué)模式。到學(xué)生做畢業(yè)設(shè)計或就業(yè)接受具體任務(wù)時就暴露出不能很好的綜合運用所學(xué)知識解決實際問題,甚至不能靈活地運用從大學(xué)一年級就開始學(xué)習(xí)的C++語言編寫應(yīng)用程序。學(xué)生給出的解釋是“學(xué)得太早,已忘記”。多年來,在碩士研究生入學(xué)面試時也發(fā)現(xiàn),大學(xué)二年級就開始學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)課,也是碩士研究生入學(xué)考試課。對進入復(fù)試線的學(xué)生,說明該課學(xué)得不錯,但當(dāng)問及棧結(jié)構(gòu)、樹結(jié)構(gòu)等在編譯器中何處使用時竟然回答不出來,如此等等,這種課程間孤立的教學(xué)模式容易產(chǎn)生高分低能,學(xué)生不能綜合運用所學(xué)知識解決實際問題等現(xiàn)象。
鑒于上述情況,本文在深入研究軟件類核心課程知識點之間前趨后繼關(guān)系的基礎(chǔ)上,給出了軟件類核心課程的關(guān)聯(lián)式教學(xué)模型,并將此模型體現(xiàn)到教學(xué)大綱及教學(xué)實踐環(huán)節(jié)中,取得了比較好的效果。
2軟件類核心課程關(guān)聯(lián)式教學(xué)模型研究
通過剖析軟件類各門核心課程的主要知識點和課程之間主要知識點之間的關(guān)系,給出如圖1所示的關(guān)聯(lián)模型。解析該模型,進一步給出如下關(guān)聯(lián)式教學(xué)模型的說明。
2.1C/C++與數(shù)據(jù)結(jié)構(gòu)
C/C++是學(xué)生接觸到的第一門軟件課程,是計算機算法語言的典型代表,有它的獨立性,是常用的軟件開發(fā)工具,但僅靠聽幾十學(xué)時的課、上幾十學(xué)時實驗是不能編制高質(zhì)量程序的,只能說有了一定的基礎(chǔ)知識,其進一步的學(xué)習(xí)是在后繼課程數(shù)據(jù)結(jié)構(gòu)等課程中。如表、鏈、棧、樹、圖等的建立與維護可用C/C++實現(xiàn),這樣,C/C++就得到了一次復(fù)習(xí)、訓(xùn)練與實踐提升的機會,也是用C/C++解決具體問題的一次應(yīng)用。
2.2C/C++、數(shù)據(jù)結(jié)構(gòu)、編譯原理與操作系統(tǒng)
數(shù)據(jù)結(jié)構(gòu)是十分重要的專業(yè)基礎(chǔ)課,也是考研課。與C/C++同樣,可在后繼課編譯原理得到應(yīng)用與提升。
(1) 用表、鏈實現(xiàn)編譯器中的保留字表、名字表、過程表、數(shù)組表等表的建立與維護。
(2) 用棧實現(xiàn)編譯器中的表達式、循環(huán)、條件、遞歸等嵌套結(jié)構(gòu)及操作系統(tǒng)中的線程等。
(3) 用HASH方法實現(xiàn)名字表等構(gòu)造與查找。
(4) 綜合運用C/C++、數(shù)據(jù)結(jié)構(gòu)實現(xiàn)編譯器中的數(shù)、標(biāo)識符、單詞等識別及運用狀態(tài)矩陣法和子程序法實現(xiàn)編譯流程控制及實現(xiàn)操作系統(tǒng)中的線程、進程、頁面、存儲資源等管理。
2.3C/C++、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫與編譯系統(tǒng)
(1) 運用C/C++為工具,實現(xiàn)離散數(shù)學(xué)中集合論的并、差、笛卡兒乘、投影、選擇五種基本運算及交、連接、自然連接、求商四種復(fù)合運算,這其中還要用到數(shù)據(jù)結(jié)構(gòu)來解決集合的結(jié)構(gòu)與分類、檢查等相關(guān)算法。
(2) 離散數(shù)學(xué)中的上述算法恰為數(shù)據(jù)庫原理中的關(guān)系模型的關(guān)系代數(shù)運算,進一步以C/C++為工具利用數(shù)據(jù)結(jié)構(gòu)中的算法實現(xiàn)關(guān)系數(shù)據(jù)庫中關(guān)系的三類完整性約束并理解主鍵、外鍵在其中的作用。
(3) 關(guān)系運算的算符樹、關(guān)系的查詢優(yōu)化實現(xiàn)技術(shù),恰恰是編譯課程的新的應(yīng)用和有一定難度的實踐環(huán)節(jié)。
2.4綜合性課程軟件工程與上述核心課程的關(guān)聯(lián)
軟件工程的開發(fā)方法、開發(fā)步驟、開發(fā)環(huán)境與工具的選擇等恰恰是上述課程的綜合運用與實踐。
(1) 開發(fā)環(huán)境與硬件有關(guān),也與操作系統(tǒng)有關(guān)。開發(fā)工具是指要選擇數(shù)據(jù)庫管理系統(tǒng)、計算機語言等。這就要視工程的具體情況,選擇相適應(yīng)的環(huán)境與工具。本身又是一個回顧與學(xué)習(xí)的過程。
(2) 開發(fā)方法可選用快速原型法和生命周期法或二者結(jié)合。但不論什么方法都要涉及需求分析、概要設(shè)計、詳細設(shè)計、編碼、測試與試運行這些步驟。其中需求分析與設(shè)計中的數(shù)據(jù)庫需求分析設(shè)計部分在數(shù)據(jù)庫課程中已有單獨的一章進行論述,在本課程中得到了進一步提升,這就必然需要數(shù)據(jù)結(jié)構(gòu)的知識,用到相關(guān)結(jié)構(gòu)與算法。在模塊設(shè)計過程中自然是C/C++的繼續(xù)。
在現(xiàn)實應(yīng)用中特別強調(diào)軟件的自適應(yīng)性。通常留給用戶一個定制的空間,這實際上是為用戶和應(yīng)用系統(tǒng)之間定義了一種人機交互語言,這就是編譯課程知識點的再用,首先定義人機交互式語言,而后是相關(guān)的解釋。
智能軟件是當(dāng)前軟件的一大特色,常常具有推理功能,數(shù)理邏輯是推理的基礎(chǔ),圖論又是路徑優(yōu)化的基礎(chǔ),離散數(shù)學(xué)中的很多知識點均可在軟件工程實踐中得到應(yīng)用。
3模型應(yīng)用與實踐
3.1關(guān)于教學(xué)大綱
(1) 成立教學(xué)指導(dǎo)與監(jiān)督委員會,由院長和教學(xué)主管院長負(fù)責(zé),成員均為軟件知識全面,教學(xué)與科研經(jīng)驗均豐富的一線老師,制定課程間知識點的滲透程度與銜接方法。制定關(guān)于各門課程編制大綱的總綱,總綱體現(xiàn)關(guān)聯(lián)模型。
(2) 成立教學(xué)團隊,由團隊負(fù)責(zé)人組織團隊成員(相關(guān)課程負(fù)責(zé)人),按照總綱協(xié)同編制各門課程的大綱,如編譯技術(shù)課程的實驗,在大綱中明確規(guī)定用C/C++造、查名字表、表達式的逆波蘭表示等內(nèi)容,并寫明具體要求、上機學(xué)時數(shù)等。
(3) 加強實踐環(huán)節(jié),按照關(guān)聯(lián)模型,相關(guān)任課教師協(xié)同參與實踐題目的擬定、案例分析與實踐指導(dǎo)。
(4) 由教學(xué)指導(dǎo)與監(jiān)督委員會指導(dǎo)、監(jiān)督、檢查各門課程教學(xué)中各環(huán)節(jié)對教學(xué)大綱的執(zhí)行情況,發(fā)現(xiàn)問題及時糾正。
4結(jié)束語
本文深入研究了軟件工程專業(yè)軟件類核心課程知識點之間的前趨與后繼關(guān)系,給出了關(guān)聯(lián)式教學(xué)模型,并將此模型體現(xiàn)到教學(xué)大綱及教學(xué)實踐環(huán)節(jié)中,形成鏈條式教學(xué),使前趨課程的內(nèi)容不斷在后繼課程中得到復(fù)習(xí)、鞏固與應(yīng)用提升,使后繼課程的學(xué)習(xí)目標(biāo)更加明確,該模型已經(jīng)經(jīng)過了三年的實踐,取得了明顯的效果。對于專業(yè)教師來說,對該教學(xué)模型的深入理解,提升了對軟件類核心類課程知識點之間關(guān)聯(lián)性的深入理解,在講授自己的課程時也能做到前后兼顧,統(tǒng)籌全局,同時有利于學(xué)生對軟件類課程系統(tǒng)化知識體系的貫通與全面掌握。
參考文獻
[1] 朱戰(zhàn)立. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:高等教育出版社,2004.
[2] 劉建華. 計算機語言類課程教學(xué)模式初探[J]. 高教論壇,2005,2(1).
[3] 訾秀玲. 面向應(yīng)用的計算機公共基礎(chǔ)課程結(jié)構(gòu)的教學(xué)改革與實踐[J]. 計算機教育,2007,(16).