高枚 王睿智 叢培盛


摘? 要: “軟件開發技術”課程是為理工類非計算機專業學生開設的公共基礎課。為適應新時期人才培養需求,需要對原有的以傳授計算機理論知識為主的教學內容和單一的教學模式進行改革。針對計算機基礎教學的特點,提出以強化計算思維和應用能力培養為目標的改革方向,詳細探討了新的課程知識體系構建、教學內容的組織實施,以及過程化考核方法。教學實踐表明,改革提升了學生對課程的興趣,促進了學生應用創新能力的提高。
關鍵詞: 計算思維; 應用能力; 軟件開發技術; 過程化考核
中圖分類號:G642? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)12-84-03
Abstract: "Software Development Technology" is a public basic course for non-computer students majoring in science and engineering. To meet the needs of talent cultivation in the new era, it is necessary to change the teaching content which mainly consists of theoretic computer knowledge and the unitary teaching mode. According to the characteristics of computer basic teaching, this paper proposes the reformation objective of enhancing computational thinking and application ability cultivating, discusses in detail the construction of new course knowledge system, the organization and implementation of the teaching content, and the process assessment method. The teaching results suggest that the reform improves the students' interest in the course and their application and innovation ability.
Key words: computational thinking; application ability; software development technology; process assessment
0 引言
“軟件開發技術”課程在我校已有二十余年的開設歷史。隨著計算機技術的快速發展,計算機技術與其他專業的融合日益深入,各專業對學生的計算機應用能力提出了更高的要求。傳統的教學內容和培養目標都已無法適應新時期人才培養的需要,課程改革勢在必行。本文將從教學目標、課程知識體系、內容組織實施及考核等方面對課程教學改革進行具體介紹。
1 教學目標和課程內容體系
1.1 以計算思維為導向定位教學目標
計算機技術的快速更新換代是計算機基礎教學始終面臨的挑戰。雖然計算機基礎教學具有很強的應用性,但仍然需要教授一些相對穩定的、基礎性的以及讓學生長期受益的內容 [1]。而計算機科學與技術中所蘊含的計算思維的思想和方法則不會隨著技術的換代而過時,這些正是穩定的、能使學生長期受益的“授人以漁”的方法,是信息世界普適、通用的思維方式。隨著工程實踐的復雜化、系統化和社會化,這些可遷移的“通用能力”在工程人才的能力結構中將會占據更加重要的地位[2]。因而,我們根據“軟件開發技術”課程在整個公共基礎課程體系中的定位,將面向應用的計算思維能力培養確立為主要教學目標,重點培養學生的如下能力。
⑴ 培養學生進行問題求解、數據抽象描述與表達的能力;
⑵ 培養學生對應用系統進行需求分析、總體設計和系統實現的能力;
⑶ 培養學生應用計算機技術解決本專業問題的應用創新能力;
1.2 重構課程內容體系,突出計算思維和應用能力培養
對知識的興趣的第一個源泉、第一顆火星,就在于教師對上課時要講的教材和要分析的事實所抱的態度[3]。過時、落后的教學內容無疑會扼殺學生的學習熱情,只有保持教學內容的先進性,才能吸引學生對課程產生興趣。為此,我們編寫的教材從教學目標出發重構課程內容體系。新內容體系舍去泛泛而談、一般性了解的內容,如操作系統、軟件工程等計算機專業基礎知識;突出了更具應用價值、利于提高學生軟件開發能力的相關內容。如圖1所示。
新內容體系主要包括三大知識模塊:面向對象的設計基礎、數據結構與算法、數據庫應用開發技術。在三大知識模塊之上,通過一個基于數據庫應用的系統開發實例將幾部分內容進行有機結合,提升學生掌握知識的層級。即,由知識的學習和理解上升到運用知識解決實際問題的高度,突出了應用能力培養的目標。為保證技術與工具的先進性,課程選用C#為語言工具,以VS.NET和SQL SERVER數據庫為實踐平臺[4]。
2 內容組織與教學實施
通過教學實踐我們認識到:學生對課程興趣的持久化源于在學習過程中學習能力所及前提下獲得感的不斷被滿足。為此,在教學內容的組織和實施中我們力求兼顧學生的興趣和能力設計教學,以保證教學目標的順利實現。
2.1 以應用為目標選取教學內容
非計算機專業的計算機基礎教學不同于計算機專業教學,強調應用性,主要目標是讓學生獲得一種今后可以更好地利用計算機解決專業領域相關問題的計算思維能力。而“軟件開發技術”課程是基礎教學三層次中應用層次的課程,其教學內容相較于同一層次的其他課程來說更加寬泛,涉及計算機專業的幾門核心課程。怎樣將多門課程的內容有效組織在容量有限的一門課程里呢?如何取舍是關鍵。
我們圍繞軟件應用開發這條主線,以應用為目的進行內容選取。根據計算機基礎教學的特點和非計算機專業的學生能力,舍去與應用關系不大泛泛而論的內容,而與某一領域更深層應用相關的內容也不宜組織在教材中,但會在授課時給學生一些引導,使其在需要的時候,通過自主學習掌握相關內容。這樣選取組織內容,使得所有知識模塊皆圍繞應用開發的目標展開,主線明確,形散神聚。
2.2 理論與實踐相互支撐,螺旋上升開展教學實施
為降低學生感知上的難度,同時不斷有驚喜的獲得感,持久化學習興趣,我們力求做到各知識模塊的理論知識與開發實例的實踐應用相互支撐,相互促進,螺旋上升組織教學。
⑴ 按what-why-how順序遞進組織內容
面向對象的程序設計涉及大量抽象概念,如果在這一相關模塊集中鋪陳介紹這些概念,學生很難理解,也會因此喪失學習興趣。為此,我們按照“what-why-how”的邏輯順序分階段展開這些概念。首先讓學生快速建立起面向對象的思維框架,即這是一種什么樣的框架。在這個模塊中只需先掌握這種框架下最基礎、最核心的概念及其表達;隨后,在數據結構模塊中通過對框架的反復運用達到對這種思維框架的熟練掌握;再后,結合開發實例模塊對為什么用、如何用一些難點概念和特殊方法解決實際問題再做更深入具體的介紹。比如,對特殊的訪問權限、靜態類、靜態方法這些較難抽象理解的概念結合應用介紹,就會使學生對概念的認識不僅能做到知其然,還能理解其所以然。
⑵ 從抽象到具體展開數據結構模塊,深入理解計算思維本質
數據結構的實現和應用最能體現計算思維的運用,因為計算思維的本質就是抽象和自動化,而通過數據抽象建立數據的對象模型恰恰就是數據結構要解決的問題。在這一模塊中,我們首先利用ADT建立數據對象模型,使學生從抽象的頂層認識某種數據結構;然后再結合具體應用實現數據結構以理解問題求解的算法;在對常用數據結構的內在邏輯已經熟練掌握的前提下,再通過實用類的應用簡化程序設計的復雜度。這樣逐步使學生能駕馭的程序規模不斷擴大、應用能力不斷增強,學習過程中不斷體驗獲得感。通過這個知識模塊的訓練,強化了學生問題抽象、建模,進行遞歸思維和折衷處理等計算思維能力。
⑶ 以應用開發為目標組織數據庫模塊
“數據庫”作為計算機專業的一門核心課程,其理論內容非常豐富,應用層次多樣。但在我們這門課程有限的知識體量中只能選擇一個合適的角度選取組織內容。我們以設計數據庫應用程序為目標,按設計主線組織這個模塊。先使學生掌握數據庫從概念設計到邏輯設計,再到物理設計的基本概念、工具、方法以及數據庫操縱的SQL語言;進而與面向對象的程序設計技術結合介紹ADO.net數據庫訪問技術,實現前后臺的數據訪問交互;再在開發實例中進一步提升從問題域中抽象數據及數據類之間關聯分析的能力,使學生掌握面向對象程序設計與數據建模之間的統一。
通過對各知識模塊理論知識的理解與開發實例的實踐應用相互支撐來組織教學實施,使得知識難點得以分散,學生對概念的接受水到渠成,駕馭能力逐漸增強,從而持久保持學習課程的興趣。
2.3 基于開發實例的工程思維構建,進一步提升思維層次
如陳國良院士所指出的:計算思維教育的目的是培養一種思維習慣[5]。我們希望在更高層面上培養學生的這種思維習慣,幫助學生構建更高層次的系統思維、工程思維,進一步提升知識的應用能力。為此,在三大知識模塊之上設計了開發實例模塊。通過一個基于數據庫應用系統的開發實例將幾個模塊內容有機貫穿起來,運用軟件工程思想,設計實現這個應用系統,使學生學會從全局分析問題、把握目標,掌握計算思維如何通過抽象和分解進行復雜系統設計的過程和方法。
⑴ 按軟件體系結構分層部署
突破直接編寫窗體事件實現數據庫訪問那種局部解決方案的局限,按照軟件開發的要求,從認識事物的全局出發,將整個系統劃分為數據存儲層、數據訪問層、邏輯層和表示層四層體系結構,分別完成數據存儲、訪問、控制和界面表達的功能。如表1所示。四層體系架構反映了各層次要素之間的一種橫向聯系,幫助學生跳出孤立考慮問題的局限,學會正確分析事物間相互聯系和作用的關系,更加全面地認識問題。
⑵ 多層次工程思維構建
為便于項目管理,從系統功能角度將系統劃分為多個子模塊,每個模塊組織在一個項目文件夾下,對應一個命名空間;模塊內部涉及實體類、控制類和窗體類等多個層次的管理。四層體系結構劃分和多模塊項目組織管理,縱向思維和橫向思維相互交織,需要能夠進行立體層次思維和總體功能把握。在系統構建實現過程中,需要明確各層次要素的作用、每個層次要素與其他層次要素的對應及相互作用關系,從而抽象出類數據、方法及其訪問屬性和其他屬性的正確表達。像諸如靜態方法的運用、類的public訪問屬性的使用、哈希表的應用、自定義命名空間的意義等等難以抽象理解的概念、方法,通過在實際開發中解決應用問題得到了具體的詮釋,這也加深了學生對前面所學理論知識的進一步理解。
2.4 全方位的過程化課程考核
課程采用過程化考核。課程評價由平時成績、期中考試成績、期末考試成績和項目開發大作業共同構成。平時成績包括了理論課和上機實踐課的考勤及每個模塊中布置的作業,而這些作業都要求學生將調試過的程序在指定日期前上傳到我們自己的網站;期中、期末考試均采用上機考試方式,目的是以考促練,促使學生重視平時的實踐訓練;項目開發大作業考慮學生能力的不同,提出分層要求,完成較高要求的可通過申請項目答辯獲得一定加分。這種過程化考核規范了過程管理,一定程度上保障了教學實施效果。
3 結束語
本文詳細探討了“軟件開發技術”課程改革的教學目標、新課程內容體系的構建,以及圍繞教學目標如何組織實施教學的方法。從教學過程和課程考核結果來看,改革取得了一定的效果,體現在學生學習過程中興趣的持久性和考核中反映出對知識運用的能力上。部分學生還通過課程學習,激發了進一步深入學習的興趣,在后續參加的不同層級計算機應用能力競賽中獲得了不錯的成績,也從側面反映了我們課程改革的效果。
雖然課程改革初見成效,但尚有許多可以改進、完善之處。比如在考核中如何提升項目開發的實效,讓更多學生在不同層面受益更多;在應用開發中,將更先進的面向對象的分析方法引入系統設計,系統實現中通過通用類來優化設計,提高系統開發效率等等。這些改進都將進一步提升學生對計算思維的深入理解,也是我們需要努力挖掘梳理的內容。
參考文獻(References):
[1] 教育部高等學校計算機基礎課程教學指導委員會.高等學校計算機基礎教學發展戰略研究報告暨計算機基礎課程教學基本要求[M].高等教育出版社,2009.
[2] 錢進.推動工程人才核心能力培養有效落地[J].中國高等教育,2021.6:48-50
[3] B.A.蘇霍姆林斯基.給教師的建議[M].教育科學出版社,1984.
[4] 叢培盛,龔沛曾.計算機軟件開發技術與應用[M].高等教育出版社,2012.
[5] 陳國良,董榮勝.計算思維的表述體系[J].中國大學教學,2013.12:22-26