王雨瀟 成麗君 李萱
摘?要:教育部高等教育司在計算機等多個學科領域提出的“系列101計劃”已于2023年4月正式啟動,各科教育教學改革正逐步開啟全新局面,加強基礎學科人才培養已成為教育工作重點之一。在這個工作中,各科如何找準教育發展新定位、助力實施教育新部署、把握教育新要求、優秀完成教育新任務成為亟待解決的問題。針對軟件設計與體系結構課程,本文提出了一種基于上下文的教學方法,該方法結合“新工科”“立德樹人”的理念,通過打造學科上下文、學習成果上下文、課程內部上下文、教師上下文、育人上下文、學習形式上下文,為構建全員全程全方位育人大格局貢獻力量,開啟軟件育人新篇章。
關鍵詞:軟件設計與體系結構;上下文;教學改革
Abstract:The?"Series?101?Plan"?proposed?by?the?Department?of?Higher?Education?of?the?Ministry?of?Education?in?many?disciplines?such?as?computers?has?been?officially?launched?in?April?2023,and?the?reform?of?education?and?teaching?in?various?disciplines?is?gradually?opening?up?a?new?situation,and?strengthening?the?training?of?talents?in?basic?disciplines?has?become?one?of?the?priorities?of?education?work.In?this?work,how?to?find?the?new?orientation?of?education?development,help?implement?the?new?deployment?of?education,grasp?the?new?requirements?of?education,and?excellent?completion?of?the?new?task?of?education?has?become?an?urgent?problem?to?be?solved.For?software?design?and?architecture?courses,this?paper?proposes?a?contextbased?teaching?method,which?combines?the?concepts?of?"new?engineering"?and?"foster?character?and?civic?virtue",and?contributes?to?the?construction?of?a?wholeprocess?and?allround?education?pattern?for?all?students?by?creating?disciplinary?context,learning?outcome?context,curriculum?context,teacher?context,educational?context,and?learning?form?context.Under?the?guidance?of?this?method,a?new?chapter?of?education?in?the?software?field?will?be?opened.
Keywords:Software?design?and?architecture;Context;Teaching?reform
1?概述
“軟件設計與體系結構”是軟件工程專業的專業必修課程[1],聚焦軟件生命周期中的軟件設計階段,致力于提升我國軟件工程專業人才的軟件設計能力,是軟件開發中的重要環節之一,對開發出滿足需要的高質量軟件起關鍵作用[2]。
目前“軟件設計與體系結構”課程無法引起學生重視[3],對其在軟件工程中的地位和作用認識不足,學生更注重開發語言和相關技術等的學習,輕視甚至忽略偏理論的軟件工程開發的相關課程,這和軟件工程的相關課程分布相對分散有關系。因此,本文提出基于上下文的課程教學方法,基于這樣的教學方法,能夠幫助學生更好地整合所學知識、完善軟件工程思維,進一步培養出知識、能力、素養齊備的三位一體式學生。
2?現狀分析
2.1?學生對課程的重要性認識不足,熱情不夠
“軟件設計與體系結構”課程應用對象為大型、復雜軟件,而學生在本科階段的學習中遇到的大多是簡單項目,即不經過設計也可以成功開發,容易造成本課程可有可無的假象,從而導致學生學習熱情低下的局面。
2.2?課程安排分散,課程之間聯系弱
“軟件設計與體系結構”的應用時機為需求分析之后,實現軟件之前,當前軟件開發相關課程安排分散,教學時無法體現課程在具體工程開發中的應用時機,導致學生難以搭建本課程與其他課程之間的聯系。再加上課程內容理論知識偏多,學生很難在緊湊的學習過程中迅速了解本課程的定位,同時難以快速掌握相關知識并進行運用。
2.3?知識點散落、教學內容抽象
軟件設計與體系結構課程學習內容多,知識點密度高,且教學課時有限,導致學生接受起來具有一定難度。再加上課程內容相對抽象,學生難以將所學知識轉化為具體的工程開發能力[3]。
2.4?教學內容專業性強,實事結合難
軟件設計與體系結構課程內容專業性強,缺乏實事熱點案例的插入點,相關育人案例少[4],因此,如何合理地做育人于無形,是本課程教師亟須找到突破的難題。
3?改革措施
3.1?打造學科上下文
目前,大多數高校軟件工程專業中軟件開發過程的相關課程包括軟件工程導論、軟件項目管理、軟件需求分析、軟件設計與體系結構、軟件質量保證與測試等,而這些課程的開設情況基本分為兩種:一是處于不同學期分散開設,二是處于同一個學期同步開設。對于第一種情況,課程安排相對分散,課程相關性難以得到體現;對于第二種情況,課程的先后關系難以體現。這兩種方式都導致學生無法清晰構建軟件開發過程的知識體系,對相關課程的重要性認識不足。
針對上述問題,山西農業大學軟件學院實行如下改革。大三上學期,開設軟件工程導論,對整個軟件開發的相關過程進行導引式講解,使得學生清楚軟件開發需要經歷的時期。在大三下學期以四周為一個周期,即將整個學期分為三個周期,每個周期同步開設兩門課程,共六門課程,每一周單門課程開四節課,具體開設情況如下:在第一個周期內,開設軟件需求分析以及軟件項目管理;在第二個周期內,開設軟件設計與體系結構以及團隊激勵與溝通;在第三個周期內,開設軟件質量保證與測試以及人機交互軟件工程方法。從開設情況可以看出,這三個周期又分成兩條主線,一條是開發主線,包括需求分析、設計、質量保證與測試;另一條是開發輔線,包括項目管理、團隊激勵與溝通、人機交互軟件工程方法,輔助補充開發主線。
上述課程開設形式的改革為“軟件設計與體系結構”課程成功打造了學科上下文。這種先總述再分開一主一輔兩條線路深入拓展的方式,即先講軟件工程導論,再通過短周期六門課的雙線快速迭代的方式,準確地把握了設計課程的上下游,補充完善了學生在軟件生命周期中的盲點,使得課程間銜接更為自然,可以讓學生快速搭建軟件開發相關過程的聯系。“軟件設計與體系結構”這門課于開發主線的第二周期進行開設,此時學生已經擁有需求分析的課程背景,可以讓學生認識到軟件設計與體系結構在整個軟件開發中所占據的承上啟下的重要地位,可以進一步提高學生的學習熱情,并且能夠快速吸收新的知識。
3.2?打造學習成果上下文
在整個軟件的開發過程中,每一個階段都有明確的文檔記錄作為當前階段的里程碑,比如,需求分析階段提交的文檔是需求規格說明書,軟件設計階段提交的文檔是設計規格說明書等。文檔記錄可以表明某一階段結束,下一階段開始,同時也便于在軟件開發出現問題時進行問題追溯,同時在軟件維護時起到重要作用。
當前,多數高校軟件開發過程相關課程的考核還是以期末考試為主,這種考核方式多是對知識點及其相關應用的考核,對當前軟件開發過程的文檔記錄缺乏重視。為進一步促使學生重視軟件開發相關階段的文檔交付,“軟件設計與體系結構”以及相關課程均增加期中考試,其形式為文檔,通過這種形式來達到讓學生熟悉文檔內容的目的。結合一主一輔兩條路線、三個周期的學科開展模式,各科基本按照軟件生命周期的順序進行開展,如此形成學習成果上下文。
這種學習成果的上下文有助于學生打通軟件開發的相關“關節”。學生可以選定一個項目,依次完成軟件開發各階段的月考文檔,通過這種形式,促使學生進行思考,使其主動進行總結歸納,清除知識盲點,進一步完善軟件開發知識體系。
3.3?打造課程內部上下文
當前關于軟件設計的相關課程,部分單純關注代碼設計,主要內容為程序模式設計,偏向代碼開發實現的相關內容,部分單純關注軟件體系結構,相關內容相對枯燥,偏向理論,缺乏實踐案例。這樣關注點單一的課程其好處是可以挖掘學生在某個軟件設計知識領域的深度,但其缺點是課程關注范圍局限,沒有為學生建立起軟件開發中概要設計和詳細設計的聯系,知識點不夠連貫。
本課程致力于覆蓋軟件開發全過程中的設計內容,整合軟件設計的相關知識點,從軟件生命周期可以知道,軟件設計包括概要設計和詳細設計。本課程講授知識包括軟件體系結構、詳細設計以及相關內容的評審,為軟件質量保駕護航,即打造設計課程內部的上下文,使得學生將關注視野放大,從一個知識點放大至軟件設計全內容,從而達到設計知識連貫的效果。
本課程意在覆蓋軟件設計的上下文,除了這個目標之外,課程教師已經熟悉院系所制訂的人才培養方案,了解相關教學安排,明確學生已經掌握的知識內容,對于學生已經進行了深入學習的課程。比如,設計模式、數據庫設計等都進行合理弱化,只做知識的串聯,避免知識點的重復,從全局的角度提升學生具體的工程開發能力。對學生在之前的學習過程中沒有涉及的內容進行進一步講授,明確培養與教學的重難點,合理豐富教學案例,爭取在有限的課時內講解更多學生沒有接觸過的內容。除此以外,課程組還定期舉行會議,根據最新的教學經驗,結合學生的學習反饋,進行課程教案及大綱的更新,使得教學安排愈加合理,不斷提升教學質量和效果。
3.4?打造教師上下文
當前,大學教師選擇教授哪一門課的自由度較高,并且具有流動性,教師可能這個學年教授這門課,下個學年就不再教授了。這種做法的好處是,教師可以選擇自己更有優勢、了解程度更高的課程來進行教授。同時,學生可以得到更優質的教育,而這樣做的劣勢在于對于多門聯系較強的課程,課程教師的隨機、分散以及流動性強的特點,使得教師的知識體系不夠完善,同時可能會影響學生對課程間聯系的理解。
針對上述問題,山西農業大學軟件學院建立了軟件工程專業核心課課程組,課程組內的教師維持相對穩定的狀態。這種方式并不是將教師與課程絕對捆綁,相反,該方式隨時歡迎新鮮血液,更歡迎教師切換教授課程。只不過,這里更倡導課程組內的教師在核心課程內進行切換,這樣經過幾個教學輪次后,教師們會進一步了解核心課程之間的相關性,教師的知識背景得到進一步補充完善。
這種組建核心課程組教師的方式成功打造了教師上下文,同時也創建了一種小型課程——教師生態,進一步緊密教師與課程間的聯系。教師上下文使得教師對核心課程擁有全局視角,課程內容理解更為深刻,課程間聯系把握更為到位,相關知識體系更加完整,教學效果更優。
3.5?打造育人上下文
軟件工程專業中專業課程占比高,均有較強的工科特點,包括軟件設計與體系結構在內的核心開發課程更是兼備強烈的工程開發與工程技術特色,缺乏突出、明確的實事切入點。
如何激發教師隊伍“主力軍”,如何布局課程建設“主戰場”,如何創新課堂教學“主渠道”[5],如何將育人教育落實到軟件設計與體系結構這門課中,從而獲得更佳教育效果等仍舊存在停滯點,即當前主要問題是育人效果不明顯。
做好育人最重要的是要找準思政切入點,本文提出一種基于育人上下文的建設方法,即從軟件開發核心課的廣角來整體規劃想要達到的效果,然后再在各個核心課中找到對應的融入點。結合學科上下文,即兩條線路三個周期的學科開展模式,系統、快速、多次地圍繞總目標開展教育。
通過這種育人上下文的構建,有利于進一步做好工程倫理教育,把握學生思想的上下文,培養實事求是、質量優先的大國工匠精神,提升對學生影響的深度和廣度,拔高學生文化自信的高度,提高民族熱愛的溫度,厚植精益求精的大國工匠精神,使得學生能夠以科學嚴謹的態度對待每一個軟件開發的環節,最終開發出能擔當社會責任的高質量軟件。
3.6?打造學習形式上下文
當前,多數高校“軟件設計與體系結構”課程的教學仍舊是以課堂為主,學生在課上被動地接收知識,然后通過作業輔助進行知識整理、回顧與總結。這種學習形式在任課教師優秀、徹底的交底式教學以及學生非凡的學習熱情下可以獲得良好的學習效果。而現實情況是課程覆蓋面廣導致各部分知識深度不夠,同時大量知識點灌輸使得學生的學習熱情只能維持很短的時間,學習效果不佳。
針對上述情況,提倡教師在課堂上著重講解重點內容,即重點內容重點講解,非重點知識鼓勵學生主動探索,結合教學翻轉,以生講師評的方式約束學生進行發散式學習,拔高學生知識高度。除了教學翻轉外,“軟件設計與體系結構”課程組還構建了線上課程資源,針對課程知識點進行視頻錄制,學生可以結合知識點視頻進行進一步學習,同時鼓勵學生結合當前主流視頻軟件作為學習的補充形式,充分運用網絡資源豐富自己的知識儲備。這種教師重點知識重點講解+教學翻轉+線上線下混合式教學的方式成功打造了學習形式的上下文。
這種學習形式上下文使得教師和學生進一步解耦,實現了一種松散耦合的關系,即學生學習并不單純完全依賴授課教師,還把知識講解、理解的任務分散給了學生以及線上的現代教學手段,如此達到了更好地教學效果。
結語
基于上下文的軟件設計教學方法,從學科上下文、學習成果上下文、課程內部上下文、教師上下文、育人上下文、學習形式上下文六個角度,有效提高了學生對課程重要性的認識,增強了學生的學習熱情;進一步完善學生的軟件開發知識體系;軟件開發相關課程之間的聯系得到增強,知識點得到有效整合;進一步緊密了教師與課程間的聯系;育人的深度和廣度得到提升;實現了教師和學生關系的松散耦合,獲得了更好地教學效果。該方法為培養知識、能力、價值三位一體式[6]學生提供了具體可操作的方式,為培養德智體美勞全面發展的社會主義建設者和接班人的事業貢獻一份堅實力量。
參考文獻:
[1]王鵬亮,張黎平,段淑萍.基于“OBE+積極教學法”視閾下“系統分析與設計”教學分析[J].信息系統工程,2023(11):145148.
[2]董威,文艷軍,陳振邦.軟件設計與體系結構[M].北京:高等教育出版社,2017.
[3]丁智國.翻轉課堂在軟件體系結構課程教學中的實踐[J].計算機教育,2017(03):6871.
[4]劉偉,胡為,李小智,等.融入課程思政的軟件設計模式課程教學研究與實踐[J].計算機教育,2021(09):610.
[5]中華人民共和國教育部.教育部關于印發《高等學校課程思政建設指導綱要》的通知[EB/OL].(20200601)[20231226].http://www.moe.gov.cn/srcsite/A08/s7056/202006/t20200603_462437.html.
[6]云少君,曹謹玲,程艷芬,等.新工科背景下“食品衛生學”課程開展思政教育的路徑探索[J].食品工業,2023,44(09):197200.
基金項目:2024年山西農業大學軟件學院項目——《軟件設計與體系結構》課程思政項目(項目編號:SXAUSW2023006)
作者簡介:王雨瀟(1994—?),女,漢族,山西清徐人,工程碩士,助教,研究方向:圖像處理;成麗君(1980—?),女,漢族,山西太原人,工學碩士,副教授,研究方向:智慧農業;李萱(1994—?),女,漢族,山西運城人,工程碩士,助教,研究方向:自然語言處理。